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

資訊專欄INFORMATION COLUMN

TiDB數(shù)據(jù)庫DM工具同步MYSQL中LongText字段異常問題分析與處理

IT那活兒 / 855人閱讀
TiDB數(shù)據(jù)庫DM工具同步MYSQL中LongText字段異常問題分析與處理

點(diǎn)擊上方“IT那活兒”公眾號(hào),關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了!!!

 



報(bào)錯(cuò)現(xiàn)象



DM任務(wù)檢查同步報(bào)錯(cuò):
當(dāng)源MYSQL數(shù)據(jù)庫表字段從text類型在線修改為longtext字段類型后,通過DM工具同步發(fā)現(xiàn)源MYSQL修改后的字段類型成功同步到了TiDB,但是之后的數(shù)據(jù)同步通過DM任務(wù)檢查發(fā)現(xiàn)報(bào)Error 8025的錯(cuò)誤。
1. 報(bào)錯(cuò)分析
  • 通過查詢對(duì)應(yīng)版本(V5.0)的錯(cuò)誤代碼發(fā)現(xiàn)如下:

2. TiDB中相關(guān)的限制

分析認(rèn)為MYSQL修改表字段類型后,源MYSQL中插入該表的數(shù)據(jù)超過TiDB默認(rèn)的限制條件。導(dǎo)致DM同步插入數(shù)據(jù)到TiDB時(shí)報(bào)Error 8025錯(cuò)誤。

 



解決方案



解決方案一:DM任務(wù)配置Yaml忽略該表
若該表并非業(yè)務(wù)運(yùn)行必要的表,可以通過更新DM task任務(wù)的yaml文件,過濾掉該表的結(jié)構(gòu)和數(shù)據(jù)同步。
參考Yaml配置中,黑白名單列表部分:
block-allow-list:
instance:
do-dbs: ["dms_prod"]
ignore-tables:
- db-name: "dms_prod"
tbl-name: "dms_log_error" -–
不同步的表名
解決方案二:修改Tidb數(shù)據(jù)庫的集群參數(shù)
通過報(bào)錯(cuò)的提示, TiDB 默認(rèn)支持最大 6MB 的單個(gè)鍵值對(duì),超過該限制可適當(dāng)調(diào)整 txn-entry-size-limit 配置項(xiàng)以放寬限制。并且從 v5.0 版本開始引入。

但是 txn-entry-size-limit參數(shù)同時(shí)需配合 Tikv側(cè)的  raft-entry-max-size(default 8MB) 以及max-grpc-send-msg-len參數(shù)。
建議參數(shù):
raft-entry-max-size: 15MB,
max-grpc-send-msg-len: 15728640
txn-entry-size-limit: 15728640
另外當(dāng)放寬單行6MB后,還需考慮total transaction 的size,和下游等能允許的max_trx_size,需要根據(jù)情況予以調(diào)整。
TiDB中修改所有節(jié)點(diǎn)的配置參數(shù)參考如下:
1)進(jìn)入 TiKV-Server,打開配置文件,一般位置為 /tidb-deploy/tikv-20160/conf (注意: tikv-20160 可能不同),打開文件 tikv.toml;同理打開tidb.toml進(jìn)行檢查原始參數(shù),并進(jìn)行備份。
[root@tidb1 conf]# vi tikv.toml
# WARNING: This file is auto-generated. Do not edit! All your modification will be overwritten!
# You can use tiup cluster edit-config and tiup cluster reload to update the configuration
# All configuration items you want to change can be added to:
# server_configs:
# tikv:
# aa.b1.c3: value
# aa.b2.c4: value
[raftstore]

……
備份參數(shù)文件:
[root@tidb1 conf]# cp tikv.toml  tikv.toml.bak20211229
2)進(jìn)入到安裝 tiup 的中控機(jī)或者節(jié)點(diǎn),執(zhí)行配置文件編輯命令:
[root@tidb1 conf]# tiup cluster edit-config tidb-test
Starting component `cluster`: /root/.tiup/components/cluster/v1.6.1/tiup-cluster edit-config tidb-test
global:
user: tidb
ssh_port: 22
ssh_type: builtin
deploy_dir: /data1/tidb-deploy
data_dir: /data1/tidb-data

……
3)輸入 i ,進(jìn)入編輯模式,修改如下標(biāo)紅參數(shù):
[root@tidb1 conf]# tiup cluster edit-config tidb-test
Starting component `cluster`: /root/.tiup/components/cluster/v1.6.1/tiup-cluster edit-config tidb-test
global:
user: tidb
ssh_port: 22
ssh_type: builtin
deploy_dir: /data1/tidb-deploy
data_dir: /data1/tidb-data
os: linux
monitored:
node_exporter_port: 9100
blackbox_exporter_port: 9115
deploy_dir: /data1/tidb-deploy/monitored-9100
data_dir: /data1/tidb-data/monitored-9100
log_dir: /data1/tidb-deploy/monitored-9100/log

server_configs:
tidb:
performance.txn-entry-size-limit: 15728640
tikv:
raftstore.raft-entry-max-size: 15MB
readpool.coprocessor.use-unified-pool: true
readpool.storage.use-unified-pool: true
readpool.unified.max-thread-count: 12
server.max-grpc-send-msg-len: 15728640
pd:
replication.location-labels:
- host
tiflash: {}
tiflash-learner: {}
pump: {}
drainer: {}
cdc: {}
tidb_servers:
4)輸入 ESC 鍵,輸入:wq,出現(xiàn)提示如下,默認(rèn)會(huì)檢查是否配置、格式符合要求,輸入y繼續(xù)。
server_configs: tidb: {}
tikv:
:wq
Please check change highlight above, do you want to apply the change? [y/N]:(default=N) y
Applying changes...
Applied successfully, please use `tiup cluster reload tidb-test [-N ] [-R ]` to reload config.
5)使用 tiup cluster reload 命令來載入修改的參數(shù) ,或者直接重啟數(shù)據(jù)庫生效。
[root@tidb1 conf]# tiup cluster reload tidb-test
Starting component `cluster`: /root/.tiup/components/cluster/v1.6.1/tiup-cluster reload tidb-test
Will reload the cluster tidb-test with restart policy is true, nodes: , roles: .
Do you want to continue? [y/N]:(default=N) y
+ [ Serial ] - SSHKeySet: privateKey=/root/.tiup/storage/cluster/clusters/tidb-test/ssh/id_rsa, publicKey=/root/.tiup/storage/cluster/clusters/tidb-test/ssh/id_rsa.pub
+ [Parallel] - UserSSH: user=tidb, host=XXX.XX.134.134
… … …
Upgrading component pd
Restarting instance XXX.XX.134.133:2379
Restart instance XXX.XX.134.133:2379 success

Upgrading component tikv
Restarting instance XXX.XX.134.133:20160
Restart instance XXX.XX.134.133:20160 success
Evicting 1 leaders from store XXX.XX.134.134:20160...
Still waitting for 1 store leaders to transfer...

Upgrading component tidb
Restarting instance XXX.XX.134.133:4000
Restart instance XXX.XX.134.133:4000 success

Upgrading component alertmanager
Restarting instance XXX.XX.134.133:9093
Restart instance XXX.XX.134.133:9093 success
Reloaded cluster `tidb-test` successfully

Found cluster newer version:
The latest version: v1.8.1
Local installed version: v1.6.1
Update current component:   tiup update cluster
Update all components:      tiup update --all
6)再次進(jìn)入TiKV-Server,打開配置文件,一般位置為 /tidb-deploy/tikv-20160/conf (注意:tikv-20160 可能不同),打開文件 tikv.toml,同理打開tidb.toml進(jìn)行檢查。
 



注意問題



1. 調(diào)整TiDB的參數(shù)會(huì)影響到數(shù)據(jù)庫性能
將6MB的限制放寬將影響數(shù)據(jù)庫運(yùn)行的性能。原因是在 prewrite時(shí)寫下鎖的時(shí)長(zhǎng)(阻塞其他事務(wù)的讀、提交失敗的風(fēng)險(xiǎn)),像oracle的clog,blob等超長(zhǎng)的字段,本身是不適合lsmt結(jié)構(gòu)。
2. 在TiDB中使用longtext字段
Longtext的類型允許的最大長(zhǎng)度為4G,在tidb中單行最多允許120M(通過調(diào)整參數(shù)),這樣的類型很容易達(dá)到數(shù)據(jù)庫的限制條件,并且在放寬6M的限制后,會(huì)影響到數(shù)據(jù)庫的性能。嚴(yán)重的情況可能會(huì)導(dǎo)致Tikv異常繁忙而無法提供服務(wù)。
參考TiDB最佳實(shí)踐,建議盡量不要放開單行限制,大字段的需要建議在業(yè)務(wù)側(cè)進(jìn)行調(diào)整。即使開放限制,也需要有限制的使用。
參考Tidb最佳實(shí)踐https://docs.pingcap.com/zh/tidb/v5.0/tidb-best-practices/

 


END




本文作者:陳 聰

本文來源:IT那活兒(上海新炬王翦團(tuán)隊(duì))

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/129491.html

相關(guān)文章

  • DM 源碼閱讀系列文章(一)序

    摘要:內(nèi)容概要源碼閱讀系列將會(huì)從兩條線進(jìn)行展開,一條是圍繞的系統(tǒng)架構(gòu)和重要模塊進(jìn)行分析,另一條線圍繞內(nèi)部的同步機(jī)制展開分析。更多的代碼閱讀內(nèi)容會(huì)在后面的章節(jié)中逐步展開,敬請(qǐng)期待。 作者:楊非 前言 TiDB-DM 是由 PingCAP 開發(fā)的一體化數(shù)據(jù)同步任務(wù)管理平臺(tái),支持從 MySQL 或 MariaDB 到 TiDB 的全量數(shù)據(jù)遷移和增量數(shù)據(jù)同步,在 TiDB DevCon 2019 正...

    Mr_houzi 評(píng)論0 收藏0
  • TiDB Ecosystem Tools 原理解讀系列(三)TiDB-DM 架構(gòu)設(shè)計(jì)實(shí)現(xiàn)原理

    摘要:合庫合表數(shù)據(jù)同步在使用支撐大量數(shù)據(jù)時(shí),經(jīng)常會(huì)選擇使用分庫分表的方案。但當(dāng)將數(shù)據(jù)同步到后,通常希望邏輯上進(jìn)行合庫合表。為支持合庫合表的數(shù)據(jù)同步,主要實(shí)現(xiàn)了以下的一些功能。 作者:張學(xué)程 簡(jiǎn)介 TiDB-DM(Data Migration)是用于將數(shù)據(jù)從 MySQL/MariaDB 遷移到 TiDB 的工具。該工具既支持以全量備份文件的方式將 MySQL/MariaDB 的數(shù)據(jù)導(dǎo)入到 Ti...

    legendaryedu 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<