国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

跨IDC同步工具常見問題解析

IT那活兒 / 3447人閱讀
跨IDC同步工具常見問題解析
一. 數據一致性問題

  • 源庫中有很多事務,組件是否按照事務同步,增量同步會按照事務來解析binlog,將事務都放在同一個數據批次中,一起入庫,遇到極大的事務(例如某個大事務產生10G的binlog文件)會做拆分,但盡量保證事務屬于同一批次。
  • 增量全量同步能否一起開,不建議一起開啟,有小概率產生數據一致性問題,例如ABC三個先后間隔很短的時刻,全量在A時刻完成了數據抽取,B時刻數據有更新且立即被增量同步到了目標端,C時刻全量完成了入庫,則B時刻更新的數據將會丟失。

  • 保證數據一致性嚴格的操作順序:暫停被同步表的業務,不再產生與被同步表相關的binlog;等待增量同步通道追平;停止增量同步,開啟全量同步;全量同步完成后繼續開啟增量同步。

  • 常用操作順序:記錄當前增量同步的位點信息;停止增量同步,開啟全量同步;全量同步完成后從之前記錄 的位點信息繼續進行增量同步(最終一致性)。

  • 特別注意問題:由于分布式數據庫的特性,udal禁止對分片鍵做update操作;部分業務為了繞過這種限制,設計對分片鍵的update實際上由兩部分組成:一個片中的delete語句+另一個片中的insert語句,當同步場景為udal->oracle時由于時序問題可能會導致數據不一致;解決方式:

1) 避免出現update分片鍵的情況

2) 將分片鍵和原主鍵一起作為新的聯合主鍵

  (需要更改業務)

3) 使用自增的序列作為主鍵


二. 同步速度參數優化

全量同步速度不理想,建議參數和優化:同步速度空表大于有記錄的表,無索引的表大于有索引的表,目標表索引越多,速度越慢,建議索引在同步完成后重建。

#全量批次大小

syncall.manager.batchSize = 200

#jdbc,batch入庫一次處理的數據量

syncall.manager.batchOfInsertUpdate = 10000

# 同步表線程池大小(并發核對目標表的個數)

syncall.manager.taskpoolsize = 1

#初始化table信息線程池大小

syncall.manager.initpoolsize = 10

# 批次任務線程池大小(并發批次任務個數)大于或等于querypoolsize

syncall.manager.jobpoolsize = 40

# 抽取數據線程池大小(抽取并發度控制)小于或等于jobpoolsize

syncall.manager.querypoolsize = 20


# 初始化時建立物理連接的個數

druid.initialSize=10

# 最小連接池數量

druid.minIdle=6

# 最大連接池數量

druid.maxActive=500

# 獲取連接時最大等待時間,單位毫秒。

druid.maxWait=60000

# 申請連接時檢測連接是否有效

druid.test.OnBorrow=true



三. 跨IDC同步工具常見問題及解決

問題1:Access denied for user (udal--udal)。

報錯如下:

10:17:07.146 [Druid-ConnectionPool-Create-1846815119] ERROR c.alibaba.druid.pool.DruidDataSource -

create connection SQLException, url: jdbc:mysql://133.0.xxx.xxx:xxx/stt_iss_161, errorCode 1044,

state 42000

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied for user sla@% to database stt_iss_161


報錯原因:

賬號或密碼不對,由于源端和目標端的分片數據庫密碼不一樣,在初始化時,兩端的密碼賬號會被程序默認設成一致。

解決辦法:

需要在初始化完成后,將數據源配置 和 增量管理菜單修改為各自的賬號密碼。


問題2:部署pg到kafka的時候時間相差8小時。

異常現象:

PG端時間類型的字段,帶default current_timestamp 時,生成的數據。投遞到目標kafka時時間會增加8小時。

異常原因:

pg數據庫中的表字段類型為`TIMESTAMP WITHOUT TIME ZONE`,未使用時區,跨idc工具投遞中會默認為格林威治時間。

解決辦法:

將pg數據庫中的表字段類型改為`TIMESTAMP WITH TIME ZONE`,使用時區。


問題3:node節點無法自動創建

異常原因及解決辦法:

node機器的用戶密碼過期導致,密碼重置后正常。


問題4:teledb同步到kafka  show master status has an error!

異常報錯:

pid:70 nid:37 exception:canal:canal_133.0.148.26_8922_5:com.alibaba.otter.canal.parse.exception.CanalParseException: command : show master status has an error! Caused by:

java.io.IOException: ErrorPacket [errorNumber=1227, fieldCount=-1, message=Access denied; you need (at least one of) the SUPER, REPLICATION CLIENT privilege(s) for this operation, sqlState=42000, sqlStateMarker=#] with command: show master status at com.alibaba.otter.canal.parse.inbound.AbstractEventParser$3.run(AbstractEventParser.java:194) at java.lang.Thread.run(Thread.java:748)


解決辦法:

為idc用戶賦予權限

GRANT super,REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO idc@%;


問題5:全量同步性能差

異常現象:

全量同步,表包含大字段等類型,每條記錄的大小遠超普通表,出現同步性能差/無法同步現象,例如全量日志中取樣數據大小日志如下:<<<<<< avg one record use [451.274 KB] space ,one batch data use [881.395 MB] space, memory limit is [10 GB] , set data queue size to [11] >>>>>>

調整方法:

調整全量參數,降低每批次數據的大小和數據緩存隊列大小

syncall.manager.batchSize=50

syncall.manager.jobpoolsize=100

syncall.stream.dataQueue=100

使用優化的jvm啟動腳本,例如launch_performance.sh腳本來啟動manager,分配足夠多的內存放到manager目錄下  chmod +x launch_performance.sh  然后指定內存啟動,例如  sh launch_performance.sh memory 60g 60g。


END


更多精彩干貨分享

點擊下方名片關注

IT那活兒

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129887.html

相關文章

  • 數據庫的 Consistency 與 Leaky Abstraction

    摘要:最近在學習各大互聯網公司是如何處理數據一致性的。目前已知的有這么幾種數據庫做到情況下的強一致性淘寶淘寶頂級科學家陽振坤微博號阿里正祥,發出一則消息。然后因為數據庫是的,內部把改動到了北美,君就可以看到消息了。 最近在學習各大互聯網公司是如何處理數據一致性的。因為之前從事的不是這個方向的工作,所以并非什么經驗之談,只是一些學習筆記。所有資料來自互聯網。 Consistent => Ev...

    Wildcard 評論0 收藏0
  • 數據庫的 Consistency 與 Leaky Abstraction

    摘要:最近在學習各大互聯網公司是如何處理數據一致性的。目前已知的有這么幾種數據庫做到情況下的強一致性淘寶淘寶頂級科學家陽振坤微博號阿里正祥,發出一則消息。然后因為數據庫是的,內部把改動到了北美,君就可以看到消息了。 最近在學習各大互聯網公司是如何處理數據一致性的。因為之前從事的不是這個方向的工作,所以并非什么經驗之談,只是一些學習筆記。所有資料來自互聯網。 Consistent => Ev...

    wanghui 評論0 收藏0
  • 云遷移過程中的數據同步及一致性校驗實踐(二)

    摘要:另外對于需要盡量減少應用重啟的系統也可以優先考慮這種方式來保障數據一致性。只需要保證這三類程序都是停止的,那么就可以保證沒有同步服務以外的程序對數據進行修改,從而保障數據一致性。在《跨云遷移過程中的數據同步及一致性校驗實踐(一)》中我們主要介紹了跨云遷移中數據同步階段的存儲組件MySQL、文件存儲和對象存儲的數據遷移過程,本文將重點圍繞跨云遷移的數據規整階段(清理測試時產生的臟數據)和數據割...

    Tecode 評論0 收藏0

發表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<