• [20171124]手工使用Seed_Database.dfb和Seed_Database.ctl建库.txt


    [20171124]手工使用Seed_Database.dfb和Seed_Database.ctl建库.txt

    --//昨天看yueli34的帖子,链接http://www.itpub.net/thread-2094530-1-1.html,注解与说明来自链接,感谢yueli34操作提示.
    --//自己测试看看:

    1.建立参数文件
    --//建立参数文件,目录为$ORACLE_HOME/dbs:

    $ cat /u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/initseeddata.ora
    db_name=seeddata
    sga_target=1024M
    control_files=/u01/app/oracle/oradata/ora11g/control01.ctl
    compatible=11.2.0.4

    $ mkdir -p /u01/app/oracle/oradata/ora11g/

    --//启动到nomount状态进行验证
    $ export ORACLE_SID=seeddata

    SYS@seeddata> startup nomount;
    ORACLE instance started.

    Total System Global Area 1068937216 bytes
    Fixed Size                  2260088 bytes
    Variable Size             297796488 bytes
    Database Buffers          759169024 bytes
    Redo Buffers                9711616 bytes

    2.建立控制文件
    $ cd $ORACLE_HOME/assistants/dbca/templates

    $ ls $ORACLE_HOME/assistants/dbca/templates  -l
    total 301856
    -rw-r--r-- 1 oracle oinstall      5104 2013-08-24 12:08:38 Data_Warehouse.dbc
    -rwxr-xr-x 1 oracle oinstall  21741568 2015-01-29 11:12:03 example01.dfb
    -rwxr-xr-x 1 oracle oinstall   1507328 2015-01-29 11:12:03 example.dmp
    -rw-r--r-- 1 oracle oinstall      4984 2013-08-24 12:08:44 General_Purpose.dbc
    -rw-r--r-- 1 oracle oinstall     11489 2013-05-01 08:24:26 New_Database.dbt
    -rwxr-xr-x 1 oracle oinstall   9748480 2015-01-29 11:11:15 Seed_Database.ctl
    -rwxr-xr-x 1 oracle oinstall 275750912 2015-01-29 11:11:15 Seed_Database.dfb

    $ cp $ORACLE_HOME/assistants/dbca/templates/Seed_Database.ctl  /u01/app/oracle/oradata/ora11g/control01.ctl

    $ ls -l /u01/app/oracle/oradata/ora11g/control01.ctl
    -rwxr-xr-x 1 oracle oinstall 9748480 2017-11-23 10:43:13 /u01/app/oracle/oradata/ora11g/control01.ctl

    --//启动到mount状态进行验证:
    SYS@seeddata> alter database mount ;
    Database altered.

    --//处理日志文件路径,控制文件中日志文件路径为:
    SYS@seeddata> @ &r/logfile
    GROUP# STATUS TYPE       MEMBER                                               IS_REC GROUP# THREAD# SEQUENCE#       BYTES BLOCKSIZE MEMBERS ARCHIV STATUS     FIRST_CHANGE# FIRST_TIME          NEXT_CHANGE# NEXT_TIME
    ------ ------ ---------- ---------------------------------------------------- ------ ------ ------- --------- ----------- --------- ------- ------ ---------- ------------- ------------------- ------------ -------------------
         1        ONLINE     /ade/b/2232964209/oracle/oradata/seeddata/redo01.log NO          1       1        70    52428800       512       1 NO     INACTIVE          889458 2013-08-24 12:03:35       894960 2013-08-24 12:03:36
         2        ONLINE     /ade/b/2232964209/oracle/oradata/seeddata/redo02.log NO          2       1        71    52428800       512       1 NO     INACTIVE          894960 2013-08-24 12:03:36       920281 2013-08-24 12:04:15
         3        ONLINE     /ade/b/2232964209/oracle/oradata/seeddata/redo03.log NO          3       1        72    52428800       512       1 NO     CURRENT           920281 2013-08-24 12:04:15 2.814750E+14

    --//是一个不存在的路径,需要rename到/u01/app/oracle/oradata/ora11g/路径。
    alter database rename file '/ade/b/2232964209/oracle/oradata/seeddata/redo01.log' to '/u01/app/oracle/oradata/ora11g/redo01.log';
    alter database rename file '/ade/b/2232964209/oracle/oradata/seeddata/redo02.log' to '/u01/app/oracle/oradata/ora11g/redo02.log';
    alter database rename file '/ade/b/2232964209/oracle/oradata/seeddata/redo03.log' to '/u01/app/oracle/oradata/ora11g/redo03.log';

    SYS@seeddata> @ &r/logfile
    GROUP# STATUS     TYPE       MEMBER                                    IS_REC GROUP# THREAD# SEQUENCE#       BYTES BLOCKSIZE MEMBERS ARCHIV STATUS     FIRST_CHANGE# FIRST_TIME          NEXT_CHANGE# NEXT_TIME
    ------ ---------- ---------- ----------------------------------------- ------ ------ ------- --------- ----------- --------- ------- ------ ---------- ------------- ------------------- ------------ -------------------
         1            ONLINE     /u01/app/oracle/oradata/ora11g/redo01.log NO          1       1        70    52428800       512       1 NO     INACTIVE          889458 2013-08-24 12:03:35       894960 2013-08-24 12:03:36
         2            ONLINE     /u01/app/oracle/oradata/ora11g/redo02.log NO          2       1        71    52428800       512       1 NO     INACTIVE          894960 2013-08-24 12:03:36       920281 2013-08-24 12:04:15
         3            ONLINE     /u01/app/oracle/oradata/ora11g/redo03.log NO          3       1        72    52428800       512       1 NO     CURRENT           920281 2013-08-24 12:04:15 2.814750E+14

    --OK.

    3.注册数据文件备份集
    --//注册备份集Seed_Database.dfb:

    RMAN> catalog start with '$ORACLE_HOME/assistants/dbca/templates/Seed_Database.dfb';
    searching for all files that match the pattern $ORACLE_HOME/assistants/dbca/templates/Seed_Database.dfb
    List of Files Unknown to the Database
    =====================================
    File Name: /u01/app/oracle/product/11.2.0.4/dbhome_1/assistants/dbca/templates/Seed_Database.dfb

    Do you really want to catalog the above files (enter YES or NO)? yes
    cataloging files...
    cataloging done
    List of Cataloged Files
    =======================
    File Name: /u01/app/oracle/product/11.2.0.4/dbhome_1/assistants/dbca/templates/Seed_Database.dfb

    --//查看备份集,可以看到一个相同的备份集有两个copy。一个是控制文件原有的,一个是catalog新注册进去。其中原有是其实不存在
    --//,可以通过crosscheck加delete去除。

    RMAN> list backup ;
    List of Backup Sets
    ===================
    BS Key  Type LV Size
    ------- ---- -- ----------
    1       Full    262.97M
      List of Datafiles in backup set 1
      File LV Type Ckp SCN    Ckp Time            Name
      ---- -- ---- ---------- ------------------- ----
      1       Full 925701     2013-08-24 12:07:43 /ade/b/2232964209/oracle/oradata/seeddata/system01.dbf
      2       Full 925701     2013-08-24 12:07:43 /ade/b/2232964209/oracle/oradata/seeddata/sysaux01.dbf
      3       Full 925701     2013-08-24 12:07:43 /ade/b/2232964209/oracle/oradata/seeddata/undotbs01.dbf
      4       Full 925701     2013-08-24 12:07:43 /ade/b/2232964209/oracle/oradata/seeddata/users01.dbf
      Backup Set Copy #1 of backup set 1
      Device Type Elapsed Time Completion Time     Compressed Tag
      ----------- ------------ ------------------- ---------- ---
      DISK        00:00:31     2013-08-24 12:08:24 YES
        List of Backup Pieces for backup set 1 Copy #1
        BP Key  Pc# Status      Piece Name
        ------- --- ----------- ----------
        1       1   AVAILABLE   /ade/b/2232964209/oracle/oradata/Seed_Database.dfb
      Backup Set Copy #2 of backup set 1
      Device Type Elapsed Time Completion Time     Compressed Tag
      ----------- ------------ ------------------- ---------- ---
      DISK        00:00:31     2017-11-23 10:47:42 YES
        List of Backup Pieces for backup set 1 Copy #2
        BP Key  Pc# Status      Piece Name
        ------- --- ----------- ----------
        2       1   AVAILABLE   /u01/app/oracle/product/11.2.0.4/dbhome_1/assistants/dbca/templates/Seed_Database.dfb

    --//校验和删除expired backup
    --//RMAN> crosscheck backup;
    RMAN> crosscheck backup;
    using channel ORA_DISK_1
    crosschecked backup piece: found to be 'EXPIRED'
    backup piece handle=/ade/b/2232964209/oracle/oradata/Seed_Database.dfb RECID=1 STAMP=824299673
    crosschecked backup piece: found to be 'AVAILABLE'
    backup piece handle=/u01/app/oracle/product/11.2.0.4/dbhome_1/assistants/dbca/templates/Seed_Database.dfb RECID=2 STAMP=960806862
    Crosschecked 2 objects

    --//RMAN> delete expired backup;
    RMAN> delete expired backup;

    using channel ORA_DISK_1

    List of Backup Pieces
    BP Key  BS Key  Pc# Cp# Status      Device Type Piece Name
    ------- ------- --- --- ----------- ----------- ----------
    1       1       1   1   EXPIRED     DISK        /ade/b/2232964209/oracle/oradata/Seed_Database.dfb

    Do you really want to delete the above objects (enter YES or NO)? yes
    deleted backup piece
    backup piece handle=/ade/b/2232964209/oracle/oradata/Seed_Database.dfb RECID=1 STAMP=824299673
    Deleted 1 EXPIRED objects

    --//以上步骤感觉不需要做.

    --//修改数据文件路径,我注解recover database;因为这步没有归档,写不写都一样.
    run{
    set newname for datafile 1 to '/u01/app/oracle/oradata/ora11g/system01.dbf';
    set newname for datafile 2 to '/u01/app/oracle/oradata/ora11g/sysaux01.dbf';
    set newname for datafile 3 to '/u01/app/oracle/oradata/ora11g/undotbs01.dbf';
    set newname for datafile 4 to '/u01/app/oracle/oradata/ora11g/users01.dbf';
    restore database;
    switch datafile all;
    ##recover database;
    }


    executing command: SET NEWNAME
    executing command: SET NEWNAME
    executing command: SET NEWNAME
    executing command: SET NEWNAME

    Starting restore at 2017-11-23 10:49:53
    allocated channel: ORA_DISK_1
    channel ORA_DISK_1: SID=1409 device type=DISK

    channel ORA_DISK_1: starting datafile backup set restore
    channel ORA_DISK_1: specifying datafile(s) to restore from backup set
    channel ORA_DISK_1: restoring datafile 00001 to /u01/app/oracle/oradata/ora11g/system01.dbf
    channel ORA_DISK_1: restoring datafile 00002 to /u01/app/oracle/oradata/ora11g/sysaux01.dbf
    channel ORA_DISK_1: restoring datafile 00003 to /u01/app/oracle/oradata/ora11g/undotbs01.dbf
    channel ORA_DISK_1: restoring datafile 00004 to /u01/app/oracle/oradata/ora11g/users01.dbf
    channel ORA_DISK_1: reading from backup piece /ade/b/2232964209/oracle/oradata/Seed_Database.dfb
    channel ORA_DISK_1: errors found reading piece handle=/ade/b/2232964209/oracle/oradata/Seed_Database.dfb
    channel ORA_DISK_1: failover to piece handle=/u01/app/oracle/product/11.2.0.4/dbhome_1/assistants/dbca/templates/Seed_Database.dfb tag=NULL
    channel ORA_DISK_1: restored backup piece 1
    channel ORA_DISK_1: restore complete, elapsed time: 00:00:45
    Finished restore at 2017-11-23 10:50:39

    datafile 1 switched to datafile copy
    input datafile copy RECID=5 STAMP=960807039 file name=/u01/app/oracle/oradata/ora11g/system01.dbf
    datafile 2 switched to datafile copy
    input datafile copy RECID=6 STAMP=960807039 file name=/u01/app/oracle/oradata/ora11g/sysaux01.dbf
    datafile 3 switched to datafile copy
    input datafile copy RECID=7 STAMP=960807039 file name=/u01/app/oracle/oradata/ora11g/undotbs01.dbf
    datafile 4 switched to datafile copy
    input datafile copy RECID=8 STAMP=960807039 file name=/u01/app/oracle/oradata/ora11g/users01.dbf

    Starting recover at 2017-11-23 10:50:39
    using channel ORA_DISK_1

    starting media recovery

    RMAN-08187: WARNING: media recovery until SCN 925701 complete
    Finished recover at 2017-11-23 10:50:41

    3.打开数据库:
    SYS@seeddata> alter database open read only ;
    Database altered.
    --// 补充测试open read only可以打开.

    SYS@seeddata> alter database open ;
    alter database open
    *
    ERROR at line 1:
    ORA-01589: must use RESETLOGS or NORESETLOGS option for database open


    SYS@seeddata> alter database open NORESETLOGS;
    alter database open NORESETLOGS
    *
    ERROR at line 1:
    ORA-01588: must use RESETLOGS option for database open

    SYS@seeddata> select CONTROLFILE_TYPE from v$database ;
    CONTROLFILE_TY
    --------------
    BACKUP

    4.尝试使用建立新控制文件是否可行:

    SYS@seeddata> alter database backup controlfile to trace ;
    Database altered.

    $ cat cc.txt
    STARTUP NOMOUNT
    CREATE CONTROLFILE REUSE DATABASE "SEEDDATA" NORESETLOGS  NOARCHIVELOG
        MAXLOGFILES 16
        MAXLOGMEMBERS 3
        MAXDATAFILES 100
        MAXINSTANCES 8
        MAXLOGHISTORY 292
    LOGFILE
      GROUP 1 '/u01/app/oracle/oradata/ora11g/redo01.log'  SIZE 50M BLOCKSIZE 512,
      GROUP 2 '/u01/app/oracle/oradata/ora11g/redo02.log'  SIZE 50M BLOCKSIZE 512,
      GROUP 3 '/u01/app/oracle/oradata/ora11g/redo03.log'  SIZE 50M BLOCKSIZE 512
    -- STANDBY LOGFILE
    DATAFILE
      '/u01/app/oracle/oradata/ora11g/system01.dbf',
      '/u01/app/oracle/oradata/ora11g/sysaux01.dbf',
      '/u01/app/oracle/oradata/ora11g/undotbs01.dbf',
      '/u01/app/oracle/oradata/ora11g/users01.dbf'
    CHARACTER SET US7ASCII
    ;
    --//注意这样安装的数据库字符集是US7ASCII,这也很好理解US7ASCII是所有字符集的子集.

    SYS@seeddata> @ /tmp/cc.txt
    ORACLE instance started.
    Total System Global Area 1068937216 bytes
    Fixed Size                  2260088 bytes
    Variable Size             297796488 bytes
    Database Buffers          759169024 bytes
    Redo Buffers                9711616 bytes
    CREATE CONTROLFILE REUSE DATABASE "SEEDDATA" NORESETLOGS  NOARCHIVELOG
    *
    ERROR at line 1:
    ORA-01503: CREATE CONTROLFILE failed
    ORA-01192: must have at least one enabled thread

    $ oerr ora 01192
    01192, 00000, "must have at least one enabled thread"
    // *Cause:  You must specify at least two logfiles from at least one thread
    //        at the create contolfile command line.
    // *Action:  Find the missing logfiles and resubmit the command with the newly
    //        found logfiles included in the command line.

    --//重来!!
    SYS@seeddata> alter database clear logfile group 1 ;
    Database altered.

    SYS@seeddata> alter database clear logfile group 2 ;
    Database altered.

    SYS@seeddata> alter database clear logfile group 3 ;
    Database altered.

    --//依旧不行.
    --//安装一些文章的提示建立的控制文件只能RESETLOGS.

    SYS@seeddata> alter database open RESETLOGS;
    Database altered.

    --//关闭数据库重新建立控制文件ok.

    SYS@seeddata> @ /tmp/cc.txt
    ORACLE instance started.
    Total System Global Area 1068937216 bytes
    Fixed Size                  2260088 bytes
    Variable Size             297796488 bytes
    Database Buffers          759169024 bytes
    Redo Buffers                9711616 bytes
    Control file created.

    SYS@seeddata> alter database open ;
    Database altered.

    RMAN> list incarnation;

    using target database control file instead of recovery catalog

    List of Database Incarnations
    DB Key  Inc Key DB Name  DB ID            STATUS  Reset SCN  Reset Time
    ------- ------- -------- ---------------- --- ---------- ----------
    1       1       SEEDDATA 4152976186       CURRENT 925702     2017-11-23 11:43:14

    5.补充建立临时文件:
    ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/app/oracle/oradata/ora11g/temp01.dbf' REUSE;
    --//这样建立报错.

    $ touch /u01/app/oracle/oradata/ora11g/temp01.dbf
    SYS@seeddata> ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/app/oracle/oradata/ora11g/temp01.dbf' size 100m REUSE;
    Tablespace altered.

    6.最后yueli34想实现NORESETLOGS开库,而原始的控制文件本身是备份类型,如果能修改为当前,估计可以.
    SYS@seeddata> select CONTROLFILE_TYPE from v$database ;
    CONTROLFILE_TY
    --------------
    BACKUP


  • 相关阅读:
    2019-2020-1学期 自己8位学号 《网络空间安全专业导论》第十二周学习总结
    2019-2020-1学期20192427《网络空间安全专业导论》第十周学习总结
    网络空间安全导论3章,7章第三节
    2019-2020-1学期20192427《网络空间安全专业导论》第九周学习总结
    2019-2020年第八周《网络空间安全导论》20192427
    2019-2020-19网络空间安全导论2427 第七周学习总结
    第十五、十六章脑图
    2019-2020-1学期20192427第六周《网络空间安全》学习总结
    2019-2020-1学期20192427《网络空间安全导论》第五周学习总结
    2019-2020-1学期 20192427《网络空间安全导论》第四周学习总结
  • 原文地址:https://www.cnblogs.com/lfree/p/7888915.html
Copyright © 2020-2023  润新知