达梦数据库备份恢复2

目录

基于时间点备份恢复

基于LSN备份恢复

增量备份恢复(利用整个全备和增量备)

增量备份恢复(利用整个全备和部分增量备)

基于时间点备份恢复

测试用例名称

基于时间点备份恢复

测试用例标识

测试用例说明(方法、目的)

测试基于时间点对数据库进行备份、恢复

前置条件

配置dmarch.ini,内容如下:

[ARCHIVE_LOCAL1]

ARCH_TYPE     = LOCAL       #归档类型 LOCAL/REALTIME

ARCH_DEST     = /dmarch     #归档目标路径

ARCH_FILE_SIZE = 128        #归档文件大小,单位Mb,缺省128M

ARCH_SPACE_LIMIT        = 10240

打开dm.ini中的归档开关:ARCH_INI=1

重启数据库服务器

测试执行步骤

序号

测试输入

预期结果

1

--建表,并插入数据

SQL> create table tab1(col1 int,col2 varchar2(10)) ;

SQL> set time on

10:18:10 SQL> insert into tab1 values(1,'a') ;

10:18:26 SQL> insert into tab1 values(2,'b') ;

10:18:39 SQL> commit ;

10:18:41 SQL> select * from tab1 ;

LINEID     COL1        COL2

---------- ----------- ----

1          1           a

2          2           b

执行成功

2

--备份表:

10:18:50 SQL> backup database backupset '/dmbak/db_full_lsn' ;

执行成功

在/dmbak/ db_full_lsn路径下生成文件db_full_lsn_1.bak、db_full_lsn.bak和db_full_lsn.meta

3

--插入数据:

10:23:57 SQL> insert into tab1 values(3,'c') ;

10:24:12 SQL> commit ;

10:24:21 SQL> alter system switch logfile ;

10:24:33 SQL> select sysdate ;

LINEID     SYSDATE           

---------- -------------------

1          2022-04-18 10:24:38

10:24:38 SQL> select file_lsn from v$rlog ;

LINEID     FILE_LSN           

---------- --------------------

1          112374

4

--truncate表TAB1:

10:25:34 SQL> truncate table tab1 ;

执行成功

4

--关闭数据库,执行表还原:

$ service DmServicedmserver stop

$ dmrman

RMAN> restore database '/dmdata/DAMENG/dm.ini' from backupset '/dmbak/db_full_lsn';

RMAN> recover database '/dmdata/DAMENG/dm.ini' with archivedir '/dmarch' until time '2022-04-18 10:24:38';

RMAN> recover database '/dmdata/DAMENG/dm.ini' update db_magic ;

5

--开库,查询表TAB1:

$ service DmServicedmserver start

$ disql SYSDBA/SYSDBA

SQL> select * from tab1 ;

LINEID     COL1        COL2

---------- ----------- ----

1          1           a

2          2           b

3          3           c

查询到truncate之前,备份集之后的数据

备注

清除测试环境:

drop table tab1 ;

基于LSN备份恢复

测试用例名称

基于LSN备份恢复

测试用例标识

测试用例说明(方法、目的)

测试基于LSN对数据库进行备份、恢复

前置条件

配置dmarch.ini,内容如下:

[ARCHIVE_LOCAL1]

ARCH_TYPE     = LOCAL       #归档类型 LOCAL/REALTIME

ARCH_DEST     = /dmarch     #归档目标路径

ARCH_FILE_SIZE = 128        #归档文件大小,单位Mb,缺省128M

ARCH_SPACE_LIMIT        = 10240

打开dm.ini中的归档开关:ARCH_INI=1

重启数据库服务器

测试执行步骤

序号

测试输入

预期结果

1

--建表,并插入数据

11:22:21 SQL> create table tab1(col1 int,col2 varchar2(10)) ;

11:22:31 SQL> insert into tab1 values(1,'a') ;

11:22:42 SQL> insert into tab1 values(2,'b') ;

11:22:46 SQL> commit ;

11:22:49 SQL> select * from tab1 ;

LINEID     COL1        COL2

---------- ----------- ----

1          1           a

2          2           b

执行成功

2

--备份表:

11:22:53 SQL> backup database backupset '/dmbak/db_full_lsn1' ;

执行成功

在/dmbak/ db_full_lsn1路径下生成文件db_full_lsn1_1.bak、db_full_lsn1.bak和db_full_lsn1.meta

3

--插入数据:

11:24:36 SQL> insert into tab1 values(3,'c') ;

11:24:40 SQL> commit ;

11:24:43 SQL> alter system switch logfile ;

11:24:47 SQL> select sysdate ;

LINEID     SYSDATE           

---------- -------------------

1          2022-04-18 11:24:51

11:24:51 SQL> select file_lsn from v$rlog ;

LINEID     FILE_LSN            

---------- --------------------

1          114908

4

--truncate表TAB1:

11:25:54 SQL> truncate table tab1 ;

执行成功

5

--关闭数据库,执行表还原:

$ service DmServicedmserver stop

$ dmrman

RMAN> restore database '/dmdata/DAMENG/dm.ini' from backupset '/dmbak/db_full_lsn1';

RMAN> recover database '/dmdata/DAMENG/dm.ini' with archivedir '/dmarch' until lsn 114908;

RMAN> recover database '/dmdata/DAMENG/dm.ini' update db_magic ;

6

--开库,查询表TAB1:

$ service DmServicedmserver start

$ disql SYSDBA/SYSDBA

SQL> select * from tab1 ;

LINEID     COL1        COL2

---------- ----------- ----

1          1           a

2          2           b

3          3           c

查询到truncate之前,备份集之后的数据

备注

清除测试环境:

drop table tab1 ;

增量备份恢复(利用整个全备和增量备)

测试用例名称

增量备份恢复

测试用例标识

测试用例说明(方法、目的)

测试数据库产品是否提供数据增量备份/恢复功能

前置条件

配置dmarch.ini,内容如下:

[ARCHIVE_LOCAL1]

ARCH_TYPE     = LOCAL       #归档类型 LOCAL/REALTIME

ARCH_DEST     = /dmarch     #归档目标路径

ARCH_FILE_SIZE = 128        #归档文件大小,单位Mb,缺省128M

ARCH_SPACE_LIMIT        = 10240

打开dm.ini中的归档开关:ARCH_INI=1

重启数据库服务器

测试执行步骤

序号

测试输入

预期结果

1

建表,并插入数据

create table tab1(col1 int) ;

insert into tab1 values(1) ;

commit ;

执行成功

2

执行联机完全备份数据库:

backup database full backupset '/dmbak/dm_full' ;

备份成功

3

继续向tab1表插入数据:

insert into tab1 values(2) ;

insert into tab1 values(3) ;

commit ;

执行成功

4

执行联机增量备份数据库:

backup database increment with backupdir '/dmbak/dm_full' backupset '/dmbak/dm_inc'

备份成功

5

删除表:

drop table tab1 ;

执行成功

6

停止数据库服务,执行脱机还原:

$ dmrman

RMAN> restore database '/dmdata/DAMENG/dm.ini' from backupset '/dmbak/dm_inc';

RMAN> recover database '/dmdata/DAMENG/dm.ini' from backupset '/dmbak/dm_inc'  ;

RMAN> recover database '/dmdata/DAMENG/dm.ini' update db_magic ;

还原成功

7

启动数据库服务,查询表tab1:

SQL> select * from tab1 ;

LINEID     COL1      

---------- -----------

1          1

2          2

3          3

返回结果集:

说明数据库成功还原到了做增量备份时的状态

备注

清除测试环境:

drop table tab1 ;

增量备份恢复(利用整个全备和部分增量备)

测试用例名称

增量备份恢复

测试用例标识

测试用例说明(方法、目的)

测试数据库产品是否提供数据增量备份/恢复功能

前置条件

配置dmarch.ini,内容如下:

[ARCHIVE_LOCAL1]

ARCH_TYPE     = LOCAL       #归档类型 LOCAL/REALTIME

ARCH_DEST     = /dmarch     #归档目标路径

ARCH_FILE_SIZE = 128        #归档文件大小,单位Mb,缺省128M

ARCH_SPACE_LIMIT        = 10240

打开dm.ini中的归档开关:ARCH_INI=1

重启数据库服务器

测试执行步骤

序号

测试输入

预期结果

1

建表,并插入数据

create table tab1(col1 int) ;

insert into tab1 values(1) ;

commit ;

执行成功

2

执行联机完全备份数据库:

backup database full backupset '/dmbak/dm_full1' ;

备份成功

3

继续向tab1表插入数据:

insert into tab1 values(2) ;

commit ;

select file_lsn from v$rlog ;

LINEID     FILE_LSN            

---------- --------------------

  1. 3256

insert into tab1 values(3) ;

commit ;

执行成功

4

执行联机增量备份数据库:

backup database increment with backupdir '/dmbak/dm_full1' backupset '/dmbak/dm_inc1'

备份成功

5

删除表:

drop table tab1 ;

执行成功

6

停止数据库服务,执行脱机还原:

$ dmrman

RMAN> restore database '/dmdata/DAMENG/dm.ini' from backupset '/dmbak/dm_full1';

RMAN> recover database '/dmdata/DAMENG/dm.ini' with archivedir '/dmarch' until lsn 31256;

RMAN> recover database '/dmdata/DAMENG/dm.ini' update db_magic ;

还原成功

因为要还原到全备之后增量备之前,所以需要restore到全备,然后利用归档恢复到指定点

7

启动数据库服务,查询表tab1:

SQL> select * from tab1 ;

LINEID     COL1      

---------- -----------

1          1

2          2

返回结果集:

说明数据库成功还原到了固定LSN号

备注

清除测试环境:

drop table tab1 ;

达梦社区地址:https://eco.dameng.com

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据库支持两种备份方式:在线备份和离线备份。下面分别介绍这两种备份方式的恢复操作: 1. 在线备份恢复: 在线备份是在数据库运行期间,通过数据库管理工具进行备份恢复时需要使用数据库管理工具来进行恢复操作。 步骤如下: (1)打开数据库管理工具,在主界面点击“数据库管理”按钮,进入数据库管理界面。 (2)选择要恢复数据库,点击“备份/恢复”按钮,进入备份/恢复界面。 (3)在备份/恢复界面,选择要恢复备份文件,点击“恢复”按钮,等待恢复完成即可。 2. 离线备份恢复: 离线备份是在数据库关闭后,通过操作系统或者文件系统进行备份恢复时需要使用数据库恢复工具进行恢复操作。 步骤如下: (1)下载数据库恢复工具,解压到本地目录中。 (2)关闭要恢复数据库,将离线备份文件拷贝到恢复工具所在目录中。 (3)打开命令行窗口,进入恢复工具所在目录,执行以下命令进行恢复操作: ``` dmrec recover -s old_db_name -n new_db_name -f backup_file_name ``` 其中,old_db_name 是原数据库名称,new_db_name 是恢复后的数据库名称,backup_file_name 是备份文件名。 (4)等待恢复完成,检查恢复结果是否正确。 以上是数据库在线备份和离线备份恢复操作,需要注意备份文件的正确性和恢复操作的安全性,以免造成数据丢失或者损坏。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值