table space.txt
create temporary tablespace test_temp01
tempfile 'G:\rman_test\data\test_temp01.dbf' size 32m autoextend on next 32m maxsize 2048m extent management local; //创建数据表空间 create tablespace test_data01logging datafile 'G:\rman_test\data\test_data01.dbf' size 32m autoextend on next 32m maxsize 2048m extent management local; //创建用户并指定表空间 create user test_01 identified by testdefault tablespace test_data01 temporary tablespace test_temp01; //给用户授予权限 grant connect,resource to test_01;create test_1(username varchar(20),telnum varchar(11));insert into test_1 values('zhangsan','123');insert into test_1 values('wangwu','123');insert into test_1 values('lisi','123');commit;
DB_FULLBAK_ORCL.BAT
SET ORACLE_SID=orcl
RMAN TARGET / LOG G:\rman_test\backup_data\BAK_%DATE:~0,10%.LOG CMDFILE=G:\rman_test\DB_FULLBAK_ORCL.RMAN
DB_FULLBAK_ORCL.RMAN
RUN {
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 14 DAYS;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'G:\rman_test\backup_data\%F';
ALLOCATE CHANNEL C1 DEVICE TYPE DISK FORMAT 'G:\rman_test\backup_data\BAK_%U';
BACKUP DATABASE SKIP INACCESSIBLE FILESPERSET 10
PLUS ARCHIVELOG FILESPERSET 20
DELETE ALL INPUT;
RELEASE CHANNEL C1;
}
ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE DISK;
CROSSCHECK BACKUPSET;
DELETE NOPROMPT OBSOLETE;
在归档模式下有备份,丢失数据文件的恢复。
1、 确认处于归档模式。
改变非归档模式到归档模式:
1)SQL>SHUTDOWN NORMAL/IMMEDIATE;
2)SQL>START MOUNT;
3)SQL>ALTER DATABASE ARCHIVELOG;
4)SQL>ALTER DATABASE OPEN;
2、执行DB_FULLBAK_ORCL.BAT
3、执行table space.txt脚本
4、模拟文件丢失
5、文件丢失后,数据库无法正常启动。
G:\RMAN_TEST\DATA\TEST_DATA01.DBF 中保存了test_01用户的表test_1
这时候必须使用rman恢复G:\RMAN_TEST\DATA\TEST_DATA01.DBF文件。
6、使用rman恢复
7、打开数据库。
发现可正常打开。
8、验证数据已经恢复。
9、验证G:\RMAN_TEST\DATA\TEST_DATA01.DBF文件已经恢复。
结束!