小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

ogg問題

 昵稱43808276 2018-03-07

分類: Oracle

    早上巡檢時(shí)發(fā)現(xiàn)OGG目標(biāo)端一個(gè)事務(wù)處理時(shí)間非常長,直接導(dǎo)致REPLICAT進(jìn)程嚴(yán)重延遲:


  1. GGSCI (sv890n01) 13> info rads_1
  2. REPLICAT RADS_1 Last Started 2012-12-10 09:46 Status RUNNING
  3. Checkpoint Lag 01:33:16 (updated 11:35:14 ago)
  4. Log Read Checkpoint File ./dirdat/pa000021
  5. 2012-12-11 01:55:10.313205 RBA 1753940084
  6. SQL> select table_name,num_rows from dba_tables where table_name='GT_MXYE_NEW';
 其中 "updated 11:35:14 ago"  記錄了上一次檢查點(diǎn)發(fā)生時(shí)間(即目標(biāo)庫上一個(gè)事務(wù)commit)和當(dāng)前系統(tǒng)時(shí)間的時(shí)間差,而 "Checkpoint Lag 01:33:16" 指的是上一個(gè)檢查點(diǎn)發(fā)生時(shí)間和上一個(gè)事務(wù)最后一條record的時(shí)間戳之間的時(shí)間差。也就是說當(dāng)前這個(gè)事務(wù)已經(jīng)執(zhí)行了11.5個(gè)小時(shí)....以下是處理過程:

通過 v$session , v$sql 定位到當(dāng)前sql為

  1. DELETE FROM "ADS"."GT_MXYE_NEW" WHERE "ZQDM" = :b0 AND "GTTGZH" = :b1 AND "JYSDM" = :b2 AND "YE" = :b3 AND "DQDM" = :b4 AND "SXDM" = :b5 AND ROWNUM = 1

通過 v$transaction.start_time 發(fā)現(xiàn)事務(wù)的開始時(shí)間與前面的延時(shí)是一致的,并且這條sql已經(jīng)執(zhí)行了50萬次,在源庫查詢發(fā)現(xiàn)晚上"ADS"."GT_MXYE_NEW"這個(gè)表刪除了500萬條記錄,sql為

  1. DELETE FROM GT_MXYE_NEW A WHERE EXISTS ( SELECT 1 FROM ADB_ZW_GTTGYEBDMX B WHERE 1=1 AND A.ZQDM=B.ZQDM AND A.GTTGZH=B.GTTGZH AND A.JYSDM=B.JYSDM AND B.KSRQ=:B1 )
該表沒有主鍵和唯一約束,目標(biāo)端把源端的sql拆分成了500萬條再執(zhí)行,查看執(zhí)行計(jì)劃

  1. SQL> explain plan for DELETE FROM "ADS"."GT_MXYE_NEW" WHERE "ZQDM" = :b0 AND "GTTGZH" = :b1 AND "JYSDM" = :b2 AND "YE" = :b3 AND "DQDM" = :b4 AND "SXDM" = :b5 AND ROWNUM = 1;
  2. Explained.
  3. SQL> @?/rdbms/admin/utlxpls.sql
  4. PLAN_TABLE_OUTPUT
  5. --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  6. Plan hash value: 3603936140
  7. -------------------------------------------------------------------------------------------------
  8. | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
  9. -------------------------------------------------------------------------------------------------
  10. | 0 | DELETE STATEMENT | | 1 | 41 | 629 (1)| 00:00:08 |
  11. | 1 | DELETE | GT_MXYE_NEW | | | | |
  12. |* 2 | COUNT STOPKEY | | | | | |
  13. |* 3 | TABLE ACCESS BY INDEX ROWID| GT_MXYE_NEW | 1 | 41 | 629 (1)| 00:00:08 |
  14. |* 4 | INDEX RANGE SCAN | IDX_GT_MXYE_NEW | 13477 | | 87 (2)| 00:00:02 |
  15. -------------------------------------------------------------------------------------------------
  16. Predicate Information (identified by operation id):
  17. ---------------------------------------------------
  18. 2 - filter(ROWNUM=1)
  19. 3 - filter("GTTGZH"=:B1 AND "JYSDM"=:B2 AND "DQDM"=:B4 AND "SXDM"=:B5 AND
  20. "YE"=TO_NUMBER(:B3))
  21. 4 - access("ZQDM"=:B0)
  22. 19 rows selected.
kill replicat 后在目標(biāo)端新建復(fù)合索引(官方文檔:KILL REPLICAT 后當(dāng)前事務(wù)回滾并記錄檢查點(diǎn),下次重啟進(jìn)程不會丟失數(shù)據(jù)):
  1. GGSCI (sv890n01) 15> KILL REPLICAT RADS_1
  2. Sending KILL request to MANAGER ...
  3. Killed process (26318) for REPLICAT RADS_1
  4. GGSCI (sv890n01) 16> info all
  5. Program Status Group Lag at Chkpt Time Since Chkpt
  6. MANAGER RUNNING
  7. REPLICAT ABENDED RADS_1 01:33:16 11:40:01
創(chuàng)建復(fù)合索引再看執(zhí)行計(jì)劃


  1. SQL> create index ads.ind_gt_mxye_ogg on ads.GT_MXYE_NEW(ZQDM,GTTGZH,JYSDM,YE,DQDM,SXDM) TABLESPACE TS_ADC_INDEX nologging;
  2. Index created.
  3. SQL> explain plan for DELETE FROM "ADS"."GT_MXYE_NEW" WHERE "ZQDM" = :b0 AND "GTTGZH" = :b1 AND "JYSDM" = :b2 AND "YE" = :b3 AND "DQDM" = :b4 AND "SXDM" = :b5 AND ROWNUM = 1;
  4. Explained.
  5. SQL> @?/rdbms/admin/utlxpls.sql
  6. PLAN_TABLE_OUTPUT
  7. --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  8. Plan hash value: 415052804
  9. --------------------------------------------------------------------------------------
  10. | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
  11. --------------------------------------------------------------------------------------
  12. | 0 | DELETE STATEMENT | | 1 | 41 | 3 (0)| 00:00:01 |
  13. | 1 | DELETE | GT_MXYE_NEW | | | | |
  14. |* 2 | COUNT STOPKEY | | | | | |
  15. |* 3 | INDEX RANGE SCAN| IND_GT_MXYE_OGG | 1 | 41 | 3 (0)| 00:00:01 |
  16. --------------------------------------------------------------------------------------
  17. Predicate Information (identified by operation id):
  18. ---------------------------------------------------
  19. 2 - filter(ROWNUM=1)
  20. 3 - access("ZQDM"=:B0 AND "GTTGZH"=:B1 AND "JYSDM"=:B2 AND
  21. "YE"=TO_NUMBER(:B3) AND "DQDM"=:B4 AND "SXDM"=:B5)
  22. 17 rows selected.
重新啟動REPLICAT進(jìn)程,運(yùn)行了11個(gè)小時(shí)還沒運(yùn)行完的事務(wù)15分鐘內(nèi)執(zhí)行完畢,再看延時(shí)情況


  1. GGSCI (sv890n01) 29> info all
  2. Program Status Group Lag at Chkpt Time Since Chkpt
  3. MANAGER RUNNING
  4. REPLICAT RUNNING RADS_1 09:33:16 00:00:07
由于當(dāng)前事務(wù)已經(jīng)提交并且寫了檢查點(diǎn),相應(yīng)的延時(shí)都發(fā)生了變化。


總結(jié):源端的sql和目標(biāo)端的sql不一定是一致的,原因有可能是OGG的內(nèi)部機(jī)制,也有可能是該表沒有外鍵或者唯一約束,也有可能是REPLICAT進(jìn)程參數(shù)設(shè)置不當(dāng)造成的,需要進(jìn)一步學(xué)習(xí)。

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多