通过归档日志修复数据库(有备份、有归档)

当我们的数据库在发生故障后,这个时候无法启动数据库。只要我们的数据库有备份、有归档。这个时候我们就可以让数据库恢复到发生故障前的一刻。
我们可以通过达梦的DMRMAN工具和达梦的DM控制台工具就可以让数据库恢复到任意的一个时间点或者时数据库的一个最新状态。
首先,确保数据库的归档是打开的。必须要有归档日志(确保归档日志是完整的)。

以下图为例:

下面我们来模拟一下数据库发生故障无法启动的一个过程以及对数据库恢复的一个过程。

首先我们必须要打开归档。

[dmdba@localhost bin]$ ./disql
disql V8
用户名:
密码:服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 150.150(ms)
SQL>alter DATABASE mount; --修改数据模式为MOUNT模式
SQL>alter database archivelog; --打开数据库归档模式
SQL>alter database add archivelog 'DEST=/dm8/DAMENG/arch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=0'; --设置归档路径 、文件初始大小64 空间不限制。
SQL>ALTER DATABASE OPEN;

备份数据库

SQL> BACKUP DATABASE BACKUPSET 'bak_01';

查看备份集

SQL> select * from  SYS."V$BACKUPSET";行号     DEVICE_TYPE BACKUP_ID   PARENT_ID   BACKUP_NAME                    BACKUP_PATH                 TYPE        LEVEL       RANGE#      OBJECT_NAME OBJECT_ID   BASE_NAME BACKUP_TIME                DESC#
---------- ----------- ----------- ----------- ------------------------------ --------------------------- ----------- ----------- ----------- ----------- ----------- --------- -------------------------- -----ENCRYPT_TYPE COMPRESS_LEVEL WITHOUT_LOG USE_PWR     PKG_SIZE    BEGIN_LSN            END_LSN              BKP_NUM     DBF_NUM     PARALLEL_NUM BAKSET_TYPE MPP_FLAG    MIN_TRX_START_LSN------------ -------------- ----------- ----------- ----------- -------------------- -------------------- ----------- ----------- ------------ ----------- ----------- --------------------MIN_EXEC_VER CUMULATIVE  MIN_DCT_VER DDL_CLONE------------ ----------- ----------- -----------
1          DISK        669829024   -1          DB_FULL_20201125_101335_777708 /dm8/data/DAMENG/bak/bak_01 0           0           1           DAMENG      -1                    2020-11-25 10:13:36.7462240            0              0           0           33554432    81610                82882                2           6           1            0           0           0134283521    0           4           0已用时间: 00:00:01.085. 执行号:306.

创建表、插入一些数据(这里我们直接复制实例库的的一些数据)

SQL> create TABLE TEST1 as select * from dmhr.employee;
操作已执行
已用时间: 83.106(毫秒). 执行号:307.
SQL> select * from test1 limit 10;行号     EMPLOYEE_ID EMPLOYEE_NAME IDENTITY_CARD      EMAIL                     PHONE_NUM   HIRE_DATE  JOB_ID SALARY      COMMISSION_PCT MANAGER_ID  DEPARTMENT_ID
---------- ----------- ------------- ------------------ ------------------------- ----------- ---------- ------ ----------- -------------- ----------- -------------
1          1001        马学铭     340102196202303000 maxueming@dameng.com      15312348552 2008-05-30 11     30000       0              1001        101
2          1002        程擎武     630103197612261000 chengqingwu@dameng.com    13912366391 2012-03-27 21     9000        0              1002        102
3          1003        郑吉群     11010319670412101X zhengjiqun@dameng.com     18512355646 2010-12-11 31     15000       0              1003        103
4          1004        陈仙        360107196704031000 chenxian@dameng.com       13012347208 2012-06-25 41     12000       0              1004        104
5          1005        金纬        450105197911131000 jinwei@dameng.com         13612374154 2011-05-12 51     10000       0              1005        105
6          2001        李慧军     430103196703240000 lihuijun@dameng.com       18712372091 2010-05-15 11     10000       0              2001        201
7          2002        常鹏程     11010719780703500X changpengcheng@dameng.com 18912366321 2011-08-06 21     5000        0              2002        202
8          2004        谢俊人     450103197212156000 xiejunren@dameng.com      14712377545 2014-03-02 41     5000        0              2004        204
9          3001        苏国华     52010519731102591X suguohua@dameng.com       15612350864 2010-10-26 11     30000       0              3001        301
10         3002        强洁芳     370107197308092000 qiangjiefang@dameng.com   18112349195 2011-07-16 21     10000       0              3002        30210 rows got已用时间: 1.522(毫秒). 执行号:310.
SQL>

我们来模拟数据库发生故障(删除数据库的SYSTEM.dbf文件)

SQL> exit
[dmdba@localhost bin]$ ll /dm8/data/DAMENG/
总用量 1108064
drwxrwxr-x. 2 dmdba dmdba      4096 11月 25 10:35 acrh
drwxr-xr-x. 3 dmdba dmdba        20 11月 25 10:13 bak
-rw-rw-r--. 1 dmdba dmdba 157286400 11月 17 09:51 BOOKSHOP.DBF
drwxr-xr-x. 2 dmdba dmdba      4096 11月 25 10:35 ctl_bak
-rw-rw-r--. 1 dmdba dmdba 268435456 11月 25 10:35 DAMENG01.log
-rw-rw-r--. 1 dmdba dmdba 268435456 11月 25 10:35 DAMENG02.log
-rw-rw-r--. 1 dmdba dmdba       311 11月 17 10:03 dmarch.ini
-rw-r--r--. 1 dmdba dmdba      6144 11月 25 10:35 dm.ctl
-rw-rw-r--. 1 dmdba dmdba 134217728 11月 17 09:51 DMHR.DBF
-rw-r--r--. 1 dmdba dmdba     48816 11月 17 10:03 dm.ini
-rw-r--r--. 1 dmdba dmdba       826 11月 10 14:11 dminit20201110141104.log
-rw-rw-r--. 1 dmdba dmdba       633 11月 17 09:51 dm_service.prikey
drwxrwxr-x. 2 dmdba dmdba         6 11月 17 09:51 HMAIN
-rw-rw-r--. 1 dmdba dmdba 134217728 11月 25 10:29 MAIN.DBF
-rw-r--r--. 1 dmdba dmdba        12 11月 10 14:11 rep_conflict.log
-rw-rw-r--. 1 dmdba dmdba 134217728 11月 25 10:35 ROLL.DBF
-rw-r--r--. 1 dmdba dmdba       479 11月 10 14:11 sqllog.ini
-rw-rw-r--. 1 dmdba dmdba  27262976 11月 25 10:29 SYSTEM.DBF
-rw-r--r--. 1 dmdba dmdba  10485760 11月 25 10:35 TEMP.DBF
drwxr-xr-x. 2 dmdba dmdba         6 11月 10 14:11 trace
[dmdba@localhost bin]$ rm -f /dm8/data/DAMENG/SYSTEM.DBF
[dmdba@localhost bin]$ ll /dm8/data/DAMENG/
总用量 1081436
drwxrwxr-x. 2 dmdba dmdba      4096 11月 25 10:35 acrh
drwxr-xr-x. 3 dmdba dmdba        20 11月 25 10:13 bak
-rw-rw-r--. 1 dmdba dmdba 157286400 11月 17 09:51 BOOKSHOP.DBF
drwxr-xr-x. 2 dmdba dmdba      4096 11月 25 10:35 ctl_bak
-rw-rw-r--. 1 dmdba dmdba 268435456 11月 25 10:35 DAMENG01.log
-rw-rw-r--. 1 dmdba dmdba 268435456 11月 25 10:35 DAMENG02.log
-rw-rw-r--. 1 dmdba dmdba       311 11月 17 10:03 dmarch.ini
-rw-r--r--. 1 dmdba dmdba      6144 11月 25 10:35 dm.ctl
-rw-rw-r--. 1 dmdba dmdba 134217728 11月 17 09:51 DMHR.DBF
-rw-r--r--. 1 dmdba dmdba     48816 11月 17 10:03 dm.ini
-rw-r--r--. 1 dmdba dmdba       826 11月 10 14:11 dminit20201110141104.log
-rw-rw-r--. 1 dmdba dmdba       633 11月 17 09:51 dm_service.prikey
drwxrwxr-x. 2 dmdba dmdba         6 11月 17 09:51 HMAIN
-rw-rw-r--. 1 dmdba dmdba 134217728 11月 25 10:29 MAIN.DBF
-rw-r--r--. 1 dmdba dmdba        12 11月 10 14:11 rep_conflict.log
-rw-rw-r--. 1 dmdba dmdba 134217728 11月 25 10:35 ROLL.DBF
-rw-r--r--. 1 dmdba dmdba       479 11月 10 14:11 sqllog.ini
-rw-r--r--. 1 dmdba dmdba  10485760 11月 25 10:35 TEMP.DBF
drwxr-xr-x. 2 dmdba dmdba         6 11月 10 14:11 trace

重启数据库 (这个时候数据库无法启动了)

[dmdba@localhost bin]$ ./DmServiceDMSERVER restart
Stopping DmServiceDMSERVER:                                [ OK ]
Starting DmServiceDMSERVER:                                [ FAILED ]
file dm.key not found, use default license!
version info: develop
/dm8/data/DAMENG/SYSTEM.DBF not exist
[dmdba@localhost bin]$

我们来恢复数据(因为我们是先备份的数据库,后创建的表。和生产环境类似)

通过DMRMAN工具进行恢复 流程 停机→还原→通过归档恢复→更换DB_MAGIC

还原数据库

[dmdba@localhost bin]$ ./dmrman
dmrman V8
RMAN>
RMAN> restore database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/data/DAMENG/bak/bak_01'
restore database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/data/DAMENG/bak/bak_01'
file dm.key not found, use default license!
RESTORE DATABASE CHECK......
RESTORE DATABASE,data collect......
RESTORE DATABASE,database refresh ......
RESTORE BACKUPSET [/dm8/data/DAMENG/bak/bak_01] START......
total 5 packages processed...
total 9 packages processed...
RESTORE DATABASE,UPDATE ctl file......
RESTORE DATABASE,REBUILD key file......
RESTORE DATABASE,CHECK db info......
RESTORE DATABASE,UPDATE db info......
total 9 packages processed...
total 9 packages processed!
CMD END.CODE:[0]
restore successfully.
time used: 799.614(ms)
RMAN>

从归档恢复数据库

RMAN> recover database '/dm8/data/DAMENG/dm.ini' with archivedir '/dm8/data/DAMENG/acrh'
recover database '/dm8/data/DAMENG/dm.ini' with archivedir '/dm8/data/DAMENG/acrh'
file dm.key not found, use default license!
Database mode = 0, oguid = 0
EP[0]'s cur_lsn[81610]
EP:0 total 3 pkgs applied, percent: 10%
EP:0 total 6 pkgs applied, percent: 21%
EP:0 total 9 pkgs applied, percent: 32%
EP:0 total 12 pkgs applied, percent: 42%
EP:0 total 15 pkgs applied, percent: 53%
EP:0 total 18 pkgs applied, percent: 64%
EP:0 total 21 pkgs applied, percent: 75%
EP:0 total 24 pkgs applied, percent: 85%
EP:0 total 27 pkgs applied, percent: 96%
EP:0 total 28 pkgs applied, percent: 100%
Recover from archive log finished, time used:0.312s.
EP[0]'s apply_lsn[84748] >= end_lsn[82882]
recover successfully!
time used: 549.972(ms)

更新DB_MAGIC

RMAN> recover database '/dm8/data/DAMENG/dm.ini' update db_magic;
recover database '/dm8/data/DAMENG/dm.ini' update db_magic;
Database mode = 0, oguid = 0
EP[0]'s cur_lsn[84748]
EP[0]'s apply_lsn[84748] >= end_lsn[82882]
recover successfully!
time used: 996.968(ms)
RMAN>

启动数据库并查看之前的数据是否完整。

[dmdba@localhost bin]$ ./DmServiceDMSERVER start
Starting DmServiceDMSERVER:                                [ OK ]
[dmdba@localhost bin]$ ./disql
disql V8
用户名:
密码:服务器[LOCALHOST:5236]:处于普通打开状态
登录使用时间 : 4.188(ms)
SQL> select * from test1 limit 10;行号     EMPLOYEE_ID EMPLOYEE_NAME IDENTITY_CARD      EMAIL                     PHONE_NUM   HIRE_DATE  JOB_ID
---------- ----------- ------------- ------------------ ------------------------- ----------- ---------- ------SALARY      COMMISSION_PCT MANAGER_ID  DEPARTMENT_ID----------- -------------- ----------- -------------
1          1001        马学铭     340102196202303000 maxueming@dameng.com      15312348552 2008-05-30 1130000       0              1001        1012          1002        程擎武     630103197612261000 chengqingwu@dameng.com    13912366391 2012-03-27 219000        0              1002        1023          1003        郑吉群     11010319670412101X zhengjiqun@dameng.com     18512355646 2010-12-11 3115000       0              1003        103行号     EMPLOYEE_ID EMPLOYEE_NAME IDENTITY_CARD      EMAIL                     PHONE_NUM   HIRE_DATE  JOB_ID
---------- ----------- ------------- ------------------ ------------------------- ----------- ---------- ------SALARY      COMMISSION_PCT MANAGER_ID  DEPARTMENT_ID----------- -------------- ----------- -------------
4          1004        陈仙        360107196704031000 chenxian@dameng.com       13012347208 2012-06-25 4112000       0              1004        1045          1005        金纬        450105197911131000 jinwei@dameng.com         13612374154 2011-05-12 5110000       0              1005        1056          2001        李慧军     430103196703240000 lihuijun@dameng.com       18712372091 2010-05-15 1110000       0              2001        201行号     EMPLOYEE_ID EMPLOYEE_NAME IDENTITY_CARD      EMAIL                     PHONE_NUM   HIRE_DATE  JOB_ID
---------- ----------- ------------- ------------------ ------------------------- ----------- ---------- ------SALARY      COMMISSION_PCT MANAGER_ID  DEPARTMENT_ID----------- -------------- ----------- -------------
7          2002        常鹏程     11010719780703500X changpengcheng@dameng.com 18912366321 2011-08-06 215000        0              2002        2028          2004        谢俊人     450103197212156000 xiejunren@dameng.com      14712377545 2014-03-02 415000        0              2004        2049          3001        苏国华     52010519731102591X suguohua@dameng.com       15612350864 2010-10-26 1130000       0              3001        301行号     EMPLOYEE_ID EMPLOYEE_NAME IDENTITY_CARD      EMAIL                     PHONE_NUM   HIRE_DATE  JOB_ID
---------- ----------- ------------- ------------------ ------------------------- ----------- ---------- ------SALARY      COMMISSION_PCT MANAGER_ID  DEPARTMENT_ID----------- -------------- ----------- -------------
10         3002        强洁芳     370107197308092000 qiangjiefang@dameng.com   18112349195 2011-07-16 2110000       0              3002        30210 rows got已用时间: 5.769(毫秒). 执行号:4.
SQL>

这个时候数据库就恢复到发生故障前的一刻了。

达梦数据库出现故障无法启动解决方法-通过归档日志修复数据库相关推荐

  1. 无法打开数据库‘mysql_MySQL数据库之MYSQL无法启动解决方法

    本文主要向大家介绍了MySQL数据库之MYSQL无法启动解决方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 在my.ini(linux下/etc/my.cnf)加上skip ...

  2. 谷歌浏览器设置启动页被hao123劫持_win10系统打开chrome主页会被hao123劫持的故障原因及解决方法...

    有位win10系统用户最近遇到了一个问题,他反馈有次重启电脑后,好像某某浏览器升级了,然后打开chrome主页就被hao123劫持了,试了很多方法都没有作用.这是怎么回事呢?下面脚本之家的小编带来相应 ...

  3. AIX 部分故障判断及解决方法

    AIX 部分故障判断及解决方法 (分享自http://www.talkwithtrend.com/Topic/117/blog) 一. 故障的定义 弄清楚系统发生了什么问题? 系统现在能做什么?不能做 ...

  4. MySQL的配置方法以及数据库配置常见错误及其解决方法

    第一部分.MySQL的配置方法: 以下为笔者整理的mysql 5.5 安装配置教程笔记.通过逐一界面分析,解决大家在配置MySQL数据库时可能存在的疑惑. 首先给出MySQL下载地址:MySQL :: ...

  5. 计算机开启时提示键盘错误,电脑开机出现异常提示keyboard not found的故障原因及解决方法_电脑故障...

    电脑开机后屏幕显示keyboard not found. press f2 to continue .f1 to setup,具体问题现象如下所示: 故障原因分析: 出现这样的情况大多都是电脑在开机的 ...

  6. 若个人计算机主板上的内存条松动,电脑内存条松动后故障现象及解决方法

    致电脑爱好者:电脑内存条松动导致的故障现象及解决方法你遇到过这些问题吗? 前段时间回老家,跟好几个哥们一个喝酒,有朋友就对我说抽时间去他家帮忙看看电脑,说电脑启动不了了!我就简单问了问,说是结婚时候买 ...

  7. oracle 12 无法启动,Oracle 12.2监听无法启动解决方法

    在自己的虚拟机的做实验,突然发现使用PL/SQL Developer无法连接到数据库,报错ORA-12514,说是监听没有启动. 先介绍虚拟机一下环境:redhat7.2+GI 12.2.0.1+Or ...

  8. 硬盘常见故障问题及解决方法

    转自:微点阅读 https://www.weidianyuedu.com/content/5017746423146.html 硬盘常见故障问题及解决方法 故障现象一: 开机后屏幕显示: Device ...

  9. 蓝屏代码000c2_电脑蓝屏怎么办?Win8蓝屏故障0x000000c2的解决方法

    电脑出现蓝屏的时候,就会显示一系列的蓝屏代码,供大家去分析看看是哪里出的问题.最近,Win7系统用户的电脑遇到蓝屏,提示错误代码:0x000000c2,要如何解决这个问题呢?下面,U大侠小编就给大家介 ...

  10. 美的空气能计算机故障维修,美的空气能热水器常见故障原因及解决方法

    美的空气能热水器常见故障原因及解决方法 本文给大家介绍一下美的空气能热水器常见故障原因及解决方法,为广大美的空气能热水器用户在使用的时候遇到故障如何解决做一个参考. [故障现象]空气能热水器机组不工作 ...

最新文章

  1. Android app 启动页尺寸大小 忘记了怎么办
  2. 设计模式(享元模式)
  3. 浅析移动端网站是如何做好前期策划工作的?
  4. three.js加载3d模型_可加载5亿多边形,InsiteVR推Quest端BIM协作应用《Resolve》
  5. input 赋值_FPGA基础设计:Verilog行为级建模(过程赋值)
  6. 【渝粤教育】电大中专跨境电子商务理论与实务 (20)作业 题库
  7. 剑指Offer - 面试题57 - II. 和为s的连续正数序列(滑动窗口)
  8. 导入开源的文件云存储平台-Seafile
  9. androidStudio导入库文件
  10. system.js 替换 require.js
  11. python绘制玫瑰花代码视频_python turtle玫瑰花绘制效果和源代码
  12. 安卓内录声音软件scr_录屏内录大师软件下载
  13. 每周推荐短视频:道哥表达了对自动驾驶技术的感恩之情
  14. 调色板程序c语言,用C语言开发NES游戏(CC65)05、调色板
  15. 设置树莓派屏幕常亮,禁止树莓派屏幕休眠
  16. 第一周学习报告(关于string)
  17. ONF执行主席Dan Pitt:下一个战争可能是控制器
  18. FFmpeg将视频提取成帧
  19. 【WLAN】华为AC使用ACL禁止业务VLAN的IP地址访问管理VLAN
  20. 基于Visio的二次开发

热门文章

  1. 高德地图自定义绘制园区区域,区域描边,并添加自定义内容maker标注
  2. 手机电脑Mac地址修改方法
  3. CH552-HID 键盘 鼠标
  4. 怎样把两个表格合并成一个
  5. 阿里云oss使用cdn,节省oss下行流量
  6. 第二章02:初识批处理
  7. OpenGL之FBO
  8. el-upload限制文件大小(图片尺寸)
  9. oracle密码解锁
  10. 访问github时出现隐私设置错误您的连接不是私密连接问题的解决方案