• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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

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

    您可能感兴趣的文章:
    • Oracle dbf文件移动的方法
    • Oracle误删除表数据后的数据恢复详解
    • 最简单的Oracle数据恢复 select as of使用方法
    • oracle如何恢复被覆盖的存储过程
    • oracle冷备份恢复和oracle异机恢复使用方法
    • rman恢复方案和oracle异机恢复
    上一篇:Oracle中Spool命令的使用方法实例
    下一篇:oracle in长度限制的两个快速解决方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    DBF 文件恢复 ORACLE 数据库的方法 DBF,文件,恢复,ORACLE,数据库,