DBF 文件 ORACLE 数据库恢复
DBF 文件 ORACLE 数据库恢复
清·魏源《庸易通义》:“至道问学之有知无行,分温故为存心,知新为致知,而敦厚为存心,崇礼为致知,此皆百密一疏。”
起因
在我们的生产活动中,意外总是在不经意间发生。那天一个安装有 oracle 数据库的盘符不小心被格式化了,好几个项目都炸了。不过还好有备份,不过只有 .DBF 文件和几个日志文件:
//数据库系统相关
REDO01.LOG
REDO02.LOG
REDO03.LOG
SYSTEM01.DBF
UNDOTBS01.DBF
SYSAUX01.DBF
USERS01.DBF
//项目相关
xxx.DBF
解决
前期准备
- 重新安装和之前一样的数据库版本、实例名都和之前的一致;
- 编写创建控制文件 CONTROLFILE 的命令。
控制文件(Control File)是Oracle的物理文件之一,它记录了数据库的名字、数据文件的位置等信息。控制文件的重要性在于,一旦控制文件损坏,数据库将会宕机。如果没有数据库的备份和归档日志文件,数据库将无法恢复。因此,我们应该多路镜像控制文件(Multiplex Control Files),并把每个镜像的控制文件分布在不同的物理磁盘。根据经验,控制文件多路镜像以后,几个控制文件同时坏掉的可能性几乎为零。控制文件管理的重心是重在预防,而不是亡羊补牢!
控制文件实例:
CREATE CONTROLFILE REUSE DATABASE "数据库名(orcl)" NORESETLOGS ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 454
LOGFILE
GROUP 1 '需要恢复的日志文件路径(E:\oradata\orcl\)REDO01.LOG' SIZE 50M,
GROUP 2 '同上\REDO02.LOG' SIZE 50M,
GROUP 3 '同上\REDO03.LOG' SIZE 50M
DATAFILE(数据文件)
-- 系统相关
'需要恢复的数据文件路径(E:\oradata\orcl\)SYSTEM01.DBF',
'需要恢复的数据文件路径(E:\oradata\orcl\)UNDOTBS01.DBF',
'需要恢复的数据文件路径(E:\oradata\orcl\)SYSAUX01.DBF',
'需要恢复的数据文件路径(E:\oradata\orcl\)USERS01.DBF',
-- 用户数据相关
'需要恢复的数据文件路径(E:\oradata\orcl\)TEST01.DBF',
'需要恢复的数据文件路径(E:\oradata\orcl\)TEST02.DBF'
'CHARACTER SET ZHS16GBK;
操作步骤
1.进入 cmd 输入命令:
sqlplus
然后以数据库管理员身份登录系统,输入:
sys / as sysdba
输入命令回车,下一步输入密码即可进入到数据库命令行模式。
2.备份控制文件到 trace 文件,输入命令:
alter database backup controlfile to trace;
3.停止数据库,输入命令:
shutdown immediate;
4.以 nomount 状态启动数据库,输入命令:
startup nomount;
5.执行创建控制文件的命令,输入前期准备好的创建控制文件的命令:
6.恢复数据库,输入命令:
recover database;
7.将数据库从 mount 状态切换到 open 状态,这时就是使用数据库了,输入命令:
alter database open;
oracle数据库启动分三个步骤 nomount mount open startup是数据库从开始阶段的启动du,需要经过上述zhi三个步dao骤 alter database open是数据库处于mount状态,从mount状态打开数据库的命令

至此,dbf 文件恢复 oracle 数据库就完成了。祝君好运!
期间遇到的问题
有问题不要害怕,一个一个去解决它,从中汲取养料,相信自己。
问题一
数据库恢复成功后,连接数据库遇到
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aNrFPOfC-1609941209785)(https://cdn.jsdelivr.net/gh/filess/img10@main/2021/01/06/1609939139070-3baeea76-c41a-48f7-b36b-fb1c3f3f6ce0.png)]
因为归档文件的空间满了。
解决一
增加归档日志空间或者删除归档日志(谨慎操作),可同时操作。
1.增加归档日志空间:
//查看当前归档空间大小
select * from v$recovery_file_dest;
//相应增加归档日志空间大小
alter system set db_recovery_file_dest_size=20G scope=both;
2.删除归档日志
//重新打开一个 cmd 窗口,输入命令:进入 rman
rman target /
//删除所有的归档日志
delete archivelog all;
问题二
ORA-00379: no free buffers available in buffer pool DEFAULT for block size 16K
缓冲池 DEFAULT 中无法提供 16K 块大小的空闲缓冲区
解决二
- 查看 16K 块大小
show parameter db_16k_cache_size
2.设置 16K 块缓冲区大小
alter system set db_16k_cache_size=10m;
问题三
ORA-12516
ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程'
解决三
1.查看数据库现有的进程(process)数是否已经达到参数 processes 的大小;当前会话数量(session)是否达到参数 sessions 的大小。
//获取当前数据库所有的进程数量
select count(*) from v$process;
//获取当前数据库所有会话数量
select count(*) from v$session;
//获取 processes 大小
show parameter processes;
//获取 sessions 大小
show parameter sessions
2.修改 processes 值和 sessions 值
alter system set processes=300 scope=spfile;
alter system set sessions=335 scope=spfile;
3.重启数据库生效
shutdown immediate; or shutdown
startup
公众号“手机APP软件知识分享库”,原创文章第一时间推送。
DBF 文件 ORACLE 数据库恢复的更多相关文章
- oracle数据库恢复与备份
一.oracle数据库恢复 1.恢复刚才删除的一条数据 delete from emp e where e.empname='SMITH' select * from flashback_transa ...
- 重装系统后ORACLE数据库恢复的方法
如果我们的操作系统出现问题,重装系统后,ORACLE数据库应该如何恢复呢?下文就为您列举了两个重装系统后ORACLE数据库恢复的方法,供您参考. ORACLE数据库恢复的方法我们经常会用到,下面就为您 ...
- 把oracle数据库恢复到某个时间点或者某个scn
alter session set nls_date_format='yyyymmdd hh24:mi:ss'; select sysdate from dual; conn dbauser/1234 ...
- Raid信息丢失数据恢复及oracle数据库恢复验证方案
早些时候,有个客户14块盘的磁盘阵列出现故障,需要恢复的数据是oracle数据库,客户在寻求数据恢复技术支持,要求我提供详细的数据恢复方案,以下是提供给客户的详细数据恢复解决方案,本方案包含Raid数 ...
- Oracle 数据库恢复命令
前提是oracle服务能正常启动,但是客户端怎么都连接不上. 首先打开命令行,输入:sqlplus / as sysdba; 回车 连上数据库后,屏幕会显示:已连接到空闲例程. 接下来在SQL> ...
- Oracle数据库恢复
建用户 wf2014 赋权限 grant dba to wf2014; 数据恢复 imp wf2014/wf2014 file=D:\wf2014.dmp full=y 参数设置: datasourc ...
- oracle数据库恢复归档脚本
cat restorearch1.sh rman target / << EOFRUN {SET ARCHIVELOG DESTINATION TO '/archlog1/db2_arch ...
- undo丢失恢复异常恢复,运维DBA反映Oracle数据库无法启动报错ORA-01157 ORA-01110,分析原因为Oracle数据库坏块导致
本文转自 惜纷飞 大师. 模拟基表事务未提交数据库crash,undo丢失恢复异常恢复,运维DBA反映Oracle数据库无法启动报错ORA-01157 ORA-01110,分析原因为Oracle数据库 ...
- 在oracle下我们如何正确的执行数据库恢复
标签:oracle 数据库 恢复 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://jiujian.blog.51cto.com/4 ...
随机推荐
- HDFS客户端操作(JAVA代码)
环境准备 windows需要配置hadoop的windows下的依赖 安装包地址: 链接:https://pan.baidu.com/s/1QtbH-x-S0QytkmaoSosdEw 提取码:2kt ...
- Scrum 冲刺 第五篇
Scrum 冲刺 第五篇 每日会议照片 昨天已完成工作 队员 昨日完成任务 黄梓浩 初步完成app项目架构搭建 黄清山 完成部分个人界面模块数据库的接口 邓富荣 完成后台首页模块数据库的接口 钟俊豪 ...
- uni-app微信小程序登录授权
微信小程序授权是非常简单和常用的功能,但为了方便,还是在此记录一下要点: 首先是需要用到一个授权按钮来触发获取用户信息授权: 关键在于 open-type 为 getUserInfo , 然后有个@g ...
- Jmeter(9)常用定时器
测试计划中元件的执行顺序依次为: 配置元件--逻辑控制器--前置处理器--定时器--取样器--后置处理器--断言--监听器 一.定时器作用域 1.定时器是在每个取样器之前执行的,无论定时器是在取样器之 ...
- Java 书单
Java 基础 <Head First Java> 有人说这本书不适合编程新手阅读?其实本书还是很适合稍微有一点点经验的新手来阅读的,当然也适合我们用来温故 Java 知识点. ps:刚入 ...
- python 连接数据库操作
import mysql #打开数据库连接(用户名,密码,数据库名) db = mysql.connect("localhost","testuser",&qu ...
- 关于Java中的String类知识点小总结
Java中的String类知识点 前言 在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串. 如何创建字符串 最简单的方式 String str = "he ...
- jmeter性能测试-高并发分布式部署
jmeter什么要做分布式部署? jmeter是运行在JVM虚拟机上的,当模拟大量并发时,对运行机器的性能/网络负载会很大. 此时就需要使用jmeter的分布式部署功能,实现多台被控机器同时并发访问被 ...
- Acunetix 11手动导入Burp suite抓取的网页
设置爬取 因为Burp的代理默认配置拦截所有请求,需要先来关闭这个功能,在Proxy标签页面中,选择Intercept子标签页面,点击 Intercept is on按钮. 使用配置好代理服务器的浏览 ...
- Spring Cloud 2020.0.0正式发布,再见了Netflix
目录 ✍前言 版本约定 ✍正文 Spring Cloud版本管理 与Spring Boot版本对应关系 当前支持的版本 阻断式升级(不向下兼容) 1.再见了,Netflix Netflix组件替代方案 ...