数据备份与恢复

3.数据备份与恢复
问题
本案例要求熟悉MySQL的备份与恢复,完成以下任务操作:
1)使用mysqldump备份数据库
2)使用mysql 恢复数据库
步骤
实现此案例需要按照如下步骤进行。
步骤一:使用mysqldump进行逻辑备份
1)备份MySQL服务器上的所有库
将所有的库备份为mysql-all.sql文件:
[root@dbsvr1 ~]# mysqldump -u root -p --all-databases > /root/alldb.sql
Enter password: //验证口令
[root@dbsvr1 mysql]# file /root/alldb.sql //确认备份文件类型
/root/alldb.sql: UTF-8 Unicode English text, with very long lines
查看备份文件alldb.sql的部分内容:
[root@dbsvr1 ~]# grep -vE ‘/|-|^KaTeX parse error: Expected 'EOF', got '#' at position 1045: …[root@dbsvr1 ~]#̲ mysqldump -u r…’ /root/userdb.sql
DROP TABLE IF EXISTS userlist;
CREATE TABLE userlist (
sn int(4) NOT NULL AUTO_INCREMENT,
username varchar(24) NOT NULL,
password varchar(48) DEFAULT ‘x’,
uid int(5) NOT NULL,
gid int(5) NOT NULL,
fullname varchar(48) DEFAULT NULL,
homedir varchar(64) NOT NULL,
shell varchar(24) NOT NULL,
) ENGINE=InnoDB AUTO_INCREMENT=36 DEFAULT CHARSET=utf8;
LOCK TABLES userlist WRITE;
… …
3)同时备份指定的多个库
同时备份mysql、test、userdb库,保存为mysql+test+userdb.sql文件:
[root@dbsvr1 ~]# mysqldump -u root -p -B mysql test userdb > mysql+test+userdb.sql
Enter password: //验证口令
查看备份文件userdb.sql的部分内容:
[root@dbsvr1 ~]# grep ‘^CREATE DATA’ /root/mysql+test+userdb.sql
CREATE DATABASE /!32312 IF NOT EXISTS/ mysql /!40100 DEFAULT CHARACTER SET utf8 /;
CREATE DATABASE /
!32312 IF NOT EXISTS
/ test /!40100 DEFAULT CHARACTER SET utf8 /;
CREATE DATABASE /
!32312 IF NOT EXISTS
/ userdb /*!40100 DEFAULT CHARACTER SET utf8 */;
步骤二:使用mysql命令从备份中恢复数据库、表
以恢复userdb库为例,可参考下列操作。通常不建议直接覆盖旧库,而是采用建立新库并导入逻辑备份的方式执行恢复,待新库正常后即可废弃或删除旧库。
1)创建名为userdb2的新库
mysql> CREATE DATABASE userdb2;
Query OK, 1 row affected (0.00 sec)
2)导入备份文件,在新库中重建表及数据
[root@dbsvr1 ~]# mysql -u root -p userdb2 < /root/userdb.sql
Enter password: //验证口令
3)确认新库正常,启用新库
mysql> USE userdb2; //切换到新库
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> SELECT sn,username,uid,gid,homedir //查询数据,确认可用
-> FROM userlist LIMIT 10;
±—±--------------±----±----±-----------------------+
| sn | username | uid | gid | homedir |
±—±--------------±----±----±-----------------------+
| 1 | abrt | 173 | 173 | /etc/abrt |
| 2 | adm | 3 | 4 | /var/adm |
| 3 | apache | 48 | 48 | /var/www |
| 4 | avahi-autoipd | 170 | 170 | /var/lib/avahi-autoipd |
| 5 | bin | 1 | 1 | /bin |
| 6 | daemon | 2 | 2 | /sbin |
| 7 | dbus | 81 | 81 | / |
| 8 | ftp | 14 | 50 | /var/ftp |
| 9 | games | 12 | 100 | /usr/games |
| 10 | gdm | 42 | 42 | /var/lib/gdm |
±—±--------------±----±----±-----------------------+
10 rows in set (0.00 sec)
4)废弃或删除旧库
mysql> DROP DATABASE userdb;
Query OK, 2 rows affected (0.09 sec)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

董筱杰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值