首页 > 数据库 > Oracle > RMAN_部分数据文件丢失或者损坏的恢复
当个别数据库的数据文件丢失或者损坏,则需要首先恢复该文件的备份复本,然后运用归档日志和REDO文件进行完整恢复,使得最后丢失或者损坏的数据文件的SCN等于当前的SCN,这样数据库可以正常打开,数据没有丢失。
[@more@]
2.1 创建测试表空间
SQL>CREATE TABLESPACE "USER02" DATAFILE 'C:ORADATAAIDUUSER02.DBF' SIZE 20M REUSE LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
2.2 在测试表空间上创建数据库表
SQL>create table aidu.test_for_recovery(id number not null,name varchar2(200),primary key(id)) tablespace user02;
SQL> select table_name,tablespace_name from all_tables where table_name='TEST_FOR_RECOVERY';
TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------
TEST_FOR_RECOVERY USER02
2.3做一次RMAN全备份
C:> RMAN TARGET /
RMAN>RUN{
SQL ‘ALTER SYSTEM ARCHIVE LOG CURRENT’;
ALLOCATE CHANNEL D1 TYPE DISK;
BACKUP FULL DATABASE PLUS ARCHIVELOG;
RELEASE CHANNEL D1;}
2.4 在测试表中插入数据,用于验证数据是否完整恢复
SQL>CONN AIDU/AIDU
SQL>INSERT INTO TEST_FOR_RECOVERY(1,’AFTER_RMAN_BAK’);
SQL>COMMIT;
SQL>SHUTDOWN IMMEDIATE;
SQL>HOST DEL C:ORADATAAIDUUSER02.DBF; #删除USER02表空间的一个文件
SQL>STARTUP
ORACLE 例程已经启动。
Total System Global Area 268435456 bytes
Fixed Size 1248504 bytes
Variable Size 92275464 bytes
Database Buffers 171966464 bytes
Redo Buffers 2945024 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 2 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 2: 'C:ORADATAAIDUUSER02.DBF'
4.1 查看当前数据库状态
SQL> SELECT OPEN_MODE FROM V$DATABASE;
OPEN_MODE
----------
MOUNTED
4.2 使用RMAN进行恢复
这个试验里,RMAN备份集的目录是使用缺省的备份与恢复目录(C:oradataflash_recovery_area)。如果不想放在缺省的目录可以指定备份的路径。例如:
ALLOCATE CHANNEL D1 TYPE DISK FORMAT ‘C:ORABAK’;
C:>RMAN TARGET /
RMAN> RUN{
2> ALLOCATE CHANNEL D1 TYPE DISK;
3> RESTORE DATAFILE 2;
4> RECOVER DATABASE;
5> SQL 'ALTER DATABASE OPEN';
6> RELEASE CHANNEL D1;}
使用目标数据库控制文件替代恢复目录
分配的通道: D1
通道 D1: sid=46 devtype=DISK
启动 restore 于 2006-07-10 17:26:03
通道 D1: 正在开始恢复数据文件备份集
通道 D1: 正在指定从备份集恢复的数据文件
正将数据文件00002恢复到C:ORADATAAIDUUSER02.DBF
通道 D1: 正在读取备份段 C:ORADATAFLASH_RECOVERY_AREAAIDUBACKUPSET2006_07_10O1_MF_NNNDF_TAG20060710T171655_2C46R8M2_.BKP
通道 D1: 已恢复备份段 1段句柄 = C:ORADATAFLASH_RECOVERY_AREAAIDUBACKUPSET2006_07_10O1_MF_NNNDF_TAG20060710T171655_2C46R8M2_.BKP 标记 = TAG20060710T171655
通道 D1: 恢复完成, 用时: 00:00:08完成 restore 于 2006-07-10 17:26:13
启动 recover 于 2006-07-10 17:26:14
正在开始介质的恢复
介质恢复完成, 用时: 00:00:01
完成 recover 于 2006-07-10 17:26:18
sql 语句: ALTER DATABASE OPEN
释放的通道: D1
4.5 检查数据是否正常恢复
SQL>CONN AIDU/AIDU
SQL> SELECT * FROM TEST_FOR_RECOVERY;
ID NAME
---------- ------------------------------
1 after_rman_backup
我们可以看到数据完全恢复了。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/32980/viewspace-1038307/ ,如需转载,请注明出处,否则将追究法律责任。