Ïà·ê¼´ÊÇÓÐÔµ£¬ÏàÖª¼´ÊÇÐÒÔË¡£¿ìÀÖµÄÉú»î×îÖØÒªÁË£¬×£ÎҵĺÃÅóÓÑÃÇÌìÌ쿪ÐÄ~

·¢²¼ÐÂÈÕÖ¾

  • Oracle±¸·ÝÓë»Ö¸´°¸Àý£¨12£©¡¾×ªÌû¡¿

    2007-11-20 12:19:54

    5.3.2Êý¾Ý¿â¹Ø±Õ£¬µ«ÊÇÊý¾ÝÎļþÖÐûÓлÊÂÎñ

    ÕâÖÖÇé¿öÏÂ×î¼òµ¥µÄ·½·¨¾ÍÊÇoffline dropµôÕâ¸ö»µÁ˵ĻòÕ߶ªÊ§µÄÊý¾ÝÎļþ£¬È»ºóÒÔrestrictedģʽ´ò¿ªÊý¾Ý¿âÈ»ºóɾ³ý²¢ÇÒÖؽ¨°üº¬Ëð»µÎļþµÄ»Ø¹ö¶Î±í¿Õ¼ä¡£

     

    ¾ßÌå²½ÖèÈçÏ£º

    1¡¢ È·¶¨Êý¾Ý¿âÊÇÕý³£µÄ¹Ø±ÕµÄ¡£·½·¨ÊÇ¿ÉÒÔÈ¥²é¿´alertÎļþ£¬µ½×îºó¿´ÊÇ·ñÓÐÈçÏÂÐÅÏ¢£º

    "alter database dismount

    Completed: alter database dismount"

    Èç¹ûÓеĻ°£¬¾ÍÖ¤Ã÷Êý¾Ý¿âÊÇÕý³£¹Ø±ÕµÄ£¬·ñÔò¾Í²»ÄÜÓÃÕâ¸ö·½·¨È¥»Ö¸´¡£

    2¡¢ ÐÞ¸Äinit²ÎÊýÎļþ£¬ÒÆÈ¥ROLLBACK_SEGMENTSÖаüº¬µÄËð»µÊý¾ÝÎļþµÄ»Ø¹ö¶Î±í¿Õ¼äµÄ»Ø¹ö¶Î£¬Èç¹ûÄã²»ÄÜÈ·¶¨ÄÄЩ»Ø¹ö¶ÎÊÇ»µµÄ£¬¼òµ¥µÄ·½·¨ÊÇÄã¿ÉÒÔ×¢Ê͵ôÕû¸öROLLBACK_SEGMENTS¡£

    3¡¢ ÒÔrestrictedģʽȥmountÊý¾Ý¿â¡£

    STARTUP RESTRICT MOUNT

    4¡¢ offline dropµôÄǸö»µµÄÊý¾ÝÎļþ

    ALTER DATABASE DATAFILE '<full_path_file_name>' OFFLINE DROP;

    5¡¢ ´ò¿ªÊý¾Ý¿â

    ALTER DATABASE OPEN

    Èç¹ûÄã¿´µ½ÈçÏÂÐÅÏ¢"Statement processed"£¬ÔòÌøµ½µÚ7²½£¬Èç¹ûÄã¿´µ½ORA-604, ORA-376, and ORA-1110µÄ´íÎóÐÅÏ¢£¬¼ÌÐøµÚ6²½¡£

    6¡¢  Õý³£µÄ¹Ø±ÕÊý¾Ý¿â£¬È»ºóÔÚinitÎļþÖÐ×¢Ê͵ôROLLBACK_SEGMENTS£¬²¢¼ÓÈëÒþº¬²ÎÊý

    _corrupted_rollback_segments = ( <rollback1>,...., <rollbackN> )

    È»ºóÒÔrestrictedģʽ´ò¿ªÊý¾Ý¿â

    STARTUP RESTRICT

    7¡¢ ɾ³ýµôÄǸö°üº¬Ëð»µÎļþµÄ»Ø¹ö¶Î±í¿Õ¼ä¡£

    DROP TABLESPACE <tablespace_name> INCLUDING CONTENTS;

    8¡¢ Öؽ¨»Ø¹ö¶Î±í¿Õ¼ä£¬¼ÇµÃ´´½¨ºóÒª°Ñ»Ø¹ö¶Î¶¼online¡£

    9¡¢ ÖØÐÂʹÊý¾Ý¿â¶ÔËùÓÐÓû§¿ÉÓá£

    ALTER SYSTEM DISABLE RESTRICTED SESSION;

    10¡¢È»ºóÕý³£¹Ø±ÕÊý¾Ý¿â£¬ÐÞ¸ÄinitÎļþ£¬Èç¹û¿ªÊ¼Ö»ÊÇ×¢Ê͵ôÁËROLLBACK_SEGMENTSµÄ£¬¾ÍÈ¥µô×¢Êͼ´¿É£¬Èç¹û¼ÓÁËÒþº¬²ÎÊýµÄ£¬×¢Ê͵ôËü£¬²¢ÔÚROLLBACK_SEGMENTS¼ÓÈëËùÓеĻعö¶Î¡£

    11¡¢Õý³£Æô¶¯Êý¾Ý¿â£º

    Startup

    ×¢£º

    1¡¢ÕâÖÖ·½·¨µÄÇ°ÌáÌõ¼þÊÇÊý¾Ý¿âÊÇÕý³£¹Ø±Õ£¨²»ÊÇabort£©¿ÉÓã»

    2¡¢ÕâÖÖ·½·¨ÊÇÕý³£·½·¨£¬²»»áÒýÆðÊý¾Ý´íÎó¡£

    5.3.3 Êý¾Ý¿â¹Ø±Õ£¬Êý¾ÝÎļþÖÐÓлÊÂÎñ£¬Ã»ÓпÉÓñ¸·Ý¡£

    Ò»°ãÔì³ÉÕâÖÖÔ­ÒòµÄÇé¿öÊDzÉÓÃÁËshutdown abort»òÆäËüÔ­ÒòÒì³£¹Ø»ú£¨Èç¶Ïµç£©µ¼Öµġ£

     

    1¡¢¿ªÆôÒ»¸öÊÂÎñ

    SQL> set transaction use rollback segment rbs0;

    Transaction set.

    SQL> insert into test (a) values (1);

    1 row created.

     

    2¡¢Òì³£¹Ø±Õ

    SQL> shutdown abort;

    Oracle instance shut down.

     

    3¡¢É¾³ýrbsµÄÒ»¸öÊý¾ÝÎļþ

    C:>del D:\Oracle\oradata\chen\rbs01.

     

    4¡¢ÐÞ¸ÄINIT<sid>.ora :

    rollback_segments=(system)

    Ìí¼Ó_corrupted_rollback_segments=(rbs0,rbs1,rbs2¡­¡­)

     

    5¡¢SQL>Startup mount

     

    6¡¢SQL>alter database datafile 'd:\Oracle\oradata\t8i\rbs01.dbf' offline drop;

    Êý¾Ý¿âÒѸü¸Ä¡£

     

    7¡¢SQL>recover database £»

    Íê³É½éÖʻָ´¡£

     

    8¡¢SQL>alter database open ;

    Êý¾Ý¿âÒѸü¸Ä¡£

     

    9¡¢SQL>select * from v$rollname;

     

           USN   NAME

    ----   -------

             0     SYSTEM

     

    10¡¢SQL>select segment_name,tablespace_name,status
    FROM dba_rollback_segs;


    SEGMENT_NAME    TABLESPACE_NAME       STATUS

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

    SYSTEM          SYSTEM                ONLINE

    RBS0         RBS                NEEDS RECOVERY

    RBS1         RBS                NEEDS RECOVERY

    RBS2         RBS                NEEDS RECOVERY

     

    11¡¢SQL>drop rollback segment rbs0;

    ÖØËã¶ÎÒѶªÆú¡£

        SQL>drop rollback segment rbs1;

    ÖØËã¶ÎÒѶªÆú¡£

        SQL>drop rollback segment rbs2;

    ÖØËã¶ÎÒѶªÆú¡£

     

    12¡¢SQL>select segment_name,tablespace_name,status
    FROM dba_rollback_segs;


    SEGMENT_NAME    TABLESPACE_NAME    STATUS

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

    SYSTEM          SYSTEM             ONLINE

     

    13¡¢SQL>drop tablespace rbs including contents;

    ±í¿Õ¼äÒѶªÆú¡£

     

    14¡¢Öؽ¨ÐµĻعö±í¿Õ¼ä¼°»Ø¹ö¶Î£¬²¢Áª»ú¡£

     

    15¡¢SQL>shutdown abort

     

    16¡¢ÔÙÐÞ¸ÄINIT<sid>.ora £º

    rollback_segments=(rbs0,rbs1,rbs2)

    ½«_corrupted_rollback_segments=(rbs0,rbs1,rbs2)È¥µô¡£

     

    17¡¢SQL>startup

     

    ×¢£º

    1¡¢ÕâÖÖ°ì·¨ÊÇÍò²»µÃÒÔµÄʱºòʹÓõķ½·¨£¬Èç¹ûÓб¸·Ý£¬¶¼½¨Òé´Ó±¸·ÝÉϽøÐлָ´£»

    2¡¢ÕâÖÖ·½·¨»Ö¸´µÄÊý¾Ý¿â£¬¿ÉÄÜ»áÒýÆðÊý¾Ý¿âµÄÊý¾Ý´íÎó£»

    3¡¢»Ö¸´³É¹¦ÒԺ󣬽¨Òéexp/impÊý¾Ý£¬²¢ÖØзÖÎö¼ì²éÊý¾Ý¿â¡£

    5.3.4 Êý¾Ý¿â¹Ø±Õ£¬Êý¾ÝÎļþÖÐÓлÊÂÎñ£¬´Ó±¸·Ý»Ö¸´

    1¡¢´ÓÒ»¸öÓÐЧµÄ±¸·ÝÖлָ´Ë𻵵ÄÊý¾ÝÎļþ¡£

    2¡¢mountÊý¾Ý¿â¡£

    3¡¢Ö´ÐÐÒÔϲéѯ£º

    SELECT FILE#, NAME, STATUS FROM V$DATAFILE;

    Èç¹û·¢ÏÖÒª»Ö¸´µÄÎļþÊÇoffline״̬µÄ»°£¬ÒªÏÈonlineËü£º

    ALTER DATABASE DATAFILE '<full_path_file_name>' ONLINE;

    4¡¢Ö´ÐÐÒÔϲéѯ

    SELECT V1.GROUP#, MEMBER, SEQUENCE#, FIRST_CHANGE#

    FROM V$LOG V1, V$LOGFILE V2

    WHERE V1.GROUP# = V2.GROUP# ;

    Õâ¸ö½«ÁгöredlogÎļþËù´ú±íµÄsequenceºÍfirst change numbers¡£

     

    5¡¢Èç¹ûÊý¾Ý¿âÊǷǹ鵵Çé¿öÏ£¬Ö´ÐÐÒÔϲéѯ£º

    SELECT FILE#, CHANGE# FROM V$RECOVER_FILE;

    Èç¹ûCHANGE#´óÓÚ×îСµÄredologÎļþµÄFIRST_CHANGE#£¬ÔòÊý¾ÝÎļþ¿ÉÒÔ±»»Ö¸´£¬¼ÇµÃÔÚÓ¦ÓÃÈÕÖ¾µÄʱºòÒª°ÑËùÓÐredologÎļþÈ«²¿Ó¦ÓÃÒ»±é¡£


    Èç¹ûCHANGE#СÓÚ×îСµÄredologÎļþµÄFIRST_CHANGE#£¬ÔòÊý¾ÝÎļþ¾Í²»¿ÉÒÔ±»»Ö¸´ÁË£¬ÕâʱºòÄãÒª´ÓÒ»¸öÓÐЧµÄÈ«±¸·ÝÖÐÈ¥»Ö¸´Êý¾Ý¿âÁË£¬Èç¹ûûÓÐÈ«±¸·ÝµÄ»°£¬ÄÇÄã¾ÍÖ»ÄÜ°ÑÊý¾Ý¿âÇ¿ÖÆ´ò¿ªµ½Ò»¸ö²»Ò»ÖµÄ״̬ȥexp³öÊý¾Ý£¬È»ºóÖØн¨¿âµ¼ÈëÊý¾Ý£¬ÒòΪÕâÖÖ·½Ê½µÄ»Ö¸´Oracle ²é¿´(351) ÆÀÂÛ(0) ÊÕ²Ø ·ÖÏí ¹ÜÀí

  • Oracle±¸·ÝÓë»Ö¸´°¸Àý£¨11£©¡¾×ªÌû¡¿

    2007-11-20 12:19:01

    5.2 Ë𻵿ØÖÆÎļþµÄ»Ö¸´·½·¨

    5.2.1 Ë𻵵¥¸ö¿ØÖÆÎļþ

    Ë𻵵¥¸ö¿ØÖÆÎļþÊDZȽÏÈÝÒ×»Ö¸´µÄ£¬ÒòΪһ°ãµÄÊý¾Ý¿âϵͳ£¬¿ØÖÆÎļþ¶¼²»ÊÇÒ»¸ö£¬¶øÇÒËùÓеĿØÖÆÎļþ¶¼»¥Îª¾µÏֻ࣬Ҫ¿½±´Ò»¸öºÃµÄ¿ØÖÆÎļþÌæ»»»µµÄ¿ØÖÆÎļþ¾Í¿ÉÒÔÁË¡£

     

    1¡¢ ¿ØÖÆÎļþË𻵣¬×îµäÐ͵ľÍÊÇÆô¶¯Êý¾Ý¿â³ö´í£¬²»ÄÜmountÊý¾Ý¿â

    SQL>startup

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

    ²é¿´±¨¾¯ÈÕÖ¾Îļþ£¬ÓÐÈçÏÂÐÅÏ¢

    alter database  mount

    Mon May 26 11:59:52 2003

    ORA-00202: controlfile: 'D:\Oracle\oradata\chen\control01.ctl'

    ORA-27041: unable to open file

    OSD-04002: unable to open file

    O/S-Error: (OS 2) ϵͳÕÒ²»µ½Ö¸¶¨µÄÎļþ¡£

     

    2¡¢ Í£Ö¹Êý¾Ý¿â£º

    SQL>shutdown immediate

     

    3¡¢ ¿½±´Ò»¸öºÃµÄ¿ØÖÆÎļþÌæ»»»µµÄ¿ØÖÆÎļþ»òÐÞ¸Äinit.oraÖеĿØÖÆÎļþ²ÎÊý£¬È¡ÏûÕâ¸ö»µµÄ¿ØÖÆÎļþ¡£

     

    4¡¢ ÖØÐÂÆô¶¯Êý¾Ý£º

    SQL>startup

     

    ×¢£º

    1¡¢Ëðʧµ¥¸ö¿ØÖÆÎļþÊDZȽϼòµ¥µÄ£¬ÒòΪÊý¾Ý¿âÖÐËùÓеĿØÖÆÎļþ¶¼ÊǾµÏàµÄ£¬Ö»ÐèÒª¼òµ¥µÄ

    ¿½±´Ò»¸öºÃµÄ¾Í¿ÉÒÔÁË£»

    2¡¢½¨Òé¾µÏà¿ØÖÆÎļþÔÚ²»Í¬µÄ´ÅÅÌÉÏ£»

    3¡¢½¨Òé¶à×ö¿ØÖÆÎļþµÄ±¸·Ý£¬³¤ÆÚ±£ÁôÒ»·ÝÓÉalter database backup control file to trace²úÉúµÄ¿ØÖÆÎļþµÄÎı¾±¸·Ý¡£

    5.2.2 Ëð»µÈ«²¿¿ØÖÆÎļþ

    Ë𻵶à¸ö¿ØÖÆÎļþ£¬»òÕßÈËΪµÄɾ³ýÁËËùÓеĿØÖÆÎļþ£¬Í¨¹ý¿ØÖÆÎļþµÄ¸´ÖÆÒѾ­²»Äܽâ¾öÎÊÌ⣬Õâ¸öʱºòÐèÒªÖØн¨Á¢¿ØÖÆÎļþ¡£

     

    ͬʱעÒ⣬alter database backup control file to trace¿ÉÒÔ²úÉúÒ»¸ö¿ØÖÆÎļþµÄÎı¾±¸·Ý¡£


    ÒÔÏÂÊÇÏêϸÖØд´½¨¿ØÖÆÎļþµÄ²½Ö裺

    1¡¢ ¹Ø±ÕÊý¾Ý¿â

    SQL>shutdown immediate;

    2¡¢ ɾ³ýËùÓпØÖÆÎļþ£¬Ä£Äâ¿ØÖÆÎļþµÄ¶ªÊ§

     

    3¡¢ Æô¶¯Êý¾Ý¿â£¬³öÏÖ´íÎ󣬲¢²»ÄÜÆô¶¯µ½mountÏÂ

    SQL>startup

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

    ²é¿´±¨¾¯ÈÕÖ¾Îļþ£¬ÓÐÈçÏÂÐÅÏ¢

    alter database  mount

    Mon May 26 11:53:15 2003

    ORA-00202: controlfile: 'D:\Oracle\oradata\chen\control01.ctl'

    ORA-27041: unable to open file

    OSD-04002: unable to open file

    O/S-Error: (OS 2) ϵͳÕÒ²»µ½Ö¸¶¨µÄÎļþ¡£

     

    4¡¢ ¹Ø±ÕÊý¾Ý¿â

    SQL>shutdown immediate;

     

    5¡¢ ÔÚinternal»òsysÏÂÔËÐÐÈçÏ´´½¨¿ØÖÆÎļþµÄ½Å±¾£¬×¢ÒâÍêÕûÁгöÁª»úÈÕÖ¾»òÊý¾ÝÎļþµÄ·¾¶£¬»òÐÞ¸ÄÓÉalter database backup control file to trace±¸·Ý¿ØÖÆÎļþʱ²úÉúµÄ½Å±¾£¬È¥µô¶àÓàµÄ×¢Êͼ´¿É¡£


    STARTUP NOMOUNT

    CREATE CONTROLFILE REUSE DATABASE "TEST" NORESETLOGS NOARCHIVELOG

              MAXLOGFILES 32

              MAXLOGMEMBERS 2

              MAXDATAFILES 254

              MAXINSTANCES 1

              MAXLOGHISTORY 226

    LOGFILE

        GROUP 1 'D:\Oracle\ORADATA\TEST\REDO01.LOG'  SIZE 1M,

        GROUP 2 'D:\Oracle\ORADATA\TEST\REDO02.LOG'  SIZE 1M,

        GROUP 3 'D:\Oracle\ORADATA\TEST\REDO03.LOG'  SIZE 1M

    DATAFILE

        'D:\Oracle\ORADATA\TEST\SYSTEM01.DBF',

        'D:\Oracle\ORADATA\TEST\RBS01.DBF',

        'D:\Oracle\ORADATA\TEST\USERS01.DBF',

        'D:\Oracle\ORADATA\TEST\TEMP01.DBF',

        'D:\Oracle\ORADATA\TEST\TOOLS01.DBF',

        'D:\Oracle\ORADATA\TEST\INDX01.DBF'

    CHARACTER SET ZHS16GBK;

     

    -- Recovery is required if any of the datafiles are restored backups,

    -- or if the last shutdown was not normal or immediate.

    RECOVER DATABASE

    --if the last shutdown was not normal or immediate

    --noarchive

    -- RECOVER DATABASE UNTIL CANCELUSING BACKUP CONTROLFILE

    --archive

    -- RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL

    -- Database can now be opened normally.

    ALTER DATABASE OPEN;

    --if recover database until cancel

    --ALTER DATABASE OPEN RESETLOGS;

    6¡¢ Èç¹ûûÓдíÎó£¬Êý¾Ý¿â½«Æô¶¯µ½open״̬Ï¡£

     

    ×¢£º

    1¡¢Öؽ¨¿ØÖÆÎļþÓÃÓÚ»Ö¸´È«²¿Êý¾ÝÎļþµÄË𻵣¬ÐèҪעÒâÆäÊéдµÄÕýÈ·ÐÔ£¬±£Ö¤°üº¬ÁËËùÓеÄÊý¾ÝÎļþÓëÁª»úÈÕÖ¾£»

    2¡¢¾­³£ÓÐÕâÑùÒ»ÖÖÇé¿ö£¬ÒòΪһ¸ö´ÅÅÌË𻵣¬ÎÒÃDz»ÄÜÔÙ»Ö¸´(store)Êý¾ÝÎļþµ½Õâ¸ö´ÅÅÌ£¬Òò´ËÔÚstoreµ½ÁíÍâÒ»¸öÅ̵Äʱºò£¬ÎÒÃǾͱØÐëÖØд´½¨¿ØÖÆÎļþ£¬ÓÃÓÚʶ±ðÕâ¸öеÄÊý¾ÝÎļþ£¬ÕâÀïÒ²¿ÉÒÔÓÃÕâÖÖ·½·¨ÓÃÓÚ»Ö¸´¡£

    5.3 Ë𻵻عöÊý¾ÝÎļþµÄ»Ö¸´·½·¨

    »Ø¹ö¶Î±í¿Õ¼äÖеÄÒ»¸öÊý¾ÝÎļþ¶ªÊ§»òÕßË𻵵¼ÖÂÊý¾Ý¿âÎÞ·¨Ê¶±ðËü£¬ÔÚÆô¶¯Êý¾Ý¿âµÄʱºò»á³öÏÖORA-1157, ORA-1110µÄ´íÎ󣬻òÕß²Ù×÷ϵͳ¼¶±ðµÄ´íÎó£¬ÀýÈçORA-7360¡£ÔڹرÕÊý¾Ý¿âµÄʱºò(normal»òÕßimmediate)»á³öÏÖORA-1116, ORA-1110µÄ´íÎ󣬻òÕß²Ù×÷ϵͳ¼¶±ðµÄ´íÎó£¬ÀýÈçORA-7368¡£

     

    ¸ÐлCoolylµÄÐÁÇÚ¹¤×÷£¬¹ØÓڻعö¶ÎµÄ´ó²¿·ÖÄÚÈݶ¼ÊÇÕª×ÔËûÔÚitpubµÄÎÄÕ¡£

    5.3.1 Ëð»µÊý¾ÝÎļþ£¬µ«Êý¾Ý¿â´¦ÓÚOpen״̬

    Èç¹ûÄã·¢ÏÖÓлعö¶ÎµÄÊý¾ÝÎļþ¶ªÊ§»òÕßËð»µÁË£¬¶ø´ËʱµÄÊý¾Ý¿âÊÇ´¦ÓÚ´ò¿ªµÄ״̬ϲ¢ÇÒÔÚÔËÐУ¬¾ÍǧÍò²»Òª¹Ø±ÕÊý¾Ý¿âÁË£¬ÒòΪÔÚ´ó¶àÊýµÄÇé¿öÏ´ò¿ªµÄʱºò±È¹Ø±ÕµÄʱºòºÃ½â¾öÎÊÌâһЩ¡£

     

    Ò»°ãÒ²ÊÇ´æÔÚÓÐÁ½ÖÖÇé¿ö£º

    A¡¢ÊÇoffline¶ªÊ§»òË𻵵ÄÊý¾ÝÎļþ£¬È»ºó´ÓÒ»¸ö±¸·ÝÖлָ´£¬Ö´ÐнéÖʻָ´ÒÔ±£³ÖÒ»ÖÂÐÔ¡£µ«ÊÇÕâÖÖÇé¿öÒªÇóÊý¾Ý¿âÊǹ鵵·½Ê½Ï²ſÉÒÔ²ÉÓõġ£

    B¡¢ÊÇofflineÄǸö´æÔÚ¶ªÊ§»òË𻵵ÄÊý¾ÝÎļþËùÔÚµÄÕû¸ö»Ø¹ö¶Î±í¿Õ¼ä£¬È»ºóɾ³ýÕû¸ö»Ø¹ö¶Î±í¿Õ¼ä²¢Öؽ¨£¬µ«ÊÇÄã±ØÐëҪɱµôÄÇЩÔڻعö¶ÎÖÐÒѾ­¼¤»îµÄÓû§½ø³Ì²Å¿ÉÒÔofflineµÄ¡£

    ͨ³£µÚÒ»ÖÖÇé¿ö¾Í±È½Ï¼òµ¥ÊµÏÖ£¬µ«ÊǸü¶àµÄÓû§ÊÂÎñ½«»á³ö´í²¢Çһعö¡£

     

    AµÄ¾ßÌå²½Ö裺

    1¡¢ offline¶ªÊ§»òË𻵵ÄÊý¾ÝÎļþ

    ALTER DATABASE DATAFILE '<full_path_file_name>' OFFLINE;

    2¡¢ ´ÓÒ»¸öÓÐЧµÄ±¸·ÝÖлָ´¡£

    3¡¢ Ö´ÐÐÒÔϲéѯ£º

    SELECT V1.GROUP#, MEMBER, SEQUENCE#

    FROM V$LOG V1, V$LOGFILE V2

    WHERE V1.GROUP# = V2.GROUP# ;

    Õâ¸ö½«ÁгöÄãµÄËùÓÐredologÎļþÒÔ¼°ËüÃÇËù´ú±íµÄsequence numbers¡£

    4¡¢ »Ö¸´Êý¾ÝÎļþ¡£

    RECOVER DATAFILE '<full_path_file_name>'

    5¡¢ È·ÐÅÄãÓ¦ÓÃÁËËùÓеÄredologÎļþ£¬Ö±ÖÁ³öÏÖÌáʾÐÅÏ¢"Media recovery complete"¡£

    6¡¢ onlineÄǸöÊý¾ÝÎļþ¡£

    ALTER DATABASE DATAFILE '<full_path_file_name>' ONLINE;

     

    BµÄ¾ßÌå²½Ö裺

    1¡¢ offline´æÔÚ¶ªÊ§»òË𻵵ÄÊý¾ÝÎļþµÄ»Ø¹ö¶Î±í¿Õ¼äÖеÄËùÓлعö¶Î¡£

    ALTER ROLLBACK SEGMENT <rollback_segment> OFFLINE;

    2¡¢ ¼ì²âµ±È»»Ø¹ö¶ÎµÄ״̬¡£

    SELECT SEGMENT_NAME, STATUS FROM DBA_ROLLBACK_SEGS

    WHERE TABLESPACE_NAME = '<TABLESPACE_NAME>';

    3¡¢ ɾ³ýËùÓÐofflineµÄ»Ø¹ö¶Î

    DROP ROLLBACK SEGMENT <rollback_segment>;

    4¡¢ ´¦ÀíÄÇЩonline״̬µÄ»Ø¹ö¶Î¡£

    ÖØÐÂÖ´Ðеڶþ²½µÄ²éѯ

    Èç¹ûÄãÒѾ­Ö´Ðйýoffline²Ù×÷µÄ»Ø¹ö¶Î״̬ÈÔÈ»ÊÇonline£¬Ôò˵Ã÷Õâ¸ö»Ø¹ö¶ÎÄÚÓлµÄÊÂÎñ¡£ÄãÒª½Ó×Ųéѯ

    ²é¿´(187) ÆÀÂÛ(0) ÊÕ²Ø ·ÖÏí ¹ÜÀí

  • Oracle±¸·ÝÓë»Ö¸´°¸Àý£¨10£©¡¾×ªÌû¡¿

    2007-11-20 12:17:57

    µÚÎåÕ ÆäËü»Ö¸´°¸Àý

    5.1 Ëð»µÁª»úÈÕÖ¾µÄ»Ö¸´·½·¨

    5.1.1 Ë𻵷ǵ±Ç°Áª»úÈÕÖ¾

    ´ó¼Ò¶¼Çå³þ£¬Áª»úÈÕÖ¾·ÖΪµ±Ç°Áª»úÈÕÖ¾ºÍ·Çµ±Ç°Áª»úÈÕÖ¾£¬·Çµ±Ç°Áª»úÈÕÖ¾µÄËð»µÊDZȽϼòµ¥µÄ£¬Ò»°ãͨ¹ýclearÃüÁî¾Í¿ÉÒÔ½â¾öÎÊÌâ¡£


    1
    ¡¢Æô¶¯Êý¾Ý¿â£¬Óöµ½ORA-00312 or ORA-00313´íÎó£¬Èç

    ORA-00313: open failed for members of log group 1 of thread 1

    ORA-00312: online log 1 thread 1: 'D:\Oracle\ORADATA\TEST\REDO01.LOG'

    ´ÓÕâÀïÎÒÃÇÖªµÀÈÕÖ¾×é1µÄÊý¾ÝÎļþËð»µÁË

    ´Ó±¨¾¯Îļþ¿ÉÒÔ¿´µ½¸üÏêϸµÄÐÅÏ¢

    2¡¢ ²é¿´V$logÊÓͼ

    SQL> select group#,sequence#,archived,status from v$log;

     

        GROUP#    SEQUENCE#    ARCHIVED STATUS

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

             1          1     YES      INACTIVE

             2          2     YES      INACTIVE

             3          3     NO       CURRENT

    ¿ÉÒÔÖªµÀ£¬¸Ã×éÊǷǵ±Ç°×´Ì¬£¬¶øÇÒÒѾ­¹éµµ¡£

    3¡¢ ÓÃCLEARÃüÁîÖؽ¨¸ÃÈÕÖ¾Îļþ

    SQL>alter database clear logfile group 1;

    Èç¹ûÊǸÃÈÕÖ¾×黹ûÓй鵵£¬ÔòÐèÒªÓÃ

    SQL>alter database clear unarchived logfile group 1;

    4¡¢ ´ò¿ªÊý¾Ý¿â£¬ÖØб¸·ÝÊý¾Ý¿â

    SQL>alter database open;

     

    ×¢£º

    1¡¢Èç¹ûË𻵵ÄÊǷǵ±Ç°µÄÁª»úÈÕÖ¾Îļþ£¬Ò»°ãÖ»ÐèÒªclear¾Í¿ÉÒÔÖؽ¨¸ÃÈÕÖ¾Îļþ£¬µ«ÊÇÈç¹û¸ÃÊý¾Ý¿â´¦Óڹ鵵״̬µ«¸ÃÈÕÖ¾»¹Ã»Óй鵵£¬¾ÍÐèҪǿÐÐclear£»

    2¡¢½¨Òéclear£¬ÌرðÊÇÇ¿ÐÐclearºó×÷Ò»´ÎÊý¾Ý¿âµÄÈ«±¸·Ý£»

    3¡¢´Ë·½·¨ÊÊÓÃÓڹ鵵Óë·Ç¹éµµÊý¾Ý¿â¡£

    5.1.2 Ë𻵵±Ç°Áª»úÈÕÖ¾

    ¹éµµÄ£Ê½Ïµ±Ç°ÈÕÖ¾µÄËð»µÓÐÁ½ÖÖÇé¿ö£¬

    Ò»¡¢ÊÇÊý¾Ý¿âÊÇÕý³£¹Ø±Õ£¬ÈÕÖ¾ÎļþÖÐûÓÐδ¾öµÄÊÂÎñÐèҪʵÀý»Ö¸´£¬µ±Ç°ÈÕÖ¾×éµÄËð  »µ¾Í¿ÉÒÔÖ±½ÓÓÃalter database clear unarchived logfile group nÀ´Öؽ¨¡£

    ¶þ¡¢ÊÇÈÕÖ¾×éÖÐÓлµÄÊÂÎñ£¬Êý¾Ý¿âÐèҪýÌå»Ö¸´£¬ÈÕÖ¾×éÐèÒªÓÃÀ´Í¬²½£¬ÓÐÁ½ÖÖ²¹¾È°ì·¨:

    A. ×îºÃµÄ°ì·¨¾ÍÊÇͨ¹ý²»ÍêÈ«»Ö¸´£¬¿ÉÒÔ±£Ö¤Êý¾Ý¿âµÄÒ»ÖÂÐÔ£¬µ«ÊÇÕâÖÖ°ì·¨ÒªÇóÔڹ鵵·½Ê½Ï£¬²¢ÇÒÓпÉÓõı¸·Ý

    B. ͨ¹ýÇ¿ÖÆÐÔ»Ö¸´£¬µ«ÊÇ¿ÉÄܵ¼ÖÂÊý¾Ý¿â²»Ò»Ö¡£


    ÏÂÃæ·Ö±ðÓÃÀ´ËµÃ÷ÕâÁ½ÖÖ»Ö¸´·½·¨£º

    5.1.2.1 ͨ¹ý±¸·ÝÀ´»Ö¸´

    1¡¢ ´ò¿ªÊý¾Ý¿â£¬»áÓöµ½Ò»¸öÀàËƵĴíÎó

    ORA-00313: open failed for members of log group 1 of thread 1

    ORA-00312: online log 1 thread 1: 'D:\Oracle\ORADATA\TEST\REDO01.LOG'

    ORA-27041: unable to open file

    OSD-04002: unable to open file

    O/S-Error: (OS 2) ϵͳÕÒ²»µ½Ö¸¶¨µÄÎļþ

     

    2¡¢ ²é¿´V$log£¬·¢ÏÖÊǵ±Ç°ÈÕÖ¾

    SQL> select group#,sequence#,archived,status from v$log;

     

        GROUP#    SEQUENCE# ARCHIVED STATUS

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

             1          1     NO       CURRENT

             2          2     YES      INACTIVE

             3          3     YES      INACTIVE

     

    3¡¢ ·¢ÏÖclear²»³É¹¦

    SQL> alter database clear unarchived logfile group 1;

    alter database clear unarchived logfile group 1

    *

    ERROR at line 1:

    ORA-01624: log 1 needed for crash recovery of thread 1

    ORA-00312: online log 1 thread 1: 'D:\Oracle\ORADATA\TEST\REDO01.LOG'

     

    4¡¢ ¿½±´ÓÐЧµÄÊý¾Ý¿âµÄÈ«±¸·Ý£¬²¢²»ÍêÈ«»Ö¸´Êý¾Ý¿â£º

    ¿ÉÒÔ²ÉÓûñÈ¡×î½üµÄSCNµÄ°ì·¨ÓÃuntil scn»Ö¸´»òÓÃuntil cnacel»Ö¸´

    recover database until cancel

    ÏÈÑ¡Ôñauto£¬¾¡Á¿»Ö¸´¿ÉÒÔÀûÓõĹ鵵ÈÕÖ¾£¬È»ºóÖØÐÂ

    recover database until cancel

    Õâ´ÎÊäÈëcancel£¬Íê³É²»ÍêÈ«»Ö¸´£¬Ò²¾ÍÊÇ˵»Ö¸´Á½´Î¡£

    È磺

    SQL> recover database until cancel;

    Auto

    ¡­¡­

    SQL> recover database until cancel;

    Cancel;

    5¡¢ ÀûÓÃalter database open resetlogs´ò¿ªÊý¾Ý¿â.

     

    ×¢£º

      1¡¢ÕâÖÖ°ì·¨»Ö¸´µÄÊý¾Ý¿âÊÇÒ»ÖµIJ»ÍêÈ«»Ö¸´£¬»á¶ªÊ§µ±Ç°Áª»úÈÕÖ¾ÖеÄÊÂÎñÊý¾Ý;

      2¡¢ÕâÖÖ·½·¨ÊʺÏÓڹ鵵Êý¾Ý¿â²¢ÇÒÓпÉÓõÄÊý¾Ý¿âÈ«±¸·Ý;

      3¡¢»Ö¸´³É¹¦Ö®ºó£¬¼ÇµÃÔÙ×öÒ»´ÎÊý¾Ý¿âµÄÈ«±¸·Ý;

      4¡¢½¨ÒéÁª»úÈÕÖ¾ÎļþÒ»¶¨ÒªÊµÏÖ¾µÏàÔÚ²»Í¬µÄ´ÅÅÌÉÏ£¬±ÜÃâÕâÖÖÇé¿öµÄ·¢Éú£¬ÒòΪÈκÎÊý¾ÝµÄ¶ªÊ§¶ÔÓÚÉú²úÀ´Ëµ¶¼ÊDz»ÈÝÐíµÄ¡£

    5.1.2.2 Èç¹ûûÓб¸·Ý£¬½øÐÐÇ¿ÖÆÐÔ»Ö¸´

    1¡¢ ´ò¿ªÊý¾Ý¿â£¬»áÓöµ½Ò»¸öÀàËƵĴíÎó

    ORA-00313: open failed for members of log group 1 of thread 1

    ORA-00312: online log 1 thread 1: 'D:\Oracle\ORADATA\TEST\REDO01.LOG'

    ORA-27041: unable to open file

    OSD-04002: unable to open file

    O/S-Error: (OS 2) ϵͳÕÒ²»µ½Ö¸¶¨µÄÎļþ

     

    2¡¢ ²é¿´V$log£¬·¢ÏÖÊǵ±Ç°ÈÕÖ¾

    SQL> select group#,sequence#,archived,status from v$log;

     

        GROUP#  SEQUENCE# ARCHIVED STATUS

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

             1          1 NO       CURRENT

             2          2 YES      INACTIVE

             3          3 YES      INACTIVE

     

    3¡¢ ·¢ÏÖclear²»³É¹¦

    SQL> alter database clear unarchived logfile group 1;

    alter database clear unarchived logfile group 1

    *

    ERROR at line 1:

    ORA-01624: log 1 needed for crash recovery of thread 1

    ORA-00312: online log 1 thread 1: 'D:\Oracle\ORADATA\TEST\REDO01.LOG'

     

    4¡¢ °ÑÊý¾Ý¿âdownµô

        SQL>shutdown immediate

     

    5¡¢ ÔÚinit<sid>.oraÖмÓÈëÈçϲÎÊý

         _allow_resetlogs_corruption=TRUE

     

    6¡¢ ÖØÐÂÆô¶¯Êý¾Ý¿â,ÀûÓÃuntil cancel»Ö¸´

       SQL>recover database until cancel;

       Cancel

    Èç¹û³ö´í£¬²»ÔÙÀí»á£¬·¢³ö

    SQL>alter database open resetlogs;

     

    7¡¢ Êý¾Ý¿â±»´ò¿ªºó£¬ÂíÉÏÖ´ÐÐÒ»¸öfull export

     

    8¡¢ shutdownÊý¾Ý¿â,È¥µô_all_resetlogs_corrupt²ÎÊý

     

    9¡¢ Öؽ¨¿â

     

    10¡¢import²¢Íê³É»Ö¸´

     

    11¡¢½¨ÒéÖ´ÐÐÒ»ÏÂANALYZE TABLE ...VALIDATE STRUCTURE CASCADE;

    ×¢£º

    1¡¢¸Ã»Ö¸´·½·

  • Oracle±¸·ÝÓë»Ö¸´°¸Àý£¨9£©¡¾×ªÌû¡¿

    2007-11-20 12:17:15

    4.4.2 RMAN±¸·ÝϵĻùÓڸıäµÄ»Ö¸´

    ÒÔÉÏÓÃOS±¸·Ý˵Ã÷ÁËÒ»¸ö»ùÓÚʱ¼äµÄ»Ö¸´£¬ÏÖÔÚÓÃRMAN˵Ã÷Ò»¸ö»ùÓڸıäµÄ»Ö¸´

     

    1¡¢ Á¬½ÓÊý¾Ý¿â£¬´´½¨²âÊÔ±í²¢²åÈë¼Ç¼

     

    SQL> connect internal/password as sysdba;

    Connected.

    SQL> create table test(a int);

    Table created

    SQL> insert into test values(1);

    1 row inserted

    SQL> commit;

    Commit complete

     

    2¡¢ ±¸·ÝÊý¾Ý¿â

    C:\>rman

    Recovery Manager: Release 8.1.6.0.0 - Production

    RMAN> connect rcvcat rman/rman@back

    RMAN-06008: connected to recovery catalog database

    RMAN> connect target internal/virpure

    RMAN-06005: connected to target database: TEST (DBID=874705288)

     

    RMAN> run{

    2> allocate channel c1 type disk;

    3> backup full tag 'dbfull' format 'd:\backup\full%u_%s_%p' database

    4> include current controlfile;

    5> sql 'alter system archive log current';

    6> release channel c1;

    7> }

     

       //ÆÁÄ»Êä³öÄÚÈÝÈß³¤£¬Ê¡ÂÔ--±à¼­

    RMAN>

     

    3¡¢ ɾ³ý²âÊÔ±í£¬ÔÚɾ³ý֮ǰ£¬±ãÓÚ²âÊÔ£¬¼ÌÐø²åÈëÊý¾Ý²¢Ó¦Óõ½¹éµµ£¬²¢»ñȡɾ³ýÇ°µÄscnºÅ¡£

    SQL> insert into test values(2);

    1 row inserted

    SQL> commit;

    Commit complete

    SQL> select * from test;

                             A

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

                             1

                             2

    SQL> alter system switch logfile;

    Statement processed.

    SQL> alter system switch logfile;

    Statement processed.

     

    SQL> select max(ktuxescnw * power(2, 32) + ktuxescnb) scn from x$ktuxe;

         SCN

    ----------

      31014

    SQL> drop table test;

    Table dropped.

     

    4¡¢ ×¼±¸»Ö¸´µ½SCN 31014£¬ÏȹرÕÊý¾Ý¿â£¬È»ºóÆô¶¯µ½mountÏÂ

    SQL> shutdown immediate;

    Database closed.

    Database dismounted.

    Oracle instance shut down.

    SQL> startup mount;

     

    5¡¢ ¿ªÊ¼»Ö¸´µ½¸Ä±äµãSCN 31014

    RMAN> run{

    2>      allocate channel c1 type disk;

    3>      restore database;

    4>      recover database until scn 31014;

    5>      sql 'ALTER DATABASE OPEN RESETLOGS';

    6>      release channel c1;

    7> }

     

    RMAN-03022: compiling command: allocate

    RMAN-03023: executing command: allocate

    RMAN-08030: allocated channel: c1

    RMAN-08500: channel c1: sid=10 devtype=DISK

    RMAN-03022: compiling command: restore

    RMAN-03022: compiling command: IRESTORE

    RMAN-03023: executing command: IRESTORE

    RMAN-08016: channel c1: starting datafile backupset restore

    RMAN-08502: set_count=1 set_stamp=494613682 creation_time=21-MAY-03

    RMAN-08089: channel c1: specifying datafile(s) to restore from backup set

    RMAN-08523: restoring datafile 00001 to D:\Oracle\ORADATA\TEST\SYSTEM01.DBF

    RMAN-08523: restoring datafile 00002 to D:\Oracle\ORADATA\TEST\RBS01.DBF

    RMAN-08523: restoring datafile 00003 to D:\Oracle\ORADATA\TEST\USERS01.DBF

    RMAN-08523: restoring datafile 00004 to D:\Oracle\ORADATA\TEST\TEMP01.DBF

    RMAN-08523: restoring datafile 00005 to D:\Oracle\ORADATA\TEST\TOOLS01.DBF

    RMAN-08523: restoring datafile 00006 to D:\Oracle\ORADATA\TEST\INDX01.DBF

    RMAN-08023: channel c1: restored backup piece 1

    RMAN-08511: piece handle=D:\BACKUP\FULL01ENMD5I_1_1 tag=DBFULL params=NULL

    RMAN-08024: channel c1: restore complete

    RMAN-03023: executing command: partial resync

    RMAN-08003: starting partial resync of recovery catalog

    RMAN-08005: partial resync complete

    RMAN-03022: compiling command: recover

    RMAN-03022: compiling command: recover(1)

    RMAN-03022: compiling command: recover(2)

    RMAN-03022: compiling command: recover(3)

    RMAN-03023: executing command: recover(3)

    RMAN-08054: starting media recovery

    RMAN-03022: compiling command: recover(4)

    RMAN-06050: archivelog thread 1 sequence 191 is already on disk as file D:\ORACL

    E\ORADATA\TEST\ARCHIVE\TESTT001S00191.ARC

    RMAN-06050: archivelog thread 1 sequence 192 is already on disk as file D:\ORACL

    E\ORADATA\TEST\ARCHIVE\TESTT001S00192.ARC

    RMAN-03023: executing command: recover(4)

    RMAN-08515: archivelog filename=D:\Oracle\ORADATA\TEST\ARCHIVE\TESTT001S00191.AR

    C thread=1 sequence=191

    RMAN-08515:archivelog filename=D:\Oracle\ORADATA\TEST\ARCHIVE\TESTT001S00192.ARC

    Thread=1 sequence=192

    RMAN-08055: media recovery complete

    RMAN-03022: compiling command: sql

    RMAN-06162: sql statement: ALTER DATABASE OPEN RESETLOGS

    RMAN-03023: executing command: sql

    RMAN-03022: compiling command: release

    RMAN-03023: executing command: release

    RMAN-08031: released channel: c1

     

    6¡¢ ¼ì²éÊý¾Ý

    Database altered.

    SQL> select * from test;

                             A

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

                             1

                             2

    ¿ÉÒÔ¿´µ½£¬±íÒÀÈ»´æÔÚ¡£

     

    ×¢£º

    1¡¢ RMANÒ²¿ÉÒÔʵÏÖ²»ÍêÈ«»Ö¸´£¬·½·¨±ÈOS±¸·Ý»Ö¸´µÄ·½·¨¸ü¼òµ¥¿É¿¿£»

    2¡¢ RMAN¿ÉÒÔ»ùÓÚʱ¼ä£¬»ùÓڸıäÓë»ùÓÚÈÕÖ¾ÐòÁеIJ»ÍêÈ«»Ö¸´£¬»ùÓÚÈÕÖ¾ÐòÁеĻָ´¿ÉÒÔÖ¸¶¨»Ö¸´µ½ÄĸöÈÕÖ¾ÐòÁУ¬Èç

    run { 

           allocate channel ch1 type disk; 

           allocate channel ch2 type 'sbt_tape';

           set until logseq 1234 thread 1;

           restore controlfile to '$Oracle_HOME/dbs/cf1.f' ; 

           replicate controlfile from '$Oracle_HOME/dbs/cf1.f';

              alter database mount; 

           restore database; 

           recover database; 

           sql "ALTER DATABASE OPEN RESETLOGS";

    }

    3¡¢ ÓëËùÓеIJ»ÍêÈ«»Ö¸´Ò»Ñù£¬±ØÐëÔÚmountÏ£¬restoreËùÓб¸·ÝÊý¾ÝÎļþ£¬ÐèÒªresetlogs£»

    4¡¢ »ùÓڸıäµÄ»Ö¸´±È»ùÓÚʱ¼äµÄ»Ö¸´¸ü¿É¿¿£¬µ«ÊÇ¿ÉÄÜÒ²¸ü¸´ÔÓ£¬ÐèÒªÖªµÀÐèÒª»Ö¸´µ½ÄÄÒ»¸ö¸Ä±äºÅ(SCN)£¬ÔÚÕý³£Éú²úÖУ¬»ñÈ¡SCNµÄ°ì·¨ÆäʵҲÓкܶ࣬Èç²éѯÊý¾Ý¿â×Öµä±í(V$archived_log or v$log_history)£¬»ò·ÖÎö¹éµµÓëÁª»úÈÕÖ¾(logmnr)µÈ¡£

  • Oracle±¸·ÝÓë»Ö¸´°¸Àý£¨8£©¡¾×ªÌû¡¿

    2007-11-20 12:16:44

    4.4 ²»ÍêÈ«»Ö¸´°¸Àý

    4.4.1 OS±¸·ÝϵĻùÓÚʱ¼äµÄ»Ö¸´

    ²»ÍêÈ«»Ö¸´¿ÉÒÔ·ÖΪ»ùÓÚʱ¼äµÄ»Ö¸´£¬»ùÓڸıäµÄ»Ö¸´Óë»ùÓÚ³·ÏûµÄ»Ö¸´£¬ÕâÀïÒÑ»ùÓÚʱ¼äµÄ»Ö¸´ÎªÀý×ÓÀ´ËµÃ÷²»ÍêÈ«»Ö¸´¹ý³Ì¡£

     

    »ùÓÚʱ¼äµÄ»Ö¸´¿ÉÒÔ²»ÍêÈ«»Ö¸´µ½ÏÖÔÚʱ¼ä֮ǰµÄijһ¸öʱ¼ä£¬¶ÔÓÚijЩÎó²Ù×÷£¬Èçɾ³ýÁËÒ»¸öÊý¾Ý±í£¬¿ÉÒÔÔÚ±¸Óûָ´»·¾³Éϻָ´µ½±íµÄɾ³ýʱ¼ä֮ǰ£¬È»ºó°Ñ¸Ã±íµ¼³öµ½Õýʽ»·¾³£¬±ÜÃâÒ»¸öÈËΪµÄ´íÎó¡£

     

    1¡¢ Á¬½ÓÊý¾Ý¿â£¬´´½¨²âÊÔ±í²¢²åÈë¼Ç¼:

    SQL> connect internal/password as sysdba;

    Connected.

    SQL> create table test(a int);

    Table created

    SQL> insert into test values(1);

    1 row inserted

    SQL> commit;

    Commit complete

     

    2¡¢ ±¸·ÝÊý¾Ý¿â£¬ÕâÀï×îºÃ±¸·ÝËùÓеÄÊý¾ÝÎļþ£¬°üÀ¨ÁÙʱÊý¾ÝÎļþ:

    SQL> @hotbak.sql »òÔÚDOSÏÂ svrmgrl @hotbak.sql

    »òÀ䱸·ÝÒ²¿ÉÒÔ

     

    3¡¢ ɾ³ý²âÊÔ±í£¬¼Ù¶¨É¾³ýÇ°µÄʱ¼äΪT1£¬ÔÚɾ³ý֮ǰ£¬±ãÓÚ²âÊÔ£¬¼ÌÐø²åÈëÊý¾Ý²¢Ó¦Óõ½¹é  

    µµ¡£

    SQL> insert into test values(2);

    1 row inserted

    SQL> commit;

    Commit complete

    SQL> select * from test;

                             A

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

                             1

                             2

    SQL> alter system switch logfile;

    Statement processed.

    SQL> alter system switch logfile;

    Statement processed.

     

    SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;

    TO_CHAR(SYSDATE,'YY

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

    2003-05-21 14:43:01

    SQL> drop table test;

    Table dropped.

     

    4¡¢ ×¼±¸»Ö¸´µ½Ê±¼äµãT1£¬ÕÒ»Øɾ³ýµÄ±í£¬ÏȹرÕÊý¾Ý¿â:

    SQL> shutdown immediate;

    Database closed.

    Database dismounted.

    Oracle instance shut down.

     

    5¡¢ ¿½±´¸Õ²Å±¸·ÝµÄËùÓÐÊý¾ÝÎļþ»ØÀ´

    C:\>copy D:\DATABAK\*.DBF D:\Oracle\ORADATA\TEST\

     

    6¡¢ Æô¶¯µ½mountÏÂ

    SQL> startup mount;

    Oracle instance started.

    Total System Global Area  102020364 bytes

    Fixed Size                    70924 bytes

    Variable Size              85487616 bytes

    Database Buffers           16384000 bytes

    Redo Buffers                  77824 bytes

    Database mounted.

     

    7¡¢ ¿ªÊ¼²»ÍêÈ«»Ö¸´Êý¾Ý¿âµ½T1ʱ¼ä

    SQL> recover database until time '2003-05-21:14:43:01';

    ORA-00279: change 30944 generated at 05/21/2003 14:40:06 needed for thread 1

    ORA-00289: suggestion : D:\Oracle\ORADATA\TEST\ARCHIVE\TESTT001S00191.ARC

    ORA-00280: change 30944 for thread 1 is in sequence #191

     

    Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

    auto

    Log applied.

    Media recovery complete.


    8¡¢ ´ò¿ªÊý¾Ý¿â£¬¼ì²éÊý¾Ý

    SQL> alter database open resetlogs;

     

    Database altered.

    SQL> select * from test;

                             A

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

                             1

                             2

     

    ×¢£º

    1¡¢²»ÍêÈ«»Ö¸´×îºÃ±¸·ÝËùÓеÄÊý¾Ý£¬À䱸·ÝÒà¿É£¬ÒòΪ»Ö¸´¹ý³ÌÊÇ´Ó±¸·ÝµãÍùºó»Ö¸´µÄ£¬Èç¹ûÒòΪÆäÖÐÒ»¸öÊý¾ÝÎļþµÄʱ¼ä´Á(SCN)´óÓÚÒª»Ö¸´µÄʱ¼äµã£¬ÄÇô»Ö¸´¶¼ÊDz»¿ÉÄܳɹ¦µÄ;

    2¡¢²»ÍêÈ«»Ö¸´ÓÐÈýÖÖ·½Ê½£¬¹ý³Ì¶¼Ò»Ñù£¬½ö½öÊÇrecoverÃüÁîÓÐËù²»Ò»Ñù£¬ÕâÀïÓûùÓÚʱ¼äµÄ»Ö¸´×÷ΪʾÀý;

    3¡¢²»ÍêÈ«»Ö¸´Ö®ºó£¬¶¼±ØÐëÓÃresetlogsµÄ·½Ê½´ò¿ªÊý¾Ý¿â£¬½¨ÒéÂíÉÏÔÙ×öÒ»´ÎÈ«±¸·Ý£¬ÒòΪresetlogsÖ®ºóÔÙÓÃÒÔÇ°µÄ±¸·Ý»Ö¸´ÊǺÜÄÑÁË;

    4¡¢ÒÔÉÏÊÇÔÚɾ³ý֮ǰ»ñµÃʱ¼ä£¬µ«ÊÇʵ¼ÊÓ¦ÓÃÖУ¬ºÜÄÑÖªµÀɾ³ý֮ǰµÄʵ¼Êʱ¼ä£¬µ«¿ÉÒÔ²ÉÓôóÖÂʱ¼ä¼´¿É£¬»ò¿ÉÒÔ²ÉÓ÷ÖÎöÈÕÖ¾Îļþ(logmnr)£¬È¡µÃ¾«È·µÄÐèÒª»Ö¸´µÄʱ¼ä;

    5¡¢Ò»°ã¶¼ÊÇÔÚ²âÊÔ»úºó±¸ÓûúÆ÷ÉϲÉÓÃÕâÖÖ²»ÍêÈ«»Ö¸´£¬»Ö¸´Ö®ºóµ¼³ö/µ¼Èë±»ÎóɾµÄ±í»ØÉú²úϵͳ.

  • Oracle±¸·ÝÓë»Ö¸´°¸Àý£¨7£©¡¾×ªÌû¡¿

    2007-11-20 12:16:10

    6¡¢ÀûÓÃRMAN½øÐлָ´

    C:\>rman

    Recovery Manager: Release 8.1.6.0.0 - Production

    RMAN> connect rcvcat rman/rman@back

    RMAN-06008: connected to recovery catalog database

    RMAN> connect target internal/virpure

    RMAN-06005: connected to target database: TEST (DBID=1788174720)

    RMAN> run{

    2> allocate channel c1 type disk;

    3> restore database;

    4> recover database;

    5> sql 'alter database open';

    6> release channel c1;

    7> }

     

    RMAN-03022: compiling command: allocate

    RMAN-03023: executing command: allocate

    RMAN-08030: allocated channel: c1

    RMAN-08500: channel c1: sid=17 devtype=DISK

    RMAN-03022: compiling command: restore

    RMAN-03025: performing implicit partial resync of recovery catalog

    RMAN-03023: executing command: partial resync

    RMAN-08003: starting partial resync of recovery catalog

    RMAN-08005: partial resync complete

    RMAN-03022: compiling command: IRESTORE

    RMAN-03023: executing command: IRESTORE

    RMAN-08016: channel c1: starting datafile backupset restore

    RMAN-08502: set_count=4 set_stamp=494074368 creation_time=15-MAY-03

    RMAN-08089: channel c1: specifying datafile(s) to restore from backup set

    RMAN-08523: restoring datafile 00001 to D:\Oracle\ORADATA\TEST\SYSTEM01.DBF

    RMAN-08523: restoring datafile 00002 to D:\Oracle\ORADATA\TEST\RBS01.DBF

    RMAN-08523: restoring datafile 00003 to D:\Oracle\ORADATA\TEST\USER01.DBF

    RMAN-08523: restoring datafile 00004 to D:\Oracle\ORADATA\TEST\TEMP01.DBF

    RMAN-08523: restoring datafile 00005 to D:\Oracle\ORADATA\TEST\TOOLS01.DBF

    RMAN-08523: restoring datafile 00006 to D:\Oracle\ORADATA\TEST\INDX01.DBF

    RMAN-08023: channel c1: restored backup piece 1

    RMAN-08511: piece handle=D:\BACKUP\FULL04EN5UG0_4_1 tag=DBFULL params=NULL

    RMAN-08024: channel c1: restore complete

    RMAN-03023: executing command: partial resync

    RMAN-08003: starting partial resync of recovery catalog

    RMAN-08005: partial resync complete

    RMAN-03022: compiling command: recover

    RMAN-03022: compiling command: recover(1)

    RMAN-03022: compiling command: recover(2)

    RMAN-03022: compiling command: recover(3)

    RMAN-03023: executing command: recover(3)

    RMAN-08054: starting media recovery

    RMAN-03022: compiling command: recover(4)

    RMAN-06050: archivelog thread 1 sequence 327 is already on disk as file D:\Oracle\ORADATA\TEST\ARCHIVE\TESTT001S00327.ARC

    RMAN-06050: archivelog thread 1 sequence 328 is already on disk as file D:\Oracle\ORADATA\TEST\ARCHIVE\TESTT001S00328.ARC

    RMAN-06050: archivelog thread 1 sequence 329 is already on disk as file D:\Oracle\ORADATA\TEST\ARCHIVE\TESTT001S00329.ARC

    RMAN-06050: archivelog thread 1 sequence 330 is already on disk as file D:\Oracle\ORADATA\TEST\ARCHIVE\TESTT001S00330.ARC

    RMAN-03023: executing command: recover(4)

    RMAN-08515: archivelog filename=D:\Oracle\ORADATA\TEST\ARCHIVE\TESTT001S00327.ARC thread=1 sequence=327

    RMAN-08515: archivelog filename=D:\Oracle\ORADATA\TEST\ARCHIVE\TESTT001S00328.ARC thread=1 sequence=328

    RMAN-08055: media recovery complete

    RMAN-03022: compiling command: sql

    RMAN-06162: sql statement: alter database open

    RMAN-03023: executing command: sql

    RMAN-03022: compiling command: release

    RMAN-03023: executing command: release

    RMAN-08031: released channel: c1

    RMAN>

     

    7¡¢ ¼ì²éÊý¾Ý¿âµÄÊý¾Ý£¨ÍêÈ«»Ö¸´£©

    SQL> select * from test;

                             A

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

                             1

                             2

     

    ×¢£º

    1¡¢Ö»ÒªÓб¸·ÝÓë¹éµµ´æÔÚ£¬RMANÒ²¿ÉÒÔʵÏÖÊý¾Ý¿âµÄÍêÈ«»Ö¸´£¨²»¶ªÊ§Êý¾Ý£©;

    2¡¢Í¬OS±¸·ÝÊý¾Ý¿â»Ö¸´£¬ÊʺÏÓÚ¶ªÊ§´óÁ¿Êý¾ÝÎļþ£¬»ò°üº¬ÏµÍ³Êý¾ÝÎļþÔÚÄÚµÄÊý¾Ý¿âµÄ»Ö¸´;

    3¡¢Ä¿±êÊý¾Ý¿âÔÚmountϽøÐУ¬Èç¹û»Ö¸´³É¹¦£¬ÔÙ´ò¿ªÊý¾Ý¿â;

    4¡¢RMANµÄ±¸·ÝÓë»Ö¸´ÃüÁîÏà¶Ô±È½Ï¼òµ¥²¢¿É¿¿£¬½¨ÒéÓÐÌõ¼þµÄ»°£¬¶¼²ÉÓÃRMAN½øÐÐÊý¾Ý¿âµÄ±¸·Ý¡£

  • Oracle±¸·ÝÓë»Ö¸´°¸Àý£¨6£©¡¾×ªÌû¡¿

    2007-11-20 12:15:33

    4.3.2 RMAN±¸·Ý·½°¸

    RMAN±¸·Ý¹éµµÄ£Ê½ÏÂË𻵣¨¶ªÊ§£©¶à¸öÊý¾ÝÎļþ£¬½øÐÐÕû¸öÊý¾Ý¿âµÄ»Ö¸´

    1¡¢Á¬½ÓÊý¾Ý¿â£¬´´½¨²âÊÔ±í²¢²åÈë¼Ç¼

     

    SQL> connect internal/password as sysdba;

    Connected.

    SQL> create table test(a int);

    Table created

    SQL> insert into test values(1);

    1 row inserted

    SQL> commit;

    Commit complete

     

    2¡¢±¸·ÝÊý¾Ý¿â

    DOSÏÂ C:>\ rman cmdfile=bakup.rcv msglog=backup.log;

     

    ÒÔÏÂÊÇbackup.logÄÚÈÝ¡£

    Recovery Manager: Release 8.1.6.0.0 - Production

    RMAN> #     scr¨©pt:bakup.rcv

    2> #     creater:chenjiping

    3> #     date:5.8.2003

    4> #     desc:backup all database datafile in archive with rman

    5>

    6> #connect database

    7> connect rcvcat rman/rman@back;

    8> connect target internal/virpure;

    9>

    10> #start backup database

    11> run{

    12> allocate channel c1 type disk;

    13> backup full tag 'dbfull' format 'd:\backup\full%u_%s_%p' database

    14> include current controlfile;

    15> sql 'alter system archive log current';

    16> release channel c1;

    17> }

    18> #end

    19>

     

    RMAN-06008: connected to recovery catalog database

    RMAN-06005: connected to target database: TEST (DBID=1788174720)

    RMAN-03022: compiling command: allocate

    RMAN-03023: executing command: allocate

    RMAN-08030: allocated channel: c1

    RMAN-08500: channel c1: sid=15 devtype=DISK

    RMAN-03022: compiling command: backup

    RMAN-03023: executing command: backup

    RMAN-08008: channel c1: starting full datafile backupset

    RMAN-08502: set_count=4 set_stamp=494074368 creation_time=15-MAY-03

    RMAN-08010: channel c1: specifying datafile(s) in backupset

    RMAN-08522: input datafile fno=00002 name=D:\Oracle\ORADATA\TEST\RBS01.DBF

    RMAN-08522: input datafile fno=00001 name=D:\Oracle\ORADATA\TEST\SYSTEM01.DBF

    RMAN-08011: including current controlfile in backupset

    RMAN-08522: input datafile fno=00005 name=D:\Oracle\ORADATA\TEST\TOOLS01.DBF

    RMAN-08522: input datafile fno=00004 name=D:\Oracle\ORADATA\TEST\TEMP01.DBF

    RMAN-08522: input datafile fno=00006 name=D:\Oracle\ORADATA\TEST\INDX01.DBF

    RMAN-08522: input datafile fno=00003 name=D:\Oracle\ORADATA\TEST\USER01.DBF

    RMAN-08013: channel c1: piece 1 created

    RMAN-08503: piece handle=D:\BACKUP\FULL04EN5UG0_4_1 comment=NONE

    RMAN-08525: backup set complete, elapsed time: 00:01:16

    RMAN-03023: executing command: partial resync

    RMAN-08003: starting partial resync of recovery catalog

    RMAN-08005: partial resync complete

    RMAN-03022: compiling command: sql

    RMAN-06162: sql statement: alter system archive log current

    RMAN-03023: executing command: sql

    RMAN-03022: compiling command: release

    RMAN-03023: executing command: release

    RMAN-08031: released channel: c1

    Recovery Manager complete.

    µ½ÕâÀï±íʾ±¸·Ý³É¹¦¡£

     

    3¡¢ ¼ÌÐøÔÚ²âÊÔ±íÖвåÈë¼Ç¼

    SQL> insert into test values(2);

    1 row inserted

    SQL> commit;

    Commit complete

    SQL> select * from test;

                             A

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

                             1

                             2

    SQL>alter system switch logfile;

    System altered.

    SQL> alter system switch logfile;

    System altered.

     

    4¡¢ ¹Ø±ÕÊý¾Ý¿â£¬Ä£ÄⶪʧÊý¾ÝÎļþ

    SQL> shutdown immediate;

    Database closed.

    Database dismounted.

    Oracle instance shut down

    C:\>del D:\Oracle\ORADATA\TEST\SYSTEM01.DBF

    C:\>del D:\Oracle\ORADATA\TEST\INDX01.DBF

    C:\>del D:\Oracle\ORADATA\TEST\TOOLS01.DBF

    C:\>del D:\Oracle\ORADATA\TEST\RBS01.DBF

     

    5¡¢Æô¶¯Êý¾Ý¿â£¬¼ì²é´íÎó

    SQL> STARTUP

    Oracle instance started.

    Total System Global Area  102020364 bytes

    Fixed Size                    70924 bytes

    Variable Size              85487616 bytes

    Database Buffers           16384000 bytes

    Redo Buffers                  77824 bytes

    Database mounted.

    ORA-01157: cannot identify/lock data file 1 - see DBWR trace file

    ORA-01110: data file 1: 'D:\Oracle\ORADATA\TEST\SYSTEM01.DBF'

     

    ²éѯv$recover_file

    SQL> select * from v$recover_file;

     

         FILE# ONLINE  ERROR                 CHANGE# TIME

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

             1 ONLINE  FILE NOT FOUND              0

             2 ONLINE  FILE NOT FOUND              0

             5 ONLINE  FILE NOT FOUND              0

             6 ONLINE  FILE NOT FOUND              0


    ¿ÉÒÔÖªµÀÓÐËĸöÊý¾ÝÎļþÐèÒª»Ö¸´.

  • Oracle±¸·ÝÓë»Ö¸´°¸Àý£¨5£©¡¾×ªÌû¡¿

    2007-11-20 12:14:21

    4.3¶ªÊ§¶à¸öÊý¾ÝÎļþ£¬ÊµÏÖÕû¸öÊý¾Ý¿âµÄ»Ö¸´

    4.3.1 OS±¸·Ý·½°¸

    OS±¸·Ý¹éµµÄ£Ê½ÏÂË𻵣¨¶ªÊ§£©¶à¸öÊý¾ÝÎļþ£¬½øÐÐÕû¸öÊý¾Ý¿âµÄ»Ö¸´

    1¡¢ Á¬½ÓÊý¾Ý¿â£¬´´½¨²âÊÔ±í²¢²åÈë¼Ç¼

    SQL> connect internal/password as sysdba;

    Connected.

     

    SQL> create table test(a int);

    Table created

    SQL> insert into test values(1);

    1 row inserted

    SQL> commit;

    Commit complete

     

    2¡¢ ±¸·ÝÊý¾Ý¿â£¬±¸·Ý³ýÁÙʱÊý¾ÝÎļþºóµÄËùÊý¾ÝÎļþ

    SQL> @hotbak.sql »òÔÚDOSÏÂ svrmgrl @hotbak.sql

     

    3¡¢ ¼ÌÐøÔÚ²âÊÔ±íÖвåÈë¼Ç¼

    SQL> insert into test values(2);

    1 row inserted

    SQL> commit;

    Commit complete

    SQL> select * from test;

                             A

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

                             1

                             2

    SQL> alter system switch logfile;

    System altered.

    SQL> alter system switch logfile;

    System altered.

     

    4¡¢ ¹Ø±ÕÊý¾Ý¿â£¬Ä£ÄⶪʧÊý¾ÝÎļþ

    SQL> shutdown immediate;

    Database closed.

    Database dismounted.

    Oracle instance shut down

     

    C:\>del D:\Oracle\ORADATA\TEST\SYSTEM01.DBF

    C:\>del D:\Oracle\ORADATA\TEST\INDX01.DBF

    C:\>del D:\Oracle\ORADATA\TEST\TOOLS01.DBF

    C:\>del D:\Oracle\ORADATA\TEST\RBS01.DBF

    Ä£ÄâýÌå»Ù»µ£¨ÕâÀïɾ³ý¶à¸öÊý¾ÝÎļþ£©

     

    5¡¢ Æô¶¯Êý¾Ý¿â£¬¼ì²é´íÎó

    SQL> STARTUP

    Oracle instance started.

    Total System Global Area  102020364 bytes

    Fixed Size                    70924 bytes

    Variable Size              85487616 bytes

    Database Buffers           16384000 bytes

    Redo Buffers                  77824 bytes

    Database mounted.

    ORA-01157: cannot identify/lock data file 1 - see DBWR trace file

    ORA-01110: data file 1: 'D:\Oracle\ORADATA\TEST\SYSTEM01.DBF'

     

    ÏêϸÐÅÏ¢¿ÉÒԲ鿴±¨¾¯Îļþ

    ORA-1157 signalled during: ALTER DATABASE OPEN...

    Thu May 08 09:39:36 2003

    Errors in file D:\Oracle\admin\test\bdump\testDBW0.TRC:

    ORA-01157: cannot identify/lock data file 1 - see DBWR trace file

    ORA-01110: data file 1: 'D:\Oracle\ORADATA\TEST\SYSTEM01.DBF'

    ORA-27041: unable to open file

    OSD-04002: unable to open file

    O/S-Error: (OS 2) ϵͳÕÒ²»µ½Ö¸¶¨µÄÎļþ¡£

     

    Thu May 08 09:39:36 2003

    Errors in file D:\Oracle\admin\test\bdump\testDBW0.TRC:

    ORA-01157: cannot identify/lock data file 2 - see DBWR trace file

    ORA-01110: data file 2: 'D:\Oracle\ORADATA\TEST\RBS01.DBF'

    ORA-27041: unable to open file

    OSD-04002: unable to open file

    O/S-Error: (OS 2) ϵͳÕÒ²»µ½Ö¸¶¨µÄÎļþ¡£

     

    Thu May 08 09:39:36 2003

    Errors in file D:\Oracle\admin\test\bdump\testDBW0.TRC:

    ORA-01157: cannot identify/lock data file 5 - see DBWR trace file

    ORA-01110: data file 5: 'D:\Oracle\ORADATA\TEST\TOOLS01.DBF'

    ORA-27041: unable to open file

    OSD-04002: unable to open file

    O/S-Error: (OS 2) ϵͳÕÒ²»µ½Ö¸¶¨µÄÎļþ¡£

     

    Thu May 08 09:39:36 2003

    Errors in file D:\Oracle\admin\test\bdump\testDBW0.TRC:

    ORA-01157: cannot identify/lock data file 6 - see DBWR trace file

    ORA-01110: data file 6: 'D:\Oracle\ORADATA\TEST\INDX01.DBF'

    ORA-27041: unable to open file

    OSD-04002: unable to open file

    O/S-Error: (OS 2) ϵͳÕÒ²»µ½Ö¸¶¨µÄÎļþ¡£

     

    ͨ¹ý²éѯv$recover_file¿ÉÒÔ¿´µ½

    SQL> select * from v$recover_file;

     

         FILE# ONLINE  ERROR                 CHANGE# TIME

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

             1 ONLINE  FILE NOT FOUND              0

             2 ONLINE  FILE NOT FOUND              0

             5 ONLINE  FILE NOT FOUND              0

             6 ONLINE  FILE NOT FOUND              0

    ÓÐËĸöÊý¾ÝÎļþÐèÒª»Ö¸´

     

    6¡¢ ¿½±´±¸·Ý»Øµ½Ô­µØµã(restore)£¬¿ªÊ¼»Ö¸´Êý¾Ý¿â(recover)

    restore¹ý³Ì:

    C:\>copy D:\DATABAK\SYSTEM01.DBF D:\Oracle\ORADATA\TEST\

    C:\>copy D:\DATABAK\TEST\INDX01.DBF D:\Oracle\ORADATA\TEST\

    C:\>copy D:\DATABAK\TEST\TOOLS01.DBF D:\Oracle\ORADATA\TEST\

    C:\>copy D:\DATABAK\TEST\RBS01.DBF.DBF D:\Oracle\ORADATA\TEST\

     

    Recover¹ý³Ì:

    SQL> recover database;

     

    ORA-00279: change 1073849 generated at 05/08/2003 08:58:35 needed for thread 1

    ORA-00289: suggestion : D:\Oracle\ORADATA\TEST\ARCHIVE\TESTT001S00311.ARC

    ORA-00280: change 1073849 for thread 1 is in sequence #311

     

    Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

    auto

    ORA-00279: change 1073856 generated at 05/08/2003 09:03:27 needed for thread 1

    ORA-00289: suggestion : D:\Oracle\ORADATA\TEST\ARCHIVE\TESTT001S00312.ARC

    ORA-00280: change 1073856 for thread 1 is in sequence #312

    ORA-00278: log file 'D:\Oracle\ORADATA\TEST\ARCHIVE\TESTT001S00311.ARC' no

    longer needed for this recovery

     

    ORA-00279: change 1073858 generated at 05/08/2003 09:11:43 needed for thread 1

    ORA-00289: suggestion : D:\Oracle\ORADATA\TEST\ARCHIVE\TESTT001S00313.ARC

    ORA-00280: change 1073858 for thread 1 is in sequence #313

    ORA-00278: log file 'D:\Oracle\ORADATA\TEST\ARCHIVE\TESTT001S00312.ARC' no

    longer needed for this recovery

     

    ORA-00279: change 1073870 generated at 05/08/2003 09:11:46 needed for thread 1

    ORA-00289: suggestion : D:\Oracle\ORADATA\TEST\ARCHIVE\TESTT001S00314.ARC

    ORA-00280: change 1073870 for thread 1 is in sequence #314

    ORA-00278: log file 'D:\Oracle\ORADATA\TEST\ARCHIVE\TESTT001S00313.ARC' no

    longer needed for this recovery

     

    Log applied.

    Media recovery complete.

     

    7¡¢ ´ò¿ªÊý¾Ý¿â£¬¼ì²éÊý¾Ý¿âµÄÊý¾Ý£¨ÍêÈ«»Ö¸´£©

    SQL> alter database open;

    Database altered.

    SQL> select * from test;

                             A

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

                             1

                             2

    ×¢£º

    1¡¢Ö»ÒªÓб¸·ÝÓë¹éµµ´æÔÚ£¬¾Í¿ÉÒÔʵÏÖÊý¾Ý¿âµÄÍêÈ«»Ö¸´£¨²»¶ªÊ§Êý¾Ý£©;

    2¡¢ÊʺÏÓÚ¶ªÊ§´óÁ¿Êý¾ÝÎļþ£¬»ò°üº¬ÏµÍ³Êý¾ÝÎļþÔÚÄÚµÄÊý¾Ý¿âµÄ»Ö¸´;

    3¡¢»Ö¸´¹ý³ÌÔÚmountϽøÐУ¬Èç¹û»Ö¸´³É¹¦£¬ÔÙ´ò¿ªÊý¾Ý¿â£¬down»úʱ¼ä¿ÉÄܱȽϳ¤Ò»Ð©¡£

  • Oracle±¸·ÝÓë»Ö¸´°¸Àý£¨4£©¡¾×ªÌû¡¿

    2007-11-20 12:13:34

    4.2.2 RMAN±¸·Ý·½°¸

    RMANÒ²¿ÉÒÔ½øÐÐÁª»ú±¸·Ý£¬¶øÇÒ±¸·ÝÓë»Ö¸´·½·¨½«±ÈOS±¸·Ý¸ü¼òµ¥¿É¿¿¡£

    1¡¢Á¬½ÓÊý¾Ý¿â£¬´´½¨²âÊÔ±í²¢²åÈë¼Ç¼

    SQL> connect internal/password as sysdba;

    Connected.

     

    SQL> create table test(a int) tablespace users;

    Table created

    SQL> insert into test values(1);

    1 row inserted

    SQL> commit;

    Commit complete

     

    2¡¢ ±¸·ÝÊý¾Ý¿â±í¿Õ¼äusers

    C:\>rman

    Recovery Manager: Release 8.1.6.0.0 - Production

    RMAN> connect rcvcat rman/rman@back

    RMAN-06008: connected to recovery catalog database

    RMAN> connect target internal/virpure

    RMAN-06005: connected to target database: TEST (DBID=1788174720)

     

    RMAN> run{

    2> allocate channel c1 type disk;

    3> backup tag 'tsuser' format 'd:\backup\tsuser_%u_%s_%p'

    4> tablespace users;

    5> release channel c1;

    6> }

     

    RMAN-03022: compiling command: allocate

    RMAN-03023: executing command: allocate

    RMAN-08030: allocated channel: c1

    RMAN-08500: channel c1: sid=16 devtype=DISK

     

    RMAN-03022: compiling command: backup

    RMAN-03025: performing implicit partial resync of recovery catalog

    RMAN-03023: executing command: partial resync

    RMAN-08003: starting partial resync of recovery catalog

    RMAN-08005: partial resync complete

    RMAN-03023: executing command: backup

    RMAN-08008: channel c1: starting full datafile backupset

    RMAN-08502: set_count=5 set_stamp=494177612 creation_time=16-MAY-03

    RMAN-08010: channel c1: specifying datafile(s) in backupset

    RMAN-08522: input datafile fno=00003 name=D:\Oracle\ORADATA\TEST\USER01.DBF

    RMAN-08013: channel c1: piece 1 created

    RMAN-08503: piece handle=D:\BACKUP\TSUSER_05EN93AC_5_1 comment=NONE

    RMAN-08525: backup set complete, elapsed time: 00:00:01

    RMAN-03023: executing command: partial resync

    RMAN-08003: starting partial resync of recovery catalog

    RMAN-08005: partial resync complete

    RMAN-03022: compiling command: release

    RMAN-03023: executing command: release

    RMAN-08031: released channel: c1

    RMAN>

     

    3¡¢ ¼ÌÐøÔÚ²âÊÔ±íÖвåÈë¼Ç¼

    SQL> insert into test values(2);

    1 row inserted

    SQL> commit;

    Commit complete

    SQL> select * from test;

                             A

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

                             1

                             2

    SQL> alter system switch logfile;

    System altered.

    SQL>r

    1* alter system switch logfile;

    System altered.

     

    4¡¢ ¹Ø±ÕÊý¾Ý¿â£¬Ä£ÄⶪʧÊý¾ÝÎļþ

    SQL> shutdown immediate;

    Database closed.

    Database dismounted.

    Oracle instance shut down

     

    C:\>del D:\Oracle\ORADATA\TEST\USER01.DBF

     

    5¡¢ Æô¶¯Êý¾Ý¿â£¬¼ì²é´íÎó

    SQL> startup

    Oracle instance started.

    Total System Global Area  102020364 bytes

    Fixed Size                    70924 bytes

    Variable Size              85487616 bytes

    Database Buffers           16384000 bytes

    Redo Buffers                  77824 bytes

    Database mounted.

    ORA-01157: cannot identify/lock data file 3 - see DBWR trace file

    ORA-01110: data file 3: 'D:\Oracle\ORADATA\TEST\USER01.DBF'

     

    6¡¢ ÏÈ´ò¿ªÊý¾Ý¿â

    SQL> alter database datafile 3 offline drop;

    Database altered.

    SQL> alter database open;

    Database altered.

     

    7¡¢ »Ö¸´¸Ã±í¿Õ¼ä

    »Ö¸´½Å±¾¿ÉÒÔÊǻָ´µ¥¸öÊý¾ÝÎļþ

    run{

    allocate channel c1 type disk;

    restore datafile 3;

    recover datafile 3;

    sql 'alter database datafile 3 online';

    release channel c1;

    }

    Ò²¿ÉÒÔÊÇ,»Ö¸´±í¿Õ¼ä

    run{

    allocate channel c1 type disk;

    restore tablespace users;

    recover tablespace users;

    sql 'alter database datafile 3 online';

    release channel c1;

    }

    ¹ý³ÌÈçÏ£º

    C:\>rman

    Recovery Manager: Release 8.1.6.0.0 - Production

    RMAN> connect rcvcat rman/rman@back

    RMAN-06008: connected to recovery catalog database

    RMAN> connect target internal/virpure

    RMAN-06005: connected to target database: TEST (DBID=1788174720)

     

    RMAN> run{

    2> allocate channel c1 type disk;

    3> restore datafile 3;

    4> recover datafile 3;

    5> sql 'alter database datafile 3 online';

    6> release channel c1;

    7> }

     

    //Êä³öÄÚÈÝÈß³¤£¬Ê¡ÂÔ--±àÕß

    RMAN>

     

    8¡¢ ¼ì²éÊý¾ÝÊÇ·ñÍêÕû

    SQL> alter database open;

    Database altered.

     

    SQL> select * from test;

                             A

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

                             1

                             2

    ×¢£º

    1¡¢RMANÒ²¿ÉÒÔʵÏÖµ¥¸ö±í¿Õ¼ä»òÊý¾ÝÎļþµÄ»Ö¸´£¬»Ö¸´¹ý³Ì¿ÉÒÔÔÚmountÏ»òopen·½Ê½Ï£¬Èç¹ûÔÚopen·½Ê½Ï»ָ´£¬¿ÉÒÔ¼õÉÙdown»úʱ¼ä;

    2¡¢Èç¹ûË𻵵ÄÊÇÒ»¸öÊý¾ÝÎļþ£¬½¨Òéoffline²¢ÔÚopen·½Ê½Ï»ָ´;

    3¡¢ÕâÀï¿ÉÒÔ¿´µ½£¬RMAN½øÐÐÊý¾ÝÎļþÓë±í¿Õ¼ä»Ö¸´µÄʱºò£¬´úÂ붼±È½Ï¼òµ¥£¬¶øÇÒÄܱ£Ö¤±¸·ÝÓë»Ö¸´µÄ¿É¿¿ÐÔ£¬ËùÒÔ½¨Òé²ÉÓÃRMANµÄ±¸·ÝÓë»Ö¸´.

  • Oracle±¸·ÝÓë»Ö¸´°¸Àý£¨3£©¡¾×ªÌû¡¿

    2007-11-20 12:12:30

    4.2¹éµµÄ£Ê½Ï¶ªÊ§»òËð»µÒ»¸öÊý¾ÝÎļþ

    4.2.1 OS±¸·Ý·½°¸

    Ôڹ鵵·½Ê½ÏÂË𻵻ò¶ªÊ§Ò»¸öÊý¾ÝÎļþ£¬Èç¹û´æÔÚÏàÓ¦µÄ±¸·ÝÓë¸Ã±¸·ÝÒÔÀ´µÄ¹éµµÈÕÖ¾£¬»Ö¸´»¹ÊDZȽϼòµ¥µÄ£¬¿ÉÒÔ×÷µ½¾¡Á¿ÉÙµÄDown»úʱ¼ä£¬²¢ÄÜ×÷µ½Êý¾Ý¿âµÄÍêÈ«»Ö¸´¡£

     

    1¡¢ Á¬½ÓÊý¾Ý¿â£¬´´½¨²âÊÔ±í²¢²åÈë¼Ç¼

    SQL> connect internal/password as sysdba;

    Connected.

    SQL> create table test(a int) tablespace users;

    Table created

    SQL> insert into test values(1);

    1 row inserted

    SQL> commit;

    Commit complete

     

    2¡¢ ±¸·ÝÊý¾Ý¿â

    SQL> @hotbak.sql »òÔÚDOSÏÂ svrmgrl @hotbak.sql

     

    3¡¢ ¼ÌÐøÔÚ²âÊÔ±íÖвåÈë¼Ç¼

    SQL> insert into test values(2);

    1 row inserted

    SQL> commit;

    Commit complete

    SQL> select * from test;

                             A

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

                             1

                             2

    SQL> alter system switch logfile;

    System altered.

    SQL> alter system switch logfile;

    System altered.

     

    4¡¢ ¹Ø±ÕÊý¾Ý¿â£¬Ä£ÄⶪʧÊý¾ÝÎļþ

    SQL> shutdown immediate;

    Database closed.

    Database dismounted.

    Oracle instance shut down

    C:\>del D:\Oracle\ORADATA\TEST\USERS01.DBF

    Ä£ÄâýÌå»Ù»µ¡£

     

    5¡¢ Æô¶¯Êý¾Ý¿â´íÎó£¬ÍÑ»ú¸ÃÊý¾ÝÎļþ£º

    SQL> startup

    Oracle instance started.

     

    Total System Global Area  102020364 bytes

    Fixed Size                    70924 bytes

    Variable Size              85487616 bytes

    Database Buffers           16384000 bytes

    Redo Buffers                  77824 bytes

    Database mounted.

    ORA-01157: cannot identify/lock data file 3 - see DBWR trace file

    ORA-01110: data file 3: 'D:\Oracle\ORADATA\TEST\USERS01.DBF'


    »¹¿ÉÒԲ鿴±¨¾¯Îļþ£¨¼ûÉÏÒ»¸ö»Ö¸´°¸Àý£©»ò¶¯Ì¬ÊÓͼv$recover_file

    ÈçSQL> select * from v$recover_file;

     

         FILE# ONLINE  ERROR                  CHANGE#      TIME

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

             3 ONLINE                        1013500   2003-05-07

     

    ÍÑ»úÊý¾ÝÎļþ

    SQL> alter database datafile 3 offline drop;

    Database altered.

     

    6¡¢ ´ò¿ªÊý¾Ý¿â£¬¿½±´±¸·Ý»ØÀ´(restore)£¬»Ö¸´(recover)¸ÃÊý¾ÝÎļþ£¬²¢Áª»ú:

    SQL> alter database open;

    Database altered.


    ¿½±´±¸·Ý´Ó±¸·Ý´¦

    copy d:\databak\ users01.dbf d:\Oracle\oradata\test;


    »Ö¸´¸ÃÊý¾ÝÎļþ

    SQL> recover datafile 3;


    ORA-00279: change 1053698 generated at 05/07/2003 17:51:26 needed for

    thread 1

    ORA-00289: suggestion :
    D:\Oracle\ORADATA\TEST\ARCHIVE\TESTT001S00304.ARC

    ORA-00280: change 1053698 for thread 1 is in sequence #304

     

    Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

    AUTO

    ORA-00279: change 1053701 generated at 05/07/2003 17:51:39 needed for

    thread 1

    ORA-00289: suggestion : D:\Oracle\ORADATA\TEST\ARCHIVE\TESTT001S00305.ARC

    ORA-00280: change 1053701 for thread 1 is in sequence #305

    ORA-00278: log file 'D:\Oracle\ORADATA\TEST\ARCHIVE\TESTT001S00304.ARC' no longer needed for this recovery Log applied.

    Media recovery complete.


    »Ö¸´³É¹¦£¬Áª»ú¸ÃÊý¾ÝÎļþ

    SQL> alter database datafile 3 online;

    Database altered.

     

    7¡¢ ¼ì²éÊý¾Ý¿âµÄÊý¾Ý£¨ÍêÈ«»Ö¸´£©

    SQL> select * from test;

                             A

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

                             1

                             2

    ×¢£º

    1¡¢²ÉÓÃÈȱ¸·Ý£¬ÐèÒªÔËÐÐÔڹ鵵ģʽÏ£¬¿ÉÒÔʵÏÖÊý¾Ý¿âµÄÍêÈ«»Ö¸´£¬Ò²¾ÍÊÇ˵£¬´Ó±¸·Ýºóµ½Êý¾Ý¿â±ÀÀ£Ê±µÄÊý¾Ý¶¼²»»á¶ªÊ§;

    2¡¢¿ÉÒÔ²ÉÓÃÈ«±¸·ÝÊý¾Ý¿âµÄ·½Ê½±¸·Ý£¬¶ÔÓÚÌØÊâÇé¿ö£¬Ò²¿ÉÒÔÖ»±¸·ÝÌض¨µÄÊý¾ÝÎļþ£¬ÈçÖ»±¸·ÝÓû§±í¿Õ¼ä£¨Ò»°ãÇé¿ö϶ÔÓÚijЩдÌرðƵ·±µÄÊý¾ÝÎļþ£¬¿ÉÒÔµ¥¶À¼Ó´ó±¸·ÝƵÂÊ£©£»

    3¡¢Èç¹ûÔÚ»Ö¸´¹ý³ÌÖУ¬·¢ÏÖË𻵵ÄÊǶà¸öÊý¾ÝÎļþ£¬¼´¿ÉÒÔ²ÉÓÃÒ»¸öÒ»¸öÊý¾ÝÎļþµÄ»Ö¸´·½·¨£¨µÚ5²½ÖÐÐèÒª¶ÔÊý¾ÝÎļþÒ»Ò»ÍÑ»ú£¬µÚ6²½ÖÐÐèÒª¶ÔÊý¾ÝÎļþ·Ö±ð»Ö¸´£©£¬Ò²¿ÉÒÔ²ÉÓÃÕû¸öÊý¾Ý¿âµÄ»Ö¸´·½·¨£»

    4¡¢Èç¹ûÊÇϵͳ±í¿Õ¼äµÄË𻵣¬²»ÄܲÉÓô˷½·¨¡£

  • Oracle±¸·ÝÓë»Ö¸´°¸Àý£¨2£©¡¾×ªÌû¡¿

    2007-11-20 12:11:04

    µÚÈýÕ Á˽âÓë»Ö¸´Ïà¹ØµÄÐÅÏ¢

    3.1 Àí½â±¨¾¯ÈÕÖ¾Îļþ

    ±¨¾¯ÈÕÖ¾ÎļþÒ»°ã¼ÇÔØÁËÊý¾Ý¿âµÄÆô¶¯/¹Ø±ÕÐÅÏ¢£¬¹éµµÐÅÏ¢£¬±¸·ÝÐÅÏ¢£¬»Ö¸´ÐÅÏ¢£¬³£¼û´íÎóÐÅÏ¢£¬²¿·ÖÊý¾Ý¿âÐ޸ļǼµÈ¡£Ò»°ãÁîÃû¹æÔòΪ<SID>Alrt.log»òAlrt<SID>.log£¬ÈçÎҵIJâÊÔÊý¾Ý¿âµÄ±¨¾¯ÈÕÖ¾ÎļþµÄÃû³ÆΪtestalrt.log¡£

     

    ±¨¾¯ÈÕÖ¾ÎļþµÄ·¾¶ÊǸù¾Ý³õʼ»¯²ÎÊýbackground_dump_destÀ´¾ö¶¨µÄ£¬ÈçÔÚÎҵĻúÆ÷ÉÏ£¬¸Ã²ÎÊýֵΪ D:\Oracle\admin\test\bdump£¬ÄÇô£¬Äã¾Í¿ÉÒÔÔڸ÷¾¶ÏÂÕÒµ½¸ÃÎļþ¡£

    3.2 ºǫ́½ø³Ì¸ú×ÙÎļþ

    ºǫ́½ø³Ì¸ú×ÙÎļþµÄ·¾¶Ó뱨¾¯ÈÕÖ¾ÎļþµÄ·¾¶Ò»Ö£¬ÔÚijЩÇé¿öÏ£¬Äã¿ÉÒÔͨ¹ýºǫ́¸ú×ÙÎļþµÄÐÅÏ¢Á˽â¸ü¶àµÄÐèÒª»Ö¸´µÄÐÅÏ¢¡£ÈçÔÚÊý¾Ý¿âÐèÒª»Ö¸´µÄʱºò£¬±¨¾¯ÈÕÖ¾ÎļþÖг£ÓÐÕâÑùµÄÓï¾ä£º

     

    Errors in file D:\Oracle\admin\test\bdump\testDBW0.TRC:

    ORA-01157: cannot identify/lock data file 1 - see DBWR trace file

    ͨ¹ýÌáʾµÄDBWR¸ú×ÙÎļþ£¬¿ÉÒÔ²éѯµ½¸üÏêϸµÄÐÅÏ¢¡£


    3
    ¡¢ v$recover_fileÓëv$recovery_log

    ÕâÊÇÁ½¸ö¶¯Ì¬ÐÔÄÜÊÓͼ£¬¿ÉÒÔÔÚmountϲ鿴£¬Í¨¹ýÕâÁ½¸öÊÓͼ£¬Äã¿ÉÒÔÁ˽âÏêϸµÄÐèÒª»Ö¸´µÄÊý¾ÝÎļþÓëÐèҪʹÓõ½µÄ¹éµµÈÕÖ¾¡£

    µÚËÄÕ Êý¾Ý¿â»Ö¸´°¸Àý

    4.1·Ç¹éµµÄ£Ê½Ïµı¸·ÝÓë»Ö¸´

    ±¸·Ý·½°¸£º²ÉÓÃOSÀ䱸·Ý

    1. Á¬½ÓÊý¾Ý¿â²¢´´½¨²âÊÔ±í

    SQL> connect internal/password as sysdba;

    Connected.

    SQL> create table test(a int);

    Table created

    SQL> insert into test values(1);

    1 row inserted

    SQL> commit;

    Commit complete

     

    2. ±¸·ÝÊý¾Ý¿â

    SQL> @coldbak.sql »òÔÚDOSÏÂ svrmgrl @coldbak.sql

     

    3. ÔÙ²åÈë¼Ç¼

    SQL> insert into test values(2);

    1 row inserted

    SQL> commit;

    Commit complete

    SQL> select * from test;

                             A

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

                             1

                             2

    4. ¹Ø±ÕÊý¾Ý¿â

    SQL> shutdown immediate;

    Database closed.

    Database dismounted.

    Oracle instance shut down.

     

    5. »Ù»µÒ»¸ö»ò¶à¸öÊý¾ÝÎļþ£¬Èçɾ³ýuser01.dbf

    C:\>del D:\Oracle\ORADATA\TEST\USERS01.DBF

    Ä£ÄâýÌå»Ù»µ¡£

     

    6. ÖØÐÂÆô¶¯Êý¾Ý¿â£¬»á·¢ÏÖÈçÏ´íÎó

    SQL> startup

    Oracle instance started.

     

    Total System Global Area  102020364 bytes

    Fixed Size                    70924 bytes

    Variable Size              85487616 bytes

    Database Buffers           16384000 bytes

    Redo Buffers                  77824 bytes

    Database mounted.

    ORA-01157: cannot identify/lock data file 3 - see DBWR trace file

    ORA-01110: data file 3: 'D:\Oracle\ORADATA\TEST\USERS01.DBF'

     

    ÔÚ±¨¾¯ÎļþÖУ¬»áÓиüÏêϸµÄÐÅÏ¢

    Errors in file D:\Oracle\admin\test\bdump\testDBW0.TRC:

    ORA-01157: cannot identify/lock data file 3 - see DBWR trace file

    ORA-01110: data file 3: 'D:\Oracle\ORADATA\TEST\USERS01.DBF'

    ORA-27041: unable to open file

    OSD-04002: unable to open file

    O/S-Error: (OS 2) ϵͳÕÒ²»µ½Ö¸¶¨µÄÎļþ¡£

     

    7. ¿½±´±¸·Ý¸´Ô­µ½Ô­À´Î»ÖÃ(restore¹ý³Ì)

    C:\>xcopy d:\database\*.* d:\Oracle\oradata\test/H/R/S

     

    8. ´ò¿ªÊý¾Ý¿â£¬¼ì²éÊý¾Ý

    SQL> alter database open;

    Database altered.

    SQL> select * from test;

                             A

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

                             1

     

    ÕâÀï¿ÉÒÔ·¢ÏÖ£¬Êý¾Ý¿â»Ö¸´³É¹¦£¬µ«ÔÚ±¸·ÝÖ®ºóÓë±ÀÀ£Ö®Ç°µÄÊý¾Ý¶ªÊ§ÁË¡£


    ×¢£º

    1¡¢·Ç¹éµµÄ£Ê½ÏµĻָ´·½°¸¿ÉÑ¡ÐÔºÜС£¬Ò»°ãÇé¿öÏÂÖ»ÄÜÓÐÒ»ÖÖ»Ö¸´·½Ê½£¬¾ÍÊÇÊý¾Ý¿âµÄÀ䱸
    ·ÝµÄÍêÈ«»Ö¸´£¬½ö½öÐèÒª¿½±´Ô­À´µÄ±¸·Ý¾Í¿ÉÒÔ(restore)£¬²»ÐèÒªrecover£»

    2¡¢ÕâÖÖÇé¿öϵĻָ´£¬¿ÉÒÔÍêÈ«»Ö¸´µ½±¸·ÝµÄµãÉÏ£¬µ«ÊÇ¿ÉÄÜÊǶªÊ§Êý¾ÝµÄ£¬ÔÚ±¸·ÝÖ®ºóÓë±ÀÀ£Ö®Ç°µÄÊý¾Ý½«È«²¿¶ªÊ§£»

    3¡¢²»¹Ü»Ù»µÁ˶àÉÙÊý¾ÝÎļþ»òÊÇÁª»úÈÕÖ¾»òÊÇ¿ØÖÆÎļþ£¬¶¼¿ÉÒÔͨ¹ýÕâ¸ö°ì·¨»Ö¸´£¬ÒòΪÕâ¸ö»Ö¸´¹ý³ÌÊÇRestoreËùÓеÄÀ䱸·ÝÎļþ£¬¶øÕâ¸ö±¸·ÝµãÉϵÄËùÓÐÎļþÊÇÒ»Öµģ¬Óë×îеÄÊý¾Ý¿âûÓйØϵ£¬¾ÍºÃ±È°ÑÊý¾Ý¿âÓַŵ½ÁËÒ»¸öÒÔÇ°µÄ"µã"ÉÏ£»

    4¡¢¶ÔÓڷǹ鵵ģʽÏ£¬×îºÃµÄ°ì·¨¾ÍÊDzÉÓÃOSµÄÀ䱸·Ý£¬½¨Òé²»ÒªÓÃRMANÀ´×÷À䱸·Ý£¬Ð§¹û²»ºÃ£¬ÒòΪRMAN²»±¸·ÝÁª»úÈÕÖ¾£¬restore²»Äܸù±¾½â¾öÎÊÌ⣻

    5¡¢Èç¹ûûÓб¸·ÝÁª»úÈÕÖ¾£¬ÈçRMANµÄ±¸·Ý£¬¾ÍÐèÒªÀûÓò»ÍêÈ«»Ö¸´(until cancel)µÄ·½·¨À´ÖØд´½¨Áª»úÈÕÖ¾Îļþ¡£

  • Oracle±¸·ÝÓë»Ö¸´°¸Àý£¨1£©¡¾×ªÌû¡¿

    2007-11-20 12:02:13

    µÚÒ»Õ Àí½âʲôÊÇÊý¾Ý¿â»Ö¸´

       µ±ÎÒÃÇʹÓÃÒ»¸öÊý¾Ý¿âʱ£¬×ÜÏ£ÍûÊý¾Ý¿âµÄÄÚÈÝÊÇ¿É¿¿µÄ¡¢ÕýÈ·µÄ£¬µ«ÓÉÓÚ¼ÆËã»úϵͳµÄ¹ÊÕÏ£¨Ó²¼þ¹ÊÕÏ¡¢Èí¼þ¹ÊÕÏ¡¢ÍøÂç¹ÊÕÏ¡¢½ø³Ì¹ÊÕϺÍϵͳ¹ÊÕÏ£©Ó°ÏìÊý¾Ý¿âϵͳµÄ²Ù×÷£¬Ó°ÏìÊý¾Ý¿âÖÐÊý¾ÝµÄÕýÈ·ÐÔ£¬ÉõÖÁÆÆ»µÊý¾Ý¿â£¬Ê¹Êý¾Ý¿âÖÐÈ«²¿»ò²¿·ÖÊý¾Ý¶ªÊ§¡£Òò´Ëµ±·¢ÉúÉÏÊö¹ÊÕϺó£¬Ï£ÍûÄÜÖع¹Õâ¸öÍêÕûµÄÊý¾Ý¿â£¬¸Ã´¦Àí³ÆΪÊý¾Ý¿â»Ö¸´¡£»Ö¸´¹ý³Ì´óÖ¿ÉÒÔ·ÖΪ¸´Ô­(Restore)Óë»Ö¸´(Recover)¹ý³Ì¡£

     

    Êý¾Ý¿â»Ö¸´¿ÉÒÔ·ÖΪÒÔÏÂÁ½Àࣺ

    1.1ʵÀý¹ÊÕϵÄÒ»ÖÂÐÔ»Ö¸´

    µ±ÊµÀýÒâÍâµØ£¨Èçµôµç¡¢ºǫ́½ø³Ì¹ÊÕϵȣ©»òÔ¤Áϵأ¨·¢³öSHUTDOUM ABORTÓï¾ä£©ÖÐֹʱ³öÏÖʵÀý¹ÊÕÏ£¬´ËʱÐèҪʵÀý»Ö¸´¡£ÊµÀý»Ö¸´½«Êý¾Ý¿â»Ö¸´µ½¹ÊÕÏ֮ǰµÄÊÂÎñÒ»ÖÂ״̬¡£Èç¹ûÔÚÔÚÏߺ󱸷¢ÏÖʵÀý¹ÊÕÏ£¬ÔòÐè½éÖʻָ´¡£ÔÚÆäËüÇé¿öOracleÔÚÏ´ÎÊý¾Ý¿âÆð¶¯Ê±£¨¶ÔÐÂʵÀý×°ÅäºÍ´ò¿ª£©£¬×Ô¶¯µØÖ´ÐÐʵÀý»Ö¸´¡£Èç¹ûÐèÒª£¬´Ó×°Åä״̬±äΪ´ò¿ª×´Ì¬£¬×Ô¶¯µØ¼¤·¢ÊµÀý»Ö¸´£¬ÓÉÏÂÁд¦Àí£º

     

    £¨1£© ΪÁ˽â»Ö¸´Êý¾ÝÎļþÖÐûÓмǼµÄÊý¾Ý£¬½øÐÐÏòÇ°¹ö¡£¸ÃÊý¾Ý¼Ç¼ÔÚÔÚÏßÈÕÖ¾£¬°üÀ¨¶Ô»Ø¹ö¶ÎµÄÄÚÈݻָ´¡£

    £ £ £¨2£© »Ø¹öδÌá½»µÄÊÂÎñ£¬°´²½1ÖØÐÂÉú³É»Ø¹ö¶ÎËùÖ¸¶¨µÄ²Ù×÷¡£

    £ £ £¨3£© ÊÍ·ÅÔÚ¹ÊÕÏʱÕýÔÚ´¦ÀíÊÂÎñËù³ÖÓеÄ×ÊÔ´¡£

    £ £ £¨4£© ½â¾öÔÚ¹ÊÕÏʱÕý¾­ÀúÒ»½×¶ÎÌá½»µÄÈκÎÐü¶øδ¾öµÄ·Ö²¼ÊÂÎñ¡£

    1.2½éÖʹÊÕÏ»òÎļþ´íÎóµÄ²»Ò»Ö»ָ´

    ½éÖʹÊÕÏÊǵ±Ò»¸öÎļþ¡¢Ò»¸öÎļþµÄ²¿·Ö»ò´ÅÅ̲»ÄܶÁ»ò²»ÄÜдʱ³öÏֵĹÊÕÏ¡£Îļþ´íÎóÒ»°ãÖ¸ÒâÍâµÄ´íÎóµ¼ÖÂÎļþ±»É¾³ý»òÒâÍâʹʵ¼ÖÂÎļþµÄ²»Ò»Ö¡£ÕâÖÖ״̬ϵÄÊý¾Ý¿â¶¼ÊDz»Ò»Öµģ¬ÐèÒªDBAÊÖ¹¤À´½øÐÐÊý¾Ý¿âµÄ»Ö¸´£¬ÕâÖÖ»Ö¸´ÓÐÁ½ÖÖÐÎʽ£¬¾ö¶¨ÓÚÊý¾Ý¿âÔËÐеĹ鵵·½Ê½ºÍ±¸·Ý·½Ê½¡£

     

    £¨1£© ÍêÈ«½éÖʻָ´¿É»Ö¸´È«²¿¶ªÊ§µÄÐ޸ġ£Ò»°ãÇé¿öÏÂÐèÒªÓÐÊý¾Ý¿âµÄ±¸·ÝÇÒÊý¾Ý¿âÔËÐÐÔڹ鵵״̬ϲ¢ÇÒÓпÉÓù鵵ÈÕ־ʱ²Å¿ÉÄÜ¡£¶ÔÓÚ²»Í¬ÀàÐ͵ĴíÎó£¬Óв»Í¬ÀàÐ͵ÄÍêÈ«»Ö¸´¿ÉʹÓã¬Æä¾ö¶¨ÓÚ»Ù»µÎļþºÍÊý¾Ý¿âµÄ¿ÉÓÃÐÔ¡£

     

    £¨2£© ²»ÍêÈ«½éÖʻָ´ÊÇÔÚÍêÈ«½éÖʻָ´²»¿ÉÄÜ»ò²»ÒªÇóʱ½øÐеĽéÖʻָ´¡£Öع¹ÊÜËðµÄÊý¾Ý¿â£¬Ê¹Æä»Ö¸´½éÖʹÊÕÏÇ°»òÓû§³ö´í֮ǰµÄÒ»¸öÊÂÎñÒ»ÖÂÐÔ״̬¡£²»ÍêÈ«½éÖʻָ´Óв»Í¬ÀàÐ͵ÄʹÓ㬾ö¶¨ÓÚÐèÒª²»ÍêÈ«½éÖʻָ´µÄÇé¿ö£¬ÓÐÏÂÁÐÀàÐÍ£º»ùÓÚ³·Ïû¡¢»ùÓÚʱ¼äºÍ»ùÓÚÐ޸ĵIJ»ÍêÈ«»Ö¸´¡£

    £ £ »ùÓÚ³·Ïû(CANCEL)»Ö¸´£ºÔÚijÖÖÇé¿ö£¬²»ÍêÈ«½éÖʻָ´±ØÐë±»¿ØÖÆ£¬DBA¿É³·ÏûÔÚÖ¸¶¨µãµÄ²Ù×÷¡£»ùÓÚ³·ÏûµÄ»Ö¸´µØÔÚÒ»¸ö»ò¶à¸öÈÕÖ¾×飨ÔÚÏߵĻò¹éµµµÄ£©Òѱ»½éÖʹÊÕÏËùÆÆ»µ£¬²»ÄÜÓÃÓÚ»Ö¸´¹ý³ÌʱʹÓã¬ËùÒÔ½éÖʻָ´±ØÐë¿ØÖÆ£¬ÒÔÖÂÔÚʹÓÃ×î½üµÄ¡¢Î´ËðµÄÈÕÖ¾×éÓÚÊý¾ÝÎļþºóÖÐÖ¹»Ö¸´²Ù×÷¡£

     

    £ £ »ùÓÚʱ¼ä(TIME)ºÍ»ùÓÚÐÞ¸Ä(SCN)µÄ»Ö¸´£ºÈç¹ûDBAÏ£Íû»Ö¸´µ½¹ýÈ¥µÄij¸öÖ¸¶¨µã£¬ÊÇÒ»ÖÖÀíÏëµÄ²»ÍêÈ«½éÖʻָ´£¬Ò»°ã·¢ÉúÔÚ»Ö¸´µ½Ä³¸öÌض¨²Ù×÷֮ǰ£¬»Ö¸´µ½ÈçÒâÍâɾ³ýij¸öÊý¾Ý±í֮ǰ¡£

    µÚ¶þÕ Êý¾Ý¿â»Ö¸´°¸Àý²âÊÔ»·¾³

    2.1 Êý¾Ý¿â»·¾³

    ÒÔϵÄËùÓа¸Àý¶¼ÊÇͨ¹ý²âÊÔ¾­¹ý£¬»·¾³Îª£º

      OS£ºWindows 2000 Server

      DB£ºOracle 816

      DBNAME£ºTEST

     

    Êý¾ÝÎļþ£º

    SQL> select file#,status,enabled,name from v$datafile;

     

    FILE#     STATUS  ENABLED NAME

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

    1 SYSTEM  READ    WRITE    D:\Oracle\ORADATA\TEST\SYSTEM01.DBF

    2 ONLINE  READ    WRITE    D:\Oracle\ORADATA\TEST\RBS01.DBF

    3 ONLINE  READ    WRITE    D:\Oracle\ORADATA\TEST\USERS01.DBF

    4 ONLINE  READ    WRITE    D:\Oracle\ORADATA\TEST\TEMP01.DBF

    5 ONLINE  READ    WRITE    D:\Oracle\ORADATA\TEST\TOOLS01.DBF

    6 ONLINE  READ    WRITE    D:\Oracle\ORADATA\TEST\INDX01.DBF

     

    ¿ØÖÆÎļþ£º

    SQL> select * from v$controlfile;

     

    STATUS  NAME

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

           D:\Oracle\ORADATA\TEST\CONTROL01.CTL

           D:\Oracle\ORADATA\TEST\CONTROL02.CTL

           D:\Oracle\ORADATA\TEST\CONTROL03.CTL


    Áª»úÈÕÖ¾£º

    SQL> select * from v$logfile;

     

        GROUP#   STATUS     MEMBER

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

          1       STALE     D:\Oracle\ORADATA\TEST\REDO01.LOG

          2                   D:\Oracle\ORADATA\TEST\REDO02.LOG

          3       STALE     D:\Oracle\ORADATA\TEST\REDO03.LOG

    2.2 Êý¾Ý¿â±¸·Ý½Å±¾

    À䱸·Ý½Å±¾:

    rem     scr¨©pt:coldbak.sql

    rem     creater:chenjiping

    rem     date:5.8.2003

    rem     desc:offline full backup database

     

    --connect database

    connect internal/password;

    --shutdown database

    shutdown immediate;

    --Copy Data file

    !xcopy d:\Oracle\oradata\test\*.dbf d:\database/H/R;

    --Copy Control file

    !xcopy d:\Oracle\oradata\test\*.ctl d:\database/H/R;

    --Copy Log file

    !xcopy d:\Oracle\oradata\test\*.log d:\database/H/R;

    --startup database

    startup;

     

    ×¢£º

    1¡¢ÒÔÉϽű¾ÔÚÊý¾Ý¿â¹Ø±Õ״̬ϱ¸·ÝÊý¾Ý¿âËùÓеÄÊý¾ÝÎļþ£¬Áª»úÈÕÖ¾£¬¿ØÖÆÎļþ£¨ÔÚÒ»¸öÄ¿

    ¼Ï£©£¬Èç¹û³É¹¦±¸·Ý£¬ËùÓÐÎļþÊÇÒ»ÖµÄ;

    2¡¢Ã»Óб¸·Ý²ÎÊýÎļþ£¬²ÎÊýÎļþ¿ÉÒÔÁíÍⱸ·Ý£¬Ã»ÓбØҪÿ´Î¶¼±¸·Ý£¬Ö»ÐèÒªÔڸıäÉèÖú󱸷ÝÒ»´Î;

    3¡¢Èç¹ûÒÔÉÏÃüÁîûÓгɹ¦ÒÀ´ÎÖ´ÐУ¬ÄÇô±¸·Ý½«ÊÇÎÞЧµÄ£¬ÈçÁ¬½ÓÊý¾Ý¿â²»³É¹¦£¬ÄÇô¿Ï¶¨¹Ø±ÕÊý¾Ý¿âÒ²²»³É¹¦£¬ÄÇô±¸·ÝÔòÎÞЧ;

    4¡¢À䱸·Ý½¨ÒéÏÂÈ˹¤¸ÉÔ¤ÏÂÖ´ÐС£

     

    Êý¾Ý¿âOSÈÈÈ«±¸·Ý½Å±¾

    rem     scr¨©pt:hotbak.sql

    rem     creater:chenjiping

    rem     date:5.8.2003

    rem     desc:backup all database datafile in archive

     

    --connect database

    connect internal/password;

     

    --archive

    alter system archive log current;

    --start

     

    alter tablespace system begin backup;

    !xcopy d:\Oracle\oradata\test\system01.dbf d:\databak/H/R;

    alter tablespace system end backup;

     

    alter tablespace rbs begin backup;

    !xcopy d:\Oracle\oradata\test\rbs01.dbf d:\databak/H/R;

    alter tablespace rbs end backup;

     

    alter tablespace users begin backup;

    !xcopy d:\Oracle\oradata\test\users01.dbf d:\databak/H/R;

    alter tablespace users end backup;

     

    alter tablespace tools begin backup;

    !xcopy d:\Oracle\oradata\test\tools01.dbf d:\databak/H/R;

    alter tablespace tools end backup;

     

    alter tablespace indx begin backup;

    !xcopy d:\Oracle\oradata\test\indx01.dbf d:\databak/H/R;

    alter tablespace indx end backup;

    --end

     

    --bak control file

    --binary

    alter database backup controlfile to 'd:\databak\controlbinbak.000';

    --ascii

    alter database backup controlfile to trace;

     

    alter system archive log current;


    ×¢£º

    1¡¢Èȱ¸·Ý±ØÐëÔÚÊý¾Ý¿â¹éµµ·½Ê½Ï²ſÉÒÔÔËÐУ»

    2¡¢ÒÔÉϽű¾¿ÉÒÔÔÚÊý¾Ý¿âÔËÐÐ״̬ϱ¸·ÝÊý¾Ý¿âËùÓеÄÊý¾ÝÎļþ£¨³ýÁËÁÙʱÊý¾ÝÎļþ£©£¬Ã»ÓбØÒª±¸·ÝÁª»úÈÕÖ¾£»

    3¡¢¹éµµÈÕÖ¾ÖÁÉÙÐèÒªÒ»´ÎÍêÕû±¸·ÝÖ®ºóµÄËùÓÐÈÕÖ¾£»

    4¡¢Èç¹ûÒÔÉÏÃüÁîûÓгɹ¦ÒÀ´ÎÖ´ÐУ¬ÄÇô±¸·ÝÒ²ÊÇÎÞЧµÄ£¬ÈçÁ¬½ÓÊý¾Ý¿â²»³É¹¦£¬ÄÇô±¸·ÝÔòÎÞЧ¡£

     

    RMAN±¸·ÝÖ»½²ÐðÓлָ´Ä¿Â¼µÄÇé¿ö£¬Èç¹ûûÓлָ´Ä¿Â¼£¬ÇéÐδóÖÂÏàËÆ¡£ÒÔÏÂÊÇRMANµÄÈȱ¸·ÝÈ«±¸·ÝµÄ½Å±¾£º

    #   scr¨©pt:bakup.rcv

    #   creater:chenjiping

    #   date:5.8.2003

    #   desc:backup all database datafile in archive with rman

     

    # connect database

    connect rcvcat rman/rman@back;

    connect target internal/virpure;

     

    # start backup database

    run{

    allocate channel c1 type disk;

    backup full tag 'dbfull' format 'd:\backup\full%u_%s_%p' database

    include current controlfile;

    sql 'alter system archive log current';

    release channel c1;

    }

    # end

     

    ×¢£º

    1¡¢ Êý¾Ý¿â±ØÐëÔËÐÐÔڹ鵵ģʽÏÂ;

    2¡¢ RMAN½«×Ô¶¯±¸·ÝÊý¾ÝÎļþ£¬ÔËÐпɿ¿;

    3¡¢ ¹éµµÈÕÖ¾ÁíÍⱸ·Ý´¦Àí£¬µ«ÖÁÉÙÐèÒª±£´æÒ»´Î±¸·ÝÀ´µÄÈÕÖ¾;

    4¡¢ ûÓбØÒªÓÃRMAN×öÀ䱸·Ý£¬Ð§¹û²»ºÃ¡£

     

    ÒÔÉϾÙÀý˵Ã÷ÁËÊý¾Ý¿âµÄ»Ö¸´°¸ÀýµÄ²âÊÔ»·¾³Ó벿·Ö±¸·Ý²âÊԽű¾£¬ÆäËüµÄ±¸·Ý½Å±¾¿ÉÒÔ¸ù¾ÝÒÔÉϽű¾Ñݱä¶øÀ´»òÔÚ°¸ÀýÖмÓÒÔ˵Ã÷¡£

    Êý¾Ý¿âµÄ×Ô¶¯ÊµÀý½«²»¼ÓÒÔ˵Ã÷£¬ÕâÀïÖ»¾ÙÀý˵Ã÷ýÌå´íÎó»òÈËΪ´íÎóÔì³ÉµÄ»Ö¸´¿ÉÄÜ¡£

    ÒÔÉÏ°üÀ¨ÒÔÏ°¸Àý¶¼ÊÇÔÚWINDOWS+Oracle816ÉϲâÊÔÑéÖ¤µÄ£¬ÔÚ²»Í¬µÄ²Ù×÷ϵͳÓ벻ͬµÄÊý¾Ý¿â°æ±¾ÖÐÂÔÓвî±ð¡£

ÎҵĴ浵

Êý¾Ýͳ¼Æ

  • ·ÃÎÊÁ¿: 3537
  • ÈÕÖ¾Êý: 12
  • ½¨Á¢Ê±¼ä: 2007-11-20
  • ¸üÐÂʱ¼ä: 2007-11-20

RSS¶©ÔÄ

Open Toolbar