MySQL管理利器 MySQL Utilities---mysqlreplicate

mysqlreplicate ?工具是在兩臺服務器間設置和啟動復制。用戶提供登錄從服務器信息和連接到主的信息。也可以指定一個數據庫用于測試復制。

該工具報告條件是當主和從的存儲引擎不一樣時。如果主和從的存儲引擎不同將產生告警信息。對于Innodb存儲引擎而言,必需完全一樣,Innodb的類型(built-in 或 InnoDB Plugin)需要一樣,同時主次版本號也要一樣,并啟用狀態。

默認情況下,該工具的警告問題在于下面的信息不匹配,存儲引擎設置、默認存儲引擎和Innodb存儲引擎。為了使用錯誤代替警告,使用?--pedantic 選項來要求主從存儲引擎必需一直。

為了查看存儲引擎和innodb值之間的差異,可以使用-vv選項,不管有沒使用--pedantic選項。

可以使用下面的策略啟動復制:

  • Start from the current position (default)

    從當前的主二進制日志和位置開始復制。該工具使用SHOW MASTER STATUS語句來獲取這些信息。

  • Start from the beginning

    從主二進制日志中記錄的第一個事件開始復制。使用?--start-from-beginning?選項。

  • Start from a binary log file

    從指定的主二進制日志的第一個事件開始復制。使用?--master-log-file 選項。

  • Start from a specific event

    從特定的事件坐標開始復制 (特定的二進制日志和位置)。使用?--master-log-file?和?--master-log-pos?選項。

選項

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

MySQL Utilities mysqlreplicate version 1.5.3

License type: GPLv2

Usage: mysqlreplicate --master=root@localhost:3306 --slave=root@localhost:3310 --rpl-user=rpl:passwd

mysqlreplicate - establish replication with a master

Options:

??--version???????????? show program's version number and exit

??--help????????????????display a help message and exit

??--license???????????? display program's license and exit

??--master=MASTER?????? connection information for master server in the form:

????????????????????????<user>[:<password>]@<host>[:<port>][:<socket>] or

????????????????????????<login-path>[:<port>][:<socket>] or <config-

????????????????????????path>[<[group]>].

??--slave=SLAVE???????? connection information for slave server in the form:

????????????????????????<user>[:<password>]@<host>[:<port>][:<socket>] or

????????????????????????<login-path>[:<port>][:<socket>] or <config-

????????????????????????path>[<[group]>].

??--rpl-user=RPL_USER?? the user and password for the replication user

????????????????????????requirement, in the form: <user>[:<password>] or

????????????????????????<login-path>. E.g. rpl:passwd

??-p, --pedantic????????fail if storage engines differ among master and slave.

??--test-db=TEST_DB???? database name to use in testing replication setup

????????????????????????(optional)如果沒有給出這個選項,不進行任何測試,只進行錯誤檢查。

??--master-log-file=MASTER_LOG_FILE

????????????????????????use this master log file to initiate the slave.

??--master-log-pos=MASTER_LOG_POS

????????????????????????use this position in the master log file to initiate

????????????????????????the slave.與--master-log-file選項同時使用有效。

??-b, --start-from-beginning

????????????????????????start replication from the first event recorded in the

????????????????????????binary logging of the master. Not valid with --master-

????????????????????????log-file or --master-log-pos.?與--master-log-file 和

????????????????????????--master-log-pos 同時使用才有效。

??--ssl-ca=SSL_CA?????? The path to a file that contains a list of trusted SSL

????????????????????????CAs.

??--ssl-cert=SSL_CERT?? The name of the SSL certificate file to use for

????????????????????????establishing a secure connection.

??--ssl-key=SSL_KEY???? The name of the SSL key file to use for establishing a

????????????????????????secure connection.

??-v, --verbose???????? control how much information is displayed. e.g., -v =

????????????????????????verbose, -vv = more verbose, -vvv = debug

??-q, --quiet?????????? turn off all messages for quiet execution.

注意事項

登錄主服務器的用戶必須具有對訪問數據庫的授權權限和創建賬號的權限。也就是WITH GRANT OPTION 權限。

主和從的server ID必須非零和唯一的。如果為0或相同產生錯誤報告。

IP地址和主機名混合使用不推薦。涉及到反向解析的問題。

MySQL客戶端工具的路徑需要包含在PATH環境變量中,以便使用login-paths驗證機制。允許使用my_print_defaults 來從登陸配置文件(.mylogin.cnf)讀取login-path值。

實例

在同一臺服務器上使用相同的默認設置不同端口的兩個實例的復制,命令如下:

1

2

3

4

5

6

7

shell> mysqlreplicate --master=root@localhost:3306 \

??????????--slave=root@localhost:3307 --rpl-user=rpl:rpl

# master on localhost: ... connected.

# slave on localhost: ... connected.

# Checking for binary logging on master...

# Setting up replication...

# ...done.

使用?--pedantic選項來確保主和從復制成功,當且僅當兩個服務器具有相同的存儲引擎,相同的默認存儲引擎和相同的InnoDB存儲引擎。如下所示:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

shell> mysqlreplicate --master=root@localhost:3306 \

??????????--slave=root@localhost:3307 --rpl-user=rpl:rpl -vv --pedantic

# master on localhost: ... connected.

# slave on localhost: ... connected.

# master id = 2

#??slave id = 99

# Checking InnoDB statistics for type and version conflicts.

# Checking storage engines...

# Checking for binary logging on master...

# Setting up replication...

# Flushing tables on master with read lock...

# Connecting slave to master...

# CHANGE MASTER TO MASTER_HOST = [...omitted...]

# Starting slave...

# status: Waiting for master to send event

# error: 0:

# Unlocking tables on master...

# ...done.

從當前主的位置開始復制,默認的。如下所示:

1

2

3

4

5

6

7

shell> mysqlreplicate --master=root@localhost:3306 \

??????????--slave=root@localhost:3307 --rpl-user=rpl:rpl

# master on localhost: ... connected.

# slave on localhost: ... connected.

# Checking for binary logging on master...

# Setting up replication...

# ...done.

從主記錄的事件開始復制,如下所示:

1

2

3

4

5

6

7

8

shell> mysqlreplicate --master=root@localhost:3306 \

???? --slave=root@localhost:3307 --rpl-user=rpl:rpl \

???? --start-from-beginning

# master on localhost: ... connected.

# slave on localhost: ... connected.

# Checking for binary logging on master...

# Setting up replication...

# ...done.

從特定的主二進制日志開始復制,如下所示:

1

2

3

4

5

6

7

8

shell> mysqlreplicate --master=root@localhost:3306 \

??????????--slave=root@localhost:3307 --rpl-user=rpl:rpl \

??????????--master-log-file=my_log.000003

# master on localhost: ... connected.

# slave on localhost: ... connected.

# Checking for binary logging on master...

# Setting up replication...

# ...done.

從特定的主二進制日志坐標開始復制(指定二進制文件和位置),如下所示:

1

2

3

4

5

6

7

8

shell> mysqlreplicate --master=root@localhost:3306 \

??????????--slave=root@localhost:3307 --rpl-user=rpl:rpl \

??????????--master-log-file=my_log.000001 --master-log-pos=96

# master on localhost: ... connected.

# slave on localhost: ... connected.

# Checking for binary logging on master...

# Setting up replication...

# ...done.

建議

在從的my.cnf文件中配置read_only=1來確保數據不被意外修改,只允許從主讀取事件。

使用?--pedantic 和 -vv 選項來避免不同的存儲引擎可能導致的問題。

權限

在主上需要對mysql數據庫具有SELECT 和 INSERT權限,同時還要有REPLICATION SLAVE, REPLICATION CLIENT 和 GRANT OPTION權限。

在從上需要有SUPER 權限。

對于復制用戶,?--rpl-user 選項使用的,要么自動創建要么指定已經存在的,需要具有?REPLICATION SLAVE 權

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/535327.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/535327.shtml
英文地址,請注明出處:http://en.pswp.cn/news/535327.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL管理工具MySQL Utilities — 如何連接MySQL服務器

連接參數 連接到一個服務器&#xff0c;必須指定連接參數&#xff0c;如用戶名&#xff0c;主機名稱&#xff0c;密碼&#xff0c;端口號&#xff0c;socket。MySQL Utilities提供了三種提供這些參數的方法&#xff0c;這些方法都需要通過命令行指定。 使用.mylogin.cnf文件&…

MHA高可用

manager 組件 masterha_manger # 啟動MHA masterha_check_ssh # 檢查MHA的SSH配置狀況 masterha_check_repl # 檢查MySQL復制狀況&#xff0c;配置信息 masterha_master_monitor # 檢測master是否宕機 masterha_check_status # 檢測當…

MySQL Replication需要注意的問題

主庫意外宕機 如果沒有設置主庫的sync_binlog選項&#xff0c;就可能在奔潰前沒有將最后的幾個二進制日志事件刷新到磁盤中。備庫I/O線程因此也可一直處于讀不到尚未寫入磁盤的事件的狀態中。當主庫從新啟動時&#xff0c;備庫將重連到主庫并再次嘗試去讀該事件&#xff0c;但…

update和delete操作忘加where條件導致全表更新的處理方法

在數據庫日常維護中&#xff0c;開發人員是最讓人頭痛的&#xff0c;很多時候都會由于SQL語句寫的有問題導致服務器出問題&#xff0c;導致資源耗盡。最危險的操作就是在做DML操作的時候忘加where條件&#xff0c;導致全表更新&#xff0c;這是作為運維或者DBA的我們改如何處理…

Innodb結構

從MySQL5.5版本開始默認使用InnoDB作為引擎&#xff0c;它擅長處理事務&#xff0c;具有自動崩滿恢復的特性&#xff0c;在日常開發中使用非常廣泛&#xff0c;下面是言方的InnoDB引擎美構圖&#xff0c;主要分為內存結構和磁盤結構兩大部分。 內存結構主要包括Buffer Pool、C…

ES備份工具elasticdump

安裝 下載node下載 | Node.js 中文網 tar xvf node-v16.5.0-linux-x64.tar.xz ln -s /app/temp/node-v16.5.0-linux-x64/bin/node /usr/bin/node ln -s /app/temp/node-v16.5.0-linux-x64/bin/npm /usr/bin/npm npm install elasticdump -g npm config get cache npm in…

innodb_flush_method理解【轉】

innodb_flush_method這個參數控制著innodb數據文件及redo log的打開、刷寫模式&#xff0c;對于這個參數&#xff0c;文檔上是這樣描述的&#xff1a; 有三個值&#xff1a;fdatasync(默認)&#xff0c;O_DSYNC&#xff0c;O_DIRECT 默認是fdatasync&#xff0c;調用fsync()去…

linux下的/dev/shm/

首先可以看出來/dev/shm是一個設備文件, 可以把/dev/shm看作是系統內存的入口, 可以把它看做是一塊物理存儲設備&#xff0c;一個tmp filesystem, 你可以通過這個設備向內存中讀寫文件, 以加快某些I/O高的操作&#xff0c;比如對一個大型文件頻繁的open, write, read&#xff0…

2021-07-30

1.服務器級別的鎖等待 可以通過show processlist看到等待鎖的線程id&#xff0c;但是無法知道究竟哪個線程持有鎖 可以通過mysqladmin debug 相關等待鎖的線程以及誰持有鎖可以在錯誤日志中找到 2.存儲引擎層的鎖等待則比較麻煩&#xff0c;以下是innodb存儲引擎中鎖等待以及…

getopt設計shell腳本選項

寫shell腳本的時候&#xff0c;通過while、case、shift來設計腳本的命令行選項是一件比較麻煩的事&#xff0c;因為Unix命令行的選項和參數自由度很高&#xff0c;支持短選項和長選項&#xff0c;參數可能是可選的&#xff0c;選項順序可能是無所謂的&#xff0c;等等。 bash下…

percona-toolkit---pt-heartbeat

對于MySQL數據庫主從復制延遲的監控&#xff0c;可以借助percona的有力武器pt-heartbeat來實現。 pt-heartbeat的工作原理通過使用時間戳方式在主庫上更新特定表&#xff0c;然后在從庫上讀取被更新的時間戳然后與本地系統時間對比來得出其延遲。具體流程&#xff1a; 1&…

定時刪除腳本

#!/bin/sh backup_dir/data/xtrabackup DATEdate %Y-%m-%d #DATE_NOWdate %Y-%m-%d.%H%M DATE_NOWdate %Y-%m-%d PATH/usr/local/mysql/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin export PATHbinog保留7天 binlog/data/binlogserver binlog_Rtime7#備…

percona-toolkit--pt-table-checksum

pt-table-checksum 是 Percona-Toolkit的組件之一&#xff0c;用于檢測MySQL主、從庫的數據是否一致。其原理是在主庫執行基于statement的sql語句來生成主庫數據塊的checksum&#xff0c;把相同的sql語句傳遞到從庫執行&#xff0c;并在從庫上計算相同數據塊的checksum&#xf…

Docker容器間網絡通信

自從Docker容器出現以來&#xff0c;容器網絡通信就一直是被關注的焦點&#xff0c;也是生產環境的迫切需求。容器網絡通信又分為兩大方面&#xff1a;單主機容器上的相互通信&#xff0c;和跨主機的容器相互通信。 一、Docker單主機容器通信 基于對net namespace的控制&#…

Docker容器的重啟策略

1. Docker容器的重啟策略 Docker容器的重啟策略是面向生產環境的一個啟動策略&#xff0c;在開發過程中可以忽略該策略。 Docker容器的重啟都是由Docker守護進程完成的&#xff0c;因此與守護進程息息相關。 Docker容器的重啟策略如下&#xff1a; no&#xff0c;默認策略&…

innobackupex實現導出和導入單張表

默認情況下&#xff0c;InnoDB表不能通過直接復制表文件的方式在mysql服務器之間進行移植&#xff0c;即便使用了innodb_file_per_table選項。而使用Xtrabackup工具可以實現此種功能&#xff0c;不過只能"導出"具有.ibd文件的表&#xff0c;也就是說導出表的mysql服務…

xtrabackup工具

(1).備份過程 和innobackupex備份過程不同的是&#xff0c;xtrabackup的備份路徑是由"--target-dir"選項嚴格指定的&#xff0c;如果指定的目錄不存在&#xff0c;它備份的時候不會在target-dir目錄中再創建時間戳子目錄。 [rootxuexi data]# xtrabackup --backup …

mysql數據庫參數

注意&#xff1a;在配置binlog相關變量的時候&#xff0c;相關變量名總是搞混&#xff0c;因為有的是binlog&#xff0c;有的是log_bin&#xff0c;當他們分開的時候&#xff0c;log在前&#xff0c;當它們一起的時候&#xff0c;bin在前。在配置文件中也同樣如此。 log_bin …

oracle命令行安裝

cd /home/oracle/databases/runInstaller -silent -force -showprogress -responseFile /home/oracle/database/db_install.rsp -ignoreSysPrereqs -ignorePrereqdbca -silent -responseFile pwd/dbca.rspnetca -silent -responseFile /home/oracle/databases/netca.rsp

定期刪除數據腳本

#!/bin/sh backup_dir/data/xtrabackup DATEdate %Y-%m-%d #DATE_NOWdate %Y-%m-%d.%H%M DATE_NOWdate %Y-%m-%d PATH/usr/local/mysql/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin export PATH#binog保留7天 binlog/data/binlogserver binlog_Rtime7#備…