`
哇哈哈852
  • 浏览: 87752 次
文章分类
社区版块
存档分类
最新评论

Oracle控制文件的备份、恢复以及多路复用

阅读更多


    今天给大家带来有关Oracle控制文件的技术分享。不积跬步无以至千里,不积小流无以成江海。Oracle技术博大精深,以我一个人的力量,那无异于蜉蝣于天地,沧海之一粟。在此,笔者抛砖引玉,希望读者能够与我形成良好的互动,之间共同进步。闲言少叙,书归正传,马上开始今天的讨论话题。

一、控制文件概要描述
      既然今天的主题是控制文件,那么首先我先带大家来简要回顾一下控制文件的相关知识点。控制文件在默认情况下,一般和数据文件以及日志文件等位于同一个目录(当然,不放在这里也是没有问题的……看个人喜好),具体查看的sql语句是:
      SYS@ENMOEDU > select name from v$controlfile;
     
      NAME
      ------------------------------
      /u01/app/oracle/oradata/ENMOEDU/control01.ctl
      /u01/app/oracle/fast_recovery_area/ENMOEDU/control02.ctl
      从这里就已经清晰的看到我控制文件的路径以及名称了,还有,细心的读者应该发现了,我是一个很小心谨慎的人,所以呢,我的控制文件是两份。这样做的好处是,万一我其中的一个控制文件被误删了或者损坏了,我还有另外一个控制文件保证我数据库的正常运行以及启动(不小心把多路复用技术给提前引入了……稍后会有更详细的配置以及解析)。
      控制文件的作用我想就毋庸赘言了吧?上至九十老妪,下到五岁孩童,对于控制文件的重要性都能如数家珍般的娓娓道来。控制文件中有数据库以及在线重做日志的位置以及众多重要的信息,丢失或者损坏控制文件,数据库将无法正常启动和运行。既然控制文件这么重要,那么我们该怎么对它进行备份和恢复呢?

二、控制文件的备份与恢复
      (1)基于用户管理的备份和恢复
     
      首先进入Oracle的trace目录
      [oracle@ENMOEDU trace]$ cd /u01/app/oracle/diag/rdbms/enmoedu/ENMOEDU/trace
     
      用tail命令来打开alert_ENMOEDU.log文件
      [oracle@ENMOEDU trace]$ tail -100f alert_ENMOEDU.log
     
      此时打开另一窗口,执行如下命令
      SYS@ENMOEDU > alter database backup controlfile to trace;
      Database altered.
     
      我们可以在alert.ENMOEDU.log看到如下信息
      Mon Mar 10 15:22:20 2014
      alter database backup controlfile to trace
      Backup controlfile written to trace file /u01/app/oracle/diag/rdbms/enmoedu/ENMOEDU/trace/ENMOEDU_ora_18205.trc
      Completed: alter database backup controlfile to trace
     
      根据上述信息,我们去查看提示的文件
      [oracle@ENMOEDU ~]$ cat /u01/app/oracle/diag/rdbms/enmoedu/ENMOEDU/trace/ENMOEDU_ora_18205.trc
     
      在浩如烟海的信息中,我们可以找到创建控制文件的命令
      CREATE CONTROLFILE REUSE DATABASE "ENMOEDU" RESETLOGS  ARCHIVELOG
              MAXLOGFILES 16
              MAXLOGMEMBERS 3
              MAXDATAFILES 100
              MAXINSTANCES 8
              MAXLOGHISTORY 292
        LOGFILE
            GROUP 1 '/u01/app/oracle/oradata/ENMOEDU/redo01.log'  SIZE 50M BLOCKSIZE 512,
            GROUP 2 '/u01/app/oracle/oradata/ENMOEDU/redo02.log'  SIZE 50M BLOCKSIZE 512,
            GROUP 3 '/u01/app/oracle/oradata/ENMOEDU/redo03.log'  SIZE 50M BLOCKSIZE 512
        -- STANDBY LOGFILE
        DATAFILE
            '/u01/app/oracle/oradata/ENMOEDU/system01.dbf',
            '/u01/app/oracle/oradata/ENMOEDU/sysaux01.dbf',
            '/u01/app/oracle/oradata/ENMOEDU/undotbs01.dbf',
            '/u01/app/oracle/oradata/ENMOEDU/users01.dbf',
            '/u01/app/oracle/oradata/ENMOEDU/example01.dbf',
            '/u01/app/oracle/oradata/ENMOEDU/test01.dbf',
            '/u01/app/oracle/oradata/ENMOEDU/test02.dbf'
        CHARACTER SET AL32UTF8;
     
      稍后我们就可以用这些命令来创建控制文件了。下面来模拟控制文件丢失和损坏的实验环境:
      [root@ENMOEDU ~]# rm -rf /u01/app/oracle/oradata/ENMOEDU/control01.ctl
      [root@ENMOEDU ~]# rm -rf /u01/app/oracle/fast_recovery_area/ENMOEDU/control02.ctl
     
      笔者将两个控制文件都删除了,很彻底~然后尝试启动数据库。
      [oracle@ENMOEDU ~]$ sqlplus / as sysdba
        SQL*Plus: Release 11.2.0.3.0 Production on Mon Mar 10 15:47:54 2014
        Copyright (c) 1982, 2011, Oracle.  All rights reserved.
        Connected to an idle instance.
        SYS@ENMOEDU > startup
        ORACLE instance started.
 
      Total System Global Area  422670336 bytes
        Fixed Size                  1345380 bytes
        Variable Size            352323740 bytes
        Database Buffers          62914560 bytes
        Redo Buffers                6086656 bytes
        ORA-00205: error in identifying control file, check alert log for more info
       
        可以看出,数据库已经无法正常启动了。那么我们就将数据库启动到nomount状态下进行恢复。
        SYS@ENMOEDU > shutdown abort
        ORACLE instance shut down.
        SYS@ENMOEDU > startup nomount
        ORACLE instance started.

      Total System Global Area  422670336 bytes
        Fixed Size                  1345380 bytes
        Variable Size            352323740 bytes
        Database Buffers          62914560 bytes
        Redo Buffers                6086656 bytes
      SYS@ENMOEDU > CREATE CONTROLFILE REUSE DATABASE "ENMOEDU" RESETLOGS  ARCHIVELOG
          2                MAXLOGFILES 16
          3                MAXLOGMEMBERS 3
          4                MAXDATAFILES 100
          5                MAXINSTANCES 8
          6                MAXLOGHISTORY 292
          7        LOGFILE
          8            GROUP 1 '/u01/app/oracle/oradata/ENMOEDU/redo01.log'  SIZE 50M BLOCKSIZE 512,
          9            GROUP 2 '/u01/app/oracle/oradata/ENMOEDU/redo02.log'  SIZE 50M BLOCKSIZE 512,
          10            GROUP 3 '/u01/app/oracle/oradata/ENMOEDU/redo03.log'  SIZE 50M BLOCKSIZE 512
          11        -- STANDBY LOGFILE
          12        DATAFILE
          13              '/u01/app/oracle/oradata/ENMOEDU/system01.dbf',
          14              '/u01/app/oracle/oradata/ENMOEDU/sysaux01.dbf',
          15              '/u01/app/oracle/oradata/ENMOEDU/undotbs01.dbf',
          16              '/u01/app/oracle/oradata/ENMOEDU/users01.dbf',
          17              '/u01/app/oracle/oradata/ENMOEDU/example01.dbf',
          18              '/u01/app/oracle/oradata/ENMOEDU/test01.dbf',
          19              '/u01/app/oracle/oradata/ENMOEDU/test02.dbf'
          20        CHARACTER SET AL32UTF8;

      Control file created.
       
      尝试开启数据库
        SYS@ENMOEDU > alter database open
          2  ;
        alter database open
        *
        ERROR at line 1:
        ORA-01589: must use RESETLOGS or NORESETLOGS option for database open

       
      提示错误。按照提示来开启数据库:
        SYS@ENMOEDU > alter database open resetlogs;

      Database altered.

        数���库已经正常启动了。
     
      上述情况属于非常乐观且极易恢复的模拟实验现场,但是在实际情况中,环境却险要恶劣的多。往往控制文件丢失后,用户还会进行大量的操作,比如创建表空间等等,这些使得控制文件的恢复要困难许多。路漫漫其修远兮,吾将上下而求索,我对待技术的渴望永无止境。下面我就给大家介绍一下如何在备份的控制文件过久的情况下恢复控制文件。
      首先,我们先备份一下我们的控制文件。由于我采用了多路复用,所以看起来是不是应该把两个控制文件都备份一下呢?按照国际惯例,一般作者向读者发出类似这种疑问句的时候,答案往往是否定的。但是,我作为一个走位忽上忽下意识飘忽不定的技术人员,所以,答案,仍然是不需要备份两份。由于两份控制文件是一模一样的,所以备份一份即可,只需记得在恢复的时候注意文件名字。
   
      备份控制文件。在本文中,将控制文件备份到Oracle的家目录下,给控制文件一种家的温暖。
      [oracle@ENMOEDU ENMOEDU]$ cp control01.ctl ~

    创建表空间和文件,从而使现在的控制文件和备份文件产生差异。
      SYS@ENMOEDU > create tablespace 我 datafile '/u01/app/oracle/oradata/ENMOEDU/我01.dbf' size 100m;

    Tablespace created.

      查看一下当前在线日志的status,并切换日志,产生归档。
      SYS@ENMOEDU > select group#,status from v$log;


      GROUP# STATUS
      ---------- ----------------
          1 CURRENT
          2 INACTIVE
          3 INACTIVE


      SYS@ENMOEDU > alter system archive log current;


      System altered.


      SYS@ENMOEDU > select group#,status from v$log;


      GROUP# STATUS
      ---------- ----------------
          1 ACTIVE
          2 CURRENT
          3 INACTIVE


      SYS@ENMOEDU > alter system archive log current;


      System altered.


      SYS@ENMOEDU > select group#,status from v$log;


      GROUP# STATUS
      ---------- ----------------
          1 ACTIVE
          2 ACTIVE
          3 CURRENT


      SYS@ENMOEDU > alter system archive log current;
 

      System altered.


      SYS@ENMOEDU > select group#,status from v$log;


      GROUP# STATUS
      ---------- ----------------
          1 CURRENT
          2 ACTIVE
          3 ACTIVE


      SYS@ENMOEDU > alter system archive log current;


      System altered.


      SYS@ENMOEDU > select group#,status from v$log;


      GROUP# STATUS
      ---------- ----------------
          1 ACTIVE
          2 CURRENT
          3 INACTIVE


      SYS@ENMOEDU > alter system archive log current;


      System altered.


      SYS@ENMOEDU > select group#,status from v$log;


      GROUP# STATUS
        ---------- ----------------
          1 INACTIVE
          2 ACTIVE
          3 CURRENT


        SYS@ENMOEDU > alter system archive log current;


        System altered.


        SYS@ENMOEDU > select group#,status from v$log;


        GROUP# STATUS
          ---------- ----------------
          1 CURRENT
          2 INACTIVE
          3 ACTIVE


        SYS@ENMOEDU > alter system archive log current;


        System altered.


        SYS@ENMOEDU > select group#,status from v$log;


      GROUP# STATUS
        ---------- ----------------
          1 ACTIVE
          2 CURRENT
          3 INACTIVE


      SYS@ENMOEDU > alter system archive log current;


      System altered.


      SYS@ENMOEDU > select group#,status from v$log;


      GROUP# STATUS
        ---------- ----------------
          1 ACTIVE
          2 ACTIVE
          3 CURRENT
  • 大小: 23.1 KB
分享到:
评论

相关推荐

    Oracle数据库的安装及备份的练习.docx

    oracle数据库的恢复 重要:进行以下操作之前,要确保数据库是归档模式、控制文件的自动备份选项打开,并且执行一次包括归档的完全...如果有控制文件的备份, 则直直接从各备份中恢复控制文件。 确认有控制文件的备份

    Oracle 从入门到精通视频教程(11G版本)(ppt)

    控制文件的多路复用 创建控制文件 日志文件的管理 第16章-表空间的管理 与表空间有关的概念 表空间的管理 临时表空间的管理 数据文件管理 第17章-与数据库安全性有关的对象 用户管理 权限管理 角色管理 概要...

    Oracle数据库维护培训

    多路复用在线重做日志文件 创建新的数据库用户 修改和删除存在的数据库用户 监控已存在用户的信息 识别系统和对象权限 授予和回收权限 创建和管理初始化参数文件 启动和关闭实例 监控和使用诊断文件 登录到 SQL*Plus...

    Oracle11g从入门到精通2

    11.1.2 多路复用控制文件 11.1.3 控制文件的创建 11.1.4 控制文件的备份与恢复 11.1.5 控制文件的查询与删除 11.1.6 OEM中控制文件的管理 11.2 日志文件 11.2.1 日志文件及存储策略 11.2.2 增加日志组...

    Oracle11g从入门到精通

    11.1.2 多路复用控制文件 11.1.3 控制文件的创建 11.1.4 控制文件的备份与恢复 11.1.5 控制文件的查询与删除 11.1.6 OEM中控制文件的管理 11.2 日志文件 11.2.1 日志文件及存储策略 11.2.2 增加日志组和日志...

    Oracle.11g.从入门到精通 (2/2)

    11.1.2 多路复用控制文件 11.1.3 控制文件的创建 11.1.4 控制文件的备份与恢复 11.1.5 控制文件的查询与删除 11.1.6 OEM中控制文件的管理 11.2 日志文件 11.2.1 日志文件及存储策略 11.2.2 增加日志组和日志成员 ...

    Oracle.11g.从入门到精通 (1/2)

    11.1.2 多路复用控制文件 11.1.3 控制文件的创建 11.1.4 控制文件的备份与恢复 11.1.5 控制文件的查询与删除 11.1.6 OEM中控制文件的管理 11.2 日志文件 11.2.1 日志文件及存储策略 11.2.2 增加日志组和日志成员 ...

    oracle数据库11G初学者指南.Oracle.Database.11g,.A.Beginner's.Guide

    3.3.4 会话多路复用 3.3.5 防火墙访问控制 3.4 使用Oracle Net Listener 3.4.1 密码验证 3.4.2 多个监听进程 3.4.3 连接池 3.5 命名方法 3.5.1 目录命名方法 3.5.2 目录信息树 3.5.3 标识名 3.5.4 如何查找目录命名...

    Oracle Database 11g初学者指南--详细书签版

    3.3.4 会话多路复用 56 3.3.5 防火墙访问控制 57 3.4 使用Oracle Net Listener 57 3.4.1 密码验证 59 3.4.2 多个监听进程 59 3.4.3 连接池 59 3.5 命名方法 60 3.5.1 目录命名方法 60 3.5.2 目录信息树 60 ...

    OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)--详细书签版(第2/2部分)

     ●oracle恢复管理器和oracle闪回技术  ●资源管理器  ●oracle自动存储管理  ●oracle调度程序  ●自动工作负荷知识库  ●性能调整 作译者  John Watson就职于BPLC Management Consultants,负责公司欧洲...

    OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)--详细书签版(第1/2部分)

     ●oracle恢复管理器和oracle闪回技术  ●资源管理器  ●oracle自动存储管理  ●oracle调度程序  ●自动工作负荷知识库  ●性能调整 作译者  John Watson就职于BPLC Management Consultants,负责公司欧洲...

    亮剑.NET深入体验与实战精要2

    此次将长期的思考、感悟,多年的系统开发、设计和团队管理经验,以及深入分析众多项目实战的宝贵成果和盘托出,力求将编程思想与具体实践融为一体,提炼出适合于广大读者快速理解和彻底掌握.NET软件开发的最佳学习...

    亮剑.NET深入体验与实战精要3

    此次将长期的思考、感悟,多年的系统开发、设计和团队管理经验,以及深入分析众多项目实战的宝贵成果和盘托出,力求将编程思想与具体实践融为一体,提炼出适合于广大读者快速理解和彻底掌握.NET软件开发的最佳学习...

Global site tag (gtag.js) - Google Analytics