任务 4 使用逻辑备份恢复数据库
任务目的
这一步将会指导学员如何通过逻辑备份恢复数据库。这一步的操作需要借助云服务器来实现,完成这一步操作后,可以将数据库恢复至创建备份时间节点的状态。
任务步骤
1.下载备份文件
在 云数据库 MySQL控制台 中点击数据库右侧的【管理】进入管理界面,在数据库管理页面中选择【备份恢复】>【数据备份列表】,进入数据库备份列表页:
选择准备恢复的逻辑备份文件,点击【复制】按钮,复制备份文件的下载链接:
登录先前已经创建好的CVM实例,使用wget
命令下载备份文件,由于(同一区域的)CVM和云数据库在内网连通,下载任务将会在极短的时间内完成。执行下方命令进行下载(其中的下载链接需要替换为刚复制的下载链接):
wget -c '<备份文件下载链接>' -O logic_backup.xb
-O
后指定下载后保存的文件名,此处定义为logic_backup.xb
,学员若自行指定,记得在下方同步进行替换。
下载完成后,可以看到类似下方的提示信息:
2020-03-03 18:02:45 (33.6 MB/s) - ‘logic_backup.xb’ saved [411069/411069]
说明备份文件已经成功下载。
2.解包备份文件
执行下方命令,解包备份文件:
xbstream -x < logic_backup.xb
注:如果学员修改了保存的备份文件名,记得将
logic_backup.xb
替换为指定的文件名。
解包成功后,输入ls
命令,可以在当前目录下看到以.qp
后缀结尾的文件,说明解包成功:
3.提取SQL文件
执行以下命令,解压.qp
结尾的文件:
qpress -d <上一步解包出来的文件名> .
注:此处的文件名较长,学员可以输入文件名的前几个字母,然后通过
Tab
键自动补全。最后的.
表示将解压后的文件保存在当前目录,一定要保留,否则将会报错!
提取成功后,输入ls
命令,可以在当前目录下看到以.sql
后缀结尾的逻辑备份脚本文件,说明解包成功:
4.导入数据库
(1)远程登录MySQL。
执行以下命令(内网地址替换为上方获取到的内网地址),访问MySQL实例:
mysql -h <内网地址> -u root -p
输入数据库密码并按下回车完成登录。
执行下方命令,进入test数据库并查看数据库中的所有数据表:
-- 使用数据库 test
USE test;
-- 展示数据库 test 中的所有数据表
SHOW TABLES;
将会展示如下的信息:
MySQL [test]> show tables;
+----------------+
| Tables_in_test |
+----------------+
| address |
| item |
| user |
+----------------+
3 rows in set (0.003 sec)
(2)删除表(用于测试)。
执行下方命令,删除数据表user
:
-- 删除数据表 user
DROP TABLE user;
-- 展示数据库 test 中的所有数据表
SHOW TABLES;
注意:删除数据表(库)是一件非常危险的事情!在执行删除命令前一定要非常小心,尽量避免在生产环境中进行数据表的删除操作,一旦操作执行完成,表中的数据将会立即消失,如执行数据误删操作可能会造成难以估量的损失!
此时展示出来的数据库test
中,数据表user
已经被移除:
MySQL [test]> SHOW TABLES;
+----------------+
| Tables_in_test |
+----------------+
| address |
| item |
+----------------+
1 row in set (0.003 sec)
接下来要尝试通过逻辑备份来恢复数据库中的内容。
(3)使用SOURCE
命令恢复逻辑备份。
执行下方命令,通过逻辑备份恢复数据:
-- 通过逻辑备份恢复数据
SOURCE <逻辑备份文件>
注:上方的 <逻辑备份文件> 需要替换为学员提取的
.sql
后缀文件,由于在MySQL中无法自动补全,学员可以向上方翻页,复制前方提取的文件名,粘贴到此处(注意不要直接用Ctrl+V
快捷键,此命令将会退出MySQL,请使用右键进行复制)。
(4)验证删除表已经成功恢复。
执行上方的操作命令后,数据库的恢复操作将会自动进行,等待数据库恢复完毕后,执行下方命令,再次查看test数据库中的数据表,确认删除的表已经成功恢复:
-- 使用数据库 test
USE test;
-- 展示数据库 test 中的所有数据表
SHOW TABLES;
展示结果如下:
MySQL [test]> SHOW TABLES;
+----------------+
| Tables_in_test |
+----------------+
| address |
| item |
| user |
+----------------+
3 rows in set (0.003 sec)
刚才删除的表如今又能成功展示,说明使用逻辑备份恢复数据库的操作执行成功。
学员评价