日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

gravity mysql_gravity 使用操作。

發(fā)布時間:2024/3/12 数据库 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 gravity mysql_gravity 使用操作。 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

gravity 使用操作。

最近我司有一個比較奇葩的需求,我們的環(huán)境是主從,因為數(shù)據(jù)量較大會定期的刪除數(shù)據(jù),

最近不行了,要求新建出來一個庫 同步正事環(huán)境的數(shù)據(jù),但是要剔除 delete ,drop,truncat 等這些刪除數(shù)據(jù)的語句。

因此 準(zhǔn)備使用gravity 來進(jìn)行數(shù)據(jù)操作。看看能否滿足這些需求。

這個環(huán)境實現(xiàn)的是mysql ---------》 mysql的數(shù)據(jù)同步(剔除drop,truncate,delete語句);

mysql:192.168.17.21(主)

mysql:192.168.17.23(輔)

gravity:192.168.17.20

mysql 如果不會安裝的話 可以使用 https://www.cnblogs.com/noel/p/10314125.html 腳本安裝

在192.168.17.20 配置go語言環(huán)境:

https://golang.org/dl/ 下載linux 安裝包

上傳到服務(wù)器 /usr/local/src/ 目錄下:

tar -xvzf go1.11.5.linux-amd64.tar.gz -C /usr/local/

export PATH=$PATH:/usr/local/go/bin

或者

vim /etc/profile

查看 gopath

go env

source /etc/profile

編譯 (TODO: 開源后直接從 github 下載 binary)

mkdir -p $GOPATH/src/github.com/moiot/

cd $GOPATH/src/github.com/moiot/

git clone https://github.com/moiot/gravity.git

cd gravity/ && make

可能會出現(xiàn)以下錯誤:

錯誤1:

[root@localhost moiot]# git clone https://github.com/moiot/gravity.git

Initialized empty Git repository in /usr/local/go/bin/src/github.com/moiot/gravity/.git/

error: while accessing https://github.com/moiot/gravity.git/info/refs

fatal: HTTP request failed

這是因為系統(tǒng)自帶的git的版本太低了 需要升級git:

升級git: 下載相應(yīng)的安裝包

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidoc

yum install gcc perl-ExtUtils-MakeMaker

移除系統(tǒng)自帶的git

yum remove git

安裝新版git

cd /usr/local/src/

wget https://www.kernel.org/pub/software/scm/git/git-2.9.5.tar.xz

tar -xvz git-2.9.5.tar.xz

cd git-2.9.5

./configure --prefix=/usr/local/git

make && make install

echo "export PATH=$PATH:/usr/local/git/bin" >>/etc/profile

source /etc/profile

錯誤2:

[root@localhost moiot]# git clone https://github.com/moiot/gravity.git

Cloning into 'gravity'...

fatal: unable to access 'https://github.com/moiot/gravity.git/': SSL connect error

[root@localhost moiot]#

解決辦法 yum update nss

分別在mysql:192.168.17.21(主) mysql:192.168.17.23(輔)執(zhí)行一下命令

CREATE USER _gravity IDENTIFIED BY '_gravity';

GRANT SELECT, RELOAD, LOCK TABLES, REPLICATION SLAVE, REPLICATION CLIENT, CREATE, INSERT, UPDATE, DELETE ON *.* TO '_gravity'@'%';

GRANT ALL PRIVILEGES ON _gravity.* TO '_gravity'@'%';

flush privileges;

創(chuàng)建如下配置文件 mysql-mysql.toml

cat > mysql-mysql.toml << "EOF"

name = "mysql-mysql"

#

# Input 插件的定義,此處定義使用 mysql

#

[input]

type = "mysql"

mode = "replication" ##全量+增量(replication),增量(stream),全量(batch)

[input.config]

#是否忽略雙向同步產(chǎn)生的內(nèi)部數(shù)據(jù),默認(rèn)是false

ignore-bidirectional-data = false

# 總體掃描的并發(fā)線程數(shù)

# - 默認(rèn)為 10,表示最多允許 10 個表同時掃描

# - 可選

nr-scanner = 10

# 單次掃描所去的行數(shù)

# - 默認(rèn)為 10000,表示一次拉取 10000 行

# - 可選

table-scan-batch = 10000

# 全局限制,每秒所允許的 batch 數(shù)

# - 默認(rèn)為 1

# - 可選

#

batch-per-second-limit = 1

# 全局限制,沒有找到單列主鍵、唯一索引時,最多多少行的表可用全表掃描方式讀取,否則報錯退出。

# - 默認(rèn)為 100,000

# - 可選

#

max-full-dump-count = 10000

[input.config.source]

host = "192.168.17.21"

username = "_gravity"

password = "_gravity"

port = 3306

# 需要掃描的表

# - 必填 多個schema的話 寫多個configs

[[input.config.table-configs]]

schema = "test_gravity"

table = "*"

#

# Output 插件的定義,此處使用 mysql

#

[output]

type = "mysql"

#

[output.config]

enable-ddl = true #當(dāng)前支持 create & alter table 語句。庫表名會根據(jù)路由信息調(diào)整。

[output.config.target]

host = "192.168.17.23"

username = "_gravity"

password = "_gravity"

port = 3306

# 路由規(guī)則的定義

[[output.config.routes]]

match-schema = "test_gravity"

match-table = "*"

target_schema = "test_gravity"

target-table = "*"

[output.config.execution-engine]

# 開啟雙向同步標(biāo)識的寫入

use-bidirection = false

[[filters]]

type = "reject"

[filters.config]

match-schema = "test_gravity"

match-dml-op = "delete"

EOF

然后啟動 :

bin/gravity --config mysql-mysql.toml

########遇到的一個坑:

binlog_row_image 必須設(shè)置成FULL

create database 操作需要兩邊都做

delete 可以剔除

drop,truncate 不支持 很好用

總結(jié)

以上是生活随笔為你收集整理的gravity mysql_gravity 使用操作。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。