odu 工具介绍:
http://www.oracleodu.com/cn/
环境:
1. linux 64位 ,单实例,oracle r2 11.2.4.0
2.无法使用flashbask 闪回的方式恢复,truncate掉的数据
3.备份不是当前的数据,数据有差别
4.odu_test1表 实际数据 9202136条
5.某员工不小心 TRUNCATE tableodu_test1
步骤
一、在不知情的情况下,truncate table odu_test1
SQL> TRUNCATE table odu_test1;
SQL> select count(0) from odu_test1
0
二、表被意外地Truncate,而需要马上恢复,确保空间不会被重用,数据不会被覆盖。需要:首先要做的就是关闭数据库,或者OFFLINE那个表所在的表空间,或者关闭所有应用
SQL>alter tablespace test offline;
三、准备恢复
3.1 在实际的系统中,如果有比较多的活动,则表空间不容易被OFFLINE下来,然后做一个Checkpoint,让ODU能够读到最新的数据字典数据
SQL> alter system checkpoint;
3.2上传odu软件到指定目录,解压。(/home/oracle))
ODU 软件解压后,通常有下列文件和目录:
odu ODU 可执行文件,这是 ODU 主程序。
config.txt ODU 配置文件。
control.txt ODU 控制文件,用于在数据恢复时指定使用的 Oracle 数据库文件。
asmdisk.txt ASM 磁盘信息设置文件,用于在数据恢复时指定使用的 ASM 磁盘组磁盘。(ODU 4.0.0以后的版本已经支持ASM)
lib ODU 软件库文件目录,在某些平台上没有此目录。
data ODU 默认的数据目录,用于存储 ODU 恢复出来的数据。
3.3 ODU运行时所需的控制文件control.txt的内容可以在mount或open状态下查询v$datafile(不同odu版本,control.txt的内容不同,根据实际情况)
select t.TS# ts,t.FILE# fno,t.FILE# fno,t.NAME filename,t.BLOCK_SIZE block_size from v$datafile t order by ts
将上述查询到的内容添加到control.txt中即可
[root@test-db odu]# more control.txt
#ts #fno #rfno filename block_size
0 1 1 /opt/ora11/oradata/share/system01.dbf 8192
1 2 2 /opt/ora11/oradata/share/sysaux01.dbf 8192
6 7 7 /opt/ora11/oradata/share/shareissue01.dbf 8192
7 8 8 /opt/ora11/oradata/share/shareprice01.dbf 8192
8 9 9 /opt/ora11/oradata/share/shareinvest01.dbf 8192
9 10 10 /opt/ora11/oradata/share/sharebankcs01.dbf 8192
11 5 5 /opt/ora11/oradata/share/my_user01.dbf 8192
12 16 16 /oradata/shareshare08.dbf 8192
12 11 11 /oradata2/share03.dbf 8192
12 4 &n
http://www.oracleodu.com/cn/
环境:
1. linux 64位 ,单实例,oracle r2 11.2.4.0
2.无法使用flashbask 闪回的方式恢复,truncate掉的数据
3.备份不是当前的数据,数据有差别
4.odu_test1表 实际数据 9202136条
5.某员工不小心 TRUNCATE tableodu_test1
步骤
一、在不知情的情况下,truncate table odu_test1
SQL> TRUNCATE table odu_test1;
SQL> select count(0) from odu_test1
0
二、表被意外地Truncate,而需要马上恢复,确保空间不会被重用,数据不会被覆盖。需要:首先要做的就是关闭数据库,或者OFFLINE那个表所在的表空间,或者关闭所有应用
SQL>alter tablespace test offline;
三、准备恢复
3.1 在实际的系统中,如果有比较多的活动,则表空间不容易被OFFLINE下来,然后做一个Checkpoint,让ODU能够读到最新的数据字典数据
SQL> alter system checkpoint;
3.2上传odu软件到指定目录,解压。(/home/oracle))
ODU 软件解压后,通常有下列文件和目录:
odu ODU 可执行文件,这是 ODU 主程序。
config.txt ODU 配置文件。
control.txt ODU 控制文件,用于在数据恢复时指定使用的 Oracle 数据库文件。
asmdisk.txt ASM 磁盘信息设置文件,用于在数据恢复时指定使用的 ASM 磁盘组磁盘。(ODU 4.0.0以后的版本已经支持ASM)
lib ODU 软件库文件目录,在某些平台上没有此目录。
data ODU 默认的数据目录,用于存储 ODU 恢复出来的数据。
3.3 ODU运行时所需的控制文件control.txt的内容可以在mount或open状态下查询v$datafile(不同odu版本,control.txt的内容不同,根据实际情况)
select t.TS# ts,t.FILE# fno,t.FILE# fno,t.NAME filename,t.BLOCK_SIZE block_size from v$datafile t order by ts
将上述查询到的内容添加到control.txt中即可
[root@test-db odu]# more control.txt
#ts #fno #rfno filename block_size
0 1 1 /opt/ora11/oradata/share/system01.dbf 8192
1 2 2 /opt/ora11/oradata/share/sysaux01.dbf 8192
6 7 7 /opt/ora11/oradata/share/shareissue01.dbf 8192
7 8 8 /opt/ora11/oradata/share/shareprice01.dbf 8192
8 9 9 /opt/ora11/oradata/share/shareinvest01.dbf 8192
9 10 10 /opt/ora11/oradata/share/sharebankcs01.dbf 8192
11 5 5 /opt/ora11/oradata/share/my_user01.dbf 8192
12 16 16 /oradata/shareshare08.dbf 8192
12 11 11 /oradata2/share03.dbf 8192
12 4 &n