达梦数据库出现故障无法启动解决方法-通过归档日志修复数据库
通过归档日志修复数据库(有备份、有归档)
当我们的数据库在发生故障后,这个时候无法启动数据库。只要我们的数据库有备份、有归档。这个时候我们就可以让数据库恢复到发生故障前的一刻。
我们可以通过达梦的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>
这个时候数据库就恢复到发生故障前的一刻了。
达梦数据库出现故障无法启动解决方法-通过归档日志修复数据库相关推荐
- 无法打开数据库‘mysql_MySQL数据库之MYSQL无法启动解决方法
本文主要向大家介绍了MySQL数据库之MYSQL无法启动解决方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 在my.ini(linux下/etc/my.cnf)加上skip ...
- 谷歌浏览器设置启动页被hao123劫持_win10系统打开chrome主页会被hao123劫持的故障原因及解决方法...
有位win10系统用户最近遇到了一个问题,他反馈有次重启电脑后,好像某某浏览器升级了,然后打开chrome主页就被hao123劫持了,试了很多方法都没有作用.这是怎么回事呢?下面脚本之家的小编带来相应 ...
- AIX 部分故障判断及解决方法
AIX 部分故障判断及解决方法 (分享自http://www.talkwithtrend.com/Topic/117/blog) 一. 故障的定义 弄清楚系统发生了什么问题? 系统现在能做什么?不能做 ...
- MySQL的配置方法以及数据库配置常见错误及其解决方法
第一部分.MySQL的配置方法: 以下为笔者整理的mysql 5.5 安装配置教程笔记.通过逐一界面分析,解决大家在配置MySQL数据库时可能存在的疑惑. 首先给出MySQL下载地址:MySQL :: ...
- 计算机开启时提示键盘错误,电脑开机出现异常提示keyboard not found的故障原因及解决方法_电脑故障...
电脑开机后屏幕显示keyboard not found. press f2 to continue .f1 to setup,具体问题现象如下所示: 故障原因分析: 出现这样的情况大多都是电脑在开机的 ...
- 若个人计算机主板上的内存条松动,电脑内存条松动后故障现象及解决方法
致电脑爱好者:电脑内存条松动导致的故障现象及解决方法你遇到过这些问题吗? 前段时间回老家,跟好几个哥们一个喝酒,有朋友就对我说抽时间去他家帮忙看看电脑,说电脑启动不了了!我就简单问了问,说是结婚时候买 ...
- oracle 12 无法启动,Oracle 12.2监听无法启动解决方法
在自己的虚拟机的做实验,突然发现使用PL/SQL Developer无法连接到数据库,报错ORA-12514,说是监听没有启动. 先介绍虚拟机一下环境:redhat7.2+GI 12.2.0.1+Or ...
- 硬盘常见故障问题及解决方法
转自:微点阅读 https://www.weidianyuedu.com/content/5017746423146.html 硬盘常见故障问题及解决方法 故障现象一: 开机后屏幕显示: Device ...
- 蓝屏代码000c2_电脑蓝屏怎么办?Win8蓝屏故障0x000000c2的解决方法
电脑出现蓝屏的时候,就会显示一系列的蓝屏代码,供大家去分析看看是哪里出的问题.最近,Win7系统用户的电脑遇到蓝屏,提示错误代码:0x000000c2,要如何解决这个问题呢?下面,U大侠小编就给大家介 ...
- 美的空气能计算机故障维修,美的空气能热水器常见故障原因及解决方法
美的空气能热水器常见故障原因及解决方法 本文给大家介绍一下美的空气能热水器常见故障原因及解决方法,为广大美的空气能热水器用户在使用的时候遇到故障如何解决做一个参考. [故障现象]空气能热水器机组不工作 ...
最新文章
- Android app 启动页尺寸大小 忘记了怎么办
- 设计模式(享元模式)
- 浅析移动端网站是如何做好前期策划工作的?
- three.js加载3d模型_可加载5亿多边形,InsiteVR推Quest端BIM协作应用《Resolve》
- input 赋值_FPGA基础设计:Verilog行为级建模(过程赋值)
- 【渝粤教育】电大中专跨境电子商务理论与实务 (20)作业 题库
- 剑指Offer - 面试题57 - II. 和为s的连续正数序列(滑动窗口)
- 导入开源的文件云存储平台-Seafile
- androidStudio导入库文件
- system.js 替换 require.js
- python绘制玫瑰花代码视频_python turtle玫瑰花绘制效果和源代码
- 安卓内录声音软件scr_录屏内录大师软件下载
- 每周推荐短视频:道哥表达了对自动驾驶技术的感恩之情
- 调色板程序c语言,用C语言开发NES游戏(CC65)05、调色板
- 设置树莓派屏幕常亮,禁止树莓派屏幕休眠
- 第一周学习报告(关于string)
- ONF执行主席Dan Pitt:下一个战争可能是控制器
- FFmpeg将视频提取成帧
- 【WLAN】华为AC使用ACL禁止业务VLAN的IP地址访问管理VLAN
- 基于Visio的二次开发