mariabackup爲Mariadb在xtrabackup的基礎上新建的一個分支,默認狀況已經隨mariadb安裝了。mysql
1.主庫建立主從帳號sql
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/mysqlide
cd /data/mariabackup rsync -av . slave_hostip:/var/lib/mysql
5.從庫啓動數據庫服務
注意:啓動從庫前,須要將從庫的INNODB的配置文件與備份文件裏的backup-my.cnf裏的一直,不然可能沒法啓動數據庫spa
# 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
設置文件權限code
chown -R mysql:mysql /var/lib/mysql/
啓動從庫server
systemctl start mysql
6.從庫設置主從
查看備份文件的xtrabackup_binlog_info裏的ip
mysql-bin.000248 17358780 0-155-1993077
從上面咱們就知道從庫設置的BINLOG文件以及起始複製位置了get
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裏存儲的位置