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

  • 相关阅读:
    JS中字符串的true转化为boolean类型的true
    jquery select change下拉框选项变化判断选中值
    C# 使用 NPOI 库读写 Excel 文件
    通过微信分享链接,后面被加上from=singlemessage&isappinstalled=1导致网页打不开
    C# 中使用 ThoughtWorks.QRCode.dll 生成指定尺寸和边框宽度的二维码
    除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效
    SQL查询语句如何能够让指定的记录排在最后
    搞懂 JavaScript 继承原理
    基于Socket通讯(C#)和WebSocket协议(net)编写的两种聊天功能(文末附源码下载地址)
    SqlServer 使用sys.dm_tran_locks处理死锁问题
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/3805596.html
Copyright © 2011-2022 走看看