数据库冷备份及恢复
操作环境为windows xp + Oracle Database 11g Enterprise Edition Release 11.2.0.1.0
1.查看数据文件:
SQL> select FILE_NAME,STATUS,FILE_ID from dba_data_files;
FILE_NAME STATUS FILE_ID
---------------------------------------- ------------------ ----------
D:\APP\WWANG\ORADATA\MDSP\USERS01.DBF AVAILABLE 4
D:\APP\WWANG\ORADATA\MDSP\UNDOTBS01.DBF AVAILABLE 3
D:\APP\WWANG\ORADATA\MDSP\SYSAUX01.DBF AVAILABLE 2
D:\APP\WWANG\ORADATA\MDSP\SYSTEM01.DBF AVAILABLE 1
D:\APP\WWANG\ORADATA\MDSP\IMUSE01.DBF AVAILABLE 5
D:\APP\WWANG\ORADATA\MDSP\JACK.DBF AVAILABLE 6
已选择6行。
2.查看控制文件:
SQL> select NAME from v$controlfile;
NAME
----------------------------------------
D:\APP\WWANG\ORADATA\MDSP\CONTROL01.CTL
D:\APP\WWANG\FLASH_RECOVERY_AREA\MDSP\CONTROL02.CTL
SQL>
3.查看日志文件:
SQL> col MEMBER format a50
SQL> select GROUP#,MEMBER from v$logfile;
GROUP# MEMBER
---------- -------------------------------------------------
3 D:\APP\WWANG\ORADATA\MDSP\REDO03.LOG
2 D:\APP\WWANG\ORADATA\MDSP\REDO02.LOG
1 D:\APP\WWANG\ORADATA\MDSP\REDO01.LOG
SQL>
4.创建一张表插入一条记录
SQL> create table test (id number ,name varchar(10));
表已创建。
SQL> insert into test values (1,'jack');
已创建 1 行。
SQL> commit;
提交完成。
SQL> select * from test;
ID NAME
---------- --------------------
1 jack
SQL>
5.关闭数据库备份(系统的拷贝)数据文件,联机日志,控制文件
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> host copy D:\app\wwang\oradata\mdsp\*.* E:\oraclebakup
D:\app\wwang\oradata\mdsp\CONTROL01.CTL
D:\app\wwang\oradata\mdsp\IMUSE01.DBF
D:\app\wwang\oradata\mdsp\JACK.DBF
D:\app\wwang\oradata\mdsp\REDO01.LOG
D:\app\wwang\oradata\mdsp\REDO02.LOG
D:\app\wwang\oradata\mdsp\REDO03.LOG
D:\app\wwang\oradata\mdsp\SYSAUX01.DBF
D:\app\wwang\oradata\mdsp\SYSTEM01.DBF
D:\app\wwang\oradata\mdsp\TEMP01.DBF
D:\app\wwang\oradata\mdsp\UNDOTBS01.DBF
D:\app\wwang\oradata\mdsp\USERS01.DBF
已复制 11 个文件。
备份参数文件,参数文件只需要备份一次
SQL> host copy D:\app\wwang\product\11.2.0\dbhome_1\database\SPFILEMDSP.ORA e:\oraclebackup
已复制 1 个文件。
SQL>
6.启动数据库继续插入记录
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 326414336 bytes
Fixed Size 1374388 bytes
Variable Size 251660108 bytes
Database Buffers 67108864 bytes
Redo Buffers 6270976 bytes
数据库装载完毕。
数据库已经打开。
SQL> insert into test values (2,'jack');
已创建 1 行。
SQL> commit;
提交完成。
SQL> alter system switch logfile;
系统已更改。
SQL>
停止数据库模拟丢失多个文件
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> host del D:\app\wwang\oradata\mdspSYSTEM01.DBF
SQL> host del D:\app\wwang\oradata\mdsp\SYSTEM01.DBF
SQL> host del D:\app\wwang\oradata\mdsp\USERS01.DBF
SQL> host del D:\app\wwang\oradata\mdsp\UNDOTBS01.DBF
SQL>
启动数据库startup
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 326414336 bytes
Fixed Size 1374388 bytes
Variable Size 251660108 bytes
Database Buffers 67108864 bytes
Redo Buffers 6270976 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 1 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 1: 'D:\APP\WWANG\ORADATA\MDSP\SYSTEM01.DBF'
Alter 日志报错找不到文件
ALTER DATABASE OPEN
Errors in file d:\app\wwang\diag\rdbms\mdsp\mdsp\trace\mdsp_dbw0_3732.trc:
ORA-01157: ????/?????? 1 - ??? DBWR ????
ORA-01110: ???? 1: 'D:\APP\WWANG\ORADATA\MDSP\SYSTEM01.DBF'
ORA-27041: ??????
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
Errors in file d:\app\wwang\diag\rdbms\mdsp\mdsp\trace\mdsp_dbw0_3732.trc:
ORA-01157: ????/?????? 3 - ??? DBWR ????
ORA-01110: ???? 3: 'D:\APP\WWANG\ORADATA\MDSP\UNDOTBS01.DBF'
ORA-27041: ??????
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
Errors in file d:\app\wwang\diag\rdbms\mdsp\mdsp\trace\mdsp_dbw0_3732.trc:
ORA-01157: ????/?????? 4 - ??? DBWR ????
ORA-01110: ???? 4: 'D:\APP\WWANG\ORADATA\MDSP\USERS01.DBF'
ORA-27041: ??????
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
Errors in file d:\app\wwang\diag\rdbms\mdsp\mdsp\trace\mdsp_ora_180.trc:
ORA-01157: 鏃犳硶鏍囪瘑/閿佸畾鏁版嵁鏂囦欢 1 - 璇峰弬闃?DBWR 璺熻釜鏂囦欢
ORA-01110: 鏁版嵁鏂囦欢 1: 'D:\APP\WWANG\ORADATA\MDSP\SYSTEM01.DBF'
ORA-1157 signalled during: ALTER DATABASE OPEN...
Thu Jun 07 22:21:02 2012
Checker run found 3 new persistent data failures
7.查询v$recover_file视图记录需要恢复的文件
SQL> select FILE#,ERROR,"ONLINE" from v$recover_file;
FILE# ERROR ONLINE
---------- -------------------- --------------
1 FILE NOT FOUND ONLINE
3 FILE NOT FOUND ONLINE
4 FILE NOT FOUND ONLINE
9.把备份的1,3,4文件拷贝到原来的目录
进行介质恢复
SQL> recover database;
完成介质恢复。
SQL>
SQL> alter database open;
数据库已更改。
SQL> select * from test;
ID NAME
---------- --------------------
1 jack
2 jack
SQL>