达梦数据守护与高可用的逻辑备份还原

 一、逻辑备份、还原简介

        备份的本质就是从数据库文件中拷贝有效的数据页保存到备份集中,这里的有效数据页包括数据文件的描述页和被分配使用的数据页。而在备份的过程中,如果数据库系统还在继续运行,这期间的数据库操作并不是都会立即体现到数据文件中,而是首先以日志的形式写到归档日志中,因此,为了保证用户可以通过备份集将数据恢复到备份结束时间点的状态,就需要将备份过程中产生的归档日志也保存到备份集中。

        还原是将备份集中的有效数据页重新写入目标数据文件的过程。恢复则是指通过重做归档日志,将数据库状态恢复到备份结束时的状态;也可以恢复到指定时间点和指定 LSN。恢复结束以后,数据库中可能存在处于未提交状态的活动事务, 这些活动事务在恢复结束后的第一次数据库系统启动时,会由 DM 数据库自动进行回滚。

        逻辑备份可以选择备份数据库、表空间、归档以及表,需要注意的是,备份支持联机操作,脱机仅支持备份数据库,但还原数据库、表空间、归档时只能脱机操作,单个表可以联机还原。

二、逻辑备份还原常用指令

1、联机备份数据库(disql工具)

SQL> BACKUP DATABASE FULL BACKUPSET '/dbbak/dmbak/primary_bak' COMPRESSED;

2、联机备份表空间

SQL> BACKUP TABLESPACE MAIN FULL BACKUPSET '/dbbak/dmbak/main_space_bak' COMPRESSED;

3、联机备份归档

SQL> BACKUP ARCHIVE LOG ALL BACKUPSET '/dbbak/dmbak/arch_all_bak' COMPRESSED;

4、联机备份还原指定表

SQL> BACKUP TABLE SYSDBA.TEST BACKUPSET '/dbbak/dmbak/test_table_bak';
SQL> RESTORE TABLE SYSDBA.TEST FROM BACKUPSET '/dbbak/dmbak/test_table_bak';

5、脱机备份数据库(dmrman工具)

RMAN>BACKUP DATABASE '/dbdata/dmdata/DAMENG/dm.ini' FULL BACKUPSET '/dbbak/dmbak/db_full_bak_01';

6、脱机备份归档

RMAN>BACKUP ARCHIVE LOG DATABASE '/dbdata/dmdata/DAMENG/dm.ini';

7、脱机还原数据库

RMAN>RESTORE DATABASE '/dbdata/dmdata/DAMENG/dm.ini' FROM BACKUPSET '/dbbak/dmbak/primary_bak';
RMAN>RECOVER DATABASE '/dbdata/dmdata/DAMENG/dm.ini' FROM BACKUPSET '/dbbak/dmbak/primary_bak';
RMAN>RECOVER DATABASE '/dbdata/dmdata/DAMENG/dm.ini' UPDATE DB_MAGIC;

8、脱机还原表空间

RMAN>RESTORE DATABASE '/dbdata/dmdata/DAMENG/dm.ini' TABLESPACE MAIN FROM BACKUPSET '/dbbak/dmbak/main_space_bak';
RMAN>RECOVER DATABASE '/dbdata/dmdata/DAMENG/dm.ini' TABLESPACE MAIN;

三、主备模式下备份还原数据库

        当用户从达梦数据守护主库备份数据库后在单机库或高可用数据库还原以后,数据库会变成主库配置模式,此时,需要用户手动将还原的数据库配置成open状态。操作如下:

        首先查看待还原单机库的配置状态:

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 41.309(ms)
SQL>

        停库,执行脱机还原命令:

[dmdba@dameng105 bin]$ ./dmserverd stop
Stopping dmserverd:                                        [ OK ]
[dmdba@dameng105 bin]$ ./dmrman 
dmrman V8
RMAN> RESTORE DATABASE '/home/dmdba/dm/dmdbms/bin/dm.ini' FROM BACKUPSET '/dbbak/dmbak/primary_bak';
RESTORE DATABASE '/home/dmdba/dm/dmdbms/bin/dm.ini' FROM BACKUPSET '/dbbak/dmbak/primary_bak';
file dm.key not found, use default license!
Global parameter value of RT_HEAP_TARGET is illegal, use min value!
Global parameter value of WORK_THRD_RESERVE_SIZE is illegal, use min value!
Global parameter value of REDOS_PRE_LOAD is illegal, use default value!
Global parameter value of RAC_N_POOLS is illegal, use min value!
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
[Percent:99.83%][Speed:0.00M/s][Cost:00:00:06][Remaining:00:00:00]                                  
restore successfully.
time used: 00:00:06.694
RMAN> RECOVER DATABASE '/home/dmdba/dm/dmdbms/bin/dm.ini' FROM BACKUPSET '/dbbak/dmbak/primary_bak';
RECOVER DATABASE '/home/dmdba/dm/dmdbms/bin/dm.ini' FROM BACKUPSET '/dbbak/dmbak/primary_bak';
Global parameter value of RT_HEAP_TARGET is illegal, use min value!
Global parameter value of WORK_THRD_RESERVE_SIZE is illegal, use min value!
Global parameter value of REDOS_PRE_LOAD is illegal, use default value!
Global parameter value of RAC_N_POOLS is illegal, use min value!
Database mode = 1, oguid = 453331
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[108496], file_lsn[108496]
[Percent:100.00%][Speed:4.39PKG/s][Cost:00:00:01][Remaining:00:00:00]                               
recover successfully!
time used: 00:00:04.357
RMAN> RECOVER DATABASE '/home/dmdba/dm/dmdbms/bin/dm.ini' UPDATE DB_MAGIC;
RECOVER DATABASE '/home/dmdba/dm/dmdbms/bin/dm.ini' UPDATE DB_MAGIC;
Global parameter value of RT_HEAP_TARGET is illegal, use min value!
Global parameter value of WORK_THRD_RESERVE_SIZE is illegal, use min value!
Global parameter value of REDOS_PRE_LOAD is illegal, use default value!
Global parameter value of RAC_N_POOLS is illegal, use min value!
Database mode = 1, oguid = 453331
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[118497], file_lsn[118497]
recover successfully!
time used: 00:00:01.005

        还原恢复以后,打开disql查看数据库状态处于主库配置,此时先将数据库改为normal,然后置为open,如下:

服务器[LOCALHOST:5236]:处于主库配置状态
登录使用时间 : 4.470(ms)
SQL> alter database normal;
操作已执行
已用时间: 96.184(毫秒). 执行号:0.
SQL> exit
[dmdba@dameng105 bin]$ ./disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于普通配置状态
登录使用时间 : 1.759(ms)
disql V8
SQL> alter database open;
操作已执行
已用时间: 00:00:02.358. 执行号:0.
SQL> exit
[dmdba@dameng105 bin]$ ./disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 1.641(ms)
disql V8
SQL>

四、高可用模式下备份还原数据库

        生产环境高可用实际上是两套数据库使用一套存储,如果一台数据库出现故障,存储便会挂载到另一套数据库继续使用,需要配合操作系统的双机软件,如凝思、麒麟等厂商均有提供,当配置双机以后,数据库服务处于接管状态,此时无法执行脱机备份还原操作,此时需要先停止双机软件接管数据库服务,然后停库执行备份还原,完成以后再让双机接管数据库服务。具体操作有兴趣可以了解操作系统相关软件。

更多内容可访问达梦官方社区地址:https://eco.dameng.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值