1.全量备份和恢复
备份命令
执行全量备份命令如下
innobackupex --defaults-file=/etc/my.cnf --host=192.168.1.146 --user=root --password=123123 /backup
命令参数选项讲解:- -defaults选项指定了备份数据库的时候,从哪个配置文件中获取配置信息,这个选项的作用的是你的数据库是编译安装的时候,指定你的配置文件在哪里,如果你是默认yum安装的,那这个选项可以忽略。- -host选项指定数据库的ip地址,- -user选项指定使用哪个用户连接到数据库进行备份,- -password选项指定对应的用户的密码。后面的的目录是备份目录,意思你数据库备份要放到哪个目录下。
从上面我们可以发现,如果使用root用户,备份本机上的数据库,那么- -host选项与- -user选项都可以省略,- -password选项也可以代替为对应的短选项-p,同时,如果使用默认的配置文件,- -defaults-file选项也可以省略
简易的全量备份命令如下
innobackupex -p123123 /backup
恢复命令
如果在另一台mysql服务器恢复,则先确保安装了同样版本的mysql,并且安装了xtrabackup.
将全量备份拷贝至新的mysql服务器上
scp -r /backup/2017-04-06_21-53-13/ 192.168.1.120:/testdir/
对数据进行准备工作,合成可用的一致数据,- -use-memory选项不是必须的
innobackupex --apply-log --use-memory=4G /testdir/2017-04-06_21-53-13/
恢复命令中参数讲解:- -apply-log 选项表示将目录中的日志应用到备份数据中。如果我们的备份时长很长,那么期间备份的事务日志容量会很大,- -use-memory选项可以加速准备工作的完成,这个选项的作用是使用指定大小的内存完成准备工作。
完成准备工作之后,确定新的MySQL服务器上的mysql服务已经停止,确定对应的数据目录中没有任何文件,删除数据目录与对应的日志。
systemctl stop mysqld
rm -rf /var/lib/mysql/*
完成上述工作后,将准备好的数据还原回对应的数据目录中
innobackupex --datadir=/var/lib/mysql --copy-back /testdir/2017-04-06_21-53-13/
上述的- -datadir选项这里不讲,应该也能猜到他的作用,这里如果数据库的配置文件my.cnf里设置了datadir对应的目录,那么可以省略- -datadir选项。这里需要注意的是datadir目录必须为空目录。否则在执行上述命令时会报错。
数据还原拷贝完之后,将对应数据目录中的文件属主和属组设为mysql用户。
chown -R mysql: /var/lib/mysql/
完成上述步骤后,启动mysql服务,这里mysql利用xtrabackup进行全力备份和恢复就完成了,我们可以看到数据库数据以及恢复。
systemctl start mysqld
来源:CSDN
作者:清白之年5812
链接:https://blog.csdn.net/liu980410/article/details/103494653