優化邏輯Standby的資料同步效能
一、調整APPLIER程式數:
檢視一下當前的空閒APPLIER程式情況:
v$logstdby_process顯示standby端的程式使用情況
SQL> select * from v$logstdby_process where type='APPLIER' and status_code=16166;
no rows selected
其中status_code=16166表示該程式是空閒程式
沒有返回結果,有兩種可能:一方面,可能是因為當前沒有需要應用的日誌,沒有啟動應用程式;另一方面就是當前的應用非常繁忙,需要DBA去增減APPLIER程式。
檢查事物的應用情況:
SQL> select name,value from v$logstdby_stats where name like 'transactions%';
NAME VALUE
-------------------- --------------------
transactions ready 25
transactions applied 25
將兩個值想減(ready-applied),如果該值超出空閒APPLIER的程式兩倍,則說明APPLIER的值太少,需要天劍APPLIER的程式數; 反之如果該值比空閒APPLIER的程式數小的多,則證明APPLIER的程式數過多,可以適量的減少APPLIER的程式數
檢視當前啟動的APPLIER的程式數:
SQL> select count(*) from v$logstdby_process where type='APPLIER';
COUNT(*)
----------
5
設定APPILER的程式數:
SQL> alter database stop logical standby apply;
Database altered.
SQL> exec dbms_logstdby.apply_set('APPLY_SERVERS',10)
PL/SQL procedure successfully completed.
啟動SQL應用,並檢視程式的設定:
SQL> alter database start logical standby apply immediate;
Database altered.
SQL> select count(*) from v$logstdby_process where type='APPLIER';
COUNT(*)
----------
10
SQL> select * from v$logstdby_stats where name='number of appliers';
NAME VALUE
-------------------- --------------------
number of appliers 10
二、調整PREPAPER的程式數目
PREPAPER程式將接受到的REDO資料中的塊修改轉換成LCRs(Logical Change Records),當APPLIER程式有空閒程式,而Transactions Ready還很多,簡單的說就是“供不應求”的時候,需要加大供給,適當的增大PREPAPER程式數。
檢查空閒的PREPARER程式數
SQL> select count(*) from v$logstdby_process
2 where type='PREPARER' and status_code=16166
3 /
COUNT(*)
----------
0
與APPLIER程式相似,該查詢結果為0並不代表沒有空閒的PREPARER程式,也可能是當前沒有REDO資料需要處理
調整PREPARER程式數的方法:
檢視當前的PERPARER程式數
SQL> select * from v$Logstdby_stats where name='number of preparers';
NAME VALUE
-------------------- --------------------
number of preparers 1
或者:
SQL> select count(*) from v$logstdby_process where type='PREPARER';
COUNT(*)
----------
1
停止SQL應用並設定PREPARER程式數:
SQL> alter database stop logical standby apply;
Database altered.
SQL> exec dbms_logstdby.apply_set('PREPARE_SERVERS',3);
PL/SQL procedure successfully completed.
啟動SQL應用,並檢視新的PREPARER程式數目:
SQL> alter database start logical standby apply immediate;
Database altered.
SQL> select * from v$logstdby_stats where name='number of preparers';
NAME VALUE
-------------------- --------------------
number of preparers 3
SQL> select count(*) from v$logstdby_process where type='PREPARER';
COUNT(*)
----------
3
三、調戲LCR使用的記憶體:
LCR中儲存的是轉換後的塊修改的記錄,這部分資料儲存在SGA中
檢視當前LCR可用的最大記憶體:(顯示單位為MB)
SQL> select * from v$logstdby_stats where name like '%SGA%LCR%';
NAME VALUE
------------------------------ --------------------
maximum SGA for LCR cache 30
調整LCR大小的步驟:
SQL> alter database stop logical standby apply;
Database altered.
SQL> exec dbms_logstdby.apply_set('MAX_SGA',50)
PL/SQL procedure successfully completed.
SQL> alter database start logical standby apply immediate;
Database altered.
檢視調整後的LCR最大記憶體:
SQL> select * from v$logstdby_stats where name like '%SGA%LCR%';
NAME VALUE
------------------------------ --------------------
maximum SGA for LCR cache 50
四、調整事物應用方式:
預設情況下邏輯Standby端的事物順序與primary資料庫提交的事物順序是一樣的;
設定邏輯Standby的書屋順序不按primary資料庫順序執行:
SQL> alter database stop logical standby apply;
Database altered.
SQL> exec dbms_logstdby.apply_set('PRESERVE_COMMIT_ORDER', 'FALSE');
PL/SQL procedure successfully completed.
SQL> alter database start logical standby apply immediate;
Database altered.
恢復邏輯Standby資料庫的事物執行順序:
SQL> exec dbms_logstdby.apply_unset('PRESERVE_COMMIT_ORDER')
PL/SQL procedure successfully completed.
SQL> alter database start logical standby apply immediate;
Database altered.
-----EDN-----
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29320885/viewspace-1107828/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- sql優化之邏輯優化SQL優化
- PostgreSQL邏輯複製資料同步到kafkaSQLKafka
- 關於 es 資料同步的一次效能優化實踐優化
- 邏輯STANDBY建立中碰到ORA-16146: standby destination control file enqueue unavailableENQAI
- 4 Creating a Logical Standby Database 建立邏輯備庫Database
- 資料化與資訊化的邏輯,有本質的區別
- Spark效能優化:優化資料結構Spark優化資料結構
- 邏輯STANDBY上的ORA-00600: internal error code, arguments: [krvtadc], [], [], [], [], []Error
- 邏輯STANDBY負載高,應用緩慢的解決負載
- 資料庫效能優化2資料庫優化
- Java 執行緒與同步的效能優化Java執行緒優化
- Amazon Redshift簡化資料管道背後的技術邏輯
- 資料庫效能優化-索引與sql相關優化資料庫優化索引SQL
- 資料分析 | 資料視覺化圖表,BI工具構建邏輯視覺化
- 效能優化:如何更快地接收資料優化
- 資料庫效能優化有哪些方式資料庫優化
- 登入邏輯中的驗證碼顯示策略優化優化
- 使用非同步元件優化Vue應用程式的效能非同步元件優化Vue
- 資料庫邏輯遷移方案資料庫
- JavaScript(ES6)邏輯判斷條件優化JavaScript優化
- 使用APICloud開發App的效能優化探索——合理使用同步/非同步介面APICloudAPP優化非同步
- 資料庫的這些效能優化,你做了嗎?資料庫優化
- Oracle資料庫的邏輯備份工具-expdp資料泵Oracle資料庫
- PostgreSQL,SQLServer邏輯增量(通過邏輯標記update,delete)同步到Greenplum,PostgreSQLSQLServerdelete
- oracle邏輯備份之--資料泵Oracle
- 簡單的幾條Insert語句引起的邏輯Standby應用延遲的診斷
- 資料庫效能優化之冗餘欄位的作用資料庫優化
- 【前端效能優化】vue效能優化前端優化Vue
- 1.2.9. 任務9:資料庫效能優化資料庫優化
- Part II 診斷和優化資料庫效能優化資料庫
- Android效能優化——效能優化的難題總結Android優化
- 做好招聘分析,HR必知的資料邏輯
- 二、python的邏輯運算與資料型別Python資料型別
- JS互動邏輯詳解——data資料變更時同步(setData 函式) & 檢視層更新是非同步JS函式非同步
- Oracle 12.2 使用Database Link優化Standby Database WorkloadOracleDatabase優化
- SQL Server資料庫出現邏輯錯誤的資料恢復SQLServer資料庫資料恢復
- 資料庫 Mysql 邏輯架構簡介資料庫MySql架構
- 資料庫,邏輯刪還是物理刪?資料庫
- SAP Spartacus BrowserPlatformLocation的初始化邏輯Platform