Mariadb 10.3使用mariabackup備份進行主從搭建

mariabackup爲Mariadb在xtrabackup的基礎上新建的一個分支,默認情況已經隨mariadb安裝了。

1.主庫創建主從賬號

grant replication slave on *.* to 'repl'@'%' identified by "repl"

2.主庫使用mariabackup創建全量備份

mkdir -p /data/mariabackup
mariabackup --backup --target-dir=/data/mariabackup -S /var/lib/mysql/mysql.sock -uroot -p123456

3.準備備份數據

mariabackup --prepare --target-dir=/data/mariabackup

4.將備份數據發送到從庫
注意:從庫需要關閉mysql服務,並且會將從庫的數據全部刪除
從庫數據位置 /var/lib/mysql

cd /data/mariabackup
rsync -av . slave_hostip:/var/lib/mysql

5.從庫啓動數據庫服務
注意:啓動從庫前,需要將從庫的INNODB的配置文件與備份文件裏的backup-my.cnf裏的一直,否則可能無法啓動數據庫

# This MySQL options file was generated by innobackupex.

# The MySQL server
[mysqld]
innodb_checksum_algorithm=crc32
innodb_data_file_path=ibdata1:12M:autoextend
innodb_log_files_in_group=2
innodb_log_file_size=50331648
innodb_page_size=16384
innodb_undo_directory=./
innodb_undo_tablespaces=0

設置文件權限

chown -R mysql:mysql /var/lib/mysql/

啓動從庫

systemctl start mysql

6.從庫設置主從
查看備份文件的xtrabackup_binlog_info裏的

mysql-bin.000248        17358780        0-155-1993077

從上面我們就知道從庫設置的BINLOG文件以及起始複製位置了

change master to master_host='master_server', master_port=3306,master_user='repl',master_password='repl',MASTER_LOG_FILE='mysql-bin.000248', MASTER_LOG_POS=17358780;

注意:備份文件裏有
xtrabackup_binlog_info ---數據庫的BINLOG以及起始位置
xtrabackup_binlog_pos_innodb ---數據庫的INNODB的BINLOG以及起始位置
xtrabackup_info ---數據庫備份的信息

正常情況如果服務器的數據庫都是INNODB的存儲引擎,則xtrabackup_binlog_info和xtrabackup_binlog_pos_innodb文件是一致的,
但是如果服務器有其他存儲引擎比如說myisam,則xtrabackup_binlog_info的起始位置要比xtrabackup_binlog_pos_innodb大。因此我們選擇xtrabackup_binlog_info裏存儲的位置

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章