zoukankan      html  css  js  c++  java
  • 丢失全部控制文件,noresetlogs重建控制文件,alter database open

    測试2:
    (1)一致性的全备
    SQL> shutdown immediate;

    $ cp -rf $ORACLE_BASE/oradata/boss/*.dbf /oradata/bossbak/20140610allbackup
    $ cp -rf $ORACLE_BASE/oradata/boss/*.log /oradata/bossbak/20140610allbackup
    $ cp -rf $ORACLE_BASE/oradata/boss/*.ctl /oradata/bossbak/20140610allbackup
    $ cp -rf /oradata/boss/control01.ctl /oradata/bossbak/20140610allbackup
    $ cp -rf $ORACLE_HOME/dbs/spfileboss.ora /oradata/bossbak/20140610allbackup
    $ cd /oracle/flash_recovery_area/BOSS/archivelog/2014_06_10/
    $ rm -rf *

    (2)查看数据库的信息
    SQL> select tablespace_name,status from dba_tablespaces;

    TABLESPACE_NAME                STATUS
    ------------------------------ ---------
    SYSTEM                         ONLINE
    UNDOTBS1                       ONLINE
    SYSAUX                         ONLINE
    TEMP                           ONLINE
    USERS                          ONLINE
    EXAMPLE                        ONLINE
    TESTTBS01                      ONLINE
    TESTTBS02                      OFFLINE
    TESTTBS03                      READ ONLY

    SQL> select table_name,status,tablespace_name from user_tables where tablespace_name like 'TESTTBS%';

    TABLE_NAME                     STATUS   TABLESPACE_NAME
    ------------------------------ -------- ------------------------------
    TEST01                         VALID    TESTTBS01
    BOSS_NEW_TEST                  VALID    TESTTBS01

    SQL> select
      2    ts.name "表空间名"
      3    , df.file# "文件号"
      4    , df.checkpoint_change# "检查点"
      5    , df.name "文件名称"
      6    from v$tablespace ts,v$datafile df
      7  where ts.ts#=df.ts#
      8  order by df.file#;

    表空间名                           文件号     检查点 文件名称
    ------------------------------ ---------- ---------- ----------------------------------------
    SYSTEM                                  1     708505 /oracle/oradata/boss/system01.dbf
    UNDOTBS1                                2     708505 /oracle/oradata/boss/undotbs01.dbf
    SYSAUX                                  3     708505 /oracle/oradata/boss/sysaux01.dbf
    USERS                                   4     708505 /oracle/oradata/boss/users01.dbf
    EXAMPLE                                 5     708505 /oracle/oradata/boss/example01.dbf
    TESTTBS01                               6     708505 /oracle/oradata/boss/testtbs01_01.dbf
    TESTTBS01                               7     708505 /oracle/oradata/boss/testtbs01_02.dbf
    TESTTBS02                               8     652783 /oracle/oradata/boss/testtbs02_01.dbf
    TESTTBS03                               9     652799 /oracle/oradata/boss/testtbs03_01.dbf

    (3)备份控制文件的trace文件
    SQL> alter database backup controlfile to trace as '/oradata/bossbak/20140610allbackup/control1.trace' noresetlogs;
    SQL> alter database backup controlfile to trace as '/oradata/bossbak/20140610allbackup/control2.trace';
    SQL> alter database backup controlfile to trace as '/oradata/bossbak/20140610allbackup/control3.trace' resetlogs;

    (4)创建表空间testtbs04,在表空间testtbs04创建表test02,然后直接shutdown abort
    SQL>
    create tablespace testtbs04
      datafile '/oracle/oradata/boss/testtbs04_01.dbf' size 10m
      autoextend on next 1m maxsize unlimited
      logging
      extent management local autoallocate
      blocksize 8k
      segment space management auto
      flashback on;

    Tablespace created.

    SQL> create table test02 (id number, name varchar2(30)) tablespace testtbs04;

    SQL> insert into test02 values(1,'nnnnn');
    SQL> insert into test02 values(2,'mmmmm');
    SQL> commit;

    (5)删除全部控制文件
    $ rm -rf *.ctl

    SQL> shutdown abort;
    ORACLE instance shut down.

    SQL> startup open;
    ORA-00205: error in identifying control file, check alert log for more info

    (6)编辑trace文件
    $ cp -rf control1.trace control.trace
    CREATE CONTROLFILE REUSE DATABASE "BOSS" NORESETLOGS  ARCHIVELOG
        MAXLOGFILES 16
        MAXLOGMEMBERS 3
        MAXDATAFILES 100
        MAXINSTANCES 8
        MAXLOGHISTORY 292
    LOGFILE
      GROUP 1 '/oracle/oradata/boss/redo01.log'  SIZE 50M,
      GROUP 2 '/oracle/oradata/boss/redo02.log'  SIZE 50M,
      GROUP 3 '/oracle/oradata/boss/redo03.log'  SIZE 50M
    DATAFILE
      '/oracle/oradata/boss/system01.dbf',
      '/oracle/oradata/boss/undotbs01.dbf',
      '/oracle/oradata/boss/sysaux01.dbf',
      '/oracle/oradata/boss/users01.dbf',
      '/oracle/oradata/boss/example01.dbf',
      '/oracle/oradata/boss/testtbs01_01.dbf',
      '/oracle/oradata/boss/testtbs01_02.dbf',
      '/oracle/oradata/boss/testtbs04_01.dbf'
    CHARACTER SET ZHS16GBK
    ;

    SQL> CREATE CONTROLFILE REUSE DATABASE "BOSS" NORESETLOGS  ARCHIVELOG
      2      MAXLOGFILES 16
      3      MAXLOGMEMBERS 3
      4      MAXDATAFILES 100
      5      MAXINSTANCES 8
      6      MAXLOGHISTORY 292
      7  LOGFILE
      8    GROUP 1 '/oracle/oradata/boss/redo01.log'  SIZE 50M,
      9    GROUP 2 '/oracle/oradata/boss/redo02.log'  SIZE 50M,
     10    GROUP 3 '/oracle/oradata/boss/redo03.log'  SIZE 50M
     11  DATAFILE
     12    '/oracle/oradata/boss/system01.dbf',
     13    '/oracle/oradata/boss/undotbs01.dbf',
     14    '/oracle/oradata/boss/sysaux01.dbf',
     15    '/oracle/oradata/boss/users01.dbf',
     16    '/oracle/oradata/boss/example01.dbf',
     17    '/oracle/oradata/boss/testtbs01_01.dbf',
     18    '/oracle/oradata/boss/testtbs01_02.dbf',
     19    '/oracle/oradata/boss/testtbs04_01.dbf'
     20  CHARACTER SET ZHS16GBK
     21  ;

    Control file created.

    SQL> alter system archive log all;  ##假设没有运行归档,那么不须要recover database

    SQL> select status from v$instance;

    STATUS
    ------------
    MOUNTED

    SQL> recover database;
    Media recovery complete.

    SQL> alter database open;

    SQL> select tablespace_name,status from dba_tablespaces;

    TABLESPACE_NAME                STATUS
    ------------------------------ ---------
    SYSTEM                         ONLINE
    UNDOTBS1                       ONLINE
    SYSAUX                         ONLINE
    TEMP                           ONLINE
    USERS                          ONLINE
    EXAMPLE                        ONLINE
    TESTTBS01                      ONLINE
    TESTTBS02                      OFFLINE
    TESTTBS03                      READ ONLY
    TESTTBS04                      ONLINE

    SQL> select * from test02;

            ID NAME
    ---------- ------------------------------
             1 nnnnn
             2 mmmmm

  • 相关阅读:
    【剑指Offer】49把字符串转换成整数
    【剑指Offer】48不用加减乘除做加法
    【剑指Offer】47求1+2+3+...+n
    判断两个线段是否相交
    EM算法--原理
    理解KMP算法
    阿里校招笔试的一道逻辑题
    线性拟合之最小二乘方法和最小距离方法
    Oracle Net Manager 服务命名配置以及用PL/SQL 登陆数据库
    正则表达式总结
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/3805596.html
Copyright © 2011-2022 走看看