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

YashanDB数据库备份与恢复实操

PMG 2024-07-26
248

YashanDB数据库备份与恢复

1、创建备份目录存储备份元数据信息

catalog文件文件包含记录备份集元数据信息的二进制文件,不可手动删除。若发生删除或者更换catalog路径等异常操作,可能导致无法使用yasrman恢复其包含的备份集、无法查看备份集信息等异常情况。 catalog并不绑定某个具体的数据库,但是建议为不同的数据库创建独立的catalog文件。 yasrman不支持catalog的备份和恢复,用户可以手动拷贝catalog目录进行备份,拷贝catalog时需要保证yasrman没有工作。 catalog备份集元数据信息与DB的系统表元数据信息不会自动同步,若发生过catalog迁移、重建等操作可能出现备份指定tag已存在报错。

–创建catalog
yasrman sys/pmg_123986@127.0.0.1:1688 -c “create catalog” -D /data/dbbackup

2、创建Level 0级别备份

–Level 0备份
yasrman sys/pmg_123985@127.0.0.1:1688 -c “backup database incremental level 0 format ‘/data/dbbackup/202407261708’ tag ‘202407261708’ parallelism 4 section size 1024M” -D /data/dbbackup

3、登陆数据库执行以下操作

create table t_1 as select * from dba_objects;
create table t_2 as select * from dba_objects;
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;

4、执行Level 1差异增量备份

–Level 1 增量备份
yasrman sys/pmg_123985@127.0.0.1:1688 -c “backup database incremental level 1 format ‘/data/dbbackup/202407261710’ tag ‘2024072616710’ parallelism 4 section size 1024M” -D /data/dbbackup

5、登陆数据库执行以下操作

create table t_3 as select * from dba_objects;
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;

6、执行Level 1 差异增量备份

yasrman sys/pmg_123985@127.0.0.1:1688 -c “backup database incremental level 1 format ‘/data/dbbackup/202407261711’ tag ‘202407261711’ parallelism 4 section size 1024M” -D /data/dbbackup

7、登陆数据库执行以下操作

create table t_4 as select * from dba_objects;
alter session set date_format=‘yyyy-mm-dd hh24:mi:ss’;
select now() from dual; --2024-07-26 17:12:36
drop table t_2;
alter system switch logfile;
alter system switch logfile;
alter system switch logfile;

8、恢复需求

将数据库恢复到删除t_2表之前的时间点,即将数据库恢复到2024-07-26 17:12:36时刻,将删除t_2表恢复出来。

9、查看备份集

[yashan@ydb03 dbbackup]$ yasrman sys/pmg_123985@127.0.0.1:1688 -c “list backup” -D /data/dbbackup
Group: type DB, tag: 202407261708, format: /data/dbbackup/202407261645, connect url: 127.0.0.1:1688, nodeCount: 1, distribution: FALSE, isClient: FALSE, offset: 0
backup path: /data/dbbackup/202407261645
instance: 1, archive range sequence: 18-18
scn: 590426469873250304-590430369917407232

Group: type DB, tag: 2024072616710, format: /data/dbbackup/202407261710, connect url: 127.0.0.1:1688, nodeCount: 1, distribution: FALSE, isClient: FALSE, offset: 12288
backup path: /data/dbbackup/202407261710
instance: 1, archive range sequence: 22-22
scn: 590430854627008512-590430854627008512

Group: type DB, tag: 202407261711, format: /data/dbbackup/202407261711, connect url: 127.0.0.1:1688, nodeCount: 1, distribution: FALSE, isClient: FALSE, offset: 24576
backup path: /data/dbbackup/202407261711
instance: 1, archive range sequence: 26-26
scn: 590431311327662080-590431311327662080
list backup显示的备份集中,无法区别出全量备份和增量及差异增量备份和累计增量备份。建议增加相关项以区分。通过DBA_BACKUP_SET视图可以区分。

10、恢复步骤

10.1 将数据库启动到nomount状态

在执行数据库恢复之前需要将数据库启动到nomount状态,且要删除数据文件和redo日志。
yasboot cluster clean -c yasdb -r -f -d

10.2 指定增量备份执行不完全恢复

SQL> restore database from ‘/data/dbbackup/202407261711’ parallelism 4;

Succeed.

SQL> recover database until time to_date(‘2024-07-26 17:12:36’,‘YYYY-MM-DD HH24:MI:SS’);

Succeed.

SQL> alter database open resetlogs;

Succeed.

SQL> select table_name from user_tables where table_name like ‘T%’;
TABLE_NAME

T_4
T_3
T_2
T_1
TYPEBODY$
TYPE$
TRIGGERDEP$
TRIGGERCOL$
TRIGGER$
TOID$
TABXFMR$
TABSORT$
TABPART$
TABLE_PRIVILEGE_MAP$
TABCHUNK$
TAB$
T_G_TMP
17 rows fetched.

SQL> select count(1) from t_2;

COUNT(1)

1481

注意:此处指定的为最近一次的增量备份,在恢复的时候会自动寻找最近的全量备份开始恢复,并应用中间的增量备份。
至此,数据库不完全恢复完成,t_2表成功恢复。

10.3 执定全量备份进行不完全恢复

SQL> restore database from ‘/data/dbbackup/202407261645’ parallelism 4;

Succeed.

SQL> recover database until time to_date(‘2024-07-26 17:12:36’,‘YYYY-MM-DD HH24:MI:SS’);

Succeed.

SQL> alter database open resetlogs;

Succeed.

SQL> select table_name from user_tables where table_name like ‘T%’;

TABLE_NAME

T_4
T_3
T_2
T_1
TYPEBODY$
TYPE$
TRIGGERDEP$
TRIGGERCOL$
TRIGGER$
TOID$
TABXFMRåTABSORTå TABSORT
TABPART$
TABLE_PRIVILEGE_MAP$
TABCHUNK$
TAB$
T_G_TMP

17 rows fetched.
注意:此处指定的为最近的一个全量备份,在恢复过程中会自动应用全量备份后的增量备份。

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

评论