模拟数据丢失(truncate table)
来源:互联网 发布:黑客帝国动画版 知乎 编辑:程序博客网 时间:2024/05/16 06:14
参考:http://www.hellodba.com/reader.php?ID=217
好好学习,以备不时之需。
模拟数据:
create table scott.truncate_test tablespace users
as
select * from Hr.EMPLOYEES;
insert into scott.truncate_test
select * from scott.truncate_test;
commit;
select count(1) from scott.truncate_test;
SQL> select tablespace_name from dba_tables where table_name='TRUNCATE_TEST';
SQL> select file_name from DBA_DATA_FILES where TABLESPACE_NAME='USERS';
cp /u01/app/awr/users01.dbf /tmp/users01.dat
chown oracle:oinstall /tmp/users01.dat
执行truncate table:
truncate table scott.truncate_test;
select count(1) from scott.truncate_test;
运行FY_Recover_Data
--sys用户
SQL> @/home/oracle/FY_Recover_Data.SQL
--开始恢复
exec fy_recover_data.recover_truncated_table('SCOTT','TRUNCATE_TEST',1,'/tmp','/u01/app/awr/users01.dbf;');
注:执行上的SQL产生2个表空间(2个数据文件),还有1个copy文件。
declare
tgtowner varchar2(30);
tgttable varchar2(30);
datapath varchar2(4000);
datadir varchar2(30);
rects varchar2(30);
recfile varchar2(30);
rstts varchar2(30);
rstfile varchar2(30);
blksz number;
rectab varchar2(30);
rsttab varchar2(30);
copyfile varchar2(30);
begin
tgtowner := 'SCOTT';
tgttable := 'TRUNCATE_TEST';
datapath := '/u01/app/awr/';
datadir := 'DUMP_FILE_DIR';
sys.Fy_Recover_data.prepare_files(tgtowner, tgttable, datapath, datadir, rects, recfile, rstts, rstfile, blksz);
sys.Fy_Recover_data.fill_blocks(tgtowner, tgttable, datadir, rects, recfile, rstts, 8, tgtowner, tgtowner, rectab, rsttab, copyfile);
sys.Fy_Recover_data.recover_table(tgtowner, tgttable, tgtowner, rectab, tgtowner, rsttab, datadir, datadir, recfile,datadir, copyfile, blksz);
end;
/
Fy_Recover_data.prepare_files(tgtowner, tgttable, datapath, datadir, rects, recfile, rstts, rstfile, blksz);
*
ERROR at line 19:
ORA-06550: line 19, column 17:
PLS-00302: component 'PREPARE_FILES' must be declared
ORA-06550: line 19, column 1:
PL/SQL: Statement ignored
ORA-06550: line 20, column 17:
PLS-00302: component 'FILL_BLOCKS' must be declared
ORA-06550: line 20, column 1:
PL/SQL: Statement ignored
ORA-06550: line 21, column 17:
PLS-00302: component 'RECOVER_TABLE' must be declared
ORA-06550: line 21, column 1:
PL/SQL: Statement ignored
数据比较:
select count(1) from scott.TRUNCATE_TEST$$;
COUNT(1)
----------
214
恢复后scott.TRUNCATE_TEST$$数据内容和truncate之前相同,恢复完成。
恢复数据后,把恢复时产生的2个表空间删除,再删除对应数据文件
drop tablespace FY_REC_DATA INCLUDING CONTENTS;
drop tablespace FY_RST_DATA INCLUDING CONTENTS;
$ cd /tmp
$ rm FY_REC_DATA_COPY.DAT FY_REC_DATA.DAT FY_RST_DATA.DAT
- 模拟数据丢失(truncate table)
- TRUNCATE TABLE 清除表数据
- 模拟UDP数据丢失
- SQLSERVER清空表中所有数据TRUNCATE TABLE
- 使用TRUNCATE TABLE语句删除表数据
- 删除数据----DELETE AND TRUNCATE TABLE
- TRUNCATE TABLE
- Truncate Table
- Truncate Table
- Truncate table
- Truncate Table
- Truncate table
- Truncate Table
- Truncate Table
- TRUNCATE TABLE
- truncate table
- TRUNCATE TABLE
- TRUNCATE TABLE
- 正则表达式知识及部分常用正则表达式
- OOA、OOD和OOP的定义及之间的关系
- CSS3 pointer-events:none应用举例及扩展
- 关于下拉框option在IE下jquery方法hide()无效的解决办法
- 查看postgres数据库端口
- 模拟数据丢失(truncate table)
- redis与spring集成--不使用spring-data-redis
- springmvc 自定义异常处理机制
- 循环队列之循环队列长度和头尾指针关系
- oracle下lag和lead分析函数
- python post提交json 返回json值
- JAVA虚拟机学习实践2-实践
- iOS9新特性之(OC及Swift)实现3D Touch
- String类练习讲解-统计字符串中出现连续字符的次数