只恢复一个表空间 待验证
sql
必须开启归档模式
SELECT ARCH_MODE FROM v$database;
select file_name from dba_data_files;
create tablespace ts1 datafile '/dmdata/TEST/ts1.dbf' size 128;
create user u1 identified by Ubc_123456 default tablespace ts1;
grant resource,public to u1;
conn u1/Ubc_123456
host rm -fr /dmbak/dmrman
drop table test;
drop table u1.t2;
create table test (id int);
insert into test values(1);
commit;
select * from u1.test;
SELECT CKPT_LSN, FILE_LSN, FLUSH_LSN, CUR_LSN FROM V$RLOG; --21792956
-- SYSDBA备份指定表空间
SQL> BACKUP TABLESPACE ts1 FULL BACKUPSET '/dmbak/dmrman/tbs_ts1_bak01';
SELECT CKPT_LSN, FILE_LSN, FLUSH_LSN, CUR_LSN FROM V$RLOG; --
-- 增加数据
insert into u1.test values(2);
commit;
select * from u1.test;
create table u1.t2 as select * from user_objects;
SELECT CKPT_LSN, FILE_LSN, FLUSH_LSN, CUR_LSN FROM V$RLOG; --21793053
-- SYSDBA备份指定表空间
SQL> BACKUP TABLESPACE ts1 FULL BACKUPSET '/dmbak/dmrman/tbs_ts1_bak02';
SELECT CKPT_LSN, FILE_LSN, FLUSH_LSN, CUR_LSN FROM V$RLOG; --
insert into u1.test values(3);
commit;
select * from u1.test;
select OBJECT_NAME from u1.t2;
SELECT CKPT_LSN, FILE_LSN, FLUSH_LSN, CUR_LSN FROM V$RLOG; --21793073
-- SYSDBA备份指定表空间
SQL> BACKUP TABLESPACE ts1 FULL BACKUPSET '/dmbak/dmrman/tbs_ts1_bak03';
truncate table u1.t2;
SELECT CKPT_LSN, FILE_LSN, FLUSH_LSN, CUR_LSN FROM V$RLOG; --21793158
----------------
DmServiceTEST1 stop
dmrman
restore database '/dmdata/TEST/dm.ini' tablespace ts1 from backupset '/dmbak/dmrman/tbs_ts1_bak03';
recover database '/dmdata/TEST/dm.ini' tablespace ts1 with archivedir '/dmarch' until lsn 21792956;
DmServiceTEST1 start
select * from u1.test;
需进一步明确:
有哪些表空间备份可用
哪个lsn是可以明确指定的
为什么自动恢复到最新,如果丢失归档会如何
恢复后lsn和其他数据文件的是否一致
再发起全备份会如何