Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

0

积分

1

好友

9

主题
1#
发表于 2013-5-10 16:27:24 | 查看: 4848| 回复: 9
  1. SQL> oradebug setmypid;
  2. Statement processed.
  3. SQL> oradebug event 10046 trace name context forever,level 12;
  4. Statement processed.
  5. SQL> EXECUTE DBMS_LOGSTDBY.BUILD;
复制代码
trace file:

oradbbj01_ora_18569.txt

2.37 MB, 下载次数: 686

你不放弃希望,希望就不会放弃你.
2#
发表于 2013-5-10 16:42:50
tkprof 后的文件.

aa.txt

160.82 KB, 下载次数: 809

回复 只看该作者 道具 举报

3#
发表于 2013-5-10 16:44:20
select object_name,object_type,owner from dba_object where object_id='49440';
select * from v$lock where id1='49440';

回复 只看该作者 道具 举报

4#
发表于 2013-5-10 16:52:21
官方文档中这样解释:
The DBMS_LOGSTDBY.BUILD procedure waits for all existing transactions to
complete. Long-running transactions executed on the primary database will affect the
timeliness of this command.
The DBMS_LOGSTDBY.BUILD procedure uses Flashback Query to obtain a consistent
snapshot of the data dictionary that is then logged in the redo stream. Oracle
recommends setting the UNDO_RETENTION initialization parameter to 3600 on both
the primary and logical standby databases

老板同意晚上可以停主库2小时,就怕到时还卡住....

回复 只看该作者 道具 举报

5#
发表于 2013-5-10 17:22:40
该备库目前是物理standby,可以正常同步应用日志.

回复 只看该作者 道具 举报

6#
发表于 2013-5-11 13:09:32
再说一次trace要压缩, 否则太对得起 国内这些运营商了

回复 只看该作者 道具 举报

7#
发表于 2013-5-11 13:18:48
BEGIN DBMS_LOGSTDBY.BUILD; END;


call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.00       0.00          0          0          0           0
Execute      0      0.00       0.00          0          0          0           0
Fetch        0      0.00       0.00          0          0          0           0
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total        1      0.00       0.00          0          0          0           0

Misses in library cache during parse: 0
Optimizer mode: ALL_ROWS
Parsing user id: SYS

Elapsed times include waiting on following events:
  Event waited on                             Times   Max. Wait  Total Waited
  ----------------------------------------   Waited  ----------  ------------
  enq: TX - contention                          705        2.93       2063.57


大量   enq: TX - contention       , 非行锁等待


描述该现象 DBMS_LOGSTDBY.BUILD + enq: TX - contention

回复 只看该作者 道具 举报

8#
发表于 2013-5-11 13:20:52
The DBMS_LOGSTDBY.BUILD procedure waits for all existing transactions to complete. Long-running transactions executed on the primary database will affect the timeliness of this command. Looks like there are still some open Transactions on this Database started before the Build. The Procedure waits for all open Transactions to complete.

回复 只看该作者 道具 举报

9#
发表于 2013-5-11 13:21:11
SELECT * FROM dba_2pc_pending;
SELECT * FROM pending_sessions$;
SELECT * FROM pending_sub_sessions$;
SELECT * FROM dba_2pc_neighbors;
SELECT XID, START_TIME, STATUS from v$transaction;

回复 只看该作者 道具 举报

10#
发表于 2013-5-11 17:33:08
非常感谢大家!
问题已解决,通过执行DBMS_LOGSTDBY.BUILD的session id在v$session 找到 BLOCKING_SESSION.
然后查找相应的session,将其kill掉以后,DBMS_LOGSTDBY.BUILD执行很快通过.

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-11-16 15:01 , Processed in 0.081792 second(s), 23 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569