DBF 文件恢复 ORACLE 数据库的方法_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

到此这篇关于DBF 文件 ORACLE 数据库恢复的文章就介绍到这了,更多相关DBF 文件 ORACLE 数据库恢复内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

您可能感兴趣的文章:Oracle dbf文件移动的方法Oracle误删除表数据后的数据恢复详解最简单的Oracle数据恢复 select as of使用方法oracle如何恢复被覆盖的存储过程oracle冷备份恢复和oracle异机恢复使用方法rman恢复方案和oracle异机恢复

  • 本文相关:
  • oracle exp和imp用法和介绍
  • plsql与tsql的语法不同
  • oracle数据库sql的优化总结
  • 在mac os上安装oracle数据库的基本方法
  • oracle数据库的安全策略
  • oracle中timestamp的几种类型介绍与实例
  • oracle误删数据恢复方法小结
  • oracle与mysql自动增长列(id)的区别
  • 关于oracle存储过程和调度器实现自动对数据库过期数据清除的问题
  • 安装oracle时出现环境变量path的值大于1023的解决办法
  • 如何通过dbf文件恢复oracle
  • Oracle通过ora和dbf文件恢复数据库
  • oracle dbf如何恢复
  • 如何从完好的oracle数据文件恢复oracle数据库?要...
  • 有DBF,CTL,Log文件怎么恢复oracle数据库
  • oracle10g只有部分dbf文件,怎么恢复数据
  • ORACLE如何通过DBF文件恢复数据 由于系统崩溃重装...
  • 请教:如何将dbf文件导入到Oracle数据库中
  • 如何将原来的oracle里dbf文件数据,导入到新安装的...
  • LINUX下oracle数据库中表空间下不小心删掉的的. DB...
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess数据库文摘数据库其它首页oracle dbf文件移动的方法oracle误删除表数据后的数据恢复详解最简单的oracle数据恢复 select as of使用方法oracle如何恢复被覆盖的存储过程oracle冷备份恢复和oracle异机恢复使用方法rman恢复方案和oracle异机恢复oracle exp和imp用法和介绍plsql与tsql的语法不同oracle数据库sql的优化总结在mac os上安装oracle数据库的基本方法oracle数据库的安全策略oracle中timestamp的几种类型介绍与实例oracle误删数据恢复方法小结oracle与mysql自动增长列(id)的区别关于oracle存储过程和调度器实现自动对数据库过期数据清除的问题安装oracle时出现环境变量path的值大于1023的解决办法oracle 查看表空间的大小及使用情linux系统(x64)安装oracle11g完oracle数据库下载及安装图文操作oracle存储过程基本语法介绍oracle 10g 安装教程[图文]oracle 如何查询被锁定表及如何解基于ora-12170 tns 连接超时解决oracle中to_date详细用法示例(ororacle数据库tns配置方法详解oracle 创建表空间详细介绍oracle报错记录被另外一个用户锁定的解决oracle11g数据库win8.1系统安装配置图文教优化oracle库表设计的若干方法oracle的clob大数据字段类型操作方法oracle数据创建虚拟列和复合触发器的方法自动备份oracle数据库oracle cloud control 12c的启动、关闭及oracle时间日期操作方法小结[oracle] data guard cpu/psu补丁安装详细oracle 字符串转成行
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved