ITPub博客

首页 > 数据库 > Oracle > AUL6数据导出_sqlloader导入总结

AUL6数据导出_sqlloader导入总结

原创 Oracle 作者:dawn009 时间:2014-04-04 11:46:38 0 删除 编辑

    前段时间数据库故障600内部错误导致部分两个schema下部分数据丢失,包含普通表数据和分区表数据。尝试过许多方法都没能恢复回来,最后通过AUL6做恢复,现在这次的恢复做一个简单总结。

恢复流程

  1.1创建AUL6cfg配制文件,主要包括需要恢复的数据文件(必须包括system.dbf,否则即使AUL6恢复流程不报错,却不会导出文本数据),格式如下示:

0 0 D:\AUL_TEST\SUN.DBF

0 0 D:\AUL_TEST\SYSTEM01.DBF

  1.2AUL导出的文本数据通过oraclesqlloader装载入与要恢复表结果完全相同的一张临时表。导出文本格式如下示:

7369|SMITH|CLERK|7902|1980-12-17 00:00:00|800||20

7499|ALLEN|SALESMAN|7698|1981-02-20 00:00:00|1600|300|30

7521|WARD|SALESMAN|7698|1981-02-22 00:00:00|1250|500|30

7566|JONES|MANAGER|7839|1981-04-02 00:00:00|2975||20

7654|MARTIN|SALESMAN|7698|1981-09-28 00:00:00|1250|1400|30

7698|BLAKE|MANAGER|7839|1981-05-01 00:00:00|2850||30

7782|CLARK|MANAGER|7839|1981-06-09 00:00:00|2450||10

7788|SCOTT|ANALYST|7566|1987-04-19 00:00:00|3000||20

7839|KING|PRESIDENT||1981-11-17 00:00:00|5000||10

7844|TURNER|SALESMAN|7698|1981-09-08 00:00:00|1500|0|30

7876|ADAMS|CLERK|7788|1987-05-23 00:00:00|1100||20

7900|JAMES|CLERK|7698|1981-12-03 00:00:00|950||30

7902|FORD|ANALYST|7566|1981-12-03 00:00:00|3000||20

7934|MILLER|CLERK|7782|1982-01-23 00:00:00|1300||10

      1.3通过核心主键字段做minus找出需要恢复的纪录,插入到新建的另外一张临时表中,脚本如下示:

   create table org_info_temp as (select * from org_info_bk t1 where t1.org_name in (select            t2.org_name from org_info_bk t2 minus(select t3.org_name from org_info t3) ));

      1.4将校对出的丢失数据通过plsql导出成sql脚本,然后批量append插入到需要恢复的表中,当然最好事先做个数据库备份.

      1.5个人感觉此次恢复过程难度不大,细节很重要,如果不是分区表,表数据又很大,单单AUL6导出数据就需要不少时间,还有一个需要注意的东西就是sqlloader做批量导入时的文本格式,由其字段是日期格式的,处理过程中还发现AUL6导出文本数据时有时会漏了表最后几个字段值(如果是空的话).

     1.6最后,和大家分享海伦.凯勒的一句话:一个人要想获得真才实学,必须自己去攀登奇峻险峰.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29119536/viewspace-1135983/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-08-15

  • 博文量
    595
  • 访问量
    4848238