一、指定日志傳送模式
?
??? 1、正常模式
?
??? 一般正常模式是將存檔文件傳送到數(shù)據(jù)庫服務(wù)器的另一個(gè)磁盤。
??? 可以通過設(shè)置LOG_ARCHIVE_DEST_n或LOG_ARCHIVE_DEST參數(shù)來指定目標(biāo)位置。
?
??? 理想情況下,應(yīng)該將已存檔的重做日志文件以及相應(yīng)數(shù)據(jù)庫備份從本地磁盤中永久地轉(zhuǎn)移到并不昂貴的脫機(jī)存儲(chǔ)介質(zhì)中,例如磁帶。
?
??? 2、備用傳送模式
?
??? <建議在遠(yuǎn)程站點(diǎn)維護(hù)備用數(shù)據(jù)庫,以盡量避免出現(xiàn)災(zāi)難性錯(cuò)誤>
?
??? 要將文件傳送到備用數(shù)據(jù)庫,ARCn需要:
??? ① 識別遠(yuǎn)程位置(tnsname.ora)
??? ② 通過RFS(遠(yuǎn)程文件服務(wù)器)進(jìn)程傳送已存檔日志
?
??? RFS進(jìn)程主要負(fù)責(zé)以下任務(wù):
??? ① 使用ARCn進(jìn)程的網(wǎng)絡(luò)I/O資源
??? ② 在備用數(shù)據(jù)庫上使用STANDBY_ARCHIVE_DEST參數(shù)創(chuàng)建文件
??? ③ 在遠(yuǎn)程站點(diǎn)添加日志文件
??? ④ 更新備用數(shù)據(jù)庫的控制文件
?
??? <這樣存檔的文件主要用于維護(hù)備用數(shù)據(jù)庫,該備用數(shù)據(jù)庫是某個(gè)數(shù)據(jù)庫的精確復(fù)制品>
?
?
二、管理存檔目標(biāo)失敗
?
??? 1、指定最小成功目標(biāo)
?
??? 指定參數(shù) LOG_ARCHIVE_MIN_SUCCEED_DEST=n 來決定Oracle必須成功存檔重做日志組的目標(biāo)的最小數(shù)目,默認(rèn)為1
?
??? 2、指定強(qiáng)制目標(biāo)和任選目標(biāo)
?
??? 使用
LOG_ARCHIVE_DEST_n參數(shù)來指定目標(biāo)擁有OPTIONAL還是MANDATORY屬性
?
????① 不為目標(biāo)指定MANDATORY屬性和為其指定OPTIONAL屬性是一樣的
??? ② 必須至少擁有一個(gè)可以聲明OPTIONAL或MANDATORY屬性的本地目標(biāo)
??? ③ 在至少一個(gè)本地目標(biāo)上使用LOG_ARCHIVE_MIN_SUCCEED_DEST=n參數(shù)時(shí),將按MANDATORY方式操作,因?yàn)樽钚≈禐?
??? ④ 任何MANDATORY屬性目標(biāo)的失敗,包括MANDATORY屬性的備用目標(biāo),都和LOG_ARCHIVE_MIN_SUCCEED_DEST沒有關(guān)系
????⑤ LOG_ARCHIVE_MIN_SUCCEED_DEST不能比目標(biāo)總數(shù)大,也不能比MANDATORY加上OPTIONAL的本地目標(biāo)總和要大
??? ⑥?若果MANDATORY屬性目標(biāo)具有DEFER屬性,且Oracle沒有將已存檔日志傳送到備用站點(diǎn)情況下重寫了聯(lián)機(jī)日志,則必須手動(dòng)傳送
?
??? 也可使用LOG_ARCHIVE_DEST和LOG_ARCHIVE_DUPLEX_DEXT來建立強(qiáng)制目標(biāo)或任選目標(biāo)
??? ① 任何LOG_ARCHIVE_DEST聲明的目標(biāo)都是強(qiáng)制的
??? ② 如果LOG_ARCHIVE_DUPLEX_DEXT=1,那么任何他來聲明的目標(biāo)都是任選的
??? ③ 如果LOG_ARCHIVE_DUPLEX_DEXT=2,那么任何他來聲明的目標(biāo)都是強(qiáng)制的
?
??? 3、方案舉例
?
??? ① 指定了3個(gè)全為OPTIONAL的本地目標(biāo)位置,則LOG_ARCHIVE_MIN_SUCCEED_DEST
??????? 1---------僅在至少一個(gè)OPTIONAL目標(biāo)成功的情況下,Oracle可重用日志文件
??????? 2---------僅在至少兩個(gè)OPTIONAL目標(biāo)成功的情況下,Oracle可重用日志文件
??????? 3---------僅在所有OPTIONAL目標(biāo)成功的情況下,Oracle可重用日志文件
??????? 4+ -------出現(xiàn)錯(cuò)誤:這個(gè)值大于目標(biāo)總數(shù)
?
??? ② 指定了2個(gè)MANDATORY、2個(gè)OPTIONAL的目標(biāo),則LOG_ARCHIVE_MIN_SUCCEED_DEST
??????? 1---------Oracle忽略這個(gè)值,并使用MANDATORY目標(biāo)的數(shù)目(2)
??????? 2---------即使沒有任何一個(gè)OPTIONAL成功,Oracle也可重用日志文件
??????? 3---------僅在至少一個(gè)OPTIONAL目標(biāo)成功的情況下,Oracle可重用日志文件
??????? 4---------僅在兩個(gè)OPTIONAL目標(biāo)都成功的情況下,Oracle可重用日志文件
??????? 5+ -------出現(xiàn)錯(cuò)誤:這個(gè)值大于目標(biāo)的總數(shù)
?
??? 4、重新存檔到失敗過的目標(biāo)位置
?
??? 設(shè)置LOG_ARCHIVE_DEST_n參數(shù)的REOPEN屬性來指定重新存儲(chǔ)到失敗過的目標(biāo)位置
?
??? REOPEN=n設(shè)置了ARCn打開失敗過的目標(biāo)所需要的最小秒數(shù),默認(rèn)為360秒,若設(shè)置為0則表示關(guān)掉REOPEN選項(xiàng)。
??? 如果沒有REOPEN選項(xiàng),則失敗后ARCn不再打開該目標(biāo)
?
?
三、多個(gè)ARCn進(jìn)程調(diào)整存檔性能
?
??? 一般來說ARCn都不會(huì)影響整個(gè)系統(tǒng)的性能,但是一些大型數(shù)據(jù)庫站點(diǎn)上的存檔將有一定的影響。如果ARCn運(yùn)轉(zhuǎn)的時(shí)間太快,則會(huì)消耗當(dāng)前周期的CPU資源,而降低了系統(tǒng)性能,如果ARCn運(yùn)轉(zhuǎn)太慢,則又會(huì)讓其他重做日志組等待,造成瓶頸。
??? 可以通過設(shè)置多個(gè)ARCn進(jìn)程來進(jìn)行調(diào)節(jié)。Oracle可以通過LOG_ARCHIVE_MAX_PROCESSES = n來指定最多10個(gè)的ARCn進(jìn)程,默認(rèn)情況下參數(shù)值為1
?
??? 可以使用 ALTER SYSTEM SET LOG_ARCHIVE_MAX_PROCESSES = 2; 來限制當(dāng)前進(jìn)程數(shù)
??? 另外,可通過 SELECT * FROM V$ARCHIVE_PROCESSES; 來查看每個(gè)進(jìn)程的狀態(tài)信息
?
??? 當(dāng)以下情況時(shí),使用多個(gè)ARCn進(jìn)程會(huì)比較有優(yōu)勢:
??? ① 使用3個(gè)或3個(gè)以上的聯(lián)機(jī)重做日志時(shí)
??? ② 存檔到不止一個(gè)目標(biāo)位置時(shí)
?
??? 下圖說明了多個(gè)ARCn進(jìn)程寫入存檔的邏輯:
?
???
?
?
四、跟蹤存檔日志進(jìn)程
?
??? 通過設(shè)置LOG_ARCHIVE_TRACE參數(shù)來指定trace level,具體定義如下:
?
????0 :不允許存檔日志跟蹤(默認(rèn)設(shè)置)
????1 :跟蹤重做日志文件的存檔
????2 :跟蹤每個(gè)存檔日志目標(biāo)的存檔狀態(tài)
??? 4 :跟蹤存檔操作的階段
??? 8 :跟蹤存檔日志目標(biāo)的活動(dòng)
??? 16:跟蹤詳細(xì)的存檔日志目標(biāo)的活動(dòng)
??? 32:跟蹤存檔日志目標(biāo)的參數(shù)修改
??? 64:跟蹤ARCn進(jìn)程的狀態(tài)活動(dòng)
?
??? 指定LOG_ARCHIVE_TRACE = n,這個(gè)n是各項(xiàng)跟蹤級別的總和
??? 例如n=12,代表跟蹤4和8兩項(xiàng)
?
??? ALTER SYSTEM SET LOG_ARCHIVE_TRACE = 12; --在下次存檔操作啟動(dòng)時(shí)生效
?
?
五、查看已存檔的重做日志信息
?
??? 1、V$DATABASE :查看是否啟用ARCHIVELOG模式
??? 2、V$ARCHIVED_LOG :顯示控制文件中的歷史存檔日志信息
??? 3、V$ARCHIVE_DEST :描述當(dāng)前的實(shí)例、所有存檔目標(biāo)、以及這些目標(biāo)的當(dāng)前值、模式、狀態(tài)
??? 4、V$ARCHIVE_PROCESSES :顯示實(shí)例用到的各種存檔進(jìn)程的狀態(tài)信息
??? 5、V$BACKUP_REDOLOG :包含有關(guān)已存檔的日志的任何備份信息
??? 6、V$LOG :顯示數(shù)據(jù)庫所用的所有聯(lián)機(jī)重做日志組,以及是否需要?dú)w檔
??? 7、V$LOG_HISTORY :包含日志歷史信息,例如哪些已存檔以及每個(gè)已存檔日志的SCN范圍
?
??? 舉例:
?
??? ...
?
?
-The End-