解决Oracle LogMiner获取数据字典文件需要修改UTL_FILE_DIR的问题

按照Oracle官方文档,在用logminer获取数据字典文件时,需要设置UTL_FILE_DIR参数,然而设置这个参数必须要重新启动数据库,在某些7×24的关键业务是做不到的,是否有其他的方法能够构造字典信息呢?答案是肯定的。

具体的步骤为:

1.数据库设置为归档

2.添加supplement log data

3. 将数据字典存储在redolog中,EXECUTE DBMS_LOGMNR_D.BUILD ( - 2 OPTIONS=>DBMS_LOGMNR_D.STORE_IN_REDO_LOGS);

4.查看数据字典对应的归档日志

SQL> SELECT NAME FROM V$ARCHIVED_LOG WHERE DICTIONARY_BEGIN='YES';  -- 查询开始

SQL> SELECT NAME FROM V$ARCHIVED_LOG WHERE DICTIONARY_END='YES'; -- 查询结束的归档日志

5.通过LogMiner,解析归档日志,将归档日志解析成sql语句

SQL> EXECUTE DBMS_LOGMNR.START_LOGMNR(OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);

6.查询v$logmnr_contents的sql_redo,将结果spool到某个文件中。

7.通过其他相同版本的测试数据库创建数据字典文件,调出其中的create_table语句,放入到你输出spool的文件中。

8.验证其中的数据,与过程生成的数据字典文件比较,重要的ID值都是一样的,测试后我们构造的数据字典文件可用。

最后鄙视一下Oracle,到11gR2了仍然需要设置这个参数,应该早就改成自己设置directory了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值