[Oracle學習筆記] 控制檔案管理:建立控制檔案

來源:互聯網
上載者:User

 控制檔案是一個二進位檔案,在資料庫建立時自動建立,用於記錄資料庫名稱、建立時間、資料表空間名、資料檔案和記錄檔位置等等。控制檔案對於資料庫非常重要,一旦受損,那麼資料庫將無法正常工作。

一、建立控制檔案

因為某些原因可能需要重建控制檔案,例如,控制檔案中的參數設定不合理等等,建立控制檔案的文法:

CREATE CONTROLFILE

REUSE DATABASE "database_name"

[NORESETLOGS | RESETLOGS]  //不清空日誌,清空日誌

[NOARCHIVELOG] //非歸檔

MAXLOGFILES integer //最大記錄檔個數

MAXLOGMEMBERS integer //日誌組中最大成員人數

MAXDATAFILES integer //最大資料檔案個數

MAXINSTANCES integer //最大執行個體個數

MAXLOGHISTORY integer //最大歷史記錄檔個數

LOGFILE

GROUP group_number log_file_name [SIZE size] [, GROUP group_number log_file_name [SIZE size] [,...]]

DATAFILE datafile_name [, ... ];

 

建立控制檔案,需要事先查詢資料記錄檔和資料檔案資訊

1. 查詢記錄檔 V$LOGFILE, V$LOG

樣本:

SQL> select group#, member from v$logfile;

    GROUP# MEMBER
---------- ----------------------------------
         1 D:\ORACLE\TEST\REDO01.LOG
         3 D:\ORACLE\TEST\REDO03.LOG
         2 D:\ORACLE\TEST\REDO02.LOG

 

查詢記錄檔大小:日誌組#1, #2, #3大小為50M,組內每個記錄檔大小與組大小相等。

SQL> select group#, bytes/1024/1024 from v$log;

    GROUP# BYTES/1024/1024
---------- ---------------
         1              50
         3              50
         2              50

2. 查詢資料檔案 V$DATAFILE

SQL> select name from v$datafile;

NAME
--------------------------------------

D:\ORACLE\TEST\SYSTEM01.DBF
D:\ORACLE\TEST\UNDOTBS01.DBF
D:\ORACLE\TEST\SYSAUX01.DBF
D:\ORACLE\TEST\USERS01.DBF
F:\UNTOTBS01.DBF

查詢當前使用的控制檔案,參數control_files記錄當前控制檔案位置(多工,三個檔案為同一個檔案,放在不同的地方)

SQL> show parameter control_files

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
control_files                        string      D:\ORACLE\TEST\CONTROL01.CTL,
                                                       D:\ORACLE\TEST\CONTROL02.CTL,
                                                       D:\ORACLE\TEST\CONTROL03.CTL

 

3. 關閉資料庫

4. 備份資料檔案和記錄檔,以免建立控制檔案出錯導致資料檔案和記錄檔受損,直接複製資料檔案和記錄檔到其他位置

5. 啟動資料庫執行個體 STARTUP NOMOUNT

SQL> shutdown immediate;
資料庫已經關閉。
已經卸載資料庫。
ORACLE 常式已經關閉。
SQL> startup nomount;
ORACLE 常式已經啟動。

Total System Global Area  612368384 bytes
Fixed Size                  1250428 bytes
Variable Size             239078276 bytes
Database Buffers          364904448 bytes
Redo Buffers                7135232 bytes

 6. 建立新的控制檔案

SQL> CREATE CONTROLFILE
  2  REUSE DATABASE "test"
  3  NORESETLOGS
  4  NOARCHIVELOG
  5  MAXLOGFILES 50
  6  MAXLOGMEMBERS 3
  7  MAXDATAFILES 50
  8  MAXINSTANCES 5
  9  MAXLOGHISTORY 500
 10  LOGFILE
 11  GROUP 1 'D:\ORACLE\TEST\REDO01.LOG' size 50M,
 12  GROUP 2 'D:\ORACLE\TEST\REDO02.LOG' size 50M,
 13  GROUP 3 'D:\ORACLE\TEST\REDO03.LOG' size 50M
 14  DATAFILE
 15  'D:\ORACLE\TEST\SYSTEM01.DBF',
 16  'D:\ORACLE\TEST\UNDOTBS01.DBF',
 17  'D:\ORACLE\TEST\SYSAUX01.DBF',
 18  'D:\ORACLE\TEST\USERS01.DBF',
 19  'F:\UNTOTBS01.DBF'
 20  ;

控制檔案已建立。

查詢控制檔案:

SQL> select name from v$controlfile;

NAME
-----------------------------------------

D:\ORACLE\TEST\CONTROL01.CTL
D:\ORACLE\TEST\CONTROL02.CTL
D:\ORACLE\TEST\CONTROL03.CTL

這裡控制檔案與之前舊的控制檔案位置相同,建立的控制檔案覆蓋了已有的控制檔案。如果需要在其他地方建立新的控制檔案,在這一步之前修改參數CONTROL_FILES的值,如從D盤改到E盤

SQL> alter system set control_files=
  2  'E:\ORACLE\TEST\CONTROL01.CTL',
  3  'E:\ORACLE\TEST\CONTROL02.CTL',
  4  'E:\ORACLE\TEST\CONTROL03.CTL'
  5  scope=spfile;

系統已更改。

重啟資料庫:shutdown immediate; startup nomount;

然後執行上述指令碼,建立新的控制檔案

再此查詢控制檔案參數,控制檔案路徑發生了變化,同時在新的路徑下產生了3個控制檔案。

SQL> select name from v$controlfile;

NAME
----------------------------------------------------

E:\ORACLE\TEST\CONTROL01.CTL
E:\ORACLE\TEST\CONTROL02.CTL
E:\ORACLE\TEST\CONTROL03.CTL

7. 開啟資料庫

SQL> alter database open;

資料庫已更改。

如果建立控制檔案使用RESETLOGS選項,則開啟資料庫用:alter database open resetlogs

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.