環(huán)境:
Centos7 Mysql5.7.28
服務(wù)器A IP地址192.168.10.8 A服務(wù)器已安裝配置過keepalived,且由虛擬ip10.10提供對(duì)外服務(wù)
服務(wù)器B IP地址192.168.10.9
安裝keepalived后 虛擬地址為192.168.10.10
數(shù)據(jù)庫(kù)目錄都在/var/lib/mysql
需求:
實(shí)現(xiàn)A數(shù)據(jù)庫(kù)全量遷移至數(shù)據(jù)庫(kù)B恩掷,盡可能實(shí)現(xiàn)不丟失數(shù)據(jù)藤肢,不影響運(yùn)行
步驟:
1.安裝xtrabackup,安裝時(shí)根據(jù)提示可能需要安裝依賴包
#wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.20/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.20-1.el7.x86_64.rpm
#rpm -ivh percona-xtrabackup-24-2.4.20-1.el7.x86_64.rpm
安裝完成后邀层,輸入innob夫植,按tab鍵,如果可以自動(dòng)補(bǔ)全innobackupex把沼,即說明安裝成功。
2.進(jìn)行全量備份
#innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 /mnt/bak
/mnt/bak為備份文件的目錄
3.數(shù)據(jù)還原
通過nfs掛載或者直接拷貝的方式吁伺,將全量備份的數(shù)據(jù)從8拷貝到9的/mnt/bak目錄下饮睬,然后做第一步還原預(yù)準(zhǔn)備
#innobackupex --apply-log /mnt/bak/2021xxxxx
第二步開始全量備份還原
#innobackupex --defaults-file=/etc/my.cnf --copy-back --rsync /mnt/bak/2021xxxxx
4.配置數(shù)據(jù)庫(kù)my.cnf,為數(shù)據(jù)庫(kù)主從同步做主備
在[mysqld]下添加如下配置
log-bin=mysql-bin
server_id=74 #id值可自己定義篮奄,但是主從不能一樣捆愁!
配置完成后啟動(dòng)B上數(shù)據(jù)庫(kù)
#systemctl start mysql
5.配置主從同步
在A服務(wù)器上進(jìn)入數(shù)據(jù)庫(kù)割去,配置權(quán)限
GRANT REPLICATION SLAVE ON *.* TO 'backup9'@'192.168.10.9 IDENTIFIED BY '123456'; #用戶名自己設(shè)定,密碼可能提示復(fù)雜度
flush privileges;
在B服務(wù)器上進(jìn)入數(shù)據(jù)庫(kù)配置主從
change master to master_host='192.168.10.8',master_user='backup9',master_password='123456',master_log_file='mysql_bin.000001',master_log_pos=3892;
start slave;
show slave status\G;
master_log_file和master_log_pos的值在主數(shù)據(jù)庫(kù)內(nèi)查看昼丑,根據(jù)實(shí)際填寫
查看主從狀態(tài)呻逆,出現(xiàn)如下兩個(gè)YES說明主從同步正常,如出現(xiàn)報(bào)錯(cuò)時(shí)可根據(jù)提示查找原因
6.安裝并配置keepalived
本實(shí)驗(yàn)環(huán)境菩帝,服務(wù)器A之前是安裝過keepalived的咖城,且有虛擬機(jī)IP地址對(duì)外提供服務(wù),因此只需對(duì)服務(wù)器B安裝配置keepalived呼奢,兩臺(tái)服務(wù)器配置保持一致宜雀,服務(wù)器B配置如下
! Configuration File for keepalived
global_defs {
router_id 33
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 37
priority 101
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.10.10/24
}
}
virtual_server 192.168.10.10 3306 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 50
protocol TCP
real_server 192.168.10.9 3306 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
配置完成后啟動(dòng)服務(wù)器B的keepalived
#systemclt start keepalived
狀態(tài)正常后,下一步關(guān)閉服務(wù)器A的keepalived
#systemctl stop keepalived
至此握础,完成數(shù)據(jù)庫(kù)由A服務(wù)器到B服務(wù)器的整體遷移辐董。
相關(guān):
https://www.cnblogs.com/jimmyTang-J/p/11812461.html
https://blog.csdn.net/haoding205/article/details/81459153
https://blog.csdn.net/fly910905/article/details/93721561