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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql ab复制延时_Mysql的AB复制

發布時間:2023/12/10 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql ab复制延时_Mysql的AB复制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Mysql的AB復制

環境:rhel 6.5

master:192.168.2.1

slave1:192.168.2.2

slave2:192.168.2.10

1.mysql的單向復制

注: mysql數據庫的版本,兩個數據庫版本要相同,或者slave比master版本高!

yum install ?mysql-server -y

請注意當你進行復制時,所有對復制中的表的更新必須在主服務器上進行。否則,你

必須要小心,以避免用戶對主服務器上的表進行的更新與對從服務器上的表所進行的

更新之間的沖突。

master server配置

開啟mysqld服務

mysql> show master status;

+------------------+----------+--------------+------------------+

| File ? ? ? ? ? ? | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000003 | ? ? ?106 | westos ? ? ?| mysql ? ? ? ? ? ?|

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

1)創建同步帳戶,并給予權限

mysql> grant replication slave, reload, super on *.* to westos@'%' identified by 'westos';

mysql>flush privileges;

2 )配置 /etc/my.cnf配置文件

在[mysqld]下添加一下參數

log-bin=mysql-bin #啟動二進制日志系統

binlog-do-db=westos #二進制需要同步的數據庫名

server-id=1 #必須為1到232–1之間的一個正整數值

binlog-ignore-db=mysql #避免同步 mysql用戶配置,以免不必要的麻煩

3 )service mysqld restart

slave server配置

1 )配置 /etc/ my.cnf文件

在[mysqld]下添加一下參數

server-id=2 #從服務器 ID號,不要和主ID相同,如果設置多個從服務器,每個從服務器必須有一個唯一的server-id值,必須與主服務器的以及其它從服務器的不相同。可以 認為server-id值類似于IP地址:這些ID值能唯一識別復制服務器群集中的每個服務 器實例。

2 )service mysqld ? start

mysql -uwestos ?-pwestos ?-h ?192.168.2.1 #進入mysql

mysql> change master to master_host='192.168.2.1', master_user='westos', master_password='westos', master_log_file='mysql-bin.000003', master_log_pos=106; #注意跟master的日志文件,日志位置保持一致

mysql> slave start;

mysql> show slave status\G;

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 192.168.2.1

Master_User: westos

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000003

Read_Master_Log_Pos: 106

Relay_Log_File: mysqld-relay-bin.000002

Relay_Log_Pos: 251

Relay_Master_Log_File: mysql-bin.000003

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

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: 106

Relay_Log_Space: 407

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:

在master創建數據庫,創建表添加數據,看slave server是否同步

mysql> create database westos;

mysql> use westos;

mysql> create table linux(

-> username varchar(20) ?not ?null,

-> password varchar(50) ?not ?null

-> );

mysql> desc linux;

mysql> insert into linux values ('user1','123');

mysql> insert into linux values ('user2',password(123));

mysql> select * from linux;

+----------+-------------------------------------------+

| username | password ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|

+----------+-------------------------------------------+

| user1 ? ?| 123 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |

| user2 ? ?| *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |

+----------+-------------------------------------------+

slave機子上:

mysql> show databases;

mysql> select * from westos.linux; #數據同步成功

+----------+-------------------------------------------+

| username | password ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|

+----------+-------------------------------------------+

| user1 ? ?| 123 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |

| user2 ? ?| *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |

+----------+-------------------------------------------+

master上更改:

mysql> update linux set password=456;

slave上:#查看數據同步已過來

mysql> select * from westos.linux;

+----------+----------+

| username | password |

+----------+----------+

| user1 ? ?| 456 ? ? ?|

| user2 ? ?| 456 ? ? ?|

+----------+----------+

線性A- > B - > C,master - >slave1- >slave2

添加一個slave2,192.168.2.10

在slave1即node2上修改配置文件

vim /etc/my.cnf

server-id=2

添加:log-bin=mysql-bin

binlog-do-db=westos

inlog-ignore-db=mysql

log-slave-updates

/etc/init.d/mysqld ?restart #重啟mysql

授權mysql>grant replication slave, reload, super on *.* to westos@'%' identified by 'westos';

mysql> flush privileges;

在slave2即192.168.2.10上:

驗證權限 ?mysql -uwestos ?-pwestos ?-h ?192.168.2.2看能否登錄進mysql

vim /etc/my.cnf

server-id=3

/etc/init.d/mysqld ?restart #重啟mysql

在slave1上:

由于 master上已經有數據,而新加的slave2沒有,必須在配置復制前同步數據。

把westos庫里的表導入到back里

mysqldump westos > back

scp back 192.168.2.10: #把庫發給slave2

在slave2上:

mysqladmin create westos #創建westos庫

mysql westos < back #把back庫里的表導入到westos庫

mysql> show databases;

mysql> use westos;

mysql> show tables;

mysql> select * from linux;

在slave1上mysql> show master status;

+------------------+----------+--------------+------------------+

| File ? ? ? ? ? ? | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000001 | ? ? ?106 | westos ? ? ? | mysql ? ? ? ? ? ?|

+------------------+----------+--------------+------------------+

slave2上:

mysql> change master to master_host='192.168.2.2', master_user='westos', master_password='westos', master_log_file='mysql-bin.000001', master_log_pos=106

mysql> slave start;

mysql> show salve status\G; #查看狀態是否正常

現在開始測試:

在A master上mysql> delete from linux;

驗證查看B slave1和C slave2 ? mysql> select * from linux;

在A master上mysql> insert into linux values ('sxy','123');

驗證查看B slave1和C slave2 ? mysql> select * from linux;

+----------+----------+

| username | password |

+----------+----------+

| sxy ? ? ?| 123 ? ? ?|

+----------+----------+

總結

以上是生活随笔為你收集整理的mysql ab复制延时_Mysql的AB复制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。