亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MySQL5.6基于GTID的主從復(fù)制

 更新時間:2016年02月19日 14:45:21   投稿:lijiao  
這篇文章主要介紹了MySQL5.6基于GTID的主從復(fù)制的相關(guān)資料,需要的朋友可以參考下

MySQL 5.6 的新特性之一,是加入了全局事務(wù) ID (GTID) 來強化數(shù)據(jù)庫的主備一致性,故障恢復(fù),以及容錯能力。

什么是GTID?

官方文檔:http://dev.mysql.com/doc/refman/5.6/en/replication-gtids.html在這篇文檔里,我們可以知道全局事務(wù) ID 的官方定義是:GTID = source_id:transaction_id

MySQL 5.6 中,每一個 GTID 代表一個數(shù)據(jù)庫事務(wù)。在上面的定義中,source_id 表示執(zhí)行事務(wù)的主庫 uuid(server_uuid),transaction_id 是一個從 1 開始的自增計數(shù),表示在這個主庫上執(zhí)行的第 n 個事務(wù)。MySQL 會保證事務(wù)與 GTID 之間的 1 : 1 映射。

一、環(huán)境準備

操作系統(tǒng):CentOS6.5 64位

數(shù)據(jù)庫版本:MySQL5.6.23

拓撲如下:

三、安裝主數(shù)據(jù)庫(masterdb.example.com)

1、準備數(shù)據(jù)存放目錄、創(chuàng)建用戶

[root@masterdb ~]#mkdir /data/mysqldata -p #創(chuàng)建數(shù)據(jù)存放目錄
[root@masterdb ~]#mkdir /data/mysqlLog/logs -p #創(chuàng)建日志存放目錄
[root@masterdb ~]#groupadd -r mysql
[root@masterdb ~]#useradd -g mysql -r -s /sbin/nologin -M -d /data/mysqldata mysql
[root@masterdb ~]#chown -R mysql:mysql /data/mysqldata
[root@masterdb ~]#chown -R mysql:mysql /data/mysqlLog/logs

 2、安裝并初始化mysql5.6.23

[root@masterdb ~]# tar xf mysql-advanced-5.6.23-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
[root@masterdb ~]# cd /usr/local/
[root@masterdb ~]# ln -sv mysql-advanced-5.6.23-linux-glibc2.5-x86_64 mysql
[root@masterdb ~]# chown -R root.mysql mysql
[root@masterdb ~]# cd mysql
[root@masterdb ~]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
[root@masterdb ~]# cp support-files/my-default.cnf /etc/my.cnf
[root@masterdb ~]# chmod +x /etc/rc.d/init.d/mysqld
[root@masterdb ~]# chkconfig --add mysqld
[root@masterdb ~]# chkconfig mysqld on
[root@masterdb ~]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysqldata/ 

3、輸出mysql的man手冊至man命令的查找路徑:

編輯/etc/man.config,添加如下行即可:
MANPATH  /usr/local/mysql/man

4、輸出mysql的頭文件至系統(tǒng)頭文件路徑/usr/include:

這可以通過簡單的創(chuàng)建鏈接實現(xiàn):

[root@masterdb ~]#ln -sv /usr/local/mysql/include /usr/include/mysql

5、輸出mysql的庫文件給系統(tǒng)庫查找路徑:

[root@masterdb ~]#echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf

而后讓系統(tǒng)重新載入系統(tǒng)庫:

[root@masterdb ~]# ldconfig

6、修改PATH環(huán)境變量,讓系統(tǒng)可以直接使用mysql的相關(guān)命令:

[root@masterdb ~]# vim /etc/profile.d/mysql.sh
export PATH=$PATH:/usr/local/mysql/bin
[root@masterdb ~]#source /etc/profile.d/mysql.sh

從數(shù)據(jù)庫安裝同上,具體過程略過。

四、分別為主從數(shù)據(jù)庫提供配置文件/etc/my.cnf

要在MySQL 5.6中使用復(fù)制功能,其服務(wù)配置段[mysqld]中于少應(yīng)該定義如下選項:
binlog-format:二進制日志的格式,有row、statement和mixed幾種類型;
需要注意的是:當設(shè)置隔離級別為READ-COMMITED必須設(shè)置二進制日志格式為ROW,現(xiàn)在MySQL官方認為STATEMENT這個已經(jīng)不再適合繼續(xù)使用;但mixed類型在默認的事務(wù)隔離級別下,可能會導(dǎo)致主從數(shù)據(jù)不一致;
log-slave-updates、gtid-mode、enforce-gtid-consistency、report-port和report-host:用于啟動GTID及滿足附屬的其它需求;
master-info-repository和relay-log-info-repository:啟用此兩項,可用于實現(xiàn)在崩潰時保證二進制及從服務(wù)器安全的功能;
sync-master-info:啟用之可確保無信息丟失;
slave-paralles-workers:設(shè)定從服務(wù)器的SQL線程數(shù);0表示關(guān)閉多線程復(fù)制功能;
binlog-checksum、master-verify-checksum和slave-sql-verify-checksum:啟用復(fù)制有關(guān)的所有校驗功能;
binlog-rows-query-log-events:啟用之可用于在二進制日志記錄事件相關(guān)的信息,可降低故障排除的復(fù)雜度;
log-bin:啟用二進制日志,這是保證復(fù)制功能的基本前提;
server-id:同一個復(fù)制拓撲中的所有服務(wù)器的id號必須惟一;

主數(shù)據(jù)庫上:

[client]
port = 3306
socket = /tmp/mysql.sock
default-character-set = utf8
[mysql]
no-auto-rehash
default-character-set = utf8

[mysqld]
server-id = 1
port = 3306
user = mysql
basedir = /usr/local/mysql
datadir = /data/mysqldata
socket = /tmp/mysql.sock
default-storage-engine = INNODB
character-set-server = utf8
connect_timeout = 60
interactive_timeout = 28800
wait_timeout = 28800
back_log = 500
event_scheduler = ON
skip_name_resolve = ON;

###########binlog##########
log-bin = /data/mysqlLog/logs/mysql-bin
binlog_format = row
max_binlog_size = 128M
binlog_cache_size = 2M
expire-logs-days = 5
log-slave-updates=true
gtid-mode=on
enforce-gtid-consistency=true
master-info-repository=TABLE
relay-log-info-repository=TABLE
sync-master-info=1
slave-parallel-workers=4
#rpl_semi_sync_master_enabled = 1

slow_query_log = 1
slow_query_log_file = /data/mysqlLog/logs/mysql.slow
long_query_time = 1

log_error = /data/mysqlLog/logs/error.log
max_connections = 3000
max_connect_errors = 32767
log_bin_trust_function_creators = 1
transaction_isolation = READ-COMMITTED

從數(shù)據(jù)庫上:

[client]
port = 3306
socket = /tmp/mysql.sock
default-character-set = utf8

[mysql]
no-auto-rehash
default-character-set = utf8

[mysqld]
server-id = 205
port = 3306
user = mysql
basedir = /usr/local/mysql
datadir = /data/mysqldata
socket = /tmp/mysql.sock
default-storage-engine = INNODB
character-set-server = utf8
connect_timeout = 60
wait_timeout = 18000
back_log = 500
event_scheduler = ON

###########binlog##########
log-bin = /data/mysqlLog/logs/mysql-bin
binlog_format = row
max_binlog_size = 128M
binlog_cache_size = 2M
expire-logs-days = 5
log-slave-updates=true
gtid-mode=on 
enforce-gtid-consistency=true
master-info-repository=TABLE
relay-log-info-repository=TABLE
sync-master-info=1
slave-parallel-workers=4
#rpl_semi_sync_slave_enabled = 1
skip-slave-start

slow_query_log = 1
slow_query_log_file = /data/mysqlLog/logs/mysql.slow
long_query_time = 2

log-error = /data/mysqlLog/logs/error.log
max_connections = 3000
max_connect_errors = 10000
log_bin_trust_function_creators = 1
transaction_isolation = READ-COMMITTED

五、分別在主從數(shù)據(jù)庫上啟動mysqld服務(wù)

[root@masterdb ~]# service mysqld start
Starting MySQL......     [ OK ]
[root@masterdb ~]# 


[root@slavedb ~]# service mysqld start
Starting MySQL......     [ OK ]
[root@slavedb ~]# 

六、在主數(shù)據(jù)庫上創(chuàng)建復(fù)制用戶

復(fù)制代碼 代碼如下:
mysql> GRANT REPLICATION SLAVE ON *.* TO repluser@172.16.88.205 IDENTIFIED BY 'replpassword';

說明:172.16.88.205是從節(jié)點服務(wù)器;如果想一次性授權(quán)更多的節(jié)點,可以自行根據(jù)需要修改;

七、啟動從數(shù)據(jù)庫上的復(fù)制線程

mysql> CHANGE MASTER TO MASTER_HOST='masterdb.example.com', MASTER_USER='repluser', MASTER_PASSWORD='replpassword', MASTER_AUTO_POSITION=1;
mysql>start slave;

八、在從數(shù)據(jù)庫上查看復(fù)制狀態(tài)

mysql> show slave status\G;
*************************** 1. row ***************************
  Slave_IO_State: Waiting for master to send event
   Master_Host: masterdb.56xyl.com
   Master_User: repluser
   Master_Port: 3306
  Connect_Retry: 60
  Master_Log_File: mysql-bin.000002
  Read_Master_Log_Pos: 191
  Relay_Log_File: slavedb-relay-bin.000003
  Relay_Log_Pos: 401
 Relay_Master_Log_File: mysql-bin.000002
  Slave_IO_Running: Yes #IO線程已正常運行
  Slave_SQL_Running: Yes #SQL線程已正常運行
  Replicate_Do_DB: 
  Replicate_Ignore_DB: 
  Replicate_Do_Table: 
 Replicate_Ignore_Table: 
 Replicate_Wild_Do_Table: 
 Replicate_Wild_Ignore_Table: 
   Last_Errno: 0
   Last_Error: 
   Skip_Counter: 0
  Exec_Master_Log_Pos: 191
  Relay_Log_Space: 1899
  Until_Condition: None
  Until_Log_File: 
  Until_Log_Pos: 0
  Master_SSL_Allowed: No
  Master_SSL_CA_File: 
  Master_SSL_CA_Path: 
  Master_SSL_Cert: 
  Master_SSL_Cipher: 
  Master_SSL_Key: 
 Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
  Last_IO_Errno: 0
  Last_IO_Error: 
  Last_SQL_Errno: 0
  Last_SQL_Error: 
 Replicate_Ignore_Server_Ids: 
  Master_Server_Id: 1
   Master_UUID: 971d7245-c3f8-11e5-8b6b-000c2999e5a5
  Master_Info_File: mysql.slave_master_info
   SQL_Delay: 0
  SQL_Remaining_Delay: NULL
 Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
  Master_Retry_Count: 86400
   Master_Bind: 
 Last_IO_Error_Timestamp: 
 Last_SQL_Error_Timestamp: 
  Master_SSL_Crl: 
  Master_SSL_Crlpath: 
  Retrieved_Gtid_Set: 971d7245-c3f8-11e5-8b6b-000c2999e5a5:1-6
  Executed_Gtid_Set: 89e78301-c3f4-11e5-8b51-00505624d26a:1-3,
971d7245-c3f8-11e5-8b6b-000c2999e5a5:1-6
  Auto_Position: 1
1 row in set (0.00 sec)

ERROR: 
No query specified

mysql> 


九、測試

在主庫上創(chuàng)建數(shù)據(jù)庫:

mysql> create database log_statics;
Query OK, 1 row affected (0.11 sec)
 
mysql> use log_statics;
Database changed
到從數(shù)據(jù)庫上查看log_statics是否已經(jīng)復(fù)制過去
mysql> show databases;
+--------------------+
| Database  |
+--------------------+
| information_schema |
| log_statics |
| mysql  |
| performance_schema |
+--------------------+
4 rows in set (0.01 sec)

mysql>

可以看到log_statics數(shù)據(jù)庫已經(jīng)存在于從數(shù)據(jù)庫上。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助。

相關(guān)文章

  • MySQL慢查詢?nèi)罩境敿毧偨Y(jié)

    MySQL慢查詢?nèi)罩境敿毧偨Y(jié)

    mysql的慢查詢?nèi)罩臼莔ysql提供的一種日志記錄,它用來記錄在mysql中響應(yīng)時間超過閾值的語句,下面這篇文章主要給大家介紹了關(guān)于MySQL慢查詢?nèi)罩镜南嚓P(guān)資料,需要的朋友可以參考下
    2023-05-05
  • Ubuntu安裝Mysql啟用遠程連接的詳細圖文教程

    Ubuntu安裝Mysql啟用遠程連接的詳細圖文教程

    在Ubuntu系統(tǒng)中添加了MySQL賬戶,賦予了數(shù)據(jù)庫完全操作權(quán)限,并且允許數(shù)據(jù)庫從外部鏈接但是,還是無法遠程訪問MySQL數(shù)據(jù)庫,下面這篇文章主要給大家介紹了關(guān)于Ubuntu安裝Mysql啟用遠程連接的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • 詳解 MySQL的FreeList機制

    詳解 MySQL的FreeList機制

    這篇文章主要介紹了MySQL的FreeList機制的相關(guān)資料,幫助大家更好的理解和使用MySQL 數(shù)據(jù)庫,感興趣的朋友可以了解下
    2020-11-11
  • 一文介紹mysql中TINYINT取值范圍

    一文介紹mysql中TINYINT取值范圍

    本文主要介紹了mysql中TINYINT取值范圍,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 解決啟動MySQL服務(wù)時出現(xiàn)"mysql本地計算機上的MySQL服務(wù)啟動后停止"的問題

    解決啟動MySQL服務(wù)時出現(xiàn)"mysql本地計算機上的MySQL服務(wù)啟動后停止"的問題

    某一天我的MySQL啟動突然出現(xiàn)了異常:“mysql本地計算機上的MySQL服務(wù)啟動后停止,某些在未由其他服務(wù)或程序使用時將自動停止,”?,小編在網(wǎng)絡(luò)上面找了很多方法,MySQL啟動成功了,但是第二天開啟MySQL時還是出現(xiàn)了這個問題,現(xiàn)把兩種方法總結(jié)一下,需要的朋友可以參考下
    2023-11-11
  • Navicat連接MySQL時出現(xiàn)的連接失敗問題及解決

    Navicat連接MySQL時出現(xiàn)的連接失敗問題及解決

    這篇文章主要介紹了Navicat連接MySQL時出現(xiàn)的連接失敗問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • mysql 開發(fā)技巧之JOIN 更新和數(shù)據(jù)查重/去重

    mysql 開發(fā)技巧之JOIN 更新和數(shù)據(jù)查重/去重

    這篇文章主要介紹了mysql 開發(fā)技巧之JOIN 更新和數(shù)據(jù)查重/去重的相關(guān)資料,需要的朋友可以參考下
    2016-09-09
  • mysql使用GROUP BY分組實現(xiàn)取前N條記錄的方法

    mysql使用GROUP BY分組實現(xiàn)取前N條記錄的方法

    這篇文章主要介紹了mysql使用GROUP BY分組實現(xiàn)取前N條記錄的方法,結(jié)合實例形式較為詳細的分析了mysql中GROUP BY分組的相關(guān)使用技巧,需要的朋友可以參考下
    2016-06-06
  • mysql建庫時提示Specified key was too long max key length is 1000 bytes的問題的解決方法

    mysql建庫時提示Specified key was too long max key length is 1000

    本文將詳細提供mysql建庫時提示Specified key was too long max key length is 1000 bytes的問題的解決方法,有需求的朋友可以參考
    2012-11-11
  • mysql非主鍵自增長用法實例分析

    mysql非主鍵自增長用法實例分析

    這篇文章主要介紹了mysql非主鍵自增長用法,結(jié)合實例形式分析了MySQL非主鍵自增長的基本設(shè)置、使用方法與操作注意事項,需要的朋友可以參考下
    2020-02-02

最新評論