6.管理控制檔案(筆記)
6.管理控制檔案
控制檔案用於記錄和維護資料庫的物理結構,當啟動例程並開啟資料庫時,oracle會根據初始化引數control files 在例程和資料庫之間建立關聯.裝載資料庫(MOUNT狀態)時,ORACLE會安裝初始化引數control_files定位並開啟控制檔案和重做日誌.
控制檔案時oracle資料庫最重要的物理檔案.控制檔案不僅記載了資料庫的物理結構(資料檔案的名稱和位置,重做日誌的名稱和位置).裝載和開啟資料庫時也需要這些檔案,而且它們還記載了日誌序列好,檢查點和日誌歷史資訊.同步和恢復資料庫時需要這些資訊.
控制檔案主要記載了以下資訊
資料庫名稱
資料檔名稱和位置
重做日誌名稱和位置
表空間名稱
當前日誌序列好
檢查點資訊
日誌歷史資訊
RMAN資訊
控制檔案主要是由永久引數和RMAN資訊組成.
永久引數包括
MAXINSTANCES:用於指定可以同時訪問資料庫的最大例程個數
MAXDATAFILES:用於指定oracle資料庫的最大資料檔案個數
MAXLOGFILES:用於指定oracle資料庫的最大日誌組個數
MAXLOGMEMBERS:用於指定每個日誌組的最大日誌成員個數.
MAXLOGHISTORY:用於指定控制檔案可記載日誌歷史的最大個數.
使用RMAN執行備份操作時,RMAN備份資訊會被記載到控制檔案中.初始化引數control_file_record_keep_time指定了RMAN備份資訊在控制檔案中的保留時間,預設值為7.
多元化控制檔案
使用PFILE多元化控制檔案
如果在啟動例程時使用了pfile,在多元化控制檔案時需要手工編輯文字引數檔案,並修改初始化引數control_files.具體步驟如下:
1,手工修改初始化引數control_files
Control_files=d:democontrol01.ctl,e:democontrol02.ctl
此時e:democontrol02.ctl檔案還不存在.
2,關閉資料庫,
3,複製控制檔案
4,啟動資料庫.
因為例程使用PFILE,所以啟動時應該指定PFILE全名
STARTUP PFILE=%oracle_home%databaseinitdemo.ora
使用spfile多元化控制檔案
如果啟動例程使用spfile,在多元化控制檔案時需要執行ALTER SYSTEM命令修改初始化引數control_files
1,修改初始化引數
C:sqlplus sys/oracle@demo as sysdba
Sql>ALTER SYSTEM SET control_files=
2 ‘d:democontrol01.ctl’,’e:democontrol02.ctl’
3 SCOPE=SPFILE;
此時e:democontrol02.ctl還不存在.
2,關閉資料庫,
3,複製控制檔案
4,啟動資料庫.
處理意外丟失的控制檔案
多元化控制檔案以後,如果某個控制檔案丟失或損壞,資料庫將無法裝載,在啟動例程並裝載資料庫時,會報告如下錯誤;
ORA-00205:error in identifying controlfile,check alert log for more info
出現如上錯誤時,應修改初始化引數control_files,去掉損壞或丟失的控制檔案,然後重新啟動資料庫.
重建控制檔案.
以建立demo資料庫的控制檔案為例,說明重新建立控制檔案的方法
1,修改初始化引數CONTROL_FILES,改變控制檔案的位置.
如果控制檔案所在的磁碟出現損壞,那麼必須使用ALTER SYSTEM命令改變控制檔案的存放位置.當例程處於NOMOUNT狀態時,執行以下命令可以改變控制檔案位置.
Alter system set control_files=’c:democontrol01.ctl’,’d:democontrol02.ctl’ scope=spfile;
2,關閉例程
3.啟動例程(startup nomunt)
建立控制檔案時,要求例程必須處於NOMOUNT狀態.正確地設定了初始化引數CONTROL_FILES後,玉女國國重新啟動例程,並應檢查初始化引數CONTROL_FILES的設定是否正確.
Startup nomount
Select value FROM v$parameter where name=’control_files’;
4,建立控制檔案.
CREATE CONTROLFILE DATABASE demo NORESETLOGS
LOGFILE
GROUP 1 ‘D:DEMOREDO01.LOG’ SIZE 10M,
GROUP 2 ‘D:DEMOREDO02.LOG’ SIZE 10M
DATAFILE
‘D:DEMOSYSTEM01.DBF’,
‘D:DEMOUNDOTBS01.DBF’,
‘D:DEMOSYSAUX01.DBF’
CHARACTER SET ZHS16GBK;
其中,DATABASE用於指定資料庫名,該名稱必須和初始化引數db_name完全一致;
NORESETLOGS用於指定仍然使用原有重做日誌,如果不希望使用原有重做日誌,可以指定RESETLOGS選項;
LOGFILE用於指定資料庫原有重做日誌大組號,尺寸已經對應的日誌成員;
DATAFILE用於指定資料庫原有的資料檔案
CHAARACETR SET 用於指定資料庫字符集.
5,開啟資料庫
Alter database open;
如果建立控制檔案時指定了RESETLOGS選項,那麼在開啟資料庫時必須帶有該選項(格式為ALTER DATABASE OPEN RESETLOGS).
6,增加臨時檔案.
開啟資料庫後,客戶應用可以執行各種資料庫訪問操作,如果執行排序操作,可能會顯示錯誤資訊.為了順利執行排序操作,必須重新建立臨時檔案.
Alter tablespace temp add tempfile ‘d:demotemp.dbf’ size 10485760
Reuse autoextend off;
修改永久引數
當某個DBA執行CREATE DATABASE ADD LOGFILE MEMBER為某日誌組增加日誌成員時,oracle顯示如下錯誤資訊:
ALTER DATABASE ADD LOGFILE MEMBER
*
ERROR at line 1:
ORA-00357:too many members specified for log file,the maximum is 2
出現如上錯誤時,表示日誌組成員個數超出了永久引數MAXLOGMEMBERS的設定.
在這種情況下,為了給日誌組增加多個日誌成員,必須修改永久引數MAXLOGMEMBERS.
然後才可以增加多個日誌成員.下面以限制DEMO資料庫最多10個日誌組,每個日誌組最多4個日誌成員為例,說明修改永久引數的方法.
1,啟動例程 STARTUP NOMOUNT
2,建立控制檔案.
建立控制檔案時必須提供正確的資料檔案和重做日誌清單.因為原有控制檔案仍然存在,所有必須指定REUSE選項覆蓋控制檔案.
CREATE CONTROLFILE REUSE DATABASE “DEMO” NORESETLOGS
MAXLOGFILES 10
MAXLOGMEMBERS 4
LOGFILE
GROUP 1 ‘D:DEMOREDO01.LOG’ SIZE 10M,
GROUP 2 ‘D:DEMOREDO02.LOG’ SIZE 10M
DATAFILE
‘D:DEMOSYSTEM01.DBF’,
‘D:DEMOUNDOTBS01.DBF’,
‘D:DEMOSYSAUX01.DBF’
CHARACTER SET ZHS16GBK;
3.開啟資料庫
Alter database open;
如果建立控制檔案時指定了RESETLOGS選項,那麼在開啟資料庫時必須帶有該選項(格式為ALTER DATABASE OPEN RESETLOGS).
4增加臨時檔案.
開啟資料庫後,客戶應用可以執行各種資料庫訪問操作,如果執行排序操作,可能會顯示錯誤資訊.為了順利執行排序操作,必須重新建立臨時檔案.
Alter tablespace temp add tempfile ‘d:demotemp.dbf’ size 10485760
Reuse autoextend off;
修改資料庫名稱
使用CREATE CONTROLFILE命令衝擊建立控制檔案.
使用工具DBNEWID改變資料庫名.
下面以DEMO資料庫名稱修改為EXAMPLE為例,說明透過建立控制檔案修改資料庫名稱的方法.
1,初始化引數DB_NAME
因為oracle資料庫名稱是透過初始化引數db_name來標識的,所有在建立控制檔案之前,必須正確的設定該引數.需要注意,因為初始化引數DB_NAME不能使用ALTER SYSTEM命令進行修改,所以必須建立PFILE,然後修改引數DB_NAME.最後使用該PFILE重新建立SPFILE
建立PFILE檔案:SQL>CREATE PFILE FROM SPFILE;
編輯PFILE檔案initdemo.ora,修改引數DB_NAME:db_name=example
建立臨時的SPFILE檔案.
因為當前例程使用的SPFILE檔案不能覆蓋,所有執行CREATE SPFILE是應該指定一個臨時的SPFILE檔案.示例如下:
CREATE SPFILE=’ORACLE_HOME%databasespfiletemp.ora’ from
PFILE=’%ORACLE_HOME%databaseinitdemo.ora’;
2,關閉oracle資料庫.
關閉oracle資料庫後,為了使用新的spfile檔案,應該使用OS命令刪除原來的SPFILE檔案,然後將臨時spfile檔案修改為spfiledemo.ora
3,啟動例程.
建立控制檔案必須在nomount狀態下進行,所以必須啟動例程.啟動例程後還應該初始化引數DB_NAME設定是否正確
STARTUP NOMOUNT
SELECT value FROM v$parameter WHERE name=’db_name’;
4,建立控制檔案.
因為要修改資料庫名稱,所有建立控制檔案時必須指定SET DATABASE選項和RESETLOGS選項.因為原有控制檔案仍然存在,所有必須指定REUSE選項覆蓋控制檔案
CREATE CONTROLFILE REUSE SET DATABASE “EXAMPLE” RESETLOGS
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 454
LOGFILE
GROUP 1 ‘D:DEMOREDO01.LOG’ SIZE 10M,
GROUP 2 ‘D:DEMOREDO02.LOG’ SIZE 10M
DATAFILE
‘D:DEMOSYSTEM01.DBF’,
‘D:DEMOUNDOTBS01.DBF’,
‘D:DEMOSYSAUX01.DBF’
CHARACTER SET ZHS16GBK;
5,開啟資料庫
Alter database open;
如果建立控制檔案時指定了RESETLOGS選項,那麼在開啟資料庫時必須帶有該選項(格式為ALTER DATABASE OPEN RESETLOGS).
6,增加臨時檔案.
開啟資料庫後,客戶應用可以執行各種資料庫訪問操作,如果執行排序操作,可能會顯示錯誤資訊.為了順利執行排序操作,必須重新建立臨時檔案.
Alter tablespace temp add tempfile ‘d:demotemp.dbf’ size 10485760
Reuse autoextend off;
刪除控制檔案
使用ALTER SYSTEM命令修改初始化引數
Alter system set control_files=’d:democontrol01.ctl’ scope=spfile;然後重新啟動資料庫
檢視控制檔案的資訊
1,顯示控制檔名稱.
Select * from v$controlfile;
2, 顯示初始化引數control_files
Select value from v$parameter where name=’control_files’;
3,獲得控制檔案不同部分的資訊.
Col type format a20
Select type,record_size,records_total,records_used from v$controlfile_record_section;
其中,type用於標識特定記錄型別,record_size用於標識每條記錄所佔用的位元組數,
RECORDS_TOTAL用於標識記錄的最大條數,RECORDS_USED用於標識已佔用記錄條數.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/312079/viewspace-245220/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 檔案管理I/O筆記筆記
- ORACLE控制檔案管理Oracle
- 筆記:Linux命令(目錄和檔案管理)筆記Linux
- 控制檔案 線上日誌 回滾表空間 筆記筆記
- Object C學習筆記25-檔案管理(一)Object筆記
- Object C學習筆記26-檔案管理(二)Object筆記
- 【控制檔案】映象控制檔案
- 《專案管理》-筆記1專案管理筆記
- 《專案管理》-筆記2專案管理筆記
- CentOS學習筆記 – 6. docker安裝CentOS筆記Docker
- 字幕檔案srt筆記筆記
- 9.管理表空間和資料檔案(筆記)筆記
- [BI專案記]-文件版本管理筆記筆記
- 信管筆記 -- 專案管理過程筆記專案管理
- 信管筆記 -- 專案整體管理筆記
- 信管筆記 -- 專案範圍管理筆記
- 專案管理--PMBOK 讀書筆記(4)【專案整合管理】專案管理筆記
- 控制檔案
- 8.管理歸檔日誌(筆記)筆記
- python file 檔案操作筆記Python筆記
- django下載csv檔案筆記Django筆記
- c++筆記_標頭檔案C++筆記
- JSP筆記-檔案上傳JS筆記
- 檔案切割以及合併筆記筆記
- Java學習筆記之檔案Java筆記
- 11,檔案測試(perl筆記)筆記
- 專案管理學習筆記五:專案整體管理薦專案管理筆記
- Linux 學習筆記--使用者及檔案許可權管理Linux筆記
- RHCE7認證學習筆記6——管理檔案和目錄筆記
- RHCE7認證學習筆記21——使用ACLs控制檔案許可權筆記
- minjun信管筆記 -- 專案管理過程筆記專案管理
- minjun信管筆記 -- 專案整體管理筆記
- minjun信管筆記 -- 專案範圍管理筆記
- ORA-01672: 控制檔案可能缺少檔案或具有額外檔案-記錄
- 【學習日記】oracle之表空間、資料檔案、控制檔案Oracle
- Oracle 控制檔案Oracle
- 重建控制檔案
- 控制檔案概述