自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

【博文推薦】MariaDB10.0實(shí)例部署和多源復(fù)制配置

數(shù)據(jù)庫(kù) MySQL MariaDB
當(dāng)前MariaDB支持多源復(fù)制的版本為10.0的版本,最新穩(wěn)定版本為10.0.17。MariaDB和PerconaDB在5.5的新版中引進(jìn)來(lái)線程池和關(guān)閉NUMA的概念,對(duì)數(shù)據(jù)庫(kù)性能提高不少,而MySQL的版本在5.5.23(貌似是)以上的版本中也有這個(gè)概念,但是是屬于企業(yè)版的功能,開(kāi)源版本中沒(méi)有這個(gè)功能;MariaDB10的版本中多了一個(gè)新功能就是多源復(fù)制,對(duì)于一些特殊的場(chǎng)景比較實(shí)用:如sharding過(guò)的表做數(shù)據(jù)匯總等,一般對(duì)匯總統(tǒng)計(jì)比較有用。
   本博文出自51CTO博客王偉博主,有任何問(wèn)題請(qǐng)進(jìn)入博主頁(yè)面互動(dòng)討論!

博文地址:http://wangtianfa.blog.51cto.com/5281093/1621797

一、部署MariaDB10.0.17

1、MariaDB下載和簡(jiǎn)單說(shuō)明

當(dāng)前MariaDB支持多源復(fù)制的版本為10.0的版本,最新穩(wěn)定版本為10.0.17,下載連接為:http://mirrors.opencas.cn/mariadb/mariadb-10.0.17/source/mariadb-10.0.17.tar.gz。MariaDB和PerconaDB在5.5的新版中引進(jìn)來(lái)線程池和關(guān)閉NUMA的概念,對(duì)數(shù)據(jù)庫(kù)性能提高不少,而MySQL的版本在5.5.23(貌似是)以上的版本中也有這個(gè)概念,但是是屬于企業(yè)版的功能,開(kāi)源版本中沒(méi)有這個(gè)功能;MariaDB10的版本中多了一個(gè)新功能就是多源復(fù)制,對(duì)于一些特殊的場(chǎng)景比較實(shí)用:如sharding過(guò)的表做數(shù)據(jù)匯總等,一般對(duì)匯總統(tǒng)計(jì)比較有用。

注:新的版本固然有很多吸引人的地方,但是其中的坑還沒(méi)有挖完,有問(wèn)題的話不易查找材料,不易于解決,所以不建議生產(chǎn)環(huán)境使用最新的版本。目前MySQL、PerconaDB和MariaDB主流版本是5.5,如果非特殊需要,5.5的足夠用,拋開(kāi)線程池來(lái)說(shuō),5.6的版本在整體的性能上未必比5.5的好。

2、MariaDB的安裝部署

MariaDB和MySQL、Percona的基本上完全一樣,5.5以后的版本采用cmake的方式編譯安裝:

  1. #tar –zxfmariadb-10.0.17.tar.gz 
  2.  
  3. #cdmariadb-10.0.17 
  4.  
  5. #cmake .-DCMAKE_INSTALL_PREFIX=/data/percona/ -DMYSQL_DATADIR=/data/percona/data-DSYSCONFDIR=/data/percona/etc -DWITH_INNOBASE_STORAGE_ENGINE=1-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8-DDEFAULT_COLLATION=utf8_general_ci-DMYSQL_UNIX_ADDR=/data/percona/tmp/mysql.sock -DENABLED_LOCAL_INFILE=ON-DENABLED_PROFILING=ON -DWITH_DEBUG=0 -DMYSQL_TCP_PORT=3306 
  6.  
  7. #make&& make install 

3、MariaDB的配置文件

這個(gè)配置文件適用于PerconaDB,去掉線程池和NAMA的參數(shù),同樣適用于MySQL:

  1. [client] 
  2.  
  3. port = 3306 
  4.  
  5. socket = /data/mariadb/tmp/mysql.sock 
  6.  
  7. default-character-set= utf8 
  8.  
  9. [mysqld] 
  10.  
  11. port = 3306 
  12.  
  13. bind-address= 0.0.0.0 
  14.  
  15. lower_case_table_names = 1 
  16.  
  17. basedir = /data/mariadb 
  18.  
  19. datadir = /data/mariadb/data 
  20.  
  21. tmpdir = /data/mariadb/tmp 
  22.  
  23. socket = /data/mariadb/tmp/mysql.sock 
  24.  
  25. ####################################### 
  26.  
  27. log-output = FILE 
  28.  
  29. log-error = /data/mariadb/log/error.log 
  30.  
  31. #general_log 
  32.  
  33. general_log_file = /data/mariadb/log/mysql.log 
  34.  
  35. pid-file = /data/mariadb/data/mysql.pid 
  36.  
  37. slow-query-log 
  38.  
  39. slow_query_log_file = /data/mariadb/log/slow.log 
  40.  
  41. tmpdir = /data/mariadb/tmp/ 
  42.  
  43. long_query_time = 0.1 
  44.  
  45. #max_statement_time = 1000 #自動(dòng)殺死超過(guò)1s的慢sql,PerconaDB5.6支持,不建議使用,如使用的和業(yè)務(wù)方溝通好,建議在特殊的情況動(dòng)態(tài)配置使用,默認(rèn)是0,不限制。 
  46.  
  47. sync_binlog = 1 
  48.  
  49. skip-external-locking 
  50.  
  51. skip-name-resolve 
  52.  
  53. default-storage-engine= INNODB 
  54.  
  55. character-set-server= utf8 
  56.  
  57. wait_timeout= 28400 
  58.  
  59. back_log = 1024 
  60.  
  61. ######################### 
  62.  
  63. thread_concurrency = 16 
  64.  
  65. thread_cache_size = 512 
  66.  
  67. table_open_cache = 16384 
  68.  
  69. table_definition_cache = 16384 
  70.  
  71. sort_buffer_size = 2M 
  72.  
  73. join_buffer_size = 2M 
  74.  
  75. read_buffer_size = 4M 
  76.  
  77. read_rnd_buffer_size = 4M 
  78.  
  79. key_buffer_size = 64M 
  80.  
  81. myisam_sort_buffer_size= 64M 
  82.  
  83. tmp_table_size = 256M 
  84.  
  85. max_heap_table_size = 256M 
  86.  
  87. open_files_limit = 65535 
  88.  
  89. #####Network ###################### 
  90.  
  91. max_allowed_packet = 16M 
  92.  
  93. interactive_timeout = 28400 
  94.  
  95. wait_timeout = 28400 
  96.  
  97. max-connections = 1000 
  98.  
  99. max_user_connections = 0 
  100.  
  101. max_connect_errors = 100 
  102.  
  103. ######Repl ##################### 
  104.  
  105. server-id = 1 
  106.  
  107. report-host = 172.16.183.56 
  108.  
  109. log-bin = mysql-bin 
  110.  
  111. binlog_format = mixed 
  112.  
  113. expire_logs_days = 7 
  114.  
  115. relay-log = relay-log 
  116.  
  117. #replicate-wild-do-table= zabbix.% 
  118.  
  119. #replicate-wild-do-table= zabbix_server.% 
  120.  
  121. replicate_wild_ignore_table=mysql.% 
  122.  
  123. replicate_wild_ignore_table=test.% 
  124.  
  125. log_slave_updates 
  126.  
  127. skip-slave-start 
  128.  
  129. #slave-net-timeout = 10 
  130.  
  131. #rpl_semi_sync_master_enabled = 1 
  132.  
  133. #rpl_semi_sync_master_wait_no_slave = 1 
  134.  
  135. #rpl_semi_sync_master_timeout = 1000 
  136.  
  137. #rpl_semi_sync_slave_enabled = 1 
  138.  
  139. relay_log_recovery = 1 
  140.  
  141. ##### Innodb ########### 
  142.  
  143. innodb_data_home_dir = /data/mariadb/data 
  144.  
  145. innodb_data_file_path = ibdata1:2G;ibdata2:2G:autoextend 
  146.  
  147. innodb_autoextend_increment = 500 
  148.  
  149. innodb_log_group_home_dir = /data/mariadb/data 
  150.  
  151. innodb_buffer_pool_size = 8G 
  152.  
  153. innodb_buffer_pool_dump_at_shutdown= 1 
  154.  
  155. innodb_buffer_pool_load_at_startup= 1 
  156.  
  157. innodb_buffer_pool_instances = 8 
  158.  
  159. innodb_additional_mem_pool_size= 128M 
  160.  
  161. innodb_log_files_in_group = 3 
  162.  
  163. innodb_log_file_size = 512M 
  164.  
  165. innodb_log_buffer_size = 8M 
  166.  
  167. innodb_flush_log_at_trx_commit = 1 
  168.  
  169. innodb_lock_wait_timeout = 120 
  170.  
  171. innodb_flush_method = O_DIRECT 
  172.  
  173. innodb_max_dirty_pages_pct = 75 
  174.  
  175. innodb_io_capacity = 1000 
  176.  
  177. innodb_thread_concurrency = 0 
  178.  
  179. innodb_thread_sleep_delay = 500 
  180.  
  181. innodb_concurrency_tickets = 1000 
  182.  
  183. innodb_open_files = 65535 
  184.  
  185. innodb_file_per_table = 1 
  186.  
  187. #########線程池,在高并發(fā)高負(fù)載情況下表現(xiàn)出出色的數(shù)據(jù)庫(kù)性能 ## 
  188.  
  189. thread_handling = pool-of-threads 
  190.  
  191. ######NUMA ######################### 
  192.  
  193. innodb_buffer_pool_populate = 1 
  194.  
  195. ################################## 
  196.  
  197. [mysqldump] 
  198.  
  199. quick 
  200.  
  201. max_allowed_packet= 16M 
  202.  
  203. [mysql] 
  204.  
  205. no-auto-rehash 
  206.  
  207. default-character-set=utf8 
  208.  
  209. [myisamchk] 
  210.  
  211. key_buffer_size= 256M 
  212.  
  213. sort_buffer_size= 256M 
  214.  
  215. read_buffer= 2M 
  216.  
  217. write_buffer= 2M 
  218.  
  219. [mysqld_safe] 
  220.  
  221. ######CLOSED NUMA ########### 
  222.  
  223. flush_caches 
  224.  
  225. numa_interleave 
  226.  
  227. [mysqlhotcopy] 
  228.  
  229. interactive_timeout = 28400 

4、數(shù)據(jù)庫(kù)初始化和啟動(dòng)

數(shù)據(jù)庫(kù)初始化和啟動(dòng)腳本如下:

  1. #/data/mariadb/scripts/mysql_install_db--basedir=/data/mariadb --datadir=/data/mariadb/data --defaults-file=/data/mariadb/etc/my.cnf--user=mysql 
  2.  
  3. #/data/mariadb/bin/mysqld_safe--defaults-file=/data/mariadb/etc/my.cnf --user=mysql & 
  4.  
  5. #echo “/data/mariadb/bin/mysqld_safe--defaults-file=/data/mariadb/etc/my.cnf --user=mysql &”>>/etc/rc.local #加入到系統(tǒng)啟動(dòng)項(xiàng)中 

#p#

二、MariaDB多源復(fù)制相關(guān)配置

1、初始化數(shù)據(jù)庫(kù)用戶

初始化多源從庫(kù)的用戶,建議刪除初始所有用戶,建立4個(gè)用戶:DBA root賬戶,備份用戶,監(jiān)控用戶,主從同步用戶。

創(chuàng)建用戶的相關(guān)權(quán)限和命令如下:

  1. #創(chuàng)建用戶 
  2.  
  3. GRANT ALLPRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY IDENTIFIED BY '123456'WITH GRANT OPTION
  4.  
  5. GRANTREPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'replicater'@'192.168.2.100'IDENTIFIED BY '123456'
  6.  
  7. GRANTSELECT, RELOAD, SHOW DATABASES, SUPER, LOCK TABLES, REPLICATION CLIENT, SHOWVIEW, EVENT ON *.* TO 'backup'@'localhost' IDENTIFIED BY '123456'
  8.  
  9. GRANTSELECT, PROCESS, SUPER, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO'monitor'@'127.0.0.1' IDENTIFIED BY '123456'
  10.  
  11. #刪除用戶建議使用dropuser xxxx@xxxxx;這樣刪除比較徹底。 

作為DBA,線上的任何寫操作最好做好備份,給自己留個(gè)后路

2、備份多個(gè)主庫(kù)的數(shù)據(jù)庫(kù)

MariaDB的多源復(fù)制,要求各個(gè)同步主庫(kù)中的數(shù)據(jù)庫(kù)名字各不相同,備份的話只備份需要同步的數(shù)據(jù)庫(kù)即可,不需要同步的數(shù)據(jù)庫(kù)可以在多源的從庫(kù)中使用參數(shù)過(guò)濾掉,默認(rèn)不會(huì)同步information_schema、performance_schema。

備份命令如下:

  1. /data/mariadb/bin/mysqldump--default-character-set=utf8 --hex-blob -R --log-error=/var/log/backup-log--single-transaction --master-data=2 -uxxxx -pxxxx –B db_name > db_name_20150320.sql & 
  2.  
  3. #放入后臺(tái)備份 

3、導(dǎo)入備份數(shù)據(jù)

分別導(dǎo)入各個(gè)主庫(kù)的備份數(shù)據(jù)導(dǎo)多源的從庫(kù)中,命令如下:

  1. /data/mariadb/bin/mysql–uxxxx –pxxxxx db_name < db_name_20150320.sql & 

4、建立主從關(guān)系

這里重點(diǎn)在connection_name,也就是在以前的語(yǔ)法上增加了connection_name,如果沒(méi)加connection_name,那么默認(rèn)的就是空。connection_name為標(biāo)識(shí),主要是方便用于管理單個(gè)主從關(guān)系。建立主從關(guān)系的命令如下:

  1. Mysql>changemaster 'percona' to master_host='192.168.2.100',MASTER_PORT=3307,master_user='repl', master_password='xxxxxxx',master_log_file='mysql-bin.000019', master_log_pos=120; 
  2.  
  3. 其中的percona為connection_name。每個(gè)源的同步一個(gè)connection_name,分別執(zhí)行上述sql命令。 

啟動(dòng)主從同步的命令為:

  1. Mysql>START SLAVE 'percona'

也可以在建立全部的同步關(guān)系后一起啟動(dòng):

  1. Mysql>START ALL SLAVES; 

停止單個(gè)同步的命令:

  1. Mysql>STOP SLAVE 'percona'

停止全部的同步的命令為:

  1. Mysql>STOP ALL SLAVES; 

當(dāng)同步建立并正常運(yùn)行時(shí),會(huì)產(chǎn)生relay-log,relay-log的名字為:relay-log-percona.000001,會(huì)自動(dòng)的加上connection_name。

可以使用show all slaves status來(lái)查看所有的同步狀態(tài),狀態(tài)信息如下:

  1. MariaDB[(none)]> show all slaves status\G 
  2.  
  3. ***************************1. row *************************** 
  4.  
  5. Connection_name: percona 
  6.  
  7. Slave_SQL_State: Slave has readall relay log; waiting for the slave I/O thread to update it 
  8.  
  9. Slave_IO_State: Waiting formaster to send event 
  10.  
  11. Master_Host: 192.168.2.200 
  12.  
  13. Master_User: repl 
  14.  
  15. Master_Port: 3307 
  16.  
  17. Connect_Retry: 60 
  18.  
  19. Master_Log_File: mysql-bin.000021 
  20.  
  21. Read_Master_Log_Pos: 450752689 
  22.  
  23. Relay_Log_File:relay-log-percona.000011 
  24.  
  25. Relay_Log_Pos: 135537605 
  26.  
  27. Relay_Master_Log_File: mysql-bin.000021 
  28.  
  29. Slave_IO_Running: Yes 
  30.  
  31. Slave_SQL_Running: Yes 
  32.  
  33. Replicate_Do_DB: 
  34.  
  35. Replicate_Ignore_DB: 
  36.  
  37. Replicate_Do_Table: 
  38.  
  39. Replicate_Ignore_Table: 
  40.  
  41. Replicate_Wild_Do_Table: 
  42.  
  43. Replicate_Wild_Ignore_Table: mysql.%,test.% 
  44.  
  45. Last_Errno: 0 
  46.  
  47. Last_Error: 
  48.  
  49. Skip_Counter: 0 
  50.  
  51. Exec_Master_Log_Pos: 450752689 
  52.  
  53. Relay_Log_Space: 135537904 
  54.  
  55. 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 
  56.  
  57. Master_Server_Id: 111156 
  58.  
  59. Master_SSL_Crl: 
  60.  
  61. Master_SSL_Crlpath: 
  62.  
  63. Using_Gtid: No 
  64.  
  65. Gtid_IO_Pos: 
  66.  
  67. Retried_transactions: 0 
  68.  
  69. Max_relay_log_size: 1073741824 
  70.  
  71. Executed_log_entries: 106216 
  72.  
  73. Slave_received_heartbeats: 12 
  74.  
  75. Slave_heartbeat_period: 1800.000 
  76.  
  77. Gtid_Slave_Pos: 
  78.  
  79. ***************************2. row *************************** 
  80.  
  81. Connection_name: percona 
  82.  
  83. Slave_SQL_State: Slave has readall relay log; waiting for the slave I/O thread to update it 
  84.  
  85. Slave_IO_State: Waiting formaster to send event 
  86.  
  87. Master_Host: 192.168.2.201 
  88.  
  89. Master_User: repl 
  90.  
  91. Master_Port: 3307 
  92.  
  93. Connect_Retry: 60 
  94.  
  95. Master_Log_File: mysql-bin.000021 
  96.  
  97. Read_Master_Log_Pos: 450752689 
  98.  
  99. Relay_Log_File:relay-log-percona.000011 
  100.  
  101. Relay_Log_Pos: 135537605 
  102.  
  103. Relay_Master_Log_File: mysql-bin.000021 
  104.  
  105. Slave_IO_Running: Yes 
  106.  
  107. Slave_SQL_Running: Yes 
  108.  
  109. Replicate_Do_DB: 
  110.  
  111. Replicate_Ignore_DB: 
  112.  
  113. Replicate_Do_Table: 
  114.  
  115. Replicate_Ignore_Table: 
  116.  
  117. Replicate_Wild_Do_Table: 
  118.  
  119. Replicate_Wild_Ignore_Table: mysql.%,test.% 
  120.  
  121. Last_Errno: 0 
  122.  
  123. Last_Error: 
  124.  
  125. Skip_Counter: 0 
  126.  
  127. Exec_Master_Log_Pos: 450752689 
  128.  
  129. Relay_Log_Space: 135537904 
  130.  
  131. 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 
  132.  
  133. Master_Server_Id: 111156 
  134.  
  135. Master_SSL_Crl: 
  136.  
  137. Master_SSL_Crlpath: 
  138.  
  139. Using_Gtid: No 
  140.  
  141. Gtid_IO_Pos: 
  142.  
  143. Retried_transactions: 0 
  144.  
  145. Max_relay_log_size: 1073741824 
  146.  
  147. Executed_log_entries: 106216 
  148.  
  149. Slave_received_heartbeats: 12 
  150.  
  151. Slave_heartbeat_period: 1800.000 
  152.  
  153. Gtid_Slave_Pos: 

#p#

三、MariaDB多源復(fù)制的管理

1、多源復(fù)制的管理命令

多源的復(fù)制的管理和一般的主從復(fù)制管理基本一樣,常用的命令如下,具體用途一看就明白,不在贅述:

  1. CHANGEMASTER 'connection_name'
  2.  
  3. FLUSHRELAY LOGS 'connection_name'
  4.  
  5. RESETSLAVE 'connection_name'
  6.  
  7. RESETSLAVE 'connection_name' ALL
  8.  
  9. SHOWRELAYLOG 'connection_name' EVENTS; 
  10.  
  11. SHOWSLAVE 'connection_name' STATUS; 
  12.  
  13. SHOW ALLSLAVES STATUS; 
  14.  
  15. STARTSLAVE 'connection_name'
  16.  
  17. START ALLSLAVES; 
  18.  
  19. STOPSLAVE 'connection_name'
  20.  
  21. STOP ALLSLAVES; 

2、多源復(fù)制新添加的狀態(tài)和變量

  • Show global status中的新變量: Com_start_all_slaves執(zhí)行 START ALL SLAVES 命令的次數(shù)。
  •  
  • Com_start_slave 執(zhí)行 START SLAVE 命令的次數(shù)。取代了Com_slave_start.
  •  
  • Com_stop_slave 執(zhí)行 STOP SLAVE 命令的次數(shù)。取代了Com_slave_stop.
  •  
  • Com_stop_all_slaves 執(zhí)行 STOP ALL SLAVES 命令的次數(shù)
  •  
  • SHOW ALL SLAVES STATUS 有以下的新的列:
  •  
  • Connection_name master的連接名。 這是第一個(gè)變量
  •  
  • Slave_SQL_State SQL 線程的狀態(tài)
  •  
  • Retried_transactions這個(gè)連接重試事務(wù)的次數(shù)。
  •  
  • Max_relay_log_size 這個(gè)連接的最大的relay日志的大小。
  •  
  • Executed_log_entriesslave已經(jīng)指向了多少個(gè)日志條目。
  •  
  • Slave_received_heartbeats從master獲得了多少個(gè)心跳。
  •  
  • Slave_heartbeat_period多久從master請(qǐng)求一個(gè)心跳包(以秒計(jì)算)。

3、多源復(fù)制中增加的新文件

被多源復(fù)制使用的新文件的基本準(zhǔn)則是:他們有在擴(kuò)展名前被冠以連接名前綴的和原來(lái)的中繼日志文件類似的名字。主要的例外是,保存所有連接名字的文件master-info-file 被簡(jiǎn)單的命名為帶有 multi- 前綴的 master-info-file 。當(dāng)你使用多源復(fù)制的時(shí)候,下面的文件將被創(chuàng)建:

  • multi-master-info-file master-info-file (一般是master.info) 帶上了 multi- 前綴。這里面是所有使用中的master連接信息。
  • master-info-file-connection_name.extension包含了當(dāng)前master應(yīng)用到slave的位置。擴(kuò)展名一般是 .info
  • relay-log-connection_name.xxxxxrelay-log 有了一個(gè) connection_name 的前綴. xxxxx 是 relay log 的編號(hào)。這里面保存的是從master讀取的復(fù)制數(shù)據(jù)。
  • relay-log-index-connection_name.extension包含可用的 relay-log-connection_name.xxxxx 文件的名字。擴(kuò)展名一般是 .index
  • relay-log-info-file-connection_name.extension包含relay日志中的當(dāng)前master的位置。擴(kuò)展名一般是 .info

當(dāng)創(chuàng)建這些文件的時(shí)候,連接名被轉(zhuǎn)化成小寫的,并且其中所有的特殊字符都被轉(zhuǎn)化了,就和mysql表名中的特殊字符被轉(zhuǎn)化一樣。這樣做是為了方便文件名可以在不同系統(tǒng)上移植。

提示:

你只需要指定log-base-name ,所有的其他變量將會(huì)使用這個(gè)作為前綴,而不用為mysqld指定relay-log, relay-log-index,general-log, slow-log, log-bin, log-bin-index這些的名字。

其他事項(xiàng)

所有slave的錯(cuò)誤信息都會(huì)加上connection name,然后被寫入到error log,ER_MASTER_INFO和WARN_NO_MASTER_INFO現(xiàn)在會(huì)加上connection_name,這里沒(méi)有沖突的解決方案,我們假設(shè)所有的master之間沒(méi)有沖突。所有執(zhí)行的命令都被存儲(chǔ)在正常的binary log里面。如果你server variable log_warnings>1,那么你就會(huì)收到一些multi-master-info文件更新的信息。showslave status;看見(jiàn)的第一行是增加的,叫做connection_name。reset slave命令現(xiàn)在會(huì)刪除所有的relay-log文件。

4、多源復(fù)制的典型案例和使用限制

典型的使用案例:

  • 將多個(gè)master的數(shù)據(jù)整合到一個(gè)slave上,方面查詢分析。
  • 將多個(gè)mariadb/mysql服務(wù)器的數(shù)據(jù)整合到一個(gè)slave,方便備份。

受限的事項(xiàng):

  • 一個(gè)slave最多可以有64個(gè)master;
  • 每個(gè)活躍的連接會(huì)創(chuàng)建兩個(gè)線程(和mariadb復(fù)制相同);
  • 你需要確認(rèn)所有的master需要有不同的server-id;
  • max_relay_log_size在啟動(dòng)后修改是不能生效的;
  • innodb-recovery-update-relay-log值對(duì)默認(rèn)的復(fù)制連接生效,這個(gè)參數(shù)是xtradb的特新用來(lái)存儲(chǔ)relaylog的位置號(hào)。但是這個(gè)方案存在安全隱患,我們不推薦使用;
  • Slave_net_timeout對(duì)所有參數(shù)有效,我們不檢查它是否小于Slave_heartbeat_period,因?yàn)閷?duì)多主復(fù)制來(lái)說(shuō)沒(méi)有特別意義;
  • multi-source現(xiàn)在還不支持semisync。

5、MariaDB多源復(fù)制跳過(guò)復(fù)制錯(cuò)誤的處理

MariaDB多源復(fù)制其中的一個(gè)復(fù)制同步失敗不會(huì)影響其他的復(fù)制,那么怎么處理其中的一個(gè)復(fù)制失敗那?簡(jiǎn)單的處理就是跳過(guò)失敗的報(bào)錯(cuò)。跳過(guò)報(bào)錯(cuò)信息和一般的復(fù)制還是有點(diǎn)區(qū)別的。如其中的一個(gè)復(fù)制名字為r1,想要r1同步正常,則需要忽略即跳過(guò)該錯(cuò)誤。

  1. MariaDB[r1]> stop slave 'r1'
  2.  
  3. Query OK,0 rows affected (0.12 sec) 
  4.  
  5. MariaDB[r1]> set @@default_master_connection='r1'; #這里是重點(diǎn):指定一個(gè)通道,然后用單通道的sql_slave_skip_counter。 
  6.  
  7. Query OK,0 rows affected (0.00 sec) 
  8.  
  9. MariaDB[r1]> select @@default_master_connection; 
  10.  
  11. +-----------------------------+ 
  12.  
  13. |@@default_master_connection | 
  14.  
  15. +-----------------------------+ 
  16.  
  17. | r1 | 
  18.  
  19. +-----------------------------+ 
  20.  
  21. 1 row inset (0.00 sec) 
  22.  
  23. MariaDB[r1]> SET GLOBAL sql_slave_skip_counter =1; 
  24.  
  25. Query OK,0 rows affected (0.00 sec) 
  26.  
  27. MariaDB[r1]> start slave 'r1'
  28.  
  29. Query OK,0 rows affected (0.00 sec)

 

責(zé)任編輯:Ophira 來(lái)源: 51CTO
相關(guān)推薦

2015-07-29 13:46:27

OpenStackIcehouse私有云實(shí)戰(zhàn)部署

2015-05-15 10:04:28

localhost

2015-04-08 14:44:40

2014-10-15 16:32:43

MapReducehadoop

2015-04-13 11:34:56

Windows DocNano ServerPaaS

2015-04-21 09:58:09

Azure混合云實(shí)例級(jí)公共IP

2015-06-17 09:34:09

軟件定義存儲(chǔ) 云存儲(chǔ)

2015-07-01 10:25:07

Docker開(kāi)源項(xiàng)目容器

2014-12-12 10:46:55

Azure地緣組affinitygro

2015-06-15 13:06:23

項(xiàng)目項(xiàng)目經(jīng)驗(yàn)

2015-09-29 10:26:51

pythonlogging模塊

2015-03-16 13:44:34

Multi-Site site-2-site微軟Azure

2015-04-28 17:16:12

Linux遠(yuǎn)程登錄詳細(xì)配置

2015-04-21 09:28:58

ockerdocker監(jiān)控平臺(tái)監(jiān)控

2014-12-01 10:33:51

Python

2013-10-12 09:45:23

甲骨文MySQLMariaDB

2015-04-22 10:28:40

2015-01-27 10:01:25

2013-11-26 16:32:03

MYSQLMYSQL配置

2015-03-02 09:22:09

Javascript函數(shù)用法apply
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)