如果数据库控制文件做过镜像,比如一个数据库有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 Area 293601280 bytes
Fixed Size 1248600 bytes
Variable Size 100663976 bytes
Database Buffers 184549376 bytes
Redo Buffers 7139328 bytes
ORA-00205: ?????????, ??????, ???????
SQL> select status from v$instance;
STATUS
------------------------
STARTED
SQL> CREATE CONTROLFILE REUSE DATABASE "DB01" NORESETLOGS ARCHIVELOG
2 MAXLOGFILES 16
3 MAXLOGMEMBERS 3
4 MAXDATAFILES 100
5 MAXINSTANCES 8
6 MAXLOGHISTORY 292
7 LOGFILE
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
12 DATAFILE
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'
18 CHARACTER SET ZHS16GBK
19 ;
控制文件已创建。
SQL> select status from v$instance;
STATUS
------------
MOUNTED
SQL> recover database;
ORA-00283: ??????????
ORA-00264: ?????
数据库不需要恢复的操作,所以报了上边的错误。
SQL> alter database open;
数据库已更改。
SQL> ALTER TABLESPACE TEMP ADD TEMPFILE 'E:\ORACLE\PRODUCT\ORADATA\DB01\TEMP01.DBF'
2 SIZE 20971520 REUSE;
表空间已更改。
SQL> select * from demo;
X Y
---------- ----------
1 100
2 200
SQL>
(以上内容摘于网络,如有侵权,请告之,将第一时间删除)
总机:(010)-56426307,59426319 QQ讨论群:243729577 182441349 邮箱:yuezt@cuug.com
通信地址:北京市海淀区紫竹院路88号紫竹花园D座703(CUUG)邮政编码:100089
中国UNIX用户协会 Copyright 2010 ALL Rights Reserved 北京神脑资讯技术有限公司
京ICP备11008061号