版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第第6章章 控制文件和日志文件的管理控制文件和日志文件的管理本章概述本章概述 本章的學(xué)習(xí)目的本章的學(xué)習(xí)目的主要內(nèi)容主要內(nèi)容本章概述本章概述 Oracle數(shù)據(jù)庫包含的文件類型有三種數(shù)據(jù)庫包含的文件類型有三種數(shù)據(jù)文件、數(shù)據(jù)文件、控制文件和重做日志文件。數(shù)據(jù)文件主要存儲數(shù)據(jù)庫中的控制文件和重做日志文件。數(shù)據(jù)文件主要存儲數(shù)據(jù)庫中的數(shù)據(jù),包括各種數(shù)據(jù)庫對象和數(shù)據(jù)??刂莆募娣艛?shù)據(jù)庫數(shù)據(jù),包括各種數(shù)據(jù)庫對象和數(shù)據(jù)。控制文件存放數(shù)據(jù)庫的構(gòu)造信息。重做日志文件存放用戶執(zhí)行數(shù)據(jù)庫定義和數(shù)的構(gòu)造信息。重做日志文件存放用戶執(zhí)行數(shù)據(jù)庫定義和數(shù)據(jù)庫支配言語命令的記錄。保證控制文件和重做日志文件據(jù)庫支配言語命令的記錄。保
2、證控制文件和重做日志文件的可用性和可靠性是確保的可用性和可靠性是確保Oracle數(shù)據(jù)庫正??煽窟\轉(zhuǎn)的前數(shù)據(jù)庫正常可靠運轉(zhuǎn)的前提。提。 在第在第5章主要引見了數(shù)據(jù)文件的相關(guān)知識點,本章重章主要引見了數(shù)據(jù)文件的相關(guān)知識點,本章重點引見控制文件和日志文件的管理和維護。點引見控制文件和日志文件的管理和維護。本章的學(xué)習(xí)目的:本章的學(xué)習(xí)目的:了解控制文件的作用了解控制文件的作用了解控制文件的內(nèi)容了解控制文件的內(nèi)容掌握如何控制文件,包括創(chuàng)建、刪除和查看等操作掌握如何控制文件,包括創(chuàng)建、刪除和查看等操作了解日志文件的作用了解日志文件的作用掌握如何對日志文件進展管理,包括創(chuàng)建、查看、切換、刪掌握如何對日志文件進
3、展管理,包括創(chuàng)建、查看、切換、刪除等操作除等操作了解歸檔的概念了解歸檔的概念切換數(shù)據(jù)庫到歸檔方式切換數(shù)據(jù)庫到歸檔方式設(shè)置歸檔參數(shù)設(shè)置歸檔參數(shù)主要內(nèi)容主要內(nèi)容6.1 控制文件管理控制文件管理6.2 重做日志管理重做日志管理6.3 歸檔日志管理歸檔日志管理6.4 小結(jié)小結(jié) 6.5 習(xí)題習(xí)題6.1 控制文件管理控制文件管理 控制文件是控制文件是Oracle數(shù)據(jù)庫中最重要的物理文件,每個數(shù)據(jù)庫中最重要的物理文件,每個Oracles數(shù)據(jù)庫都必需有一個控制文件,一個控制文件只屬于數(shù)據(jù)庫都必需有一個控制文件,一個控制文件只屬于一個數(shù)據(jù)庫。在啟動數(shù)據(jù)庫實例時,一個數(shù)據(jù)庫。在啟動數(shù)據(jù)庫實例時,Oracle會根據(jù)
4、初始化參會根據(jù)初始化參數(shù)定位控制文件;然后數(shù)定位控制文件;然后Oracle會根據(jù)控制文件在實例和數(shù)據(jù)會根據(jù)控制文件在實例和數(shù)據(jù)庫直接建立關(guān)聯(lián)。假設(shè)控制文件被損壞,那么會呵斥整個庫直接建立關(guān)聯(lián)。假設(shè)控制文件被損壞,那么會呵斥整個Oracle數(shù)據(jù)庫無法啟動。本節(jié)重點引見控制文件的管理。數(shù)據(jù)庫無法啟動。本節(jié)重點引見控制文件的管理。6.1.1 控制文件概述控制文件概述 控制文件是一個很小的二進制文件,它包含了數(shù)據(jù)控制文件是一個很小的二進制文件,它包含了數(shù)據(jù)庫的構(gòu)造信息即構(gòu)成數(shù)據(jù)庫的數(shù)據(jù)文件和日志文件。庫的構(gòu)造信息即構(gòu)成數(shù)據(jù)庫的數(shù)據(jù)文件和日志文件。在創(chuàng)建數(shù)據(jù)庫時會創(chuàng)建控制文件,在數(shù)據(jù)庫發(fā)生改動時在創(chuàng)建數(shù)
5、據(jù)庫時會創(chuàng)建控制文件,在數(shù)據(jù)庫發(fā)生改動時會自動修正控制文件,以記錄當(dāng)前數(shù)據(jù)庫的形狀。會自動修正控制文件,以記錄當(dāng)前數(shù)據(jù)庫的形狀。控制文件主要包含以下信息:控制文件主要包含以下信息: 數(shù)據(jù)庫稱號。數(shù)據(jù)庫稱號。 數(shù)據(jù)文件和重做日志文件的位置和稱號。數(shù)據(jù)文件和重做日志文件的位置和稱號。 數(shù)據(jù)庫創(chuàng)建的時間戳。數(shù)據(jù)庫創(chuàng)建的時間戳。 當(dāng)前日志序列號。當(dāng)前日志序列號。 檢查點信息。檢查點信息。 表空間稱號。表空間稱號。 備份和恢復(fù)信息。備份和恢復(fù)信息。 Oracle數(shù)據(jù)庫的控制文件是在數(shù)據(jù)庫創(chuàng)建的同時創(chuàng)建的。數(shù)據(jù)庫的控制文件是在數(shù)據(jù)庫創(chuàng)建的同時創(chuàng)建的。默許情況下,在數(shù)據(jù)庫創(chuàng)建期間至少有一個控制文件副本。默許
6、情況下,在數(shù)據(jù)庫創(chuàng)建期間至少有一個控制文件副本。 總之,控制文件用來描畫總之,控制文件用來描畫Oracle實體構(gòu)造,在啟動實體構(gòu)造,在啟動Oracle數(shù)據(jù)庫時讀取控制文件才干獲得一切數(shù)據(jù)庫文件的相數(shù)據(jù)庫時讀取控制文件才干獲得一切數(shù)據(jù)庫文件的相關(guān)信息。一旦控制文件被損壞,數(shù)據(jù)庫就無法順利啟動。可關(guān)信息。一旦控制文件被損壞,數(shù)據(jù)庫就無法順利啟動??梢?,控制文件的管理與維護任務(wù)非常重要且必不可少。見,控制文件的管理與維護任務(wù)非常重要且必不可少。6.1.2 創(chuàng)建控制文件創(chuàng)建控制文件 控制文件是在創(chuàng)建數(shù)據(jù)庫時自動創(chuàng)建的,在數(shù)據(jù)庫效力控制文件是在創(chuàng)建數(shù)據(jù)庫時自動創(chuàng)建的,在數(shù)據(jù)庫效力器運轉(zhuǎn)的過程中,重新創(chuàng)建
7、控制文件的時機普通不是很多。器運轉(zhuǎn)的過程中,重新創(chuàng)建控制文件的時機普通不是很多。需求重新創(chuàng)建控制文件的時機有以下幾種情況:需求重新創(chuàng)建控制文件的時機有以下幾種情況: 控制文件全部損壞,而且沒有可用的備份??刂莆募繐p壞,而且沒有可用的備份。 修正某些永久性參數(shù),如:修正某些永久性參數(shù),如:MAXLOGFILES、 MAXLOGMEMBERS、MAXLOGHISTORY、MAXINSTANCES等。等。 修正數(shù)據(jù)庫稱號。修正數(shù)據(jù)庫稱號。創(chuàng)建控制文件的命令是創(chuàng)建控制文件的命令是CREATE CONTROLFILE。普。普通創(chuàng)建控制文件的義務(wù)由通創(chuàng)建控制文件的義務(wù)由SYS用戶完成,假設(shè)以普通用戶完
8、成,假設(shè)以普通用戶的身份創(chuàng)建控制文件,那么需求有用戶的身份創(chuàng)建控制文件,那么需求有SYSDBA權(quán)限。權(quán)限。創(chuàng)建控制文件的語法格式及部分語法闡明注釋如下:創(chuàng)建控制文件的語法格式及部分語法闡明注釋如下: CREATE CONTROLFILE REUSE DATABASE database_name NORESETLOGS| RESETLOGS NOARCHIVELOG| ARCHIVELOG MAXLOGFILES /最大日志文件大小最大日志文件大小MAXLOGMENBERS /日志文件組的成員數(shù)日志文件組的成員數(shù)MAXINSTANCES /最大實例個數(shù)最大實例個數(shù)MAXLOGHISTORY /最
9、大歷史日志文件個數(shù)最大歷史日志文件個數(shù)LOGFILE GROUP 1 logfile_name 1 SIZE size, GROUP n logfile_name n1 SIZE size DATAFILE datafile_name 1, datafile_name n CHARACTER SET WE8DEC /指定字符集指定字符集 其中,其中,NORESETLOGS| RESETLOGS代表能否重代表能否重做日志或重命名數(shù)據(jù)庫,做日志或重命名數(shù)據(jù)庫,NOARCHIVELOG|ARCHIVELOG代表歸檔形狀。代表歸檔形狀。LOGFILE子句制定了日志文件稱號和位置,子句制定了日志文件稱號
10、和位置,DATAFILE指定了數(shù)據(jù)文件的稱號和位置大小。指定了數(shù)據(jù)文件的稱號和位置大小。 創(chuàng)建控制文件必需嚴厲遵照創(chuàng)建的步驟,下面以例創(chuàng)建控制文件必需嚴厲遵照創(chuàng)建的步驟,下面以例如闡明。如闡明。【例【例6-1】創(chuàng)建一控制文件?!縿?chuàng)建一控制文件。 (1)獲取數(shù)據(jù)庫的數(shù)據(jù)文件和重做日志文件列表。獲取數(shù)據(jù)庫的數(shù)據(jù)文件和重做日志文件列表。 當(dāng)控制文件沒有損壞,那么可以從控制文件中直接當(dāng)控制文件沒有損壞,那么可以從控制文件中直接獲取。假設(shè)控制文件損壞了,可以從系統(tǒng)視圖獲取。假設(shè)控制文件損壞了,可以從系統(tǒng)視圖V$DATAFILE和和V$LOGFILE中獲取數(shù)據(jù)文件和重做日志中獲取數(shù)據(jù)文件和重做日志文件的信
11、息。前面的途徑要求數(shù)據(jù)庫可以正常啟動,假設(shè)文件的信息。前面的途徑要求數(shù)據(jù)庫可以正常啟動,假設(shè)數(shù)據(jù)庫不能正常啟動,那么此時可以根據(jù)查看警告文件中數(shù)據(jù)庫不能正常啟動,那么此時可以根據(jù)查看警告文件中的內(nèi)容來找緣由。假設(shè)數(shù)據(jù)庫可以啟動,可以經(jīng)過執(zhí)行下的內(nèi)容來找緣由。假設(shè)數(shù)據(jù)庫可以啟動,可以經(jīng)過執(zhí)行下面的查詢來生成文件列表。面的查詢來生成文件列表。 從視圖從視圖V$DATAFILE中獲取數(shù)據(jù)文件的信息,代碼中獲取數(shù)據(jù)文件的信息,代碼如下:如下:SQL SELECT NAME FROM V$DATAFILE; 從視圖從視圖V$LOGFILE中獲取日志文件的信息,代碼如中獲取日志文件的信息,代碼如下:下:S
12、QL SELECT MEMBER FROM V$LOGFILE;執(zhí)行結(jié)果如圖執(zhí)行結(jié)果如圖6-1。圖圖6-1 查詢查詢datafile和和logfile(2)封鎖數(shù)據(jù)庫。封鎖數(shù)據(jù)庫。在創(chuàng)建控制文件之前要封鎖數(shù)據(jù)庫,普通采用正常方式在創(chuàng)建控制文件之前要封鎖數(shù)據(jù)庫,普通采用正常方式封鎖封鎖(SHUTDOWN IMMEDIAE),可以減少數(shù)據(jù)庫重新啟,可以減少數(shù)據(jù)庫重新啟動過程中能夠出現(xiàn)的問題。為保證數(shù)據(jù)庫的平安,在封鎖動過程中能夠出現(xiàn)的問題。為保證數(shù)據(jù)庫的平安,在封鎖數(shù)據(jù)庫后,應(yīng)該把數(shù)據(jù)庫的日志文件、數(shù)據(jù)文件、參數(shù)文數(shù)據(jù)庫后,應(yīng)該把數(shù)據(jù)庫的日志文件、數(shù)據(jù)文件、參數(shù)文件的等備份到其他磁盤上。件的等備份
13、到其他磁盤上。(3)備份一切的數(shù)據(jù)文件和重做日志文件。備份一切的數(shù)據(jù)文件和重做日志文件。(4)運用運用STARTUP NOMOUNT啟動數(shù)據(jù)庫實例。執(zhí)行結(jié)啟動數(shù)據(jù)庫實例。執(zhí)行結(jié)果如圖果如圖6-2。圖圖6-2 啟動啟動NOMOUNT實例實例 (5)運用運用CREATE CONTROLFILE語句創(chuàng)建控制文件。語句創(chuàng)建控制文件。假設(shè)需求重命名數(shù)據(jù)庫,那么運用假設(shè)需求重命名數(shù)據(jù)庫,那么運用RESETLOGS子句,否那子句,否那么運用么運用NORESETLOGS子句。執(zhí)行結(jié)果如圖子句。執(zhí)行結(jié)果如圖6-3。圖圖6-3 創(chuàng)建控制文件創(chuàng)建控制文件(6)將新的控制文件備份到其他不在線的存儲介質(zhì)中,如將新的控制
14、文件備份到其他不在線的存儲介質(zhì)中,如U盤、挪動硬盤或磁帶等。盤、挪動硬盤或磁帶等。 (7)修正修正CONTROL_FILE參數(shù),使其指向新建的控制參數(shù),使其指向新建的控制文件;假設(shè)修正了數(shù)據(jù)庫稱號,那么還需求修正文件;假設(shè)修正了數(shù)據(jù)庫稱號,那么還需求修正DB_NAME參數(shù)。參數(shù)。SQL ALTER SYSTEM SET CONTROL_FILES=2 G:appAdministrtororadataorclCONTROL01.CTL,3 G:appAdministrtororadataorclCONTROL02.CTL,4 G:appAdministrtororadataorclCONTROL
15、03.CTL5 SCOPE=SPFILE;系統(tǒng)已更改。系統(tǒng)已更改。 (8)假設(shè)需求的話,那么恢復(fù)數(shù)據(jù)庫。假設(shè)需求的話,那么恢復(fù)數(shù)據(jù)庫。 (9)假設(shè)在第假設(shè)在第8步中進展了恢復(fù)數(shù)據(jù)庫的操作,那么需步中進展了恢復(fù)數(shù)據(jù)庫的操作,那么需求執(zhí)行求執(zhí)行ALTER DATABASE OPEN語句翻開數(shù)據(jù)庫。語句翻開數(shù)據(jù)庫。SQL ALTER DATABASE OPEN; 假設(shè)在創(chuàng)建控制文件時運用了假設(shè)在創(chuàng)建控制文件時運用了RESETLOGS子句,那子句,那么需求運用么需求運用ALTER DATABASE OPEN RESETLOGS語句。語句。SQL ALTER DATABASE OPEN RESETLOG
16、S; 新的控制文件曾經(jīng)創(chuàng)建勝利,并且數(shù)據(jù)庫曾經(jīng)被新新的控制文件曾經(jīng)創(chuàng)建勝利,并且數(shù)據(jù)庫曾經(jīng)被新創(chuàng)建的控制文件翻開。創(chuàng)建的控制文件翻開。6.1.3 控制文件備份和恢復(fù)控制文件備份和恢復(fù) 由于控制文件本身具有特殊的重要性,為了提高數(shù)據(jù)庫的由于控制文件本身具有特殊的重要性,為了提高數(shù)據(jù)庫的可靠性,可靠性,DBA要經(jīng)常對控制文件進展備份,尤其是修正了數(shù)要經(jīng)常對控制文件進展備份,尤其是修正了數(shù)據(jù)庫構(gòu)造之后,需求立刻對控制文件進展備份。據(jù)庫構(gòu)造之后,需求立刻對控制文件進展備份。 備份控制文件的方法有兩種:在操作系統(tǒng)下進展和在數(shù)備份控制文件的方法有兩種:在操作系統(tǒng)下進展和在數(shù)據(jù)庫中進展。假設(shè)是在操作系統(tǒng)下備
17、份,需求先停頓數(shù)據(jù)據(jù)庫中進展。假設(shè)是在操作系統(tǒng)下備份,需求先停頓數(shù)據(jù)庫效力器的運轉(zhuǎn),然后將控制文件復(fù)制到備份設(shè)備上,最庫效力器的運轉(zhuǎn),然后將控制文件復(fù)制到備份設(shè)備上,最后重新啟動數(shù)據(jù)庫效力器。用該方法備份時,數(shù)據(jù)庫效力后重新啟動數(shù)據(jù)庫效力器。用該方法備份時,數(shù)據(jù)庫效力器暫時停頓的這段時間內(nèi)用戶無法訪問數(shù)據(jù)庫。假設(shè)運用器暫時停頓的這段時間內(nèi)用戶無法訪問數(shù)據(jù)庫。假設(shè)運用數(shù)據(jù)庫備份控制文件,那么不需求封鎖數(shù)據(jù)庫效力器。可數(shù)據(jù)庫備份控制文件,那么不需求封鎖數(shù)據(jù)庫效力器。可以將控制文件備份為一個二進制文件,也可以在跟蹤文件以將控制文件備份為一個二進制文件,也可以在跟蹤文件中生成一條中生成一條SQL語句。
18、語句?!纠纠?-2】備份控制文件,運用如下語句可以把控制文件】備份控制文件,運用如下語句可以把控制文件備份為一個二進制文件,即復(fù)制當(dāng)前的控制文件:備份為一個二進制文件,即復(fù)制當(dāng)前的控制文件:SQL ALTER DATABASE BACKUP CONTROLFILE TO 2 G:ORACLE_BACKUPBACKUP_CONTROLFILECONTROL_12-2-5;數(shù)據(jù)庫已更改。數(shù)據(jù)庫已更改。運用下面語句可以講控制文件備份為可讀的文本文運用下面語句可以講控制文件備份為可讀的文本文件:件:SQL ALTER DATABASE BACKUP CONTROLFILE TO TRACE;數(shù)據(jù)庫已
19、更改。數(shù)據(jù)庫已更改。需求留意的是,將控制文件以文本方式備份時,需求留意的是,將控制文件以文本方式備份時,所創(chuàng)建的文件也為跟蹤文件,該文件實踐上是一個所創(chuàng)建的文件也為跟蹤文件,該文件實踐上是一個SQL腳本,可以利用它來重新創(chuàng)建新的控制文件。跟腳本,可以利用它來重新創(chuàng)建新的控制文件。跟蹤文件的存放位置由參數(shù)蹤文件的存放位置由參數(shù)USER_DUMP_DEST決議。決議。經(jīng)過下面的代碼可以查看,執(zhí)行結(jié)果如圖經(jīng)過下面的代碼可以查看,執(zhí)行結(jié)果如圖6-4。SQLSHOW PARAMETER USER_DUMP_DEST; 圖圖6-4 6-4 查看跟蹤文件查看跟蹤文件 備份任務(wù)完成后,即使發(fā)出了特殊情況,如控
20、備份任務(wù)完成后,即使發(fā)出了特殊情況,如控制文件損壞或喪失時,可以按照下面的方法恢復(fù)控制文制文件損壞或喪失時,可以按照下面的方法恢復(fù)控制文件。件。 假設(shè)控制文件被損壞,但是存儲目錄依然是可訪問的,并假設(shè)控制文件被損壞,但是存儲目錄依然是可訪問的,并且存在控制文件副本,且存在控制文件副本, 那么可以首先封鎖數(shù)據(jù)庫實例,然后那么可以首先封鎖數(shù)據(jù)庫實例,然后運用操作系統(tǒng)命令將控制文件副本復(fù)制到控制文件目錄下,覆運用操作系統(tǒng)命令將控制文件副本復(fù)制到控制文件目錄下,覆蓋被損壞的控制文件,最后重新啟動數(shù)據(jù)庫。蓋被損壞的控制文件,最后重新啟動數(shù)據(jù)庫。SQLSHUTDOWN IMMEDIATE; -運用控制文件
21、副本覆蓋當(dāng)前控制文件運用控制文件副本覆蓋當(dāng)前控制文件 SQLSTARTUP; 控制文件副本的創(chuàng)建方法很簡單,控制文件副本的創(chuàng)建方法很簡單, 首先封鎖數(shù)據(jù)庫,首先封鎖數(shù)據(jù)庫,然后將當(dāng)前的控制文件復(fù)制到其他目錄下,接著修正初始化參然后將當(dāng)前的控制文件復(fù)制到其他目錄下,接著修正初始化參數(shù)數(shù)CONTROL_FILES,添加新的控制文件或者修正原有的控,添加新的控制文件或者修正原有的控制文件,最后啟動數(shù)據(jù)庫即可。制文件,最后啟動數(shù)據(jù)庫即可。 假設(shè)由于永久性介質(zhì)缺點的緣由,不能訪問假設(shè)由于永久性介質(zhì)缺點的緣由,不能訪問CONTROL_FILES參數(shù)指定的某個控制文件,并且有這個控參數(shù)指定的某個控制文件,并
22、且有這個控制文件的副本。那么可首先封鎖數(shù)據(jù)庫實例,然后運用操作制文件的副本。那么可首先封鎖數(shù)據(jù)庫實例,然后運用操作系統(tǒng)命令把當(dāng)前控制文件的副本復(fù)制到一個新的可訪問位置。系統(tǒng)命令把當(dāng)前控制文件的副本復(fù)制到一個新的可訪問位置。接著編輯初始化參數(shù)接著編輯初始化參數(shù)CONTROL_FILES,用新的控制文件的,用新的控制文件的位置交換原來被損壞的位置。最后運用位置交換原來被損壞的位置。最后運用STARTUP命令重新命令重新翻開數(shù)據(jù)庫。翻開數(shù)據(jù)庫。6.1.4 刪除控制文件刪除控制文件 假設(shè)部分控制文件損壞,或者希望減少假設(shè)部分控制文件損壞,或者希望減少控制文件的數(shù)目,就需求刪除無用的控制文控制文件的數(shù)目
23、,就需求刪除無用的控制文件。刪除步驟如下:件。刪除步驟如下: (1)運用運用SHUTDOWN命令封鎖數(shù)據(jù)庫;命令封鎖數(shù)據(jù)庫; (2)編輯初始化參數(shù)編輯初始化參數(shù)CONTROL_FILES,使其中不再包含要刪除的控制文件的稱號;使其中不再包含要刪除的控制文件的稱號; (3)重新啟動數(shù)據(jù)庫。重新啟動數(shù)據(jù)庫。6.1.5 查看控制文件信息查看控制文件信息 在創(chuàng)建數(shù)據(jù)庫的同時控制文件自動被創(chuàng)建,當(dāng)數(shù)據(jù)庫的在創(chuàng)建數(shù)據(jù)庫的同時控制文件自動被創(chuàng)建,當(dāng)數(shù)據(jù)庫的信息發(fā)生改動時,控制文件也隨之被改動;控制文件不能手信息發(fā)生改動時,控制文件也隨之被改動;控制文件不能手動修正,只能由動修正,只能由Oracle數(shù)據(jù)庫本身
24、本人來修正??刂莆募跀?shù)據(jù)庫本身本人來修正??刂莆募跀?shù)據(jù)庫啟動和封鎖時都要運用,數(shù)據(jù)庫啟動和封鎖時都要運用,Oracle提供了包含控制文件提供了包含控制文件信息的數(shù)據(jù)字典視圖和動態(tài)性能視圖。如表信息的數(shù)據(jù)字典視圖和動態(tài)性能視圖。如表6-1所示。所示?!纠纠?-3】查詢控制文件數(shù)據(jù)字典的描畫信息,代碼如下,】查詢控制文件數(shù)據(jù)字典的描畫信息,代碼如下,結(jié)果如圖結(jié)果如圖6-5。SQLdesc v$controlfile圖圖6-5 數(shù)據(jù)字典數(shù)據(jù)字典v$controlfile留意:在數(shù)據(jù)字典前面加上留意:在數(shù)據(jù)字典前面加上v$符號,代表的是當(dāng)前實例的符號,代表的是當(dāng)前實例的動態(tài)視圖。動態(tài)視圖?!纠?/p>
25、例6-4】經(jīng)過查詢視圖】經(jīng)過查詢視圖V$CONTROLFILE_RECORD_SECTION獲取控制文件的獲取控制文件的記錄類型、記錄大小、記錄總數(shù)量和運用記錄數(shù)量等信息,記錄類型、記錄大小、記錄總數(shù)量和運用記錄數(shù)量等信息,結(jié)果如下:結(jié)果如下:SQLSELECT TYPE, RECORD_SIZE, RECORDS_TOTAL, RECORDS_USED 2 FROM V$CONTROLFILE_RECORD_SECTION;圖圖6-6 數(shù)據(jù)字典數(shù)據(jù)字典v$controlfile_RECORD_SECTION6.1.6 運用運用OEM工具管理控制文件工具管理控制文件 啟動啟動OEMOEM,單擊
26、,單擊“效力器效力器| |“控制文件超鏈接,即可顯控制文件超鏈接,即可顯示出當(dāng)前數(shù)據(jù)庫中的控制文件信息,如圖示出當(dāng)前數(shù)據(jù)庫中的控制文件信息,如圖6-76-7所示。所示。圖圖6-7 OEM顯示的控制文件信息顯示的控制文件信息 “普通訊息頁面中,顯示了一切的控制文件信息,包括普通訊息頁面中,顯示了一切的控制文件信息,包括控制文件的稱號與位置。假設(shè)需求查看控制文件中記錄文檔控制文件的稱號與位置。假設(shè)需求查看控制文件中記錄文檔段的信息,那么可進入段的信息,那么可進入“記錄文檔段頁面。假設(shè)單擊記錄文檔段頁面。假設(shè)單擊“備份備份到跟蹤文件按鈕,就可以將控制文件備份到跟蹤文件中。到跟蹤文件按鈕,就可以將控制
27、文件備份到跟蹤文件中。 控制文件是控制文件是Oracle非常重要的文件之一,如何平安地非常重要的文件之一,如何平安地管理這個文件對數(shù)據(jù)庫的日常維護、備份和恢復(fù)都具有重要管理這個文件對數(shù)據(jù)庫的日常維護、備份和恢復(fù)都具有重要意義。意義。6.2 重做日志管理重做日志管理 在在Oracle中,事務(wù)對數(shù)據(jù)庫所作的修正將以重做記錄的中,事務(wù)對數(shù)據(jù)庫所作的修正將以重做記錄的方式保管在重做日志緩存中。當(dāng)事務(wù)提交時,由方式保管在重做日志緩存中。當(dāng)事務(wù)提交時,由LGWR進程進程將緩存中與該事務(wù)相關(guān)的重做記錄全部寫入重做日志文件,將緩存中與該事務(wù)相關(guān)的重做記錄全部寫入重做日志文件,此時該事務(wù)被以為勝利提交。重做日志
28、對數(shù)據(jù)庫恢復(fù)來說是此時該事務(wù)被以為勝利提交。重做日志對數(shù)據(jù)庫恢復(fù)來說是至關(guān)重要的。本節(jié)將重點引見重做日志的根本概念,以及如至關(guān)重要的。本節(jié)將重點引見重做日志的根本概念,以及如何管理重做日志。何管理重做日志。6.2.1 重做日志概述重做日志概述 重做日志文件由重做記錄組成,而每個重做記錄由一重做日志文件由重做記錄組成,而每個重做記錄由一組變化元素組成,變化元素中記錄了數(shù)據(jù)庫中每個單獨的組變化元素組成,變化元素中記錄了數(shù)據(jù)庫中每個單獨的數(shù)據(jù)塊的變化情況。數(shù)據(jù)塊的變化情況。 重做日志文件是由重做記錄組成的,重做記錄由一組重做日志文件是由重做記錄組成的,重做記錄由一組修正向量組成。每個修正向量都記錄了
29、數(shù)據(jù)庫中某個數(shù)據(jù)修正向量組成。每個修正向量都記錄了數(shù)據(jù)庫中某個數(shù)據(jù)塊所做的修正。可以運用重做記錄不僅可以恢復(fù)對數(shù)據(jù)文塊所做的修正??梢赃\用重做記錄不僅可以恢復(fù)對數(shù)據(jù)文件所做的修正操作,還可以恢復(fù)對回滾段所做的修正操作。件所做的修正操作,還可以恢復(fù)對回滾段所做的修正操作。當(dāng)運用重做數(shù)據(jù)恢復(fù)數(shù)據(jù)庫時,數(shù)據(jù)庫將從重做記錄中讀當(dāng)運用重做數(shù)據(jù)恢復(fù)數(shù)據(jù)庫時,數(shù)據(jù)庫將從重做記錄中讀取變化元素,然后將變化運用到相關(guān)的數(shù)據(jù)塊中。取變化元素,然后將變化運用到相關(guān)的數(shù)據(jù)塊中。 在在Oracle中,用戶對數(shù)據(jù)庫所做的修正首先被保管中,用戶對數(shù)據(jù)庫所做的修正首先被保管在內(nèi)存中,這樣可以提高數(shù)據(jù)庫的性能,由于對內(nèi)存中的在
30、內(nèi)存中,這樣可以提高數(shù)據(jù)庫的性能,由于對內(nèi)存中的數(shù)據(jù)進展操作要比對磁盤進展操作快得多。數(shù)據(jù)進展操作要比對磁盤進展操作快得多。Oracle每隔一段每隔一段時間就會啟動時間就會啟動LGWR進程將內(nèi)存中的重做記錄保管到重做進程將內(nèi)存中的重做記錄保管到重做日志文件中。因此,即使發(fā)生缺點導(dǎo)致數(shù)據(jù)庫解體,日志文件中。因此,即使發(fā)生缺點導(dǎo)致數(shù)據(jù)庫解體,Oracle也可以利用重做信息恢復(fù)喪失的數(shù)據(jù)。也可以利用重做信息恢復(fù)喪失的數(shù)據(jù)。 每個每個Oracle數(shù)據(jù)庫至少兩個重做日志文件,數(shù)據(jù)庫至少兩個重做日志文件,Oracle以循以循環(huán)方式運用重做日志文件的。即當(dāng)一個重做日志文件被寫滿環(huán)方式運用重做日志文件的。即當(dāng)
31、一個重做日志文件被寫滿后,后臺進程后,后臺進程LGWR開場寫入下一個重做日志文件;當(dāng)一切開場寫入下一個重做日志文件;當(dāng)一切重做日志文件都寫滿后,重做日志文件都寫滿后,LGWR進程再重新寫入第一個重做進程再重新寫入第一個重做日志文件中。在安裝日志文件中。在安裝Oracle 11g時,默許創(chuàng)建三組重做日志文時,默許創(chuàng)建三組重做日志文件。圖件。圖6-8顯示了重做日志的循環(huán)寫入方式。顯示了重做日志的循環(huán)寫入方式。圖圖6-8 LGWR寫入重做日志的過程寫入重做日志的過程 為了提高數(shù)據(jù)庫的可靠性,為了提高數(shù)據(jù)庫的可靠性,Oracle提供了多路復(fù)用聯(lián)機提供了多路復(fù)用聯(lián)機重做日志文件的功能。也就是說,系統(tǒng)在不
32、同的位置上自動重做日志文件的功能。也就是說,系統(tǒng)在不同的位置上自動維護重做日志的兩個或更多副本。從平安角度出發(fā),這些副維護重做日志的兩個或更多副本。從平安角度出發(fā),這些副本的保管位置應(yīng)該在不同的磁盤上。多路復(fù)用指經(jīng)過創(chuàng)建重本的保管位置應(yīng)該在不同的磁盤上。多路復(fù)用指經(jīng)過創(chuàng)建重做日志組來實現(xiàn),組包括一個重做日志文件和它的多元副本。做日志組來實現(xiàn),組包括一個重做日志文件和它的多元副本。每個重做日志組由數(shù)字來定義,如圖每個重做日志組由數(shù)字來定義,如圖6-9所示。所示。 圖圖6-9 多路復(fù)用重做日志文件多路復(fù)用重做日志文件 圖中,圖中,A、B、C分別屬于不同的組,分別屬于不同的組,A_LOG1和和A_L
33、OG2都是組都是組1的成員。每個日志文件組的成員必需同時的成員。每個日志文件組的成員必需同時處于激活形狀,這樣處于激活形狀,這樣LGWR進程就可以同時寫入這兩個日志進程就可以同時寫入這兩個日志文件。文件。LGWR不會同時寫入不同組的日志文件。假設(shè)不會同時寫入不同組的日志文件。假設(shè)LGWR寫入不同組中的一個成員文件,那么數(shù)據(jù)庫將此成員標(biāo)志為寫入不同組中的一個成員文件,那么數(shù)據(jù)庫將此成員標(biāo)志為INVALID,并在,并在LGWR追蹤文件和數(shù)據(jù)庫警告日志中寫入追蹤文件和數(shù)據(jù)庫警告日志中寫入一條錯誤信息,記錄下它的日志文件組編號和成員編號,以一條錯誤信息,記錄下它的日志文件組編號和成員編號,以協(xié)助協(xié)助D
34、BA確定缺點,并進一步排除缺點。確定缺點,并進一步排除缺點。在設(shè)置或更改數(shù)據(jù)庫實例的重做日志文件之前,需求思索數(shù)在設(shè)置或更改數(shù)據(jù)庫實例的重做日志文件之前,需求思索數(shù)據(jù)庫對重做日志文件的限制:據(jù)庫對重做日志文件的限制: 參數(shù)參數(shù)MAXLOGFILES:在創(chuàng)建數(shù)據(jù)庫:在創(chuàng)建數(shù)據(jù)庫CREATE DATABASE語句中運用該參數(shù)可以為數(shù)據(jù)庫指定重做日語句中運用該參數(shù)可以為數(shù)據(jù)庫指定重做日志文件的最大組數(shù)。志文件的最大組數(shù)。 參數(shù)參數(shù)MAXLOGMEMBERS:在創(chuàng)建數(shù)據(jù)庫:在創(chuàng)建數(shù)據(jù)庫CREATE DATABASE語句中運用該參數(shù)可以為每個組指定成員的語句中運用該參數(shù)可以為每個組指定成員的最大數(shù)量。最
35、大數(shù)量。假設(shè)需求修正以上兩個參數(shù)的值的獨一方法是重新創(chuàng)建數(shù)假設(shè)需求修正以上兩個參數(shù)的值的獨一方法是重新創(chuàng)建數(shù)據(jù)庫的控制文件。據(jù)庫的控制文件。6.2.2 創(chuàng)建重做日志組及成員創(chuàng)建重做日志組及成員 在創(chuàng)建數(shù)據(jù)庫的時候,可以規(guī)劃數(shù)據(jù)庫的重做日志,在創(chuàng)建數(shù)據(jù)庫的時候,可以規(guī)劃數(shù)據(jù)庫的重做日志,并創(chuàng)建重做日志組及其成員文件。但在數(shù)據(jù)庫創(chuàng)建后,有并創(chuàng)建重做日志組及其成員文件。但在數(shù)據(jù)庫創(chuàng)建后,有時也需求添加新的重做日志。要創(chuàng)建新的重做日志組及其時也需求添加新的重做日志。要創(chuàng)建新的重做日志組及其成員,用戶必需擁有成員,用戶必需擁有ALTER DATABASE的系統(tǒng)權(quán)限。的系統(tǒng)權(quán)限。1. 創(chuàng)建重做日志組創(chuàng)建重
36、做日志組運用運用ALRER DATABASE語句創(chuàng)建重做日志組。語法如語句創(chuàng)建重做日志組。語法如下:下:ALTER DATABASE database_nameADD LOGFILE GROUP nfilename SIXE sizedatabase_name:需求修正的數(shù)據(jù)庫名,省略表示當(dāng)前數(shù):需求修正的數(shù)據(jù)庫名,省略表示當(dāng)前數(shù)據(jù)庫。據(jù)庫。n:表示創(chuàng)建重做日志組的組號,組號在重做日志組中是:表示創(chuàng)建重做日志組的組號,組號在重做日志組中是獨一的。獨一的。filename:日志文件組存儲的位置。:日志文件組存儲的位置。m:日志文件組的大小,默許的大小是:日志文件組的大小,默許的大小是50MB。【
37、例【例6-5】運用】運用ALTER DATABASE語句中的語句中的ADD LOGFILE子句創(chuàng)建重做日志組,代碼如下,執(zhí)行結(jié)果如圖子句創(chuàng)建重做日志組,代碼如下,執(zhí)行結(jié)果如圖6-10。SQLALTER DATABASE 2 ADD LOGFILE GROUP 5 3 G:appAdministratororadataorclNEWLOG5-1.LOG SIZE 10M;圖圖6-10 創(chuàng)建重做日志文件組創(chuàng)建重做日志文件組圖中所示,在數(shù)據(jù)庫中曾經(jīng)創(chuàng)建了新的重做日志文件組。圖中所示,在數(shù)據(jù)庫中曾經(jīng)創(chuàng)建了新的重做日志文件組。2. 創(chuàng)建重做日志成員創(chuàng)建重做日志成員在在ALRER DATABASE語句中運
38、用語句中運用ADD LOGFILE MEMBER關(guān)鍵字創(chuàng)建重做日志成員。語法如下:關(guān)鍵字創(chuàng)建重做日志成員。語法如下:ALTER DATABASE database_nameADD LOGFILE MEMBERfilename TO GROUP n【例【例6-6】運用】運用ALTER DATABASE語句中的語句中的ADD LOGFILE子句添加重做日志文件到重做日志文件組中子句添加重做日志文件到重做日志文件組中5,代碼如下,執(zhí)行結(jié)果如圖代碼如下,執(zhí)行結(jié)果如圖6-11。SQLALTER DATABASE 2 ADD LOGFILE MEMBER 3 G:appAdministratororada
39、taorclNEWLOG5-2.LOG 4 TO GROUP 5;圖圖6-11 創(chuàng)建重做日志文件成員創(chuàng)建重做日志文件成員經(jīng)過查看操作系統(tǒng)文件夾,發(fā)現(xiàn)日志文件經(jīng)過查看操作系統(tǒng)文件夾,發(fā)現(xiàn)日志文件NEWLOG5-2.LOG文件已添加到指定文件夾下。文件已添加到指定文件夾下。6.2.3 修正重做日志文件的存儲位置和稱號修正重做日志文件的存儲位置和稱號 在數(shù)據(jù)庫的運轉(zhuǎn)過程中,有時能夠會根據(jù)需求修正重做在數(shù)據(jù)庫的運轉(zhuǎn)過程中,有時能夠會根據(jù)需求修正重做日志文件的存儲位置或稱號。重做日志文件的信息是記錄在日志文件的存儲位置或稱號。重做日志文件的信息是記錄在控制文件中的,修正重做日志文件的存儲位置或稱號實踐上
40、控制文件中的,修正重做日志文件的存儲位置或稱號實踐上意味著修正控制文件中的信息。修正之前,還要保證用戶擁意味著修正控制文件中的信息。修正之前,還要保證用戶擁有有ALTER DATABASE系統(tǒng)權(quán)限、復(fù)制文件到指定位置的操系統(tǒng)權(quán)限、復(fù)制文件到指定位置的操作系統(tǒng)權(quán)限以及翻開和備份數(shù)據(jù)庫的權(quán)限。作系統(tǒng)權(quán)限以及翻開和備份數(shù)據(jù)庫的權(quán)限?!纠纠?-7】修正當(dāng)前數(shù)據(jù)庫的重做日志文件的存儲位置和】修正當(dāng)前數(shù)據(jù)庫的重做日志文件的存儲位置和稱號,詳細操作步驟如下:稱號,詳細操作步驟如下:(1) 運用運用SHUTDOWN命令封鎖數(shù)據(jù)庫。命令封鎖數(shù)據(jù)庫。SQL SHUTDOWN;(2) 在操作系統(tǒng)中重命名重做日志文
41、件或?qū)⒅刈鋈罩疚募诓僮飨到y(tǒng)中重命名重做日志文件或?qū)⒅刈鋈罩疚募?fù)制到新的位置上。復(fù)制到新的位置上。(3) 重啟數(shù)據(jù)庫實例,加載數(shù)據(jù)庫但不翻開數(shù)據(jù)庫。重啟數(shù)據(jù)庫實例,加載數(shù)據(jù)庫但不翻開數(shù)據(jù)庫。SQL STARTUP MOUNT;(4) 運用運用RENAME FILE子句的子句的ALTER DATABASE語句語句重新設(shè)置重做日志文件的稱號和途徑。重新設(shè)置重做日志文件的稱號和途徑。SQL ALTER DATABASE RENAME FILE2 G:appAdministratororadataorclREDO01.LOG,3 G:appAdministratororadataorclREDO02
42、.LOG,4 G:appAdministratororadataorclREDO03.LOG5 TO6 G:appAdministratororadataorclREDONEW01.LOG,7 G:appAdministratororadataorclREDONEW02.LOG,8 G:appAdministratororadataorclREDONEW03.LOG;數(shù)據(jù)庫已更改。數(shù)據(jù)庫已更改。(5) 翻開數(shù)據(jù)庫。翻開數(shù)據(jù)庫。SQL ALTER DATABASE OPEN; (6) 備份控制文件。備份控制文件。重啟啟動數(shù)據(jù)庫,經(jīng)過查詢數(shù)據(jù)字典重啟啟動數(shù)據(jù)庫,經(jīng)過查詢數(shù)據(jù)字典V$LOGFILE可
43、可以查看數(shù)據(jù)庫如今所運用的重做日志文件。以查看數(shù)據(jù)庫如今所運用的重做日志文件。SQL SELECT MEMBER FROM V$LOGFILE;6.2.4 刪除重做日志文件刪除重做日志文件 在某些情況下,需求將某個重做日志組或日志成員刪除。在某些情況下,需求將某個重做日志組或日志成員刪除。例如,由于某個日志成員損壞而導(dǎo)致整個重做日志組不可用,例如,由于某個日志成員損壞而導(dǎo)致整個重做日志組不可用,這時需求將損壞的日志成員刪除。這時需求將損壞的日志成員刪除。1. 刪除日志文件刪除日志文件刪除成員日志文件之前,需求留意以下幾種情況:刪除成員日志文件之前,需求留意以下幾種情況: 刪除重做日志文件是合理
44、的,每個重做日志組中至少要刪除重做日志文件是合理的,每個重做日志組中至少要包含一個可有的成員。包含一個可有的成員。 當(dāng)刪除日志文件屬于當(dāng)刪除日志文件屬于INACTIVE日志組時,才可以刪除。日志組時,才可以刪除。假設(shè)不是,可以先強迫進展日志切換。假設(shè)不是,可以先強迫進展日志切換。 刪除日志文件,假設(shè)是歸檔方式,那么要確保曾經(jīng)歸檔,刪除日志文件,假設(shè)是歸檔方式,那么要確保曾經(jīng)歸檔,才可以刪除。才可以刪除。刪除日志文件的語法如下:刪除日志文件的語法如下:ALTER DATABASE database_nameDROP LOGFILE MEMBERfilename其中,其中,filename是指日志
45、文件的名字,包括途徑。是指日志文件的名字,包括途徑?!纠纠?-8】在】在SQL *Plus中刪除名為中刪除名為NEWLOG5-2的日志文的日志文件,執(zhí)行結(jié)果如圖件,執(zhí)行結(jié)果如圖6-12。圖圖6-12 刪除重做日志文件成員刪除重做日志文件成員2. 刪除日志文件組刪除日志文件組假設(shè)某個重做日志組不再需求運用,可以將整個日志組假設(shè)某個重做日志組不再需求運用,可以將整個日志組刪除。刪除一個日志組時,其中的成員文件也將被一同刪刪除。刪除一個日志組時,其中的成員文件也將被一同刪除。刪除日志組時,也需求留意如下幾點:除。刪除日志組時,也需求留意如下幾點: 無論日志組中有多少個成員,一個數(shù)據(jù)庫至少需求兩無論
46、日志組中有多少個成員,一個數(shù)據(jù)庫至少需求兩個日志組。個日志組。 只能刪除處于只能刪除處于INACTIVE形狀的日志組。假設(shè)要刪除形狀的日志組。假設(shè)要刪除CURRENT形狀的重做日志組,那么必需執(zhí)行一個手工切形狀的重做日志組,那么必需執(zhí)行一個手工切換日志,使其切換到換日志,使其切換到INACTIVE形狀。形狀。 假設(shè)數(shù)據(jù)庫處于歸檔方式下,在刪除重做日志組之前假設(shè)數(shù)據(jù)庫處于歸檔方式下,在刪除重做日志組之前必需確定它曾經(jīng)被歸檔。可以經(jīng)過查詢必需確定它曾經(jīng)被歸檔??梢越?jīng)過查詢V$LOG數(shù)據(jù)字典數(shù)據(jù)字典視圖,查看能否曾經(jīng)對日志組進展過歸檔。可以參考如下視圖,查看能否曾經(jīng)對日志組進展過歸檔。可以參考如下代
47、碼:代碼:SQL SELECT GROUP#, ARCHIVED, STATUS FROM V$LOG;刪除重做日志文件組的語法如下:刪除重做日志文件組的語法如下:ALTER DATABASE database_nameDROP LOGFILE GROUP n【例【例6-9】在】在SQL *Plus中刪除組號是中刪除組號是5的日志文件組,執(zhí)行的日志文件組,執(zhí)行結(jié)果如圖結(jié)果如圖6-12。圖圖6-13 刪除重做日志文件組刪除重做日志文件組需求留意的是,刪除重做日志文件成員和刪除重做日志需求留意的是,刪除重做日志文件成員和刪除重做日志文件組的操作只是在數(shù)據(jù)字典和控制文件中將它們的記錄信文件組的操作只
48、是在數(shù)據(jù)字典和控制文件中將它們的記錄信息刪除,并不會物理地刪除操作系統(tǒng)中相應(yīng)的文件,這需求息刪除,并不會物理地刪除操作系統(tǒng)中相應(yīng)的文件,這需求手工在操作系統(tǒng)中將相應(yīng)的文件刪除。手工在操作系統(tǒng)中將相應(yīng)的文件刪除。6.2.5 清空重做日志文件清空重做日志文件 在數(shù)據(jù)庫運轉(zhuǎn)過程中,假設(shè)由于重做日在數(shù)據(jù)庫運轉(zhuǎn)過程中,假設(shè)由于重做日志文件的損壞而導(dǎo)致歸檔操作無法進展,數(shù)志文件的損壞而導(dǎo)致歸檔操作無法進展,數(shù)據(jù)庫效力器的運轉(zhuǎn)最終將停頓。在這種情況據(jù)庫效力器的運轉(zhuǎn)最終將停頓。在這種情況下,可以將重做日志文件的內(nèi)容全部清空。下,可以將重做日志文件的內(nèi)容全部清空。清空重做日志文件的操作可以在不封鎖數(shù)據(jù)清空重做日
49、志文件的操作可以在不封鎖數(shù)據(jù)庫的情況下手工清空日志文件中的內(nèi)容。庫的情況下手工清空日志文件中的內(nèi)容。清空重做日志文件的語法構(gòu)造如下:清空重做日志文件的語法構(gòu)造如下: ALTER DATABASE database_name CLEAR LOGFILE GROUP n【例【例6-10】在】在SQL *Plus中清空組號是中清空組號是4的日志文件組,的日志文件組,代碼如下:代碼如下:SQL ALTER DATABSE CLEAR LOGFILE GROUP 4;數(shù)據(jù)庫已更改。數(shù)據(jù)庫已更改。假設(shè)重做日志沒有歸檔,那么可以在語句中添加假設(shè)重做日志沒有歸檔,那么可以在語句中添加UNARCHIVED關(guān)鍵字
50、,代碼如下:關(guān)鍵字,代碼如下:SQL ALTER DATABSE CLEAR UNARCHIVED LOGFILE GROUP 4;數(shù)據(jù)庫已更改。數(shù)據(jù)庫已更改。需求留意的是,假設(shè)被清空的重做日志組還沒有歸檔,需求留意的是,假設(shè)被清空的重做日志組還沒有歸檔,有能夠呵斥數(shù)據(jù)喪失。所以,應(yīng)提早創(chuàng)建數(shù)據(jù)庫的另一個有能夠呵斥數(shù)據(jù)喪失。所以,應(yīng)提早創(chuàng)建數(shù)據(jù)庫的另一個備份。備份。6.2.6 重做日志文件的切換重做日志文件的切換 數(shù)據(jù)庫效力器在運轉(zhuǎn)過程中,數(shù)據(jù)庫效力器在運轉(zhuǎn)過程中,LGWR后后臺進程將重做日志寫入重做日志文件。當(dāng)?shù)谂_進程將重做日志寫入重做日志文件。當(dāng)?shù)谝粋€日志組寫滿后,一個日志組寫滿后,LGW
51、R將自動切換到第將自動切換到第二個日志組,并將重做日志寫入第二個日志二個日志組,并將重做日志寫入第二個日志組。依此類推,當(dāng)最后一個日志組被寫滿后,組。依此類推,當(dāng)最后一個日志組被寫滿后,LGWR將自動切換到第一個日志組,這個循將自動切換到第一個日志組,這個循環(huán)的過程是自動的。在某些特殊的情況下,環(huán)的過程是自動的。在某些特殊的情況下,需求手工切換日志,即在當(dāng)前重做日志組尚需求手工切換日志,即在當(dāng)前重做日志組尚未寫滿的時候,強迫未寫滿的時候,強迫LGWR進程將重做日志進程將重做日志寫入下一個日志組。寫入下一個日志組。 執(zhí)行手工切換重做日志義務(wù)的用戶需求執(zhí)行手工切換重做日志義務(wù)的用戶需求有有ALTE
52、R SYSTEM系統(tǒng)權(quán)限,完好的語法系統(tǒng)權(quán)限,完好的語法格式如下:格式如下:ALTER SYSTEM SWITCH LOGFILE 每進展一次切換,每進展一次切換,Oracle都會在數(shù)據(jù)庫警告文件中對都會在數(shù)據(jù)庫警告文件中對其進展記錄,而且無論是自動切換還是手動切換,日志序其進展記錄,而且無論是自動切換還是手動切換,日志序列號都會自動加列號都會自動加1。雖然日志組是循環(huán)運用的,但是日志。雖然日志組是循環(huán)運用的,但是日志序列號是無限遞增的。重做日志序列號獨一標(biāo)識了重做日序列號是無限遞增的。重做日志序列號獨一標(biāo)識了重做日志文件和歸檔日志文件。當(dāng)進展數(shù)據(jù)庫恢復(fù)時,就可以按志文件和歸檔日志文件。當(dāng)進展
53、數(shù)據(jù)庫恢復(fù)時,就可以按照序列號遞增的順序依次查找所需的重做日志文件和歸檔照序列號遞增的順序依次查找所需的重做日志文件和歸檔日志文件。日志文件。6.2.7 查看重做日志文件查看重做日志文件 由于日志文件本身的重要性,由于日志文件本身的重要性,DBA能能夠要經(jīng)常查詢?nèi)罩疚募?。與重做日志文件夠要經(jīng)常查詢?nèi)罩疚募?。與重做日志文件相關(guān)的數(shù)據(jù)字典視圖有三個,如表相關(guān)的數(shù)據(jù)字典視圖有三個,如表6-2所示。所示。 經(jīng)過查詢數(shù)據(jù)字典視圖經(jīng)過查詢數(shù)據(jù)字典視圖V$LOG可以查看重做日志文件組可以查看重做日志文件組的組號、序列號、大小、能否歸檔、形狀等信息。執(zhí)行效果的組號、序列號、大小、能否歸檔、形狀等信息。執(zhí)行效果
54、如圖如圖6-14。其中重做日志文件的形狀如表。其中重做日志文件的形狀如表6-3所示。所示。圖圖6-14 查看重做日志文件組查看重做日志文件組 經(jīng)過查詢數(shù)據(jù)字典視圖經(jīng)過查詢數(shù)據(jù)字典視圖V$LOGFILE可以獲得每個重做可以獲得每個重做日志組中的日志成員及其形狀等信息。其中日志成員的形日志組中的日志成員及其形狀等信息。其中日志成員的形狀如表狀如表6-4所示。所示。6.2.8 運用運用OEM管理重做日志文件管理重做日志文件 運用運用OEM工具也可以很方便的管理重做日工具也可以很方便的管理重做日志文件。啟動志文件。啟動OEM,單擊,單擊“效力器效力器|“重做日重做日志文件組超鏈接,即可顯示出當(dāng)前數(shù)據(jù)庫
55、中志文件組超鏈接,即可顯示出當(dāng)前數(shù)據(jù)庫中的一切重做日志組信息,如圖的一切重做日志組信息,如圖6-15所示。所示。圖圖6-15 OEM顯示的重做日志文件組信息顯示的重做日志文件組信息 在顯示的重做日志組信息頁面假設(shè)單擊在顯示的重做日志組信息頁面假設(shè)單擊“創(chuàng)建按鈕,可創(chuàng)建按鈕,可以為數(shù)據(jù)庫添加一個日志文件組;假設(shè)單擊以為數(shù)據(jù)庫添加一個日志文件組;假設(shè)單擊“編輯按鈕,編輯按鈕,可以對當(dāng)前選中的重做日志文件進展修正,包括添加可以對當(dāng)前選中的重做日志文件進展修正,包括添加/刪除刪除成員日志文件、挪動或重命名成員日志文件;假設(shè)選擇了成員日志文件、挪動或重命名成員日志文件;假設(shè)選擇了“操作列表框中的某一操作
56、類型如切換日志,單擊操作列表框中的某一操作類型如切換日志,單擊“開開場按鈕,將執(zhí)行該操作。場按鈕,將執(zhí)行該操作。6.3 歸檔日志管理歸檔日志管理 歸檔日志歸檔日志(Archive Log)是非活動的重做日志備份。經(jīng)是非活動的重做日志備份。經(jīng)過運用歸檔日志,可以保管一切重做歷史記錄,當(dāng)數(shù)據(jù)庫過運用歸檔日志,可以保管一切重做歷史記錄,當(dāng)數(shù)據(jù)庫處于處于ARCHIVELOG方式并進展日志切換式,后臺進程方式并進展日志切換式,后臺進程ARCH會將重做日志的內(nèi)容保管到歸檔日志中,這個過程叫會將重做日志的內(nèi)容保管到歸檔日志中,這個過程叫做歸檔。當(dāng)數(shù)據(jù)庫出現(xiàn)介質(zhì)缺點時,運用數(shù)據(jù)文件備份、做歸檔。當(dāng)數(shù)據(jù)庫出現(xiàn)介
57、質(zhì)缺點時,運用數(shù)據(jù)文件備份、歸檔日志和重做日志可以完全恢復(fù)數(shù)據(jù)庫。歸檔日志和重做日志可以完全恢復(fù)數(shù)據(jù)庫。6.3.1 歸檔日志概述歸檔日志概述 Oracle數(shù)據(jù)庫的修正內(nèi)容都記錄在重做日志文件中,數(shù)據(jù)庫的修正內(nèi)容都記錄在重做日志文件中,但是由于重做日志文件是以循環(huán)方式任務(wù)的,會出現(xiàn)重做但是由于重做日志文件是以循環(huán)方式任務(wù)的,會出現(xiàn)重做日志文件被新寫入的重做日志文件覆蓋的問題。為了完好日志文件被新寫入的重做日志文件覆蓋的問題。為了完好地記錄數(shù)據(jù)庫的全部更新操作,地記錄數(shù)據(jù)庫的全部更新操作,Oracle提出了歸檔日志的概提出了歸檔日志的概念來處理這一問題。念來處理這一問題。 在重做日志文件被覆蓋之前
58、,在重做日志文件被覆蓋之前,Oracle可以將曾經(jīng)寫可以將曾經(jīng)寫滿的重做日志文件經(jīng)過復(fù)制保管到指定的位置,保管下來滿的重做日志文件經(jīng)過復(fù)制保管到指定的位置,保管下來的一切重做日志文件被稱為的一切重做日志文件被稱為“歸檔重做日志,這個過程就歸檔重做日志,這個過程就是是“歸檔過程。只需數(shù)據(jù)庫處于歸檔方式時,才會對重做歸檔過程。只需數(shù)據(jù)庫處于歸檔方式時,才會對重做日志文件執(zhí)行歸檔操作。歸檔操作可以由后臺進程日志文件執(zhí)行歸檔操作。歸檔操作可以由后臺進程ARCn自自動完成,也可以由動完成,也可以由DBA手工來完成。手工來完成。 歸檔日志文件中包含了被覆蓋的日志文件和重做日志文歸檔日志文件中包含了被覆蓋的
59、日志文件和重做日志文件的序列號。當(dāng)數(shù)據(jù)庫處于歸檔方式下,寫日志進程件的序列號。當(dāng)數(shù)據(jù)庫處于歸檔方式下,寫日志進程LGWR不可以對未歸檔的重做日志文件組進展重用和改寫操作。假不可以對未歸檔的重做日志文件組進展重用和改寫操作。假設(shè)設(shè)置了自動歸檔方式,那么后臺進程設(shè)設(shè)置了自動歸檔方式,那么后臺進程ARCn將自動地執(zhí)行將自動地執(zhí)行歸檔操作。為了提高歸檔的速度,可以思索啟動多個歸檔操作。為了提高歸檔的速度,可以思索啟動多個ARCn進程加速歸檔的速度。進程加速歸檔的速度。 運用歸檔日志文件可以實現(xiàn)恢復(fù)數(shù)據(jù)庫、更新備用數(shù)運用歸檔日志文件可以實現(xiàn)恢復(fù)數(shù)據(jù)庫、更新備用數(shù)據(jù)庫以及獲取數(shù)據(jù)庫的歷史信息等目的。用戶可
60、以選擇自動據(jù)庫以及獲取數(shù)據(jù)庫的歷史信息等目的。用戶可以選擇自動歸檔或手動歸檔,但自動歸檔方式更加方便快捷。歸檔或手動歸檔,但自動歸檔方式更加方便快捷。6.3.2 管理歸檔方式管理歸檔方式 數(shù)據(jù)庫效力器有兩種日志方式:歸檔方式和非歸檔方數(shù)據(jù)庫效力器有兩種日志方式:歸檔方式和非歸檔方式。在非歸檔方式下,當(dāng)一個重做日志組被寫滿時,式。在非歸檔方式下,當(dāng)一個重做日志組被寫滿時,LGWR進程將自動切換到下一重做日志組,這個重做日志進程將自動切換到下一重做日志組,這個重做日志組中以前的重做日志文件將被覆蓋。而在歸檔方式下,每組中以前的重做日志文件將被覆蓋。而在歸檔方式下,每個重做日志組在被覆蓋之前都做了歸
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度企業(yè)培訓(xùn)課程開發(fā)與推廣服務(wù)采購合同2篇
- 四川電子機械職業(yè)技術(shù)學(xué)院《中小學(xué)管理學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 四川電子機械職業(yè)技術(shù)學(xué)院《建筑設(shè)計史》2023-2024學(xué)年第一學(xué)期期末試卷
- 四川傳媒學(xué)院《中學(xué)蒙古語文課程與教學(xué)論》2023-2024學(xué)年第一學(xué)期期末試卷
- 文化創(chuàng)意產(chǎn)業(yè)發(fā)展報告匯報
- 服務(wù)教學(xué)合同范例
- 女裝聯(lián)盟合同范例
- 醫(yī)院采購中藥合同范例
- 自用閑置電腦出售合同范例
- 郊區(qū)二手房交易合同范例
- 報價單報價單
- 面試評估表及評分標(biāo)準及面試評估表及評估標(biāo)準
- 消防安全重點單位規(guī)范化管理手冊
- 【拓展閱讀】類文閱讀《王羲之吃墨》
- 熱電廠機組A級檢修策劃書
- 浙教版數(shù)學(xué)八年級下冊全冊優(yōu)質(zhì)課件
- 第三講:蘇聯(lián)模式興衰
- GB/T 5623-2008產(chǎn)品電耗定額制定和管理導(dǎo)則
- GB/T 41002-2022兒童箱包通用技術(shù)規(guī)范
- 光學(xué)5(光的偏振)
- GB/T 20833-2007旋轉(zhuǎn)電機定子線棒及繞組局部放電的測量方法及評定導(dǎo)則
評論
0/150
提交評論