物理备份和恢复

物理备份和恢复

物理备份不适合innodb存储引擎的表,只适合备份数据量小的,并且必须备份整个数据库。
如果只是备份某个库的话,它没有备份事务日志(它的文件路径在另一个目录),所以就不支持检索,不支持事务回滚。

备份:
cp -rp /var/lib/mysql/数据库 备份目录/文件名
tar -zcvf xxx.tar.gz /var/lib/mysql/数据库/*

恢复:
cp -rp 备份目录/文件名 /var/lib/mysql
tar -zxvf xxx.tar.gz -C /var/lib/mysql/数据库名
--------------------------------------------------------------------------------------------------------------
物理备份

50上操作:
# cp -r /var/lib/mysql /root/mysqlall.bak
# scp -r /root/mysqlall.bak/ 192.168.4.51:/root/
# mysql -uroot -p123456
mysql> show databases;

常见报错: 如果出现这个,是mysql服务没有启动的意思。
# mysql -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

解决方法: 只要启动服务就行
systemctl start mysqld
---------------------------------------------------------------
物理恢复
51上操作:
# systemctl stop mysqld
# rm -rf /var/lib/mysql
# cp -r /root/mysqlall.bak/ /var/lib/mysql
# chown -R mysql:mysql /var/lib/mysql
# systemctl start mysqld
# mysql -uroot -p123456
mysql> show databases; 可以发现它所有的库都是和50一样

常见报错:
如果没有更改/var/lib/mysql目录权限,会报错。
# systemctl start mysqld
Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.

解决方法: 让mysql对目录有权限
chown -R mysql:mysql /var/lib/mysql

 

posted @ 2019-04-29 00:52  安于夏  阅读(174)  评论(0编辑  收藏  举报