备份

概念

备份是将一台服务器的数据,进行复制到另外一台或者多台服务器上的过程,虽然可以通过强化硬件来保证数据安全,但是如果因为宕机出现的数据丢失问题,在没有备份的情况下,无法恢复数据,所以备份可以有效避免数据丢失问题

备份的方式

1、mysqldump

备份库中多表 mysqldump -u user -p密码 要备份的库 要备份的表 表1 表2 > /path

备份多个库 mysqldump -u user -p密码 -B 要备份的库 库1 库2 > /path

option选项: -R:只导出存储过程和函数 -d:只备份表结构,不备份表数据 -t:只备份表数据,不备份表结构 -A:备份所有库 -B:备份多个库

[root@localhost ~]# mysqldump -u root cyj > /root/cyj.bak.sql /*备份cyj数据库为root下的cyj.bak.sql

cyj.bak.sql:备份后文件中的内容前后设置了一些变量,是为了备份和恢复的两台服务器的mysql字符集能够更好的兼容数据

2、直接复制目录用来备份(不建议使用)

3、使用mysqlhotcopy进行备份(被淘汰)

用perl语言编写,用于恢复数据,等同于复制

[root@localhost ~]# yum -y install perl-DBD-MySQL
[root@localhost ~]# mysqlhotcopy -u root cyj /tmp --socket=/usr/local/mysql/mysql.sock
#因为我的sock文件不再默认路径下,使用需要单独指定sock文件

恢复数据

1)mysql -u user -p密码 要恢复的库 < /path

mysql> USE sjk1;        /*创建数据库用于还原刚才的表*/
[root@localhost ~]# mysql -uroot sjk1 < /root/cyj.bak.sql /*恢复sql文件中的内容到sjk1数据库*/
mysql> show tables;
+----------------+
| Tables_in_sjk1 |
+----------------+
| class          |
+----------------+

2)在mysql命令行中使用命令进行恢复数据

source /path

mysql> create database cyj1;    /*创建恢复库*/
mysql> use cyj1;        /*必须进入库,否则恢复失败*/
mysql> source /root/cyj.bak.sql  /*即恢复成功*/

3)通过cp或者mysqlhotcopy备份的内容直接将备份出的数据移动到数据目录下(data)即可(属主属组问题),直接查看即可

[root@localhost data]# cp  -R /tmp/cyj /usr/local/mysql/data/

评论




正在载入...
PoweredHexo
HostedAliyun
DNSAliyun
ThemeVolantis
UV
PV
BY-NC-SA 4.0