一 模拟环境
1.Create environment
sqlplus / as sysdba
sql> create tablespace myexample
sql> conn tiger/tiger
sql> create table mysales tablespace
myexample as select * from
dba_tables;
sql> select count(*) from mysales;
2 备份
[oracle@paynode2 new]$ rman targetsys@PAYRAC
RMAN>backup database format
'+ARCHIVELOG/back/%d_%p_%s.FULL'
3.truncate 表
sqlplus /
as sysdba
sql >
alter system switch logfile;
sql
> /
sql
> select current_scn from
v$database;
sql
> select count(*)
from table tiger. mysales;
sql
> set time on
10:15:41
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
317123764
10:15:51 SQL> truncate table
tiger. mysales;
二 利用rman备份和TSPITR 恢复rac truncate的表数据
(1). 建立密码文件
orapwd file=initaux.ora entries=4
password=aux
(2).建立参数文件
1.连接主库,建立参数文件
sqlplussys/man@payracas sysdba
create
pfile='/data/app/oracle/product/11.2.0/dbhome_1/dbs/initaux.ora'
from spfile;
2.编辑 initaux.ora 文件
修改
*.log_file_name_convert=('+DATA_FILE','/data/aux','+ARCHIVELOG','/data/aux')
*.db_file_name_convert=('+DATA_FILE','/data/aux')
*.control_files='/data/aux/aux.ctl'
*.db_unique_name='aux'
加入
*.instance_number=1
改小
*.memory_target=3488881664
删除有关内存分配的参数
(3).restore 文件
rman
targetsys/man@payrac
rman
> list backup of datafile 1,3,4,22;
1
Full 317120994 21-OCT-11
+DATA_FILE/payrac/datafile/system.259.735856809
3
Full 317120994 21-OCT-11
+DATA_FILE/payrac/datafile/undotbs1.261.735856815
4
Full 317120994 21-OCT-11
+DATA_FILE/payrac/datafile/undotbs2.263.735856825
22
Full 317120994 21-OCT-11
+DATA_FILE/payrac/datafile/myexample.264.764951973
(
注:另开一个窗口
mkdir -p /data/aux/payrac/datafile)
rman
> restore controlfile to
'/data/aux/aux.ctl' from
'+ARCHIVELOG/back/control.c-1544998241-20111021-00';
RMAN> run {
set newname for datafile 1 to
'/data/aux/payrac/datafile/system.259.735856809';
set newname for datafile 3 to
'/data/aux/payrac/datafile/undotbs1.261.735856815';
set newname for datafile 4 to
'/data/aux/payrac/datafile/undotbs2.263.735856825';
set newname for datafile 22 to
'/data/aux/payrac/datafile/myexample.264.764951973'
restore datafile 1,3,4,22;
switch datafile all;
}
(4). 启动辅助例程aux
export ORACLE_SID=aux
sqlplus / as sysdba
sql > startup
nomount
pfile=/data/app/oracle/product/11.2.0/dbhome_1/dbs/initaux.ora
sql > alter
database mount clone database;
sql > alter database datafile 1
online;
sql > alter database datafile 3
online;
sql > alter database datafile 4
online;
sql > alter database datafile 22
online;
(5). 修改 log_archive_dest_1之后 做恢复
sql > alter
system set log_archive_dest_1='LOCATION=+ARCHIVELOG/arch';
sql >
recover database until change 317123764 using backup
controlfile;
(6). 打开数据库
sql > alter
database open read only;
(7). 导出表数据,并在正式库上导入
exp
system/oracle
tablespace=MYEXAMPLE file=use01.dmp
或者
exp
system/oracle
tables=tiger.mysales file=use02.dmp
或者
expdp system/oracle
用imp,impdp 导入即可