达梦数据库系列—13. 数据库的备份和还原

宁睿  金牌会员 | 2024-8-18 17:04:28 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 942|帖子 942|积分 2836

目次

1、配置归档
1.1联机配置归档
手动配置归档
2、联机数据库备份
完全备份
增量备份
3、联机备份管理
添加备份目次
删除备份目次
备份信息查看
监控备份
4、脱机DMRMAN备份数据库
dmrman的配置
完全备份
增量备份
归档备份
5、脱机备份管理
备份集查看
备份集校验
备份集删除
6、还原数据库
7、数据库恢复
从备份集恢复
从归档恢复
恢复数据库到指定lsn
更新 DB_MAGIC
8、增量备份还原恢复


1、配置归档

1.1联机配置归档

修改数据库为MOUNT状态,并开启归档模式

  1. ALTER DATABASE MOUNT;
  2. ALTER DATABASE ARCHIVELOG;
复制代码
配置本地归档

  1. ALTER DATABASE ADD ARCHIVELOG 'DEST = /dmdata/dameng/arch_dsc0, TYPE = local, FILE_SIZE = 1024,SPACE_LIMIT = 2048,ARCH_FLUSH_BUF_SIZE=16,HANG_FLAG=1';
复制代码
修改数据库为OPEN状态

  1. ALTER DATABASE OPEN;
复制代码

手动配置归档


  • 手动编辑 dmarch.ini 文件
dmarch.ini 文件内容如下:
  1. [ARCHIVE_LOCAL1]
  2. ARCH_TYPE = LOCAL
  3. ARCH_DEST = d:\dm_arch\arch
  4. ARCH_FILE_SIZE = 1024
  5. ARCH_SPACE_LIMIT = 2048
复制代码


  • 编辑 dm.ini 文件,设置参数 ARCH_INI=1,生存;
  • 重启数据库实例,数据库已运行于归档模式。
2、联机数据库备份

完全备份

  1. BACKUP DATABASE FULL BACKUPSET '/dm/backup/db_full_bak_01';
复制代码
参数 FULL 可以省略
  1. BACKUP DATABASE BACKUPSET 'db_bak_01';
复制代码
备份路径为参数BAK_PATH的路径
  1. BACKUP DATABASE BACKUPSET '/dm/backup/db_bak_3_01';
复制代码
指定备份集路径为/dm/backup/db_bak_3_01
  1. BACKUP DATABASE TO WEEKLY_FULL_BAK BACKUPSET '/dm/backup/db_bak_3_02';
复制代码
指定备份名为WEEKLY_FULL_BAK
如果不设置备份名,体系会默认创建一个备份名:DB_库名_备份类型_备份时间
增量备份

  1. BACKUP DATABASE INCREMENT WITH BACKUPDIR '/dm/backup' BACKUPSET '/dm/backup/db_increment_bak_02';
复制代码
INCREMENT 参数不可省略,指定备份类型为增量备份。累积增量备份,还必要指定 CUMULATIVE 参数,否则缺省为差异增量备份。WITH BACKUPDIR 参数用来指定基备份集的搜索目次。
  1. backup database increment BASE ON BACKUPSET '/dm/backup/dm_bak/db_full_bak_01' to ONLINEBAKINCR_01 backupset '/dm/backup/dm_bak/ONLINEBAK_01' ;
复制代码

3、联机备份管理

DM 没有提供自动删除逾期备份的功能,删除备份必要手动实验。
添加备份目次


向 DISK 中添加备份目次/dm/backup
  1. SELECT SF_BAKSET_BACKUP_DIR_ADD('DISK','/dm/backup');
复制代码
查看备份集信息,必要先添加备份目次,V$BACKUPSET_SEARCH_DIRS有目次信息,当前会话实验查询。
删除备份目次

删除指定备份目次(只删除视图V$BACKUPSET_SEARCH_DIRS记录,不删除文件)
  1. SELECT SF_BAKSET_BACKUP_DIR_REMOVE('DISK','/dm/backup');
复制代码
清算全部备份目次,默认备份目次除外(只删除视图V$BACKUPSET_SEARCH_DIRS记录,不删除文件)

  1. SELECT SF_BAKSET_BACKUP_DIR_REMOVE_ALL();
复制代码
校验 DISK 中的备份目次/dm/backup/db_bak_for_check 是否合法

  1. SELECT SF_BAKSET_CHECK('DISK','/dm/backup/db_bak_for_check');
复制代码
删除指定设备类型和指定目次的备份集(删除整个目次,删除文件)

  1. SELECT SF_BAKSET_REMOVE('DISK','/dm/backup/db_full_bak_01',1);
复制代码
删除满足指定条件的所有备份集
必要先使用 SF_BAKSET_BACKUP_DIR_ADD 添加将要删除的备份集目次,否则只删除数据库的默认备份目次下的备份集。
  1. SF_BAKSET_REMOVE_BATCH (device_type varchar,end_time datetime,range int,obj_name varchar(257))
复制代码
device_type:设备类型,DISK 或 TAPE。若指定为 NULL,则忽略存储设备的区分。
end_time:删除备份集天生的结束时间,仅删除 end_time 之前的备份集,必须指定。
range:指定删除备份的级别。1 代表库级,2 代表表空间级,3 代表表级,4 代表归档备份。若指定为 NULL,则忽略备份集备份级别的区分。
obj_name:待删除备份集中备份对象的名称,若指定为 NULL,则忽略备份集中备份对象名称区分。
  1. SELECT SF_BAKSET_REMOVE_BATCH ('DISK', now(), NULL, NULL);
复制代码
删除满足指定条件的所有库级备份集
  1. SELECT SF_BAKSET_REMOVE_BATCH_S ('DISK', now(), NULL, NULL);
复制代码
删除满足指定条件的所有库级备份集,生存备份时间最新的 n 个库级完全备份集
  1. SELECT SF_BAKSET_REMOVE_BATCH_N ('DISK', now(), NULL, NULL, 2);
复制代码
删除指定时间之前的数据库备份集
  1. CALL SP_DB_BAKSET_REMOVE_BATCH('DISK', NOW());
复制代码
删除指定表空间对象及指定时间之前的表空间备份集
  1. CALL SP_TS_BAKSET_REMOVE_BATCH('DISK',NOW(),'MAIN');
复制代码
删除指定表对象及指定时间之前的表备份集
  1. CALL SP_TAB_BAKSET_REMOVE_BATCH('DISK',NOW(),'SYSDBA','TAB_FOR_BATCH_DEL');
复制代码
删除指定时间之前的归档备份集
  1. CALL SP_ARCH_BAKSET_REMOVE_BATCH('DISK', NOW());
  2. BACKUP ARCHIVELOG BACKUPSET '/dm/backup/arch_bak_for_batch_del';
  3. SELECT SF_BAKSET_BACKUP_DIR_ADD('DISK','/dm/backup');
  4. CALL SP_ARCH_BAKSET_REMOVE_BATCH('DISK', NOW());
复制代码
备份信息查看

V$BACKUPSET
表现备份集的基本信息。
  1. SELECT SF_BAKSET_BACKUP_DIR_ADD('DISK', '/dm/backup');
  2. SELECT DEVICE_TYPE,BACKUP_PATH, TYPE, RANGE# FROM V$BACKUPSET;
复制代码

V$BACKUPSET_DBINFO
表现备份集的数据库相关信息
  1. SELECT SF_BAKSET_BACKUP_DIR_ADD('DISK', '/dm/backup');
  2. SELECT BACKUP_PATH, PAGE_SIZE, EXTENT_SIZE, CASE_SENSITIVE FROM V$BACKUPSET_DBINFO WHERE BACKUP_PATH='/dm/backup/tab_bak_01';
复制代码
V$BACKUPSET_DBF
表现备份集中数据文件的相关信息,表备份时无效
  1. SELECT SF_BAKSET_BACKUP_DIR_ADD('DISK', '/dm/backup');
  2. SELECT FILE_SEQ, TS_ID, FILE_ID, TS_NAME, FILE_NAME FROM V$BACKUPSET_DBF WHERE BACKUPPATH ='/dm/backup/ts_bak_for_dbf';
复制代码
V$BACKUPSET_ARCH
表现备份集中归档文件的信息,且仅归档备份才会有数据。
  1. SELECT SF_BAKSET_BACKUP_DIR_ADD('DISK', '/dm/backup');
  2. SELECT BACKUPPATH, FILE_SEQ, BEGIN_LSN, END_LSN FROM V$BACKUPSET_ARCH
  3. WHERE BACKUPPATH='/dm/backup/db_bak_for_arch';
复制代码
V$BACKUPSET_BKP
表现备份集的备份片信息。
  1. SELECT SF_BAKSET_BACKUP_DIR_ADD('DISK', '/dm/backup');
  2. SELECT BACKUPPATH, BKP_NTH, FILE_NAME, BKP_LEN FROM V$BACKUPSET_BKP WHERE
  3. BACKUPPATH='/dm/backup/db_bak_for_bkp';
复制代码
V$BACKUPSET_SEARCH_DIRS
表现动态视图备份集搜索目次。BAK_PATH、SYSTEM_PATH和添加的备份目次
  1. SELECT SF_BAKSET_BACKUP_DIR_REMOVE_ALL();
  2. SELECT * FROM V$BACKUPSET_SEARCH_DIRS;
复制代码
V$BACKUPSET_TABLE
表现表备份集中备份表信息,仅表备份有效。
  1. SELECT SF_BAKSET_BACKUP_DIR_ADD('DISK', '/dm/backup');
  2. SELECT BACKUPNAME, TABLENAME FROM V$BACKUPSET_TABLE WHERE BACKUPPATH='/dm/backup/tab_bak_for_info';
复制代码
V$BACKUPSET_SUBS
并行备份中天生的子备份集信息。
  1. BACKUP DATABASE BACKUPSET '/dm/backup/db_bak_for_subs' PARALLEL 3;
  2. SELECT SF_BAKSET_BACKUP_DIR_ADD('DISK', '/dm/backup');
  3. SELECT BACKUPPATH, BKP_NUM, DBF_NUM FROM V$BACKUPSET_SUBS;
复制代码
监控备份

V$BACKUP_MONITOR
当前备份使命实时监控信息。
  1. BACKUP DATABASE BACKUPSET '/dm/backup/db_bak_for_monitor';
  2. SELECT TOTAL_SIZE, PCNT, CUR_READ, CUR_WRITE FROM V$BACKUP_MONITOR;
复制代码
V$BACKUP_FILES
当前备份使命待备份数据文件列表。
V$BACKUP_HISTORY
最近 100 条备份监控信息。
  1. SELECT READ_SIZE, WRITE_SIZE, AVG_READ, AVG_WRITE FROM V$BACKUP_HISTORY;
复制代码

4、脱机DMRMAN备份数据库

dmrman的配置

表现 DMRMAN 配置项的当前值
  1. RMAN>CONFIGURE;
复制代码
配置存储介质类型:DISK 或 TAPE
  1. RMAN>CONFIGURE DEFAULT DEVICE TYPE TAPE PARMS 'command';
复制代码
配置跟踪日记文件
  1. RMAN>CONFIGURE DEFAULT TRACE FILE '/dm/backup/dm_bak/trace.log' TRACE LEVEL 2;
复制代码
配置备份集搜索目次

  1. RMAN>CONFIGURE DEFAULT BACKUPDIR;
  2. RMAN>CONFIGURE DEFAULT BACKUPDIR '/dm/backup/dm_bak';
  3. RMAN>CONFIGURE DEFAULT BACKUPDIR ADD '/home/dm_bak3';
  4. RMAN>CONFIGURE DEFAULT BACKUPDIR DELETE '/home/dm_bak3';
复制代码
配置归档日记搜索目次

  1. RMAN>CONFIGURE DEFAULT ARCHIVEDIR;
  2. RMAN>CONFIGURE DEFAULT ARCHIVEDIR '/dm/backup/dm_arch1';
  3. RMAN>CONFIGURE DEFAULT ARCHIVEDIR ADD '/home/dm_arch3';
  4. RMAN>CONFIGURE DEFAULT ARCHIVEDIR DELETE '/home/dm_arch3';
复制代码

完全备份

  1. RMAN>BACKUP DATABASE '/dm/data/DMDB/dm.ini' FULL BACKUPSET '/dm/backup/dm_bak/db_full_bak_01';
复制代码

增量备份

  1. RMAN>BACKUP DATABASE '/dm/data/DMDB/dm.ini' INCREMENT WITH BACKUPDIR '/dm/backup/dm_bak' BACKUPSET '/dm/backup/dm_bak/db_increment_bak_02';
复制代码

归档备份

  1. RMAN>BACKUP ARCHIVE LOG ALL DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' BACKUPSET '/home/dm_bak/arch_all_bak_01';
复制代码

  1. RMAN>BACKUP ARCHIVE LOG LSN BETWEEN 50000 AND 120000 DATABASE '/dm/data/DMDB/dm.ini' BACKUPSET '/dm/backup/dm_bak/arch_lsn_bak_02';
复制代码

5、脱机备份管理

备份集查看

  1. RMAN> show backupset '/dm/backup/dm_bak';
  2. RMAN> SHOW BACKUPSETS WITH BACKUPDIR '/dm/backup/dm_bak/db_full_bak_01';
复制代码
查看指定目次下所有备份集信息。
  1. RMAN>SHOW BACKUPSETS WITH BACKUPDIR '/dm/backup/dm_bak' USE DB_MAGIC 511306610;
复制代码
查看部分备份集信息,DB、META、FILE、TABLESPACE、TABLE

  1. RMAN> show backupset '/dm/backup/dm_bak/db_full_bak_01' info meta
复制代码
备份集校验

  1. RMAN>CHECK BACKUPSET '/dm/backup/dm_bak/db_full_bak_01';
复制代码
备份集删除

  1. RMAN>REMOVE BACKUPSET '/dm/backup/dm_bak/db_full_bak_01';
  2. RMAN>REMOVE BACKUPSET '/dm/backup/dm_bak/db_full_bak_01' DATABASE '/dm/data/DMDB/dm.ini';
复制代码
删除备份目次下的某一个数据库备份集

  1. RMAN>REMOVE BACKUPSETS WITH BACKUPDIR '/dm/backup/dm_bak';
  2. RMAN>REMOVE BACKUPSETS WITH BACKUPDIR '/dm/backup/dm_bak' UNTIL TIME '2024-06-25 13:38:00';
复制代码
会删除整个目次


6、还原数据库

表还原只能联机举行,数据库和表空间的还原只能脱机dmrman下举行。

备份数据库
  1. SQL>BACKUP DATABASE BACKUPSET '/dm/backup/dm_bak/db_full_bak_for_restore';
复制代码
准备目标库
  1. dminit path=/dm/data db_name=DAMENG_FOR_RESTORE auto_overwrite=1
复制代码

校验备份

  1. RMAN>CHECK BACKUPSET '/dm/backup/dm_bak/db_full_bak_for_restore';
复制代码
还原数据库

  1. RMAN>RESTORE DATABASE '/dm/data/DAMENG_FOR_RESTORE/dm.ini' FROM BACKUPSET '/dm/backup/dm_bak/db_full_bak_for_restore';
复制代码
也可指定 REUSE DMINI 子句举行数据库还原,此时会将备份集中备份的 dm.ini 中除路径相关的 INI 参数外,均拷贝到当前 dm.ini 上。如下所示:
  1. RMAN> RESTORE DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' REUSE DMINI FROM BACKUPSET '/home/dm_bak/db_full_bak_for_restore';
复制代码
  1. RMAN> CHECK BACKUPSET '/dm/backup/dm_bak/db_full_bak_for_restore';
  2. CHECK BACKUPSET '/dm/backup/dm_bak/db_full_bak_for_restore';
  3. [Percent:100.00%][Speed:0.00M/s][Cost:00:00:00][Remaining:00:00:00]                                 
  4. check backupset successfully.
  5. time used: 184.800(ms)
  6. RMAN> RESTORE DATABASE '/dm/data/DAMENG_FOR_RESTORE/dm.ini' FROM BACKUPSET '/dm/backup/dm_bak/db_full_bak_for_restore';
  7. RESTORE DATABASE '/dm/data/DAMENG_FOR_RESTORE/dm.ini' FROM BACKUPSET '/dm/backup/dm_bak/db_full_bak_for_restore';
  8. file dm.key not found, use default license!
  9. Normal of FAST
  10. Normal of DEFAULT
  11. Normal of RECYCLE
  12. Normal of KEEP
  13. Normal of ROLL
  14. [Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]                                 
  15. restore successfully.
  16. time used: 00:00:02.678
  17. RMAN> RECOVER DATABASE '/dm/data/DAMENG_FOR_RESTORE/dm.ini' FROM BACKUPSET '/dm/backup/dm_bak/db_full_bak_for_restore';
  18. RECOVER DATABASE '/dm/data/DAMENG_FOR_RESTORE/dm.ini' FROM BACKUPSET '/dm/backup/dm_bak/db_full_bak_for_restore';
  19. Database mode = 2, oguid = 0
  20. Normal of FAST
  21. Normal of DEFAULT
  22. Normal of RECYCLE
  23. Normal of KEEP
  24. Normal of ROLL
  25. EP[0]'s cur_lsn[212204], file_lsn[212204]
  26. [Percent:100.00%][Speed:0.00PKG/s][Cost:00:00:00][Remaining:00:00:00]                              
  27. recover successfully!
  28. time used: 00:00:02.713
  29. RMAN> RECOVER DATABASE '/dm/data/DAMENG_FOR_RESTORE/dm.ini' UPDATE DB_MAGIC;
  30. RECOVER DATABASE '/dm/data/DAMENG_FOR_RESTORE/dm.ini' UPDATE DB_MAGIC;
  31. Database mode = 2, oguid = 0
  32. Normal of FAST
  33. Normal of DEFAULT
  34. Normal of RECYCLE
  35. Normal of KEEP
  36. Normal of ROLL
  37. EP[0]'s cur_lsn[212348], file_lsn[212348]
  38. recover successfully!
  39. time used: 00:00:01.086
复制代码
7、数据库恢复

从备份集恢复

  1. RMAN>RECOVER DATABASE '/dm/data/DAMENG_FOR_RESTORE/dm.ini' FROM BACKUPSET '/dm/backup/dm_bak/db_full_bak_for_restore';
复制代码

从归档恢复

1.联机数据库实验备份,产生备份集 B1;
  1. BACKUP DATABASE FULL TO B1 BACKUPSET '/dm/backup/dm_bak/B1' DEVICE TYPE DISK BACKUPINFO 'DAMENG FULL BACKUP ONLINE' MAXPIECESIZE 2048;
复制代码
2.向表中循环插入数据为例来操纵数据库,在插入数据的过程中,强行杀掉数据库服务器进程模拟故障;
  1. DROP TABLE TAB_FOR_RECOVER;
复制代码
  1. CREATE TABLE TAB_FOR_RECOVER(C1 INT);
  2. BEGIN
  3.   FOR I IN 1..100000 LOOP
  4.      INSERT INTO TAB_FOR_RECOVER VALUES(I);
  5.      COMMIT;
  6.   END LOOP;
  7. END;
  8. /
复制代码
3.创建目标库 D2,即待还原的库;
  1. dminit path=/dm/data db_name=DAMENG_FOR_RES
复制代码
4.启动 DMRMAN 工具,修复源库 D1 归档文件;
  1. RMAN>REPAIR ARCHIVELOG DATABASE '/dm/data/DMDB/dm.ini'
复制代码
5.使用备份集 B1 及归档 将目标库 D2 恢复到最新状态。
  1. RMAN>RESTORE DATABASE '/dm/data/DAMENG_FOR_RES/dm.ini' FROM BACKUPSET '/dm/backup/dm_bak/B1';
复制代码

  1. RMAN>RECOVER DATABASE '/dm/data/DAMENG_FOR_RES/dm.ini' WITH ARCHIVEDIR '/dm/data/DMDB/arch';
复制代码

  1. SQL> BACKUP DATABASE FULL TO B1 BACKUPSET '/dm/backup/dm_bak/B1' DEVICE TYPE DISK BACKUPINFO 'DAMENG FULL BACKUP ONLINE' MAXPIECESIZE 2048;
  2. 操作已执行
  3. 已用时间: 00:00:03.181. 执行号:2102.
  4. SQL> CREATE TABLE TAB_FOR_RECOVER(C1 INT);
  5. 操作已执行
  6. 已用时间: 16.851(毫秒). 执行号:2103.
  7. SQL> BEGIN
  8.   FOR I IN 1..100000 LOOP
  9.      INSERT INTO TAB_FOR_RECOVER VALUES(I);
  10.      COMMIT;
  11.   END LOOP;
  12. END;
  13. /2   3   4   5   6   7   
  14. 连接丢失
  15. SQL>
  16. RMAN> RESTORE DATABASE '/dm/data/DAMENG_FOR_RES/dm.ini' FROM BACKUPSET '/dm/backup/dm_bak/B1';
  17. RESTORE DATABASE '/dm/data/DAMENG_FOR_RES/dm.ini' FROM BACKUPSET '/dm/backup/dm_bak/B1';
  18. file dm.key not found, use default license!
  19. Normal of FAST
  20. Normal of DEFAULT
  21. Normal of RECYCLE
  22. Normal of KEEP
  23. Normal of ROLL
  24. [Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]                                 
  25. restore successfully.
  26. time used: 00:00:02.577
  27. RMAN> REPAIR ARCHIVELOG DATABASE '/dm/data/DMDB/dm.ini';
  28. REPAIR ARCHIVELOG DATABASE '/dm/data/DMDB/dm.ini';
  29. Database mode = 0, oguid = 0
  30. Normal of FAST
  31. Normal of DEFAULT
  32. Normal of RECYCLE
  33. Normal of KEEP
  34. Normal of ROLL
  35. Can not open ini file /dm/data/DMDB/dmmal.ini!
  36. begin redo pwr log collect, last ckpt lsn: 488116 ...
  37. redo pwr log collect finished
  38. EP[0]'s cur_lsn[574475], file_lsn[574475]
  39. rafil_recv_if_necessary, arch file recv begin: arch_lsn: 574470, clsn: 574475, begin_seq: 86209, end_seq: 86209
  40. arch file recv end: arch_lsn: 574471, clsn: 574475, begin_seq: 86209, end_seq: 86209
  41. repair archive log successfully.
  42. repair time used: 658.107(ms)
  43. time used: 658.543(ms)
  44. RMAN> RECOVER DATABASE '/dm/data/DAMENG_FOR_RES/dm.ini' WITH ARCHIVEDIR '/dm/data/DMDB/arch';
  45. RECOVER DATABASE '/dm/data/DAMENG_FOR_RES/dm.ini' WITH ARCHIVEDIR '/dm/data/DMDB/arch';
  46. Database mode = 2, oguid = 0
  47. Normal of FAST
  48. Normal of DEFAULT
  49. Normal of RECYCLE
  50. Normal of KEEP
  51. Normal of ROLL
  52. EP[0]'s cur_lsn[326510], file_lsn[326510]
  53. [Percent:100.00%][Speed:9180.00PKG/s][Cost:00:00:03][Remaining:00:00:00]                           
  54. recover successfully!
  55. time used: 00:00:04.228
复制代码
恢复数据库到指定lsn

1.准备数据;
  1. CREATE TABLE TAB_FOR_RECOVER_01(C1 INT);
  2. INSERT INTO TAB_FOR_RECOVER_01 VALUES(1);
  3. COMMIT;
复制代码
2.备份数据库;
  1. BACKUP DATABASE BACKUPSET '/dm/backup/dm_bak/db_full_bak_for_time_lsn';
复制代码
操纵数据库,产生一些归档;
  1. CREATE TABLE TAB_FOR_RECOVER_02(C1 INT);
  2. INSERT INTO TAB_FOR_RECOVER_02 VALUES(1);
  3. COMMIT;
复制代码
使用 SELECT SYSDATE 命令查询此时的时间为:2018-11-16 10:56:40。
使用 SELECT FILE_LSN FROM V$RLOG 命令查询此时的 LSN 为:50857。

4.误操纵数据库。此步骤误删除了表 TAB_FOR_RECOVER_01 中数据;
  1. DELETE FROM TAB_FOR_RECOVER_01;
  2. COMMIT;
复制代码
5.还原数据库
  1. RMAN> RESTORE DATABASE '/dm/data/DAMENG_FOR_RESTORE/dm.ini' FROM BACKUPSET '/dm/backup/dm_bak/db_full_bak_for_time_lsn';
复制代码
6.恢复数据库到指定时间点/LSN
  1. RMAN>RECOVER DATABASE '/dm/data/DAMENG_FOR_RESTORE/dm.ini' WITH ARCHIVEDIR '/dm/data/DMDB/arch' UNTIL TIME '2024-06-25 14:50:13';
复制代码

  1. RMAN>RECOVER DATABASE '/dm/data/DAMENG_FOR_RESTORE/dm.ini' WITH ARCHIVEDIR '/dm/data/DMDB/arch' UNTIL LSN 50857;
复制代码

更新 DB_MAGIC

  1. RMAN>RECOVER DATABASE '/dm/data/DAMENG_FOR_RESTORE/dm.ini' UPDATE DB_MAGIC;
复制代码

8、增量备份还原恢复

1.做一个联机全备。
  1. BACKUP DATABASE FULL BACKUPSET '/dm/backup/dm_bak/db_full_bak_01';
复制代码
2.造测试数据。
  1. CREATE TABLE TAB_FOR_RECOVER_03(C1 INT);
复制代码
  1. BEGIN
  2.   FOR I IN 1..1000 LOOP
  3.      INSERT INTO TAB_FOR_RECOVER_03 VALUES(I);
  4.      COMMIT;
  5.   END LOOP;
  6. END;
  7. /
复制代码
3.做一个联机增量备份。
  1. BACKUP DATABASE INCREMENT WITH BACKUPDIR '/dm/backup/dm_bak' BACKUPSET '/dm/backup/dm_bak/db_increment_bak_02';
复制代码
4.初始化一个新的数据库(还原库)
  1. dminit path=/dm/data db_name=DAMENG_FOR_RESTORE auto_overwrite=1
复制代码
5.全量还原恢复
  1. RESTORE DATABASE '/dm/data/DAMENG_FOR_RESTORE/dm.ini' FROM BACKUPSET '/dm/backup/dm_bak/db_full_bak_01';
  2. RECOVER DATABASE '/dm/data/DAMENG_FOR_RESTORE/dm.ini' FROM BACKUPSET '/dm/backup/dm_bak/db_full_bak_01';
复制代码
6.增量还原恢复
  1. RESTORE DATABASE '/dm/data/DAMENG_FOR_RESTORE/dm.ini' FROM BACKUPSET '/dm/backup/dm_bak/db_increment_bak_02';
  2. RECOVER DATABASE '/dm/data/DAMENG_FOR_RESTORE/dm.ini' FROM BACKUPSET '/dm/backup/dm_bak/db_increment_bak_02';
复制代码
7.更新DB_MAGIC
  1. RECOVER DATABASE '/dm/data/DAMENG_FOR_RESTORE/dm.ini' UPDATE DB_MAGIC;
复制代码
8.验证数据
  1. su - root
  2. cd /dm/script/root/
  3. ./dm_service_installer.sh -t dmserver -dm_ini /dm/data/DAMENG_FOR_RESTORE/dm.ini -p DAMENG_FOR_RESTORE
  4. [dmdba@localhost ~]$ disql SYSDBA
  5. SQL> select count(*) from TAB_FOR_RECOVER_03;
复制代码
达梦技能社区:https://eco.dameng.com/

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

宁睿

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表