数据库常见问题汇总(数据库常见故障有哪些)

2026-09-20 14:15:02 :0

数据库常见问题汇总(数据库常见故障有哪些)

这篇文章给大家聊聊关于数据库常见问题汇总,以及数据库常见故障有哪些对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

本文目录

数据库常见故障有哪些

数据库系统中故障可以分为:事务故障、系统故障、介质故障。

一、事务故障

某个事务在运行过程中由于种种原因未运行至正常终止点,事务故障的常见原因,输入数据有误
运算溢出,违反了某些完整性限制发生锁死。

二、系统故障
由于某种原因造成整个系统的正常运行突然停止,致使所有正在运行的事务都以非正常方式终止。
发生系统故障时,内存中数据库缓冲区的信息全部丢失,但存储在外部存储设备上的数据未受影响 。

三、介质故障
硬件故障使存储在外存中的数据部分丢失或全部丢失 ,介质故障比前两类故障的可能性小得多,但破坏性最大。

数据库系统中的常见故障有哪些

新增archives 时的状况:
条件和假设:自上次镜像备份以来已经生成新的archive log(s); Archivelog Mode; 有同步的datafile(s) 和control file(s) 的镜像(冷)拷贝;archive log(s) 可用。
恢复步骤:
1. 如果数据库尚未关闭,则首先把它关闭: $ svrmgrl svrmgrl》 connect internal
svrmgrl》 shutdown abort
2. 将备份文件抄送回原始地点: 所有Database Files
所有Control Files(没有archive(s) 或redo(s) 的情况下,control files 的更新无任何意义)
所有On-Line Redo Logs (Not archives) init.ora file(选项)
3. 启动数据库: $ svrmgrl
svrmgrl》 connect internal
svrmgrl》 startup
数据文件, 重作日志和控制文件同时丢失或损坏:
条件和假设:Archivelog Mode; 有同步的所有所失文件的镜像(冷)拷贝;archive log(s) 可用
恢复步骤(必须采用不完全恢复的手法):
1. 如果数据库尚未关闭,则首先把它关闭: $ svrmgrl svrmgrl》 connect internal
svrmgrl》 shutdown abort
2. 将备份文件抄送回原始地点:
所有Database Files
所有Control Files
所有On-Line Redo Logs(Not archives)
init.ora file(选项)
3. 启动数据库然而并不打开:
svrmgrl》startup mount
4. 做不完全数据库恢复,应用所有从上次镜像(冷)备份始积累起来的archives:
svrmgrl》 recover database until cancel using backup controlfile;
......
......
cancel
5. Reset the logfiles (对启动而言不可省略):
svrmgrl》 alter database open resetlogs;
6. 关闭数据库并做一次全库冷备份。
数据文件和控制文件同时丢失或损坏:
条件和假设:Archivelog Mode; 有同步的datafile(s) 和control file(s) 的冷拷贝;archive log(s) 可用
恢复步骤:
1. 将冷拷贝的datafiles(s) 和control file(s) 抄送回原始地点:
$ cp /backup/good_one.dbf /orig_loc/bad_one.dbf
$ cp /backup/control1.ctl /disk1/control1.ctl
2. 以mount 选项启动数据库:
$ svrmgrl
svrmgrl》 connect internal
svrmgrl》 startup mount
3. 以旧的control file 来恢复数据库:
svrmgrl》 recover database until cancel using backup controlfile;
*** 介质恢复完成
(须在应用完最后一个archive log 后cancel )
4. Reset the logfiles (对启动而言不可省略):
svrmgrl》 alter database open resetlogs;
重作日志和控制文件同时丢失或损坏时:
条件和假设:Control Files 全部丢失或损坏;Archivelog Mode; 有Control Files 的镜像(冷)拷贝
恢复步骤:
1. 如果数据库尚未关闭,则首先把它关闭:
$ svrmgrl
svrmgrl》 connect internal
svrmgrl》 shutdown abort
svrmgrl》exit
2. 以Control File 的镜像(冷)拷贝覆盖损坏了的Control File:
$ cp /backup/control1.ctl /disk1/control1.ctl
3. 启动数据库然而并不打开:
$ svrmgrl
svrmgrl》 connect internal
svrmgrl》 startup mount
4. Drop 坏掉的redo log (排除硬件故障):
svrmgrl》 alter database drop logfile group 2;
5. 重新创建redo log:
svrmgrl》 alter database add logfile group 2 ’/orig_loc/log2.dbf’ size 10M;
6. 以旧的control file 来恢复数据库:
svrmgrl》 recover database until cancel using backup controlfile;
(必须马上cancel )
7. Reset the logfiles (对启动而言不可省略):
svrmgrl》 alter database open resetlogs;
8. 关闭数据库并做一次全库冷备份
只发生归档重作日志丢失或损坏时:
根据不同环境和情况,选择下述手段之一:
a. 马上backup 全部datafiles (如果系统采用一般热备份或RMAN 热备份)
b. 马上正常关闭数据库并进行冷备份(如果系统采用冷备份)
c. 冒险前进!不做备份而让数据库接着跑,直等到下一个备份周期再做备份。这是在赌数据库在下一个备份周期到来之前不会有需要恢复的错误发生。
注意:冒险前进的选择:如果发生错误而需要数据库恢复,则最多只能恢复到出问题archive log 之前的操作现场。从另一个角度讲,archive log(s) 出现问题时,数据库若不需要恢复则其本身并没有任何问题。
Oracle逻辑结构故障的处理方法:
逻辑结构的故障一般指由于人为的误操作而导致重要数据丢失的情况。在这种情况下数据库物理结构是完整的也是一致的。对于这种情况采取对原来数据库的全恢复是不合适的,我们一般采用三种方法来恢复用户数据。
采用exp/imp工具来恢复用户数据:
如果丢失的数据存在一个以前用exp命令的备份,则可以才用这种方式。
1. 在数据库内创建一个临时用户:
svrmgrl》create user test_user identified by test;
svrmgrl》grant connect,resource to test_user;
2. 从以前exp命令备份的文件中把丢失数据的表按照用户方式倒入测试用户:
$imp system/manager file=export_file_name tables=(lost_data_table_name…) fromuser=lost_data_table_owner touser=test_user constraint=n;
3. 用相应的DML语句将丢失的数据从测试用户恢复到原用户。
4. 将测试用户删除:
svrmgrl》drop user test_user cascede;
采用logminer来恢复用户数据:
Logminer是oracle提供的一个日志分析工具。它可以根据数据字典对在线联机日志、归档日志进行分析,从而可以获得数据库的各种DML操作的历史记录以及各种DML操作的回退信息。根据这些用户就可以将由于误操作而丢失的数据重新加入数据库内。
1. 确认数据库的utl_file_dir参数已经设置,如果没有则需要把这个参数加入oracle的初始化参数文件,然后重新启动数据库。下面例子中假设utl_file_dir=’/opt/oracle/db01’;
2. 创建logminer所需要的数据字典信息,假设生成的数据字典文本文件为dict.ora:
svrmgrl》execute dbms_logmnr_d.build(dictionary_filename=》’dict.ora’, dictionary_location=》’/opt/oracle/db01’);
3. 确定所需要分析的日志或者归档日志的范围。这可以根据用户误操作的时间来确定大概的日志范围。假设用户误操作时可能的日志文件为/opt/oracle/db02/oradata/ORCL/redo3.log和归档日志’/opt/oracle/arch/orcl/orclarc_1_113.ora’。
4. 创建要分析的日志文件列表,按日志文件的先后顺序依次加入:
svrmgrl》execute dbms_logmnr.add_logfile(logfilename=》’/opt/oracle/arch/orcl/orclarc_1_113.ora’,options=》dbms_logmnr.NEW);
svrmgrl》 execute dbms_logmnr.add_logfile(logfilename=》’ /opt/oracle/db02/oradata/ORCL/redo3.log’,options=》dbms_logmnr.ADDFILE);
5. 开始日志分析,假设需要分析的时间在’2003-06-28 12:00:00’和’2003-06-28 13:00:00’之间:
svrmgrl》execute dbms_logmnr.start_logmnr(dictfilename=》’ /opt/oracle/db01/dict.ora’,starttime=》to_date(’ 2003-06-28 12:00:00’,’YYYY-MM-DD HH:MI:SS’),endtime=》to_date(to_date(‘2003-06-28 13:00:00’,’YYYY-MM-DD HH:MI:SS’));
6. 获取分析结果:
svrmgrl》select operation,sql_redo,sql_undo from v$logmnr_contents;
7. 根据分析结果修复数据。
8.结束logmnr:
svrmgrl》dbms_logmnr.end_logmnr;
9. 用适当的方法对原数据库进行数据库全备份。
利用备份恢复用户数据:
采用这种方法时并不是在原数据库进行恢复,而是利用数据库备份在新的机器上重新建立一个新的数据库。通过备份恢复在新机器上将数据库恢复到用户误操作前,这样就可以获得丢失的数据将其恢复到原数据库。
1. 在新的机器上安装数据库软件。
2. 对于采用带库备份的现场,需要在新的数据库服务器上安装调试相应的备份管软件。
3. 根据用户误操作的时间点进行基于时间点的数据库恢复操作。对于没有采用带库备份的现场,可以选取用户误操作前最近的备份磁带进行恢复;对于才用带库备份的点可以通过基于时间恢复点恢复的rman脚本来进行恢复。
4.重新打开数据库:
svrmgrl》alter database open resetlogs;
5. 从新的数据库中获取丢失的用户数据,通过DML操作将其恢复到原数据库中。
6. 用适当的方法对原数据库进行数据库全备份。

如果你还想了解更多这方面的信息,记得收藏关注本站。

数据库常见问题汇总(数据库常见故障有哪些)

本文编辑:admin

更多文章:


现代吉州窑玳瑁釉杯子贵吗?钧瓷梅瓶的特点与来历

现代吉州窑玳瑁釉杯子贵吗?钧瓷梅瓶的特点与来历

各位老铁们好,相信很多人对玳瑁釉梅瓶都不是特别的了解,因此呢,今天就来为大家分享下关于玳瑁釉梅瓶以及现代吉州窑玳瑁釉杯子贵吗的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录现代吉州窑玳瑁釉杯子贵吗钧瓷梅瓶的特点与

2026年9月15日 16:30

邮箱远程主机强迫关闭了一个现有的连接(foxmail为什么显示远程主机强迫关闭现有连接,能收邮件,可以发邮件,是怎么回事呢请各位帮忙解决下!)

邮箱远程主机强迫关闭了一个现有的连接(foxmail为什么显示远程主机强迫关闭现有连接,能收邮件,可以发邮件,是怎么回事呢请各位帮忙解决下!)

大家好,关于邮箱远程主机强迫关闭了一个现有的连接很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于foxmail为什么显示远程主机强迫关闭现有连接,能收邮件,可以发邮件,是怎么回事呢请各位帮忙解决下!的知识点,相信应该可以解决

2026年9月15日 17:30

启动界面图片(如何更改车载导航开机画面)

启动界面图片(如何更改车载导航开机画面)

本篇文章给大家谈谈启动界面图片,以及如何更改车载导航开机画面对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录如何更改车载导航开机画面微信启动

2026年7月26日 13:30

线程池内中断某个线程(如何终止 android线程池中的任务)

线程池内中断某个线程(如何终止 android线程池中的任务)

大家好,今天小编来为大家解答以下的问题,关于线程池内中断某个线程,如何终止 android线程池中的任务这个很多人还不知道,现在让我们一起来看看吧!本文目录如何终止 android线程池中的任务Java线程池停止空闲线程是否有规则Execu

2026年1月7日 07:15

为什么mysql没有bin目录(我在windows7下面安装mysql怎么会没有bin目录呢)

为什么mysql没有bin目录(我在windows7下面安装mysql怎么会没有bin目录呢)

本篇文章给大家谈谈为什么mysql没有bin目录,以及我在windows7下面安装mysql怎么会没有bin目录呢对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录我在windows7下面安装mysql怎么会没有bin目录呢我的

2026年2月7日 02:30

attuned什么意思(life rarely encountered so attuned to the met you,don’t miss.什么意思)

attuned什么意思(life rarely encountered so attuned to the met you,don’t miss.什么意思)

各位老铁们,大家好,今天由我来为大家分享attuned什么意思,以及life rarely encountered so attuned to the met you,don’t miss.什么意思的相关问题知识,希望对大家有所帮助。如果可

2025年11月5日 16:30

进程管理器端口(win7系统怎么查看端口被哪个进程占用情况呢)

进程管理器端口(win7系统怎么查看端口被哪个进程占用情况呢)

本篇文章给大家谈谈进程管理器端口,以及win7系统怎么查看端口被哪个进程占用情况呢对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录win7系统怎么查看端口被哪个进程占用情况呢查看进程端口怎么查看进程端口windows怎么查看进

2026年4月9日 11:45

统计学样本量计算公式(样本量计算公式是什么)

统计学样本量计算公式(样本量计算公式是什么)

大家好,关于统计学样本量计算公式很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于样本量计算公式是什么的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目录样本

2025年7月17日 01:30

translate的用法及其词组(英语Arrival Site怎么翻译)

translate的用法及其词组(英语Arrival Site怎么翻译)

“translate的用法及其词组”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看translate的用法及其词组(英语Arrival Site怎么翻译)!本文目录英语Arrival Site怎么翻译高中英语常用固定短语请翻

2026年7月16日 00:00

girl怎么读音发音(girl的发音)

girl怎么读音发音(girl的发音)

本篇文章给大家谈谈girl怎么读音发音,以及girl的发音对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录girl的发音girl怎么读英语单

2026年4月12日 17:15

grassland(grassland怎么读 英语grassland怎么读)

grassland(grassland怎么读 英语grassland怎么读)

大家好,如果您还对grassland不太了解,没有关系,今天就由本站为大家分享grassland的知识,包括grassland怎么读 英语grassland怎么读的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录gr

2025年12月10日 09:45

elementui和bootstrap 哪个好(学习bootstrap还是vue好)

elementui和bootstrap 哪个好(学习bootstrap还是vue好)

大家好,关于elementui和bootstrap 哪个好很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于学习bootstrap还是vue好的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下

2026年4月1日 10:45

下载jquery最新版本教程(怎么引用bootstrap轮播图)

下载jquery最新版本教程(怎么引用bootstrap轮播图)

“下载jquery最新版本教程”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看下载jquery最新版本教程(怎么引用bootstrap轮播图)!本文目录怎么引用bootstrap轮播图dw日期选择框怎么设置精通javascr

2026年8月26日 01:45

revoke语句(sql语言中提供了哪些数据控制的语句)

revoke语句(sql语言中提供了哪些数据控制的语句)

今天给各位分享sql语言中提供了哪些数据控制的语句的知识,其中也会对sql语言中提供了哪些数据控制的语句进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录sql语言中提供了哪些数据控制的语句求:《数据库》1、什么

2026年4月27日 00:45

二次分式怎么求值域(如果是二次分式函数,那么应该怎么求值域)

二次分式怎么求值域(如果是二次分式函数,那么应该怎么求值域)

大家好,二次分式怎么求值域相信很多的网友都不是很明白,包括如果是二次分式函数,那么应该怎么求值域也是一样,不过没有关系,接下来就来为大家分享关于二次分式怎么求值域和如果是二次分式函数,那么应该怎么求值域的一些知识点,大家可以关注收藏,免得下

2026年9月18日 04:30

predominate是什么意思(这句话怎么翻译 In his eyes she eclipses and predominates the whole of her sex)

predominate是什么意思(这句话怎么翻译 In his eyes she eclipses and predominates the whole of her sex)

本篇文章给大家谈谈predominate是什么意思,以及这句话怎么翻译 In his eyes she eclipses and predominates the whole of her sex对应的知识点,文章可能有点长,但是希望大家可

2026年4月29日 13:30

手机上怎么显示html图片(html格式的图片在手机上怎么能打开)

手机上怎么显示html图片(html格式的图片在手机上怎么能打开)

各位老铁们好,相信很多人对手机上怎么显示html图片都不是特别的了解,因此呢,今天就来为大家分享下关于手机上怎么显示html图片以及html格式的图片在手机上怎么能打开的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文

2026年8月9日 01:30

js的replaceall(js 怎么替换不了 | 这个符号)

js的replaceall(js 怎么替换不了 | 这个符号)

大家好,如果您还对js的replaceall不太了解,没有关系,今天就由本站为大家分享js的replaceall的知识,包括js 怎么替换不了 | 这个符号的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录js 怎么

2026年9月16日 13:00

在线转换器jpg转pdf(jpg格式图片转换成pdf格式)

在线转换器jpg转pdf(jpg格式图片转换成pdf格式)

这篇文章给大家聊聊关于在线转换器jpg转pdf,以及jpg格式图片转换成pdf格式对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录jpg格式图片转换成pdf格式图片转PDF这几种方法你听说过吗把JPG转换成PDF格式文档的方法

2026年8月4日 08:15

安卓activity软件(activity(Android组件中最重要的四大组件之一)详细资料大全)

安卓activity软件(activity(Android组件中最重要的四大组件之一)详细资料大全)

这篇文章给大家聊聊关于安卓activity软件,以及activity(Android组件中最重要的四大组件之一)详细资料大全对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录activity(Android组件中最重要的四大组件

2026年7月30日 07:00

近期文章

本站热文

electronics软件(labcenter electronics是什么软件)
2025-05-22 23:45:02 浏览:134
博客是微博吗(博客是微博吗)
2025-05-22 22:45:01 浏览:111
diversity and distribution(悬赏英语短文)
2025-05-23 16:15:02 浏览:107
ios软件开发前景(iOS就业前景怎么样)
2025-05-22 23:00:01 浏览:102
next month(有The next month这个单词吗,和 next month有什么区别)
2025-05-23 02:30:01 浏览:102
patron(patron是什么意思)
2025-05-23 10:30:02 浏览:95
标签列表

热门搜索