Decode360's Blog

          業(yè)精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
            397 隨筆 :: 33 文章 :: 29 評論 :: 0 Trackbacks
          聯(lián)機重做日志操作
          ?
          ??? 接著昨天來學(xué)習(xí)一下關(guān)于redo log的操作。這些操作都是日常維護數(shù)據(jù)庫時都需要用到的,所以需要記清楚。
          ?
          一、創(chuàng)建聯(lián)機重做日志
          ?
          ??? 1、創(chuàng)建聯(lián)機重做日志組
          ?
          ??? ALTER DATABASE ADD LOGFILE ('/oracle/dbs/log1c.rdo','/oracle/dbs/log2c.rdo') SIZE 500K;
          ?
          ??? ALTER DATABASE ADD GROUP 10 ('/oracle/dbs/log1c.rdo','/oracle/dbs/log2c.rdo') SIZE 500K;
          ?
          ??? 注:組號必須在1和MAXLOGFILES之間,且不要跳躍使用,否則會耗費數(shù)據(jù)庫控制文件中的空間。
          ?
          ??? 2、創(chuàng)建聯(lián)機重做日志成員
          ?
          ??? ALTER DATABASE ADD LOGFILE MEMBER '/oracle/dbs/log2b.rdo' TO GROUP 2;
          ?
          ??? ALTER DATABASE ADD LOGFILE MEMBER '/oracle/dbs/log2c.rdo' TO ('/oracle/dbs/log2a.rdo','/oracle/dbs/log2b.rdo');
          ?
          ??? 注:指定組中所有成員也可以表示這個組。新建的日志成員狀態(tài)為INVALID,首次使用時變成活動狀態(tài)。
          ?
          ?
          二、重定位 & 重命名
          ?
          ??? ① 關(guān)閉數(shù)據(jù)庫:SHUTDOWN
          ?
          ??? ② 在操作系統(tǒng)中移動或重命名聯(lián)機重做日志文件
          ?
          ??? ③ 啟動并裝載數(shù)據(jù)庫:STARTUP MOUNT
          ?
          ??? ④ 使用RENAME語句
          ?
          ??? ALTER DATABASE RENAME FILE '/diska/logs/log1a.rdo','/diska/logs/log2a.rdo'
          ??? TO '/diskc/logs/log1c.rdo','/diskc/logs/log2c.rdo'
          ?
          ?
          三、取消聯(lián)機重做日志組成員
          ?
          ??? 1、取消日志組
          ?
          ??? 要注意:
          ??? ① 至少需要保留兩組聯(lián)機重做日志文件
          ??? ② 日志組狀態(tài)為“非活動”時才可以取消,如果是“活動”的,則需要進行強制切換
          ??? ③ 要確保日志組已經(jīng)存檔,可以查看V$LOG視圖查看是否存檔
          ?
          ??? ALTER DATABASE DROP LOGFILE GROUP 3;
          ?
          ??? 在執(zhí)行DROP之后要在操作系統(tǒng)中刪除磁盤文件
          ?
          ??? 2、取消聯(lián)機重做日志成員
          ?
          ??? 要注意:
          ??? ① 可以取消原先對稱的組中的成員,使其暫時不對稱,但最好立即調(diào)整這種狀況
          ??? ② 實例需要至少兩個有效聯(lián)機重做日志文件,且不能取消最后一個有效成員,使用V$LOGFILE查看狀態(tài)
          ??? ③ 和取消組一樣,需要成員為非活動狀態(tài),否則需要進行一次強制切換
          ??? ④ 確保要取消的成員已經(jīng)經(jīng)過存檔
          ?
          ??? ALTER DATABASE DROP LOGFILE MEMBER '/oracle/dbs/log3c.rdo';
          ?
          ?
          四、強制切換日志
          ?
          ??? ALTER SYSTEM SWITCH LOGFILE;
          ?
          ?
          五、校驗重做日志文件中的塊
          ?
          ??? 設(shè)置DB_BLOCK_CHECKSUM初始化參數(shù)為TRUE,則對所有寫到磁盤上的Oracle數(shù)據(jù)塊進行校驗,包括重做數(shù)日志塊。
          ??? DB_BLOCK_CHECKSUM參數(shù)的默認值是FLASE
          ?
          ??? <具體原理未知>
          ?
          ??? 注:允許校驗會對系統(tǒng)產(chǎn)生額外的開銷,并且降低數(shù)據(jù)庫性能。需要監(jiān)視數(shù)據(jù)庫性能以判斷校驗的代價是否過重。
          ?
          ?
          六、清除聯(lián)機重做日志文件
          ?
          ??? 在聯(lián)機重做日志損壞時,可以使用CLEAR命令來初始化聯(lián)機重做日志文件
          ?
          ??? 但是要注意以下情況不能使用:
          ??? * 僅有兩個日志組
          ??? * 受到損壞的重做日志文件屬于當(dāng)前組
          ?
          ??? ALTER DATABASE CLEAR LOGFILE GROUP 3;
          ??? ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 3;
          ?
          ??? 注:清除了恢復(fù)備份所需的日志文件,則不能再進行恢復(fù),Oracle將在警報文件中寫入一條消息來描述不能恢復(fù)的備份。
          ?
          ??? 注:若清除的日志可以將脫機表空間變成聯(lián)機狀態(tài),則需要在語句中加上UNRECOVERABLE DATAFILE子句。
          ??????? 因為清除該日志后再也不能把脫機表空間變成聯(lián)機狀態(tài),所以不得不撤銷表空間或執(zhí)行未完成的恢復(fù)過程。
          ?
          ?
          七、查看聯(lián)機重做日志信息
          ?
          ??? V$LOG:顯示來自于控制文件的重做日志文件信息
          ??? V$LOGFILE:標識重做日志文件組及其成員的狀態(tài)
          ??? V$LOG_HISTORY:包含日志歷史信息
          ?
          ?
          posted on 2008-11-26 23:13 decode360 閱讀(275) 評論(0)  編輯  收藏 所屬分類: 08.DBA
          主站蜘蛛池模板: 哈尔滨市| 电白县| 大丰市| 沅江市| 东莞市| 开原市| 隆回县| 赤城县| 北海市| 乃东县| 舒兰市| 崇明县| 玉田县| 冀州市| 井陉县| 颍上县| 阜新市| 岫岩| 佛学| 开远市| 仁怀市| 平江县| 依兰县| 平罗县| 鹤庆县| 革吉县| 博白县| 固原市| 中山市| 高唐县| 花莲市| 台北市| 新宁县| 远安县| 搜索| 舒兰市| 泊头市| 合肥市| 平原县| 鄢陵县| 齐河县|