Oracle控制文件詳解


一、Oracle 控制文件

        為二進制文件,初始化大小由CREATE DATABASE指定,可以使用RMAN備份

        記錄了當前數據庫的結構信息,同時也包含數據文件及日志文件的信息以及相關的狀態,歸檔信息等等

        在參數文件中描述其位置,個數等等。通常采用分散放開,多路復用的原則。在mount階段被讀取,open階段一直被使用

        維護數據庫一致性(數據庫啟動時會比較控制文件與聯機日志文件中的ckpt,即起始scn號,如相等則正常啟動,否則需要介質恢復)

        一個控制文件只能屬於一個數據庫

        控制文件的任意修改將寫入到初始化參數中指定的所有控制文件中,讀取時則僅讀取第一個控制文件

        控制文件只能連接一個數據庫,控制文件的大小一般不要超過MB,最多為個,最少一個,互為鏡像

               

        控制文件中包含的內容

            數據庫的名字、ID、創建的時間戳

            表空間的名字

            聯機日志文件、數據文件的位置、個數、名字

            聯機日志的Sequence號碼

            檢查點的信息

            撤銷段的開始或結束

            歸檔信息

            備份信息

   

二、查看控制文件的相關信息

    1.使用相關視圖來查看

        V$CONTROLFILE                   --列出實例中所有控制文件的名字及狀態信息

        V$PARAMETER                     --列出所有參數的位置及狀態信息

        V$CONTROLFILE_RECORD_SECTION    --列出控制文件中記錄的部分信息

        SHOW PARAMETER CONTROL_FILES    --列出控制文件的名字、狀態、位置等

2.使用STRINGS命令來查看控制文件中的具體內容

3.備份控制文件到平面文件(然后查看控制文件中的具體內容)

       

        SQL> alter database backup controlfile  to trace as '/u01/app/oracle/ctl.txt';

 

        Database altered.

 4.轉儲控制文件內容(查看控制文件中的具體內容)

        alter session set events 'immediate trace name CONTROLF level 12'; level表示級別

        或                     --level1  塊頭的內容 --level2 數據文件內容 --levle 10 |12 所有內容

        oradebug setmypid

        oradebug dump controlf 12

   

        SQL> alter system set events 'immediate trace name controlf level 10';

 

        System altered.

 

        SQL> show parameter user_dump;

 

        NAME                                 TYPE        VALUE

        ------------------------------------ ----------- ------------------------------

        user_dump_dest                       string      /u01/app/oracle/admin/orcl/udu

                                                         mp

三、控制文件的管理 

    規划原則:多路復用,建議存放到不同的磁盤或同一磁盤不同的分區

    個數與位置及狀態管理:

        查看控制文件的狀態是否與參數定義中的相吻合,當數據庫發生結構修改時,將修改內容同時寫入控制文件

    備份管理

    恢復管理

    新建控制文件語句

   

    spfile或pfile都可以實現對控制文件的個數及位置管理

    spfile步驟

        修改spfile參數中的control_files   -- alter system ... scope = spfile | both |memory

        一致性關閉數據庫

        增加或減少控制文件(cp or mv)

        啟動數據庫使用spfile

        驗證結果

       

    pfile步驟

        一致性關閉數據庫

        修改pfile參數(vi或vim)   修改*.control_files=......這一段

        增加或減少控制文件(cp or mv)

        啟動數據庫使用pfile

        驗證結果

       

    --演示spfile修改控制文件

        SQL> show parameter control_file

 

        NAME                                 TYPE        VALUE

        ------------------------------------ ----------- ------------------------------

        control_file_record_keep_time        integer     7

        control_files                        string      /u01/app/oracle/oradata/orcl/c

                                                         ontrol01.ctl, /u01/app/oracle/

                                                         oradata/orcl/control02.ctl, /u

                                                         01/app/oracle/oradata/orcl/con

                                                         trol03.ctl

        --將控制文件減少到一個

        SQL> alter system set control_files = '/u01/app/oracle/oradata/orcl/control01.ctl' scope =spfile;

 

        System altered.

 

        SQL> shutdown immediate;

        Database closed.

        Database dismounted.

        ORACLE instance shut down.

        SQL> startup mount

        ORACLE instance started.

 

        Total System Global Area  251658240 bytes

        Fixed Size                  1218796 bytes

        Variable Size              88082196 bytes

        Database Buffers          159383552 bytes

        Redo Buffers                2973696 bytes

        Database mounted.

       

        --再次查看參數文件,已顯示為一個

        SQL> show parameter control_file

 

        NAME                                 TYPE        VALUE

        ------------------------------------ ----------- ------------------------------

        control_file_record_keep_time        integer     7

        control_files                        string      /u01/app/oracle/oradata/orcl/c

                                                         ontrol01.ctl

       

        --增加控制文件(在nomount狀態下即可修改)

        SQL> alter system set control_files = '/u01/app/oracle/oradata/orcl/control01.ctl',

          2  '/u01/app/oracle/oradata/orcl/control02.ctl',

          3  '/u01/app/oracle/oradata/orcl/control03.ctl'

          4  scope = spfile;

 

        System altered.

       

        --啟動時可以看到在實例階段出現了版本號不一致的問題

        SQL> startup force

        ORACLE instance started.

 

        Total System Global Area  251658240 bytes

        Fixed Size                  1218796 bytes

        Variable Size              88082196 bytes

        Database Buffers          159383552 bytes

        Redo Buffers                2973696 bytes

        ORA-00214: control file '/u01/app/oracle/oradata/orcl/control01.ctl' version

        1051 inconsistent with file '/u01/app/oracle/oradata/orcl/control02.ctl'

        version 1049

       

        --處理辦法,用版本號高的控制文件覆蓋版本號低的控制文件

        SQL> host cp /u01/app/oracle/oradata/orcl/control01.ctl/u01/app/oracle/oradata/orcl/control02.ctl;

 

        SQL> host cp /u01/app/oracle/oradata/orcl/control01.ctl/u01/app/oracle/oradata/orcl/control03.ctl;

 

        SQL> alter database mount;

 

        Database altered.

 

        SQL> alter database open;

 

        Database altered.  

       

    對於控制文件丟失的情況下,通過查看參數文件中設置,使用操作系統命令逐個查看這些文件是否存在

   

        SQL> host ls /u01/app/oracle/oradata/orcl/control01.ctl

        /u01/app/oracle/oradata/orcl/control01.ctl

 

        SQL> host ls /u01/app/oracle/oradata/orcl/control02.ctl

        /u01/app/oracle/oradata/orcl/control02.ctl

   

    查看控制文件所在的目錄可用空間及控制文件的大小,建議不要超過100MB

        SQL> host ls /u01/app/oracle/oradata/orcl/c*.ctl -lh

        -rw-r----- 1 oracle oinstall 6.8M May 23 10:55 /u01/app/oracle/oradata/orcl/control01.ctl

        -rw-r----- 1 oracle oinstall 6.8M May 23 10:55 /u01/app/oracle/oradata/orcl/control02.ctl

        -rw-r----- 1 oracle oinstall 6.8M May 23 10:55 /u01/app/oracle/oradata/orcl/control03.ctl

 

        SQL> ! df -h

        Filesystem            Size  Used Avail Use% Mounted on

        /dev/sda2             6.4G  3.9G  2.2G  64% /

        /dev/sdd1             6.8G  3.7G  2.8G  58% /u01

        /dev/sdc2             1.2G   34M  1.1G   3% /home

        /dev/sdc1             760M   17M  704M   3% /tmp

        /dev/sda1             456M   18M  415M   5% /boot

        tmpfs                 450M     0  450M   0% /dev/shm

        none                  450M  104K  450M   1% /var/lib/xenstored

       

    控制文件的備份

        熱備:

            alter database backup controlfile to '<dir>';  --熱備份控制文件

            alter database backup controlfile to trace as '<dir>' ;--得到建立控制文件的腳本

        RMAN:

            backup current controlfile;

            backup database include current controlfile;

            -- 或者設置RMAN 為自動備份

            RMAN > configure controlfile autobackup on;

           

        --演示備份

        --用於歸檔模式下的恢復,直接覆蓋到控制文件

        SQL> alter database backup controlfile to '/u01/app/oracle/control.bak';

 

        Database altered.

       

        --用於重建控制文件

        SQL> alter database backup controlfile to trace as'/u01/app/oracle/recreate_controlfile.txt';

 

        Database altered.

      

        --使用RMAN備份

        RMAN> connect target /;

 

        connected to target database: ORCL (DBID=1242732291)

 

        RMAN> backup current controlfile;   --handle為備份文件的路徑

 

        Starting backup at 23-MAY-10

        using target database control file instead of recovery catalog

        allocated channel: ORA_DISK_1

        channel ORA_DISK_1: sid=148 devtype=DISK

        channel ORA_DISK_1: starting full datafile backupset

        channel ORA_DISK_1: specifying datafile(s) in backupset

        including current control file in backupset

        channel ORA_DISK_1: starting piece 1 at 23-MAY-10

        channel ORA_DISK_1: finished piece 1 at 23-MAY-10

        piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/

              2010_05_23/o1_mf_ncnnf_TAG20100523T131841_5zkgon2l_.bkp tag=TAG20100523T131841 comment=NONE

        channel ORA_DISK_1: backup set complete, elapsed time: 00:00:05

        Finished backup at 23-MAY-10

       

        RMAN> backup database include current controlfile;

 

        Starting backup at 23-MAY-10

        using target database control file instead of recovery catalog

        allocated channel: ORA_DISK_1

        channel ORA_DISK_1: sid=141 devtype=DISK

        channel ORA_DISK_1: starting full datafile backupset

        channel ORA_DISK_1: specifying datafile(s) in backupset

        input datafile fno=00001 name=/u01/app/oracle/oradata/orcl/system01.dbf

        input datafile fno=00003 name=/u01/app/oracle/oradata/orcl/sysaux01.dbf

        input datafile fno=00005 name=/u01/app/oracle/oradata/orcl/example01.dbf

        input datafile fno=00006 name=/u01/app/oracle/oradata/orcl/tbs1_1.dbf

        input datafile fno=00007 name=/u01/app/oracle/oradata/orcl/tbs1_2.dbf

        input datafile fno=00002 name=/u01/app/oracle/oradata/orcl/undotbs01.dbf

        input datafile fno=00004 name=/u01/app/oracle/oradata/orcl/users01.dbf

        channel ORA_DISK_1: starting piece 1 at 23-MAY-10

        channel ORA_DISK_1: finished piece 1 at 23-MAY-10

        piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/

              2010_05_23/o1_mf_nnndf_TAG20100523T132647_5zkh4sk2_.bkp tag=TAG20100523T132647 comment=NONE

        channel ORA_DISK_1: backup set complete, elapsed time: 00:05:25

        channel ORA_DISK_1: starting full datafile backupset

        channel ORA_DISK_1: specifying datafile(s) in backupset

        including current control file in backupset

        including current SPFILE in backupset

        channel ORA_DISK_1: starting piece 1 at 23-MAY-10

        channel ORA_DISK_1: finished piece 1 at 23-MAY-10

        piece handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/

              2010_05_23/o1_mf_ncsnf_TAG20100523T132647_5zkhh5st_.bkp tag=TAG20100523T132647 comment=NONE

        channel ORA_DISK_1: backup set complete, elapsed time: 00:00:14

        Finished backup at 23-MAY-10

       

        RMAN> show all; 

 

        RMAN configuration parameters are:

        CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default

        CONFIGURE BACKUP OPTIMIZATION OFF; # default

        CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default

        CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default

        CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default

        CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default

        CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

        CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

        CONFIGURE MAXSETSIZE TO UNLIMITED; # default

        CONFIGURE ENCRYPTION FOR DATABASE OFF; # default

        CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default

        CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default

        CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/10g/dbs/snapcf_orcl.f'; # default

 

        RMAN> configure controlfile autobackup on;   --將控制文件自動備份功能置為on;

 

        new RMAN configuration parameters:

        CONFIGURE CONTROLFILE AUTOBACKUP ON;

        new RMAN configuration parameters are successfully stored

       

    控制文件的恢復管理

        控制文件版本不一致的問題

            用較新版本的控制文件覆蓋舊版本的控制文件

            直接修改參數control_file

        丟失問題

            歸檔模式下

                當歸檔日志全的時候,先做全備,然后使用備份的控制文件恢復即可

                當歸檔日志不全的時候,先做全備,然后建立新的控制文件即可

            非歸檔模式下

                先做全備,然后建立新的控制文件即可

        新建控制文件語句

            數據庫處於mount及open狀態

            執行alter database backup controlfile to trace as '<dir>';得到建立語句

            注意[no]archievelog [no]resetlogs 兩個參數的區別

           

    版本不一致演示 

        SQL> startup

        ORACLE instance started.

 

        Total System Global Area  251658240 bytes

        Fixed Size                  1218796 bytes

        Variable Size              88082196 bytes

        Database Buffers          159383552 bytes

        Redo Buffers                2973696 bytes

        ORA-00214: control file '/u01/app/oracle/oradata/orcl/control01.ctl' version

        1051 inconsistent with file '/u01/app/oracle/oradata/orcl/control02.ctl'

        version 1049

       

        --處理辦法,用版本號高的控制文件覆蓋版本號低的控制文件

        SQL> host cp /u01/app/oracle/oradata/orcl/control01.ctl/u01/app/oracle/oradata/orcl/control02.ctl;

 

        SQL> host cp /u01/app/oracle/oradata/orcl/control01.ctl/u01/app/oracle/oradata/orcl/control03.ctl;

 

        SQL> alter database mount;

 

        Database altered.

 

        SQL> alter database open;

 

        Database altered.  

       

        --控制文件部分丟失的演示,原本有兩個控制文件,丟失一個

        --處理辦法:

            1.將存在的控制文件復制到目的路徑並更改控制文件名字為正確的控制文件名稱

            2.修改控控文件參數將丟失的控制文件去掉(一般不建議使用)

        SQL> alter system set control_files = ' /u01/app/oracle/oradata/orcl/c ontrol01.ctl',

          2  '/u01/app/oracle/oradata/orcl/control02.ctl' scope = spfile;

 

        System altered.

 

        SQL> shutdown immediate;

        Database closed.

        Database dismounted.

        ORACLE instance shut down.

        SQL> startup

        ORACLE instance started.

 

        Total System Global Area  251658240 bytes

        Fixed Size                  1218796 bytes

        Variable Size              75499284 bytes

        Database Buffers          171966464 bytes

        Redo Buffers                2973696 bytes

        ORA-00205: error in identifying control file, check alert log for more info

               

        [oracle@robinson ~]$ tail -n 100 /u01/app/oracle/admin/orcl/bdump/alert_orcl.log

        ..........................     

        Tue Jun  8 19:03:42 2010

        starting up 1 shared server(s) ...

        MMON started with pid=11, OS id=4557

        CJQ0 started with pid=10, OS id=4555

        Tue Jun  8 19:03:44 2010

        ALTER DATABASE   MOUNT

        Tue Jun  8 19:03:44 2010

        ORA-00202: control file: '/u01/app/oracle/10g/dbs/ /u01/app/oracle/oradata/orcl/c ontrol01.ctl'

        ORA-27037: unable to obtain file status

        Linux Error: 2: No such file or directory

        Additional information: 3

        Tue Jun  8 19:03:47 2010

        ORA-205 signalled during: ALTER DATABASE   MOUNT...

 

        --從警告日志中得知,文件名為c ontrol01.ctl的文件不存在,故將其改為正確的文件名

                                                         

        SQL> alter system set control_files='/u01/app/oracle/oradata/orcl/control01.ctl',

          2  '/u01/app/oracle/oradata/orcl/control02.ctl' scope = spfile;

 

        System altered.

 

        SQL> startup force

        ORACLE instance started.

 

        Total System Global Area  251658240 bytes

        Fixed Size                  1218796 bytes

        Variable Size              83887892 bytes

        Database Buffers          163577856 bytes

        Redo Buffers                2973696 bytes

        Database mounted.

        Database opened.

 

    非歸檔模式下,當所有的控制文件都丟失,只能重建控制文件來解決

 

        Total System Global Area  251658240 bytes

        Fixed Size                  1218796 bytes

        Variable Size              79693588 bytes

        Database Buffers          167772160 bytes

        Redo Buffers                2973696 bytes

        ORA-00205: error in identifying control file, check alert log for more info

       

        [oracle@robinson ~]$tail -n 100 /u01/app/oracle/admin/orcl/bdump/alert_orcl.log

        ALTER DATABASE   MOUNT

        Thu Jul 15 12:13:15 2010

        ORA-00202: control file: '/u01/app/oracle/oradata/orcl/control01.ctl'

        ORA-27037: unable to obtain file status

        Linux Error: 2: No such file or directory

 

        --重建控制文件主要有三個需要考慮的是

        --搞清各個日志文件的大小及位置

        --搞清各個數據文件的位置

        --設置正確的字符集     

 

        SQL> CREATE CONTROLFILE REUSE DATABASE "orcl" NOARCHIVELOG NORESTLOGS

          2  MAXLOGFILES 16

          3  MAXLOGMEMBER 3

          4  MAXDATAFILES 20

          5  MAXINSTANCES 8

          6  MAXLOGHISTORY 3

          7  LOGFILE

          8    GROUP 1(

          9      'u01/app/oracle/oradata/orcl/redo1.log',

         10      '/u01/app/oracle/oradata/orcl/redo01.log'

         11       ) SIZE 50M,

         12    GROUP 2(

         13      '/u01/app/oracle/oradata/orcl/redo2.log',  

         14      '/u01/app/oracle/oradata/orcl/redo02.log'      

         15       ) SIZE 50M,

         16    GROUP 3(

         17      '/u01/app/oracle/oradata/orcl/redo3.log',      

         18      '/u01/app/oracle/oradata/orcl/redo03.log'    

         19       ) SIZE 100M 

         20  DATAFILE

         21    '/u01/app/oracle/oradata/orcl/tbs1_2.dbf',

         22    '/u01/app/oracle/oradata/orcl/tbs1_1.dbf',     

         23    '/u01/app/oracle/oradata/orcl/example01.dbf',

         24    '/u01/app/oracle/oradata/orcl/users01.dbf',

         25    '/u01/app/oracle/oradata/orcl/sysaux01.dbf',

         26    '/u01/app/oracle/oradata/orcl/system01.dbf',

         27    '/u01/app/oracle/oradata/orcl/undotbs01.dbf'

         28  CHARACTER SET WE8ISO8859P1;

        CREATE CONTROLFILE REUSE DATABASE "orcl" NOARCHIVELOG NORESTLOGS

                                                              *

        ERROR at line 1:

        ORA-01967: invalid option for CREATE CONTROLFILE

 

        SQL> save /u01/app/oracle/oradata/rectl.sql;

        Created file /u01/app/oracle/oradata/rectl.sql

        SQL> ho vim /u01/app/oracle/oradata/rectl.sql

 

        SQL> @/u01/app/oracle/oradata/rectl.sql

 

        Control file created.

 

        --下面給出正確執行后的語句內容

        SQL> host cat /u01/app/oracle/oradata/rectl.sql

        CREATE CONTROLFILE REUSE DATABASE "orcl" NOARCHIVELOG NORESETLOGS

        MAXLOGFILES 16

        MAXLOGMEMBERS 3

        MAXDATAFILES 20

        MAXINSTANCES 8

        MAXLOGHISTORY 3

        LOGFILE

          GROUP 1(

            '/u01/app/oracle/oradata/orcl/redo01.log'

             ) SIZE 50M,

          GROUP 2(

            '/u01/app/oracle/oradata/orcl/redo2.log',

            '/u01/app/oracle/oradata/orcl/redo02.log'

             ) SIZE 50M,

          GROUP 3(

            '/u01/app/oracle/oradata/orcl/redo3.log',

            '/u01/app/oracle/oradata/orcl/redo03.log'

             ) SIZE 100M

        DATAFILE

          '/u01/app/oracle/oradata/orcl/tbs1_2.dbf',

          '/u01/app/oracle/oradata/orcl/tbs1_1.dbf',

          '/u01/app/oracle/oradata/orcl/example01.dbf',

          '/u01/app/oracle/oradata/orcl/users01.dbf',

          '/u01/app/oracle/oradata/orcl/sysaux01.dbf',

          '/u01/app/oracle/oradata/orcl/system01.dbf',

          '/u01/app/oracle/oradata/orcl/undotbs01.dbf'

        CHARACTER SET WE8ISO8859P1

        /

       

        --將數據庫切換到open 狀態

        SQL> alter database open;

 

        Database altered.

 

        SQL> select * from dual;

 

        D

        -

        X

       

        --查看已經新產生了控制文件

        SQL> host ls $ORACLE_BASE/oradata/orcl/control* -l  --可以看到新增了控制文件control01.ctl和control02.ctl

        -rw-r----- 1 oracle oinstall 6012928 Jul 15 12:58 /u01/app/oracle/oradata/orcl/control01.ctl

        -rw------- 1 oracle oinstall 7389184 Jul 15 12:04 /u01/app/oracle/oradata/orcl/control01.ctl.bak

        -rw-r----- 1 oracle oinstall 6012928 Jul 15 12:58 /u01/app/oracle/oradata/orcl/control02.ctl

 

    歸檔模式下控制文件全部丟失的處理

        --首先將數據庫切換到歸檔模式

        SQL> shutdown immediate;

        Database closed.

        Database dismounted.

        ORACLE instance shut down.

        SQL> startup mount;

        ORACLE instance started.

 

        Total System Global Area  251658240 bytes

        Fixed Size                  1218796 bytes

        Variable Size              79693588 bytes

        Database Buffers          167772160 bytes

        Redo Buffers                2973696 bytes

        Database mounted.

        SQL> alter database archivelog;

        Database altered.

 

        SQL> alter database open  ;

        Database altered.

 

        --查看歸檔的狀態

        SQL> archive log list;

        Database log mode              Archive Mode

        Automatic archival             Enabled

        Archive destination            USE_DB_RECOVERY_FILE_DEST

        Oldest online log sequence     1

        Next log sequence to archive   3

        Current log sequence           3

 

        --備份控制文件

        SQL> alter database backup controlfile to '/u01/app/oracle/oradata/orcl/rectl.bak';

 

        Database altered.

 

        SQL> create table tb_temp(id int,col1 varchar2(20));

 

        Table created.

 

        SQL> insert into tb_temp select 1,'Robinson' from dual;

 

        1 row created.

 

        SQL> commit;

 

        Commit complete.

 

        SQL> alter system switch logfile;   --切換日志

 

        System altered.

 

        SQL> archive log list; --日志切換后sequence由變成

        Database log mode              Archive Mode

        Automatic archival             Enabled

        Archive destination            USE_DB_RECOVERY_FILE_DEST

        Oldest online log sequence     2

        Next log sequence to archive   4

        Current log sequence           4

 

        --模擬控制文件全部丟失

        SQL> startup

        ORACLE instance started.

 

        Total System Global Area  251658240 bytes

        Fixed Size                  1218796 bytes

        Variable Size              79693588 bytes

        Database Buffers          167772160 bytes

        Redo Buffers                2973696 bytes

        ORA-00205: error in identifying control file, check alert log for more info

 

        SQL> show parameter control

 

        NAME                                 TYPE        VALUE

        ------------------------------------ ----------- ------------------------------

        control_file_record_keep_time        integer     7

        control_files                        string      /u01/app/oracle/oradata/orcl/c

                                                         ontrol01.ctl, /u01/app/oracle/

                                                         oradata/orcl/control02.ctl

 

        --查看物理控制文件是否存在                                             

        SQL> ho ls /u01/app/oracle/oradata/orcl/contr*

        ls: /u01/app/oracle/oradata/orcl/contr*: No such file or directory

 

        --建議先對數據庫作備份再將備份的控制文件復制到參數文件中指定的位置

 

        SQL> ho cp /u01/app/oracle/oradata/orcl/rectl.bak/u01/app/oracle/oradata/orcl/control01.ctl

 

        SQL> ho cp /u01/app/oracle/oradata/orcl/rectl.bak/u01/app/oracle/oradata/orcl/control02.ctl

 

        SQL> alter database mount;

 

        Database altered.

 

        SQL> alter database open;

        alter database open

        *

        ERROR at line 1:

        ORA-01589: must use RESETLOGS or NORESETLOGS option for database open

 

        SQL> shutdown immediate;

        ORA-01109: database not open

        Database dismounted.

        ORACLE instance shut down.

       

        SQL> startup mount;

        ORACLE instance started.

 

        Total System Global Area  251658240 bytes

        Fixed Size                  1218796 bytes

        Variable Size              79693588 bytes

        Database Buffers          167772160 bytes

        Redo Buffers                2973696 bytes

        Database mounted.

 

        SQL> alter database open resetlogs;

 

        Database altered.

 

        SQL> select * from dual;

 

        D

        -

        X

 

        SQL> select * from tb_temp;  --表成功被恢復

 

                ID COL1

        ---------- --------------------

                 1 Robinson

 

        SQL> drop table tb_temp purge;

 

        Table dropped.

 

        SQL> archive log list;   --日志的sequence號被置為

        Database log mode              Archive Mode

        Automatic archival             Enabled

        Archive destination            USE_DB_RECOVERY_FILE_DEST

        Oldest online log sequence     1

        Next log sequence to archive   1

        Current log sequence           1



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM