自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

此類情況下oracle數(shù)據(jù)庫重啟,四種方案可解決

數(shù)據(jù)庫 Oracle
如果是少量的錯誤則不需要關(guān)心,只需要讓用戶重新做一次相關(guān)操作即可;如果是大量的連接錯誤,則需要檢查是不是設(shè)置的processes參數(shù)太小了,或者對用戶進行培訓(xùn)。

[[193387]]

Objects

1.明確Oracle數(shù)據(jù)庫中可能發(fā)生的錯誤類型;

2.描述實例恢復(fù)的方法;

3.明確checkpoints,redo log files和archive log files的重要性;

4.配置快速閃回區(qū);

5.配置歸檔模式;

Part of Your Job

DBA的職責(zé)就是要保證數(shù)據(jù)庫是可使用的而且是高效的;

1.避免數(shù)據(jù)庫發(fā)生常規(guī)錯誤:比如用戶無權(quán)限,表空間不足等等;

2.增加MTBF(Mean Time Between Failures),即兩次發(fā)生故障的時間間隔;

3.使用冗余方式保護關(guān)鍵組件,主要是硬件冗余的方式:比如使用RAC,DG等技術(shù);

4.減少MTTR(Mean Time To Recover),即發(fā)生錯誤時的恢復(fù)時間;

5.最小化數(shù)據(jù)丟失,提交的數(shù)據(jù)保留,未提交的數(shù)據(jù)丟失:使用archive log files,flashback technology, dataguard技術(shù);

Categories of Failure

1.語句級別錯誤:比如select,insert,update,delete錯誤;

2.用戶進程錯誤:比如一個數(shù)據(jù)庫的會話失敗了;

3.網(wǎng)絡(luò)錯誤:數(shù)據(jù)庫的連接丟失;

4.用戶錯誤:比如刪除了一個表,刪除了一個用戶等等;

5.實例錯誤:比如數(shù)據(jù)庫突然宕機;

6.媒體錯誤:比如因為磁盤損壞或者OS級別刪除而丟失了數(shù)據(jù)庫文件;

Statement Failure

1.試圖往表中插入非法數(shù)據(jù):需要程序前端做驗證,或者讓用戶修改數(shù)據(jù);

2.嘗試執(zhí)行某個操作時權(quán)限不足:需要dba授權(quán)某個對象權(quán)限或者系統(tǒng)權(quán)限;

3.嘗試分配空間失敗:開始可重新開始的空間分配,增加用戶的磁盤配額,對表空間添加空間;

4.應(yīng)用程序中的邏輯錯誤:需要開發(fā)人員去修改程序錯誤;

TIPS:這個過程大部分是因為設(shè)計錯誤,例如安全機制和配額規(guī)則;需要DBA參與進來處理錯誤,比如為用戶添加權(quán)限,分配空間,同時也要參與查看邏輯錯誤的過程;

User Process Failure

用戶突然中斷連接,異常結(jié)束或者是程序錯誤導(dǎo)致的會話中斷:不需要DBA去處理,實例后臺進程會回滾未提交的改變并釋放相關(guān)的鎖;

PMON后臺進程會階段性的檢查Server Processes,并檢查他們的會話是否連接;如果PMON發(fā)現(xiàn)某一個Server Process不再連接了,則會恢復(fù)增在進行的事務(wù)(回滾未提交事務(wù)和釋放相關(guān)的鎖);

如果是少量的錯誤則不需要關(guān)心,只需要讓用戶重新做一次相關(guān)操作即可;如果是大量的連接錯誤,則需要檢查是不是設(shè)置的processes參數(shù)太小了,或者對用戶進行培訓(xùn);

Network Failure

1.監(jiān)聽失敗:配置一個備用的的監(jiān)聽器進行連接超時的故障轉(zhuǎn)移;

2.NIC失敗:配置多個網(wǎng)卡;

3.網(wǎng)絡(luò)連接失敗:配置備用的網(wǎng)絡(luò)連接;

解決的方式就是通過做冗余來提供高可用;

User Error

1.用戶無意(inadvertently)刪除或者修改了數(shù)據(jù):如果沒有提交的話,不需要任何處理;否則需要使用閃回或者回退表;

2.用戶誤刪除了一個表:從回收站恢復(fù);如果使用了purge選項的話,則需要使用基于時間點的恢復(fù)(PITR, Point-in-time Recovery)來還原表;

Flashback Technology

1.查看數(shù)據(jù)之前的狀態(tài);

2.使數(shù)據(jù)在一個時間段內(nèi)反復(fù)的回放,類似于磁帶一樣可以前后倒帶(back and forth,反復(fù)的,來回的)

3.幫助用戶做錯誤分析和恢復(fù);

4.Error Analysis:

  • Flashback Query:閃回查詢,可以查看表中過去一個時間點已提交的數(shù)據(jù);使用AS OF子句;
  • Flashback Versions Query:閃回版本查詢,可以查看表中已提交的數(shù)據(jù)各個版本變化的過程;
  • Flashback Transaction Query:閃回事務(wù)查詢,可以查看事務(wù)級別數(shù)據(jù)庫的改變;

5.Error Recovery:

  • Flashback Transaction Backout:事務(wù)回退,可以回退指定的事務(wù)和它依賴的事務(wù);
  • Flashback Table:刪回表,可以回退一個或者多個表的內(nèi)容到之前的一個時間點,而不影響其它的數(shù)據(jù)庫對象;
  • Flashback Drop:從回收站中恢復(fù)已刪除的表;
  • Flashback Database:使整個數(shù)據(jù)庫都回退到過去的某個時間點

Instance Failure

1.典型的錯誤有斷電,硬件出錯,核心的后臺進程出錯,緊急關(guān)機等;一般不需要DBA的干預(yù),在實例啟動時會自動進行實例恢復(fù)的過程;

2.需要實例恢復(fù)時因為數(shù)據(jù)庫實例在關(guān)閉的之前沒有把內(nèi)存中的數(shù)據(jù)和數(shù)據(jù)文件進行同步;

Understanding Instance Recovery:CKPT Process

1.檢查點事件由CKPT后臺進程觸發(fā),當(dāng)檢查點發(fā)生時,CKPT進程會負(fù)責(zé)通知DBWR進程將臟數(shù)據(jù)(Dirty Buffer)寫出到數(shù)據(jù)文件中;CKPT進程的另外一個職責(zé)是負(fù)責(zé)更新數(shù)據(jù)文件頭和控制文件上的檢查點信息;

2.檢查點分為增量檢查點和全量檢查點兩種;

3.日志切換的過程中,CKPT進程也會把檢查點信息寫入到數(shù)據(jù)文件頭中;

4.檢查點存在的原因:

  • 保證內(nèi)存中修改的數(shù)據(jù)塊定期寫入磁盤,以至于在系統(tǒng)失敗或者數(shù)據(jù)庫失敗的時候不會丟失數(shù)據(jù);(數(shù)據(jù)有修改就寫入,影響性能)
  • 減少實例恢復(fù)的時間;(如果一直不寫入,效率高)
  • 保證關(guān)機的時候所有已提交的數(shù)據(jù)都寫入到了數(shù)據(jù)文件中

5.檢查點信息包括檢查點的位置,SCN,RBA(Recovery Block Address)和日志的信息等等

Understanding Instance Recovery:Redo Log Fiels and Log Writer

1.什么是事務(wù);

  • ACID特性:原子性(Atomicity),一致性(Consistency),隔離性(Isolation),持續(xù)性(Durability);
  • 事務(wù)是數(shù)據(jù)庫內(nèi)的邏輯單元,是有一條或者多條sql語句組成;
  • 在實例返回給用戶commit complete之前,必須把事務(wù)信息寫入到磁盤上,這樣就強制保證了數(shù)據(jù)在丟失之后可以被恢復(fù)

2.Redo log files:

  • 記錄了數(shù)據(jù)庫中的一切改變,以事務(wù)為單位;
  • 可以預(yù)防數(shù)據(jù)丟失,比如突然斷電,磁盤損壞等情況;
  • 推薦采用多路復(fù)用放在不同磁盤的方式,每隔在線日志組可以包含多個在線日志文件,它們互為鏡像;
  • LGWR進程對在線日志組中日志文件同時寫,是循環(huán)使用的存儲空間

3.LGWR進程出發(fā)的條件:

  • 事務(wù)提交時;
  • 每隔三秒鐘;
  • 在DBWn寫之前;
  • 在clean shutdown之前,即除了shutdown abort

Understanding Instance Recovery

1.數(shù)據(jù)庫的實例恢復(fù)是自動完成的;

2.主要是因為沒有正常的關(guān)閉數(shù)據(jù)庫,在數(shù)據(jù)庫啟動時檢查數(shù)據(jù)文件與控制文件中記錄的信息不一致,數(shù)據(jù)庫判斷需要做實例恢復(fù);

3.需要做的工作是使用在線日志組的內(nèi)容來同步數(shù)據(jù)文件,主要包含兩個過程:

  • 前滾:把redo log file中記錄的日志條目都重新做一邊,包括提交和未提交的;
  • 回滾:把未提交的事務(wù)都回滾掉

Phases of Instance Recovery

1.當(dāng)數(shù)據(jù)庫啟動到mount狀態(tài)后,要打開數(shù)據(jù)文件,此時要檢查數(shù)據(jù)文件頭記錄的SCN和控制文件中記錄的SCN是否一致;如果一致的話就正常打開數(shù)據(jù)庫;

2.如果不一致的話,實例會按照順序應(yīng)用在線重做日志中的改變,提交和未提交的事務(wù)都在這個階段被重新執(zhí)行;

3.當(dāng)數(shù)據(jù)文件和控制文件同步之后,會打開數(shù)據(jù)庫,用戶可以登錄并進行操作;

4.之后會讀取UNDO中數(shù)據(jù)來回滾為提交的事務(wù);最終,只有提交的數(shù)據(jù)會保留

Tuning Instance Recovery

1.實例恢復(fù)的過程中,會從上次發(fā)生checkpoint的位置一直應(yīng)用到在線日志的末尾處;

2.所以,實例恢復(fù)調(diào)優(yōu)本質(zhì)就是控制檢查點到日志結(jié)尾的距離(事務(wù)量);

3.為了數(shù)據(jù)庫性能,要隔一段時間才把Buffer Cache中的臟數(shù)據(jù)寫入到數(shù)據(jù)文件,因為DBWRn進程要比LGWR進程慢很多;

4.每隔3s,CKPT進程會把redo log中當(dāng)前的checkpoint位置寫入到控制文件中,因此數(shù)據(jù)庫就知道在線日志組中哪些日志實體是在恢復(fù)中需要的,哪些是不需要的;

eg:控制文件的心跳就是3s一次,可以通過3s轉(zhuǎn)儲2次控制文件信息查看,也可以通過alert文件查看;

5.實例恢復(fù)的時間就是應(yīng)用上次checkpoint的位置到控制文件總記錄***SCN的位置這些日志所需要的時間,DBA通過設(shè)置fast_start_mttr_target參數(shù)和設(shè)置在線日志組大小來控制這個時間(數(shù)據(jù)庫內(nèi)部機制保證了,上次發(fā)生檢查點的位置到在線日志結(jié)尾的距離不能超過日志組中最小日志文件的90%)

Using the MTTR Advisor

1.指定實例恢復(fù)的期望時間,可以使用EM操作也可以在sqlplus中設(shè)置(show parameter fast_start_mttr_target);

2.默認(rèn)值是0,即禁用,由系統(tǒng)自行決定;如果設(shè)置了fast_start_mttr_target的值,則由MTTR向?qū)?EM->Advisor Central->MTTR Advisor)轉(zhuǎn)換這個值來設(shè)置其它參數(shù)來達(dá)到期望的時間內(nèi)恢復(fù);

3.***值是3600s;

4.tips:如果fast_start_mttr_target這個值設(shè)置太小的話,會增加I/O負(fù)載,如果太大的話,則恢復(fù)時間太長;

Media Failure

1.磁盤驅(qū)動器,磁盤控制器損壞,或者數(shù)據(jù)文件被刪除/損壞;主要是包括數(shù)據(jù)文件,控制文件或者在線日志文件損壞;

2.從備份中還原,如果必要的話把數(shù)據(jù)庫還原到一個新的位置等;

Configuring for Recoverability

為了配置數(shù)據(jù)庫的***可恢復(fù)行,必須做的幾項操作:

1.制定常規(guī)備份策略:大部分的媒體錯誤都需要從備份中恢復(fù)損壞或者丟失的文件;

2.控制文件多路復(fù)用:相當(dāng)于數(shù)據(jù)庫的大腦,推薦使用至少兩份控制文件,如果所有控制文件都丟失恢復(fù)起來相當(dāng)困難;

3.在線日志組多路復(fù)用:在實例恢復(fù)和媒體恢復(fù)時都需要使用到在線聯(lián)機日志,用于對提交事務(wù)的前滾操作;如果丟失在線聯(lián)機日志的話,就可能丟失數(shù)據(jù),推薦每個日志組至少包含兩個日志文件并且放在不同的磁盤上

4.打開歸檔模式:如果一個數(shù)據(jù)文件丟失的話,從備份中恢復(fù)需要使用到備份后所有的日志文件,在線聯(lián)機日志文件是循環(huán)使用的,內(nèi)容會被覆蓋,所以需要把內(nèi)容拷貝到歸檔日志文件中;就是所謂的歸檔模式,雖然打開之后會對數(shù)據(jù)庫性能有一定影響,但是這個是非常有必要的;查看命令archive log list

Configuring the Fast Recovery Area

1.快速閃回區(qū)是一塊存儲空間,用來存放歸檔日志,備份,閃回日志,多路復(fù)用的控制文件和多路復(fù)用的在線日志文件;

2.強烈推薦用于備份存儲管理,應(yīng)該把這個目錄與數(shù)據(jù)庫的數(shù)據(jù)文件,控制文件,主要在線日志文件的目錄放在不同的磁盤上;

3.快速閃回區(qū)的空間理論上是越大越好,但是推薦至少是數(shù)據(jù)庫文件(數(shù)據(jù)文件,在線日志文件,控制文件等)大小的兩倍;

4.快速閃回區(qū)中的內(nèi)容自動被備份保留策略管理,Oracle數(shù)據(jù)庫會自動刪除那些還原不需要的文件;rman target /;show all;

5.設(shè)置快速閃回區(qū):設(shè)置db_recovery_file_dest_size和db_recovery_file_dest參數(shù);有順序設(shè)置

Multiplexing Control Files

1.控制文件是一個非常小的二進制文件,用來描述數(shù)據(jù)庫結(jié)構(gòu)信息;在數(shù)據(jù)庫mount或者open狀態(tài)下,必須可用;如果沒有控制文件的話,數(shù)據(jù)庫不能被mount,此時可以還原控制文件或者重建重置文件;

2.如果丟失一個控制文件的話,恢復(fù)很簡單,只需要做個拷貝即可;如果全部丟失的話,恢復(fù)起來非常困難,但是也不算是個災(zāi)難;

3.如果使用ASM的話,在+DATA和+FRA各放一份控制文件即可;

4.如果是文件系統(tǒng)的話,推薦至少兩份拷貝,而且放在不同的磁盤上,增加控制文件的步驟:

  • 修改spfile中初始化參數(shù):ALTER SYSTEM SET control_files='/u01/app/oracle/oradata/ORCL/control01.ctl','/u01/app/oracle/fast_recovery_area/ORCL/control02.ctl','/u01/app/oracle/oradata/ORCL/control03.ctl' scope=spfile;
  • 關(guān)閉數(shù)據(jù)庫:shutdown immediate;
  • 拷貝文件:cp/u01/app/oracle/oradata/ORCL/control01.ctl/u01/app/oracle/oradata/ORCL/control03.ctl;
  • 啟動數(shù)據(jù)庫:startup;

Redo Log Files

1.每個聯(lián)機在線日志組中可以包含1個或者多個在線聯(lián)機日志文件,一組中的多個文件互為拷貝;目的是用來預(yù)防媒體錯誤或者數(shù)據(jù)丟失,但是多個數(shù)據(jù)文件會增加數(shù)據(jù)庫的I/O(事務(wù)只有當(dāng)日志條目寫入到磁盤之后才能返回成功,所以必須把聯(lián)機日志文件放在快速磁盤上,而且要把不同的文件放在不同的磁盤上,因為一次只能寫一個文件,而且如果磁盤損壞的話也有備份);

2.建議每個日志組至少兩個文件,如果是文件系統(tǒng)的話分別放在不同的磁盤上,如果是ASM的話分別放在+DATA和+FRA即可;

3.如果丟失日志組中的一個成員的話,不會影響數(shù)據(jù)庫的操作,但是會在alert日志中寫警告;如果丟失一個日志組的話,會發(fā)生驗證的媒體錯誤,導(dǎo)致丟失數(shù)據(jù);恢復(fù)的方式會在管理2中介紹;

Multiplexing the Redo Log

1.通過EM添加在線日志組和在線日志文件,EM->Server->Redo Log Groups;

2.通過sqlplus添加在線日志組合在線日志文件;

  • 查看當(dāng)前日志組狀況:SELECT * FROM v$logfile;
  • 日志文件組中添加數(shù)據(jù)文件:ALTER DATABASE ADD LOGFILE MEMBER '/u01/app/oracle/oradata/ORCL/redo01A.log' TO GROUP 1;
  • 添加日志文件組:ALTER DATABASE ADD LOGFILE GROUP 4 ('/u01/app/oracle/oradata/ORCL/redo04A.log','/u01/app/oracle/oradata/ORCL/redo04B.log') SIZE 50M;

Archive Log Files

1.因為在線聯(lián)機日志組是一個循環(huán)使用的內(nèi)存,為了數(shù)據(jù)庫的***可恢復(fù)性,需要在聯(lián)機日志文件組在被覆蓋之前做一個拷貝,稱之為歸檔日志;

2.配置歸檔日志需要有三個步驟:

  • 指定歸檔日志的命名規(guī)則;
  • 指定一個或者多個歸檔日志的路徑;
  • 設(shè)置數(shù)據(jù)庫到歸檔模式,之前歸檔日志路徑必須存在;

3.如果使用了快速閃回區(qū)的話,那么可以不用設(shè)置前兩步

Archiver(ARCn) Process

1.是一個可選的后臺進程,當(dāng)數(shù)據(jù)庫為ARCHIVELOG模式的時候自動啟動; ps -ef | grep arc;

2.保存數(shù)據(jù)庫中所有的改變,由log_archive_max_processes參數(shù)控制進程的個數(shù);

3.歸檔模式下,每次發(fā)生log switch時調(diào)用archive進程;非歸檔模式下沒有這個進程

Archive Log File:Naming and Destinations

1.使用EM修改:EM->Availability->Configure Recovery Settings;

2.使用sqlplus修改log_archive_format參數(shù),推薦為%t_%s_%r.dbf;

  • %s:sequence number,日志文件的序號;
  • %t:thread,線程號;
  • %r:resetlogs id,主要是為了保證以resetlogs模式打開數(shù)據(jù)庫后歸檔日志的名字能保證唯一性,10g之后的新特性;
  • %d:database id,數(shù)據(jù)庫id,只有在多個數(shù)據(jù)庫共享歸檔日志路徑時才會使用

3.默認(rèn)的,如果開啟了快速閃回區(qū),則USE_DB_RECOVERY_FILE_DEST就指定了歸檔日志文件的路徑;如果想修改為其它路徑的話,則ALTER SYSTEM SET log_archive_dest_1='location=/path';

4.11gR2中可以最多寫入到31個不同的目錄,由log_archive_dest_n參數(shù)指定,目標(biāo)路徑可以是本地的也可以是遠(yuǎn)程的

Enabling ARCHIVELOG Mode

sqlplus / as sysdba

shutdown immediate

startup mount

alter database archivelog;

archive log list;

alter database open; 

責(zé)任編輯:龐桂玉 來源: Oracle疑點通
相關(guān)推薦

2018-01-08 19:17:21

數(shù)據(jù)庫Oracle重啟

2011-03-14 13:33:32

Oracle數(shù)據(jù)庫啟動

2021-01-13 11:42:52

分庫分表數(shù)據(jù)庫瓶頸

2011-03-21 12:51:16

Oracle數(shù)據(jù)庫表連接

2010-04-19 16:08:31

Oracle數(shù)據(jù)庫

2018-09-13 14:51:43

NoSQL數(shù)據(jù)庫大數(shù)據(jù)

2010-04-14 17:46:10

Oracle數(shù)據(jù)庫

2018-01-03 08:52:27

MySQL數(shù)據(jù)庫級別

2010-04-22 17:36:51

Oracle數(shù)據(jù)庫

2019-09-20 21:50:47

數(shù)據(jù)庫緩存

2020-02-27 09:00:00

數(shù)據(jù)庫設(shè)計工具

2022-09-20 19:37:08

MySQL

2009-12-14 15:29:48

解決方案SOA安全

2010-01-12 12:15:25

SOA安全解決方案

2017-02-28 14:28:37

數(shù)據(jù)跨庫分頁架構(gòu)

2021-10-10 22:10:47

手機開機電池

2019-04-03 05:04:50

2011-08-02 17:26:38

Oracle數(shù)據(jù)庫遠(yuǎn)程連接

2017-11-23 09:53:16

2024-05-22 19:10:18

跨域Web開發(fā)
點贊
收藏

51CTO技術(shù)棧公眾號