暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

SUNDB使用冷备恢复数据文件

原创 科蓝SUNDB编辑部 2023-10-08
45

通过冷备文件恢复丢失的数据文件(datafile)操作较为简单,将冷备数据文件拷贝至指定路径,执行RECOVER操作即可完成恢复,已提交数据不会丢失。
Step 1:冷备前加载测试表及数据

gSQL> CREATE TABLE COLD_TEST ( C1 INT, C2 DATE, C3 VARCHAR(50) );
gSQL> INSERT INTO COLD_TEST VALUES (1, sysdate, 'COLD BACKUP TEST');
gSQL> COMMIT;

Step 2:做全库冷备,实例启动后插入一条数据

gSQL> shutdown immediate 
gSQL> quit
[sunje@gs01 ~]$ pwd
/home/sunje
[sunje@gs01 ~]$ cp -r $SUNDB_DATA/ COLD_BACKUP
[sunje@gs01 ~]$ gs
gSQL> startup
gSQL> INSERT INTO COLD_TEST VALUES (2, sysdate, 'COLD BACKUP TEST');
gSQL> COMMIT;

Step 3:切换6次联机日志(redofile),模拟生产环境(该步骤可选)

gSQL> ALTER SYSTEM SWITCH LOGFILE; 
--执行6次

Step 4:再向测试表中插入两条数据

gSQL> INSERT INTO COLD_TEST VALUES (3, sysdate, 'COLD BACKUP TEST');
gSQL> COMMIT;
gSQL> INSERT INTO COLD_TEST VALUES (4, sysdate, 'COLD BACKUP TEST');

Step 5:模拟服务异常终止,同时删除数据文件(datafile)

gSQL> shutdown abort
gSQL> quit
[sunje@gs01 ~]$ cd $SUNDB_DATA
[sunje@gs01 Sundb_data]$ rm -f db/*.dbf

Step 6:拷贝冷备的数据文件至db路径下

[sunje@gs01 Sundb_data]$ pwd
/home/sunje/product/Sundb_data
[sunje@gs01 Sundb_data]$ cp /home/sunje/COLD_BACKUP/db/*.dbf db/

Step 7:启动实例并执行恢复

[sunje@gs01 Sundb_data]$ gs
gSQL> startup mount
gSQL> ALTER DATABASE RECOVER;
gSQL> ALTER SYSTEM OPEN DATABASE;
Step 8:查看数据 
gSQL> SELECT * FROM COLD_TEST;

C1 C2         C3              
-- ---------- ----------------
 1 2020-01-08 COLD BACKUP TEST
 2 2020-01-08 COLD BACKUP TEST
 3 2020-01-09 COLD BACKUP TEST

3 rows selected.

已提交数据为3条,当前表中有3条数据与预期一致,恢复完成。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论