mysql數據庫主從操作記錄


master數據庫已投入生產一段時間后,做主從復制的操作記錄

環境:

master庫:172.18.237.13
slave庫:172.18.237.14

mysql版本說明:

master:mysql 5.6.33 

slave:mysql 5.6.35

已經裝了5.6.33版本,找了很久沒有找到5.6.33版本的包,勉強找到了5.6.35版本的包,只能硬頭皮用着(最終主從搭建成功,暫時未發現其他異常)

1、確保master、slave服務器時間同步

yum -y install ntp

ntpdate  time.pool.aliyun.com #最好使用crontab做為任務定時時間同步

systemctl start ntpd

systemctl enable ntpd

2、修改master庫my.cnf文件開啟主從配置以及bin-log,加入如下配置參數:

#開啟主從和binlog日志記錄
server-id = 52
log-bin = mysql-bin
#binlog日志定期清理,單位天。
expire_logs_days = 5
#binlog日志保存路徑和文件名,可根據實際目錄進行改寫
log-bin = /usr/local/mysql/data/binlogs/mysql-bin
#使用混合模式復制
binlog_format = mixed
#binlog每個日志文件大小
max_binlog_size = 100M
#binlog緩存大小
binlog_cache_size = 4M
#最大binlog緩存大小
max_binlog_cache_size = 512M
3、重啟master數據庫,使其主從配置生效。
service mysqld restart

/usr/local/mysql/data/binlogs/下已經存在bin-log日志表示成功開啟bin-log日志記錄

4、master數據庫授權slave服務器主從同步帳號
grant replication slave on *.* to tb@'172.18.237.14' identified by '123456';

5、鎖定主數據庫,只允許讀不許寫入。

FLUSH TABLES WITH READ LOCK;
6、再進入master數據庫,查看master狀態,查看bin-log文件名以及position點,並做記錄,slave連接master時會用到
show master status;
如:
File        | Position
mysql-bin.000001 | 120

###這里通過mysqlbinlog工具將不可直接讀取的bin-log日志轉換為可讀格式在進行查看。

###mysqlbinlog mysql-bin.000001 >abc.txt

##head -n10 abc.txt

 

7、備份master數據庫至all.sql,可排除數據庫系統庫(Database|performance_schema|information_schema|mysql|test)|也可以不排除
mysql -e "show databases;" -uroot -p| grep -Ev "Database|performance_schema|information_schema|mysql|test" | xargs mysqldump -uroot -p --databases > all.sql
8、將all.sql備份文件scp至slave服務器

scp all.sql root@172.18.237.14:/root/

9、進入slave服務器將mysql的data目錄中的文件進行備份(內容僅僅是初裝的系統庫等文件)

cp  /data/mysql56  /data/mysql56.bak

10、再用all.sql還原到slave數據庫中
mysql -uroot -p <all.sql

11、提前將bin-log日志存放目錄創建並將其所屬用戶、用戶組改為mysql,后續my.cnf配置將加入日志存放路徑

cd /usr/local/mysql/data/

mkdir binglogs

chown -R mysql:mysql binglogs

13、進入slave服務器,修改slave庫my.cnf配置文件,開啟主從模式

#不能與master的值一致
server-id = 203
#從數據庫通常要求只讀(可以限定普通用戶進行數據修改的操作,但不會限定具有super權限的用戶(如超級管理員root用戶)的數據修改操作。)
read_only=1
#還可以添加其他參數...

14、重啟slave,使其主從配置生效
service mysqld restart
15、連接master數據庫,配置master的相關參數並啟動slave(position點用上面第6步查到的點)
change master to master_host='172.18.237.13',master_user='tb',master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=120;
start slave;
16、查看主從連接狀態
show slave status\G;
如下所示表示主從創建成功:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

17、到master數據庫解鎖表

UNLOCK TABLES;

18、觀察slave狀態中的Read_Master_Log_Pos點是否在不斷的變化,若變化表示已經有新數據庫同步

show slave status\G;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM