Decode360's Blog

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

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理 ::
            302 隨筆 :: 26 文章 :: 82 評論 :: 0 Trackbacks
          一、控制文件
          ?
          ??? 控制文件是一個小型的二進制文件,可以記錄數據庫的物理結構。包括:
          ?
          ??? * 數據庫名稱
          ??? * 數據文件和聯機重做日志文件的名稱和位置
          ??? * 數據庫創建的時標
          ??? * 當前日志的序號
          ??? * 檢驗點信息
          ?
          ??? 一般Oracle數據庫創建時都會創建至少兩個或兩個以上的控制文件。
          ?
          二、控制文件的標準
          ?
          ??? 1、控制文件的文件名
          ?
          ??? 由CONTROL_FILES參數來指定控制文件名。
          ??? 若沒有指定該參數,則生成默認文件名,默認文件名在各個操作系統中各不相同
          ?
          ??? 2、控制文件的復用
          ?
          ??? 一般不同的控制文件都存放在不同的磁盤,當某個磁盤損壞時可以通過在其他磁盤上的控制文件進行復用,不需要任何的介質恢復。
          ?
          ??? * 找到CONTROL_FILES參數列出所有文件名,將相應內容寫入所有控制文件
          ??? * CONTROL_FILES中列出的第一個文件是Oracle數據庫運行期間唯一可以讀取的文件
          ??? * 數據庫運行期間,任何控制文件變為不可用,則實例不能繼續運行
          ?
          ??? 3、備份控制文件
          ?
          ??? 進行以下數據庫物理結構改變之后,需要備份控制文件
          ?
          ??? * 添加、取消或重命名數據文件
          ??? * 添加或撤銷表空間,或更改表空間讀寫狀態
          ??? * 添加或取消重做日志文件
          ?
          ??? 4、控制文件大小管理
          ?
          ??? MAXDATAFILES、MAXLOGFILES、MAXLOGMEMBERS、MAXLOGHISTORY、MAXINSTANCES參數控制
          ?
          ?
          三、創建控制文件
          ?
          ??? 1、創建初始化控制文件
          ?
          ??? CONTROL_FILES = (/u01/oracle/prod/control01.ctl,
          ?????????????????????/u02/oracle/prod/control02.ctl,
          ???????????????????? /u03/oracle/prod/control03.ctl)
          ?
          ??? 注:若已經存在與指定名同名的文件,則在CREATE DATABASE語句中指定CONTROLFILE REUSE子句。而且新控制文件與原先控制文件的SIZE必須相同。
          ?
          ??? 2、創建額外副本、重命名和重定位控制文件
          ?
          ??? ① 關閉數據庫
          ??? ② 在操作系統中復制、修改原控制文件
          ??? ③ 修改CONTROL_FILES,添加或修改新的控制文件名
          ??? ④ 重新啟動數據庫
          ?
          ??? 3、創建新的控制文件
          ?
          ??? 以下情況可能會需要重新創建新的控制文件:
          ?
          ??? * 數據庫所有控制文件都收到永久性損壞,且無任何備份
          ??? * 希望修改數據庫參數的永久性設置,例如:SID、MAXDATAFILES、MAXLOGFILES、MAXLOGMEMBERS、MAXLOGHISTORY、MAXINSTANCES等參數
          ?
          ??? 4、創建語句示例
          ?
          ??? CREATE CONTROLFILE
          ??? SET DATABASE prod
          ??? LOGFILE GROUP 1 ('/u01/oracle/prod/redo01_01.log',
          ???????????????????? '/u01/oracle/prod/redo01_02.log'),
          ??????????? GROUP?2 ('/u01/oracle/prod/redo02_01.log',
          ???????????????????? '/u01/oracle/prod/redo02_02.log'),
          ??????????? GROUP?3 ('/u01/oracle/prod/redo03_01.log',
          ???????????????????? '/u01/oracle/prod/redo03_02.log')
          ??? NORESETLOGS
          ??? DATAFILE '/u01/oracle/prod/system01.dbf' SIZE 3M,
          ???????????? '/u01/oracle/prod/rbs01.dbf' SIZE 5M,
          ???????????? '/u01/oracle/prod/users01.dbf' SIZE 5M,
          ???????????? '/u01/oracle/prod/temp01.dbf' SIZE 5M
          ??? MAXLOGFILES 50
          ??? MAXLOGMEMBERS 3
          ??? MAXDATAFILES 200
          ??? MAXINSTANCES 6
          ??? ARCHIVELOG;
          ?
          ??? 注:CREATE CONTROLFILE 語句可能會損壞數據文件和聯機重做日志文件,省略文件名會引起文件中數據的丟失,或失去訪問完整數據庫的能力,所以在使用這條語句時需要特別小心。
          ?
          ??? 5、創建步驟(嚴格遵守)
          ?
          ??? ① 制作包括數據庫所有數據文件和聯機重做日志文件的列表,可以使用以下SQL列出清單
          ??????? selectmemberfrom v$logfile; --聯機重做日志文件

          ???????select name from v$datafile; -- 數據文件

          ???????select value from v$parameter where name = 'control_files' ; -- 控制文件

          ??? ② 關閉數據庫(IMMEDIATE、ABORT)
          ??? ③ 備份數據庫的所有數據文件和聯機重做日志文件
          ??? ④ 啟動一個新的實例,但不要裝載和打開數據庫(NOMOUNT)
          ??? ⑤ 使用CREATE CONTROLFILE語句創建一個新的控制文件
          ??????? 注:若重命名數據庫,或聯機重做日志文件丟失,可使用RESETLOGS子句
          ??? ⑥ 在離線存儲設備上存儲新的控制文件備份
          ??? ⑦ 編輯CONTROL_FILES初始化參數,若重命名數據庫,則編輯DB_NAME參數
          ??? ⑧ 進行數據庫恢復(如果需要的話 )
          ??????? 注:若指定RESETLOGS,則需要加入USING BACKUP CONTROL FILE來恢復數據庫
          ??? ⑨ 打開數據庫(ALTER DATABASE OPEN;)
          ???
          ?
          ?




          -The End-

          posted on 2008-11-23 22:18 decode360-3 閱讀(267) 評論(0)  編輯  收藏 所屬分類: DBA
          主站蜘蛛池模板: 民丰县| 拜城县| 进贤县| 高唐县| 汝城县| 武夷山市| 凤城市| 巩留县| 新巴尔虎左旗| 新建县| 崇左市| 会理县| 弥渡县| 普定县| 永仁县| 安龙县| 绿春县| 绥阳县| 乌苏市| 大理市| 横峰县| 武威市| 贞丰县| 百色市| 平度市| 喀喇| 米林县| 通州市| 扎囊县| 阳信县| 乐东| 沂水县| 定西市| 彭山县| 化隆| 乐昌市| 容城县| 塔河县| 开封县| 田林县| 罗江县|