wolong 发表于 2018-9-15 06:23:29

oracle数据库备份恢复篇(一)

  如果数据库控制文件做过镜像,比如一个数据库有3个控制文件,丢失一个控制文件的恢复非常的容易,如果所有控制文件的丢失,那么恢复起来就要相对的麻烦一些。
  如果注意观察我下面的例子你会发现,即使没有控制文件的备份也是可以把数据库恢复的。
  当然了,一个优秀的DBA最好不要把自己置于复杂和未知的环境,对数据库做控制文件的备份是一个很容易的事情。
  我们这里通过用户管理的方法来创建控制文件的备份:
  1.生成重建控制文件和修复数据库的脚本,脚本会放在$ORACLE_BASE/admin/sid/udump路径下,其中sid是数据库实例名。
  alter database backup controlfile to trace;
  2.生成控制文件的镜像拷贝
  alter database backup controlfile to '/home/oracle/c.bak'   ----引号部分是目录和备份文件名
  SQL> create table demo (x number,y number);
  表已创建。
  SQL> insert into demo values(1,100);
  已创建 1 行。
  SQL> insert into demo values(2,200);
  已创建 1 行。
  SQL> commit;
  提交完成。
  SQL> select * from demo;
  X          Y
  ---------- ----------
  1      100
  2      200
  SQL> shutdown immediate
  数据库已经关闭。
  已经卸载数据库。
  ORACLE 例程已经关闭。
  删掉所有的控制文件!!
  SQL> startup
  ORACLE 例程已经启动。
  Total System Global Area293601280 bytes

  Fixed>
  Variable>  Database Buffers          184549376 bytes
  Redo Buffers                7139328 bytes
  ORA-00205: ?????????, ??????, ???????
  SQL> select status from v$instance;
  STATUS
  ------------------------
  STARTED
  SQL> CREATE CONTROLFILE REUSE DATABASE "DB01" NORESETLOGSARCHIVELOG
  2      MAXLOGFILES 16
  3      MAXLOGMEMBERS 3
  4      MAXDATAFILES 100
  5      MAXINSTANCES 8
  6      MAXLOGHISTORY 292
  7LOGFILE
  8    GROUP 1 'E:\ORACLE\PRODUCT\ORADATA\DB01\REDO01.LOG'SIZE 50M,
  9    GROUP 2 'E:\ORACLE\PRODUCT\ORADATA\DB01\REDO02.LOG'SIZE 50M,
  10    GROUP 3 'E:\ORACLE\PRODUCT\ORADATA\DB01\REDO03.LOG'SIZE 50M
  11-- STANDBY LOGFILE
  12DATAFILE
  13    'E:\ORACLE\PRODUCT\ORADATA\DB01\SYSTEM01.DBF',
  14    'E:\ORACLE\PRODUCT\ORADATA\DB01\UNDOTBS01.DBF',
  15    'E:\ORACLE\PRODUCT\ORADATA\DB01\SYSAUX01.DBF',
  16    'E:\ORACLE\PRODUCT\ORADATA\DB01\USERS01.DBF',
  17    'E:\ORACLE\PRODUCT\ORADATA\DB01\EXAMPLE01.DBF'
  18CHARACTER SET ZHS16GBK
  19;
  控制文件已创建。
  SQL> select status from v$instance;
  STATUS
  ------------
  MOUNTED
  SQL> recover database;
  ORA-00283: ??????????
  ORA-00264: ?????
  数据库不需要恢复的操作,所以报了上边的错误。

  SQL>>  数据库已更改。

  SQL>>  2SIZE 20971520REUSE;
  表空间已更改。
  SQL> select * from demo;
  X          Y
  ---------- ----------
  1      100
  2      200
  SQL>
  oracle视频教程请关注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html

页: [1]
查看完整版本: oracle数据库备份恢复篇(一)