PolarDB MySQL从表回收站中恢复误删的表
1. 选择实验资源
本实验支持实验资源体验、开通免费试用、个人账户资源三种实验资源方式。
在实验开始前,请您选择其中一种实验资源,单击确认开启实验。
- 如果您选择的是实验资源体验,资源创建过程需要3~5分钟(视资源不同开通时间有所差异,ACK等资源开通时间较长)。完成实验资源的创建后,在实验室页面左侧导航栏中,单击云产品资源列表,可查看本次实验资源相关信息(例如子用户名称、子用户密码、AK ID、AK Secret、资源中的项目名称等)。
说明:实验环境一旦开始创建则进入计时阶段,建议学员先基本了解实验具体的步骤、目的,真正开始做实验时再进行创建。
- 如果您选择的是开通免费试用,下方卡片会展示本实验支持的试用规格,可以选择你要试用的云产品资源进行开通。您在实验过程中,可以随时用右下角icon唤起试用卡片。
说明:试用云产品开通在您的个人账号下,并占用您的试用权益。如试用超出免费试用额度,可能会产生一定费用。
阿里云支持试用的产品列表、权益及具体规则说明请参考开发者试用中心。
2. 创建资源
本步骤指导您如何创建云数据库PolarDB。
如果您已创建云数据库PolarDB,请您选择个人账户资源,并跳过本小节,直接进行实验操作即可。
本步骤仅作为参考使用,您可以根据需求自行选择配置。
如果您选择的是开通免费试用,参考以下步骤云数据库PolarDB。
- 在本实验页面下方卡片会展示本实验支持的试用规格,依次选择一个试用规格,单击立即试用。
- 在云数据库PolarDB试用开通页面,根据页面引导进行开通云数据库PolarDB MySQLs,其中数据库类型选择MySQL,数据库版本号选择8.0,创建方式为主集群,其他配置根据您的需求自行选择即可。
说明:需提前创建专有网络和交换机,注意专有网络、交换机和PolarDB在同一地域下。
如果您选择的是个人账户资源,参考以下步骤云数据库PolarDB。
- 创建云数据库PolarDB。
2.1 前往云数据库PolarDB创建页面。
2.2 在云数据库PolarDB创建页面,根据页面引导进行开通云数据库PolarDB MySQL,其中数据库类型选择MySQL,数据库版本号选择8.0,创建方式为主集群,其他配置根据您的需求自行选择即可。计费问题请参考官方文档。
说明:需提前创建专有网络和交换机,注意专有网络、交换机和PolarDB在同一地域下。
3. 修改PolarDB参数
- 双击桌面Chromium网页浏览器。
- 在RAM用户登录框中单击下一步,并复制粘贴页面左上角的子用户密码到用户密码输入框,单击登录。
- 登录PolarDB控制台。
3.1 进入产品与服务模块,选择云数据库PolarDB。
3.2 点击实验上方云产品资源列表,找到目标资源所在reigon及对应的集群ID。
3.3. 找到与云产品中所对应的集群,点击集群ID,进入PolarDB基本信息页面。
- 修改参数配置。
4.1 点击左侧列表中参数配置,在界面中选择修改参数。
4.2 将loose_recycle_bin参数,修改为ON。
4.3 选择提交修改,在弹出的界面中单击确定。
4.4 可通过右上角任务,查看修改参数的任务进度。
4.5 修改完成。
4. 创建模拟数据及模拟误操作
- 创建账号。
- 点击账号管理,进入界面后创建账号。
- 账号名为testuser,密码为1234@abc,点击确定。
- 创建完成。
- 创建数据库。
- 点击数据库管理,进入界面后创建数据库。
- 数据库名称为dbtest,支持字符集为utf8mb4,单击确定。
- 创建完成。
- 登录数据库。
- 点击登录数据库。
- 输入数据库账号为testuser,密码为1234@abc。
- 点击测试连接,若弹出如下图错误,关闭此页面即可,进行登录。
- 创建模拟数据。
- 进入dbtset数据库。
- 创建一个名为students的表。
CREATE TABLE students ( id INT4, name VARCHAR(10), grade INT4, class INT4 );
- 在表中插入基础数据。
INSERT INTO students(id,name,grade,class) values (1,'Nick',5,4),(2,'Joy',4,3),(3,'Lucy',3,2),(4,'Lulu',6,1),(5,'Merry',2,4),(6,'Jason',1,5);
- 模拟误删除操作,通过以下语句误删除了students表。
DROP TABLE students;
5. 查看回收站中所有临时保存的表
- 执行如下语句,查看该集群的回收站中所有临时保存的表。
CALL DBMS_RECYCLE.show_tables();
返回结果如下图所示。
返回结果中的参数说明如下:
参数 |
说明 |
SCHEMA |
回收站的Schema。 |
TABLE |
进入回收站后的表名。 |
ORIGIN_SCHEMA |
原始表的Schema。 |
ORIGIN_TABLE |
原始表的表名。 |
RECYCLED_TIME |
回收时间。 |
PURGE_TIME |
预计在回收站中被清理的时间。 |
6. 快速恢复回收站内的某张表
- 执行如下语句,快速恢复回收站内的表。
CALL DBMS_RECYCLE.restore_table('RECYCLE_TABLE','DEST_DB','DEST_TABLE');
- 示例。
CALL DBMS_RECYCLE.restore_table('__innodb_1063','dbtest','new_students');
- 执行成功。
该语句中的参数说明如下:
参数 |
说明 |
RECYCLE_TABLE |
需要恢复的表进回收站后的表名,即步骤②查询结果中的TABLE列。 |
DEST_DB |
为恢复后的表指定目标数据库。 |
DEST_TABLE |
为恢复后的表指定新的表名。 |
7. 验证数据
- 执行如下语句,进行验证。
SELECT * FROM `new_students` ;
- 如下图所示,恢复成功。
实验链接:https://developer.aliyun.com/adc/scenario/5af6745b81e04d37b5c6f1abe7eb676d