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里存储的位置