commit --lgwr
- 事務(wù)相關(guān)的操作怠硼,保證事務(wù)的安全
checkpoint --dbwr
- 數(shù)據(jù)相關(guān)的操作,保證數(shù)據(jù)的安全
實(shí)例的恢復(fù) crash recovery
什么時(shí)候發(fā)生oracle實(shí)例恢復(fù)
- shutdown abort
- 數(shù)據(jù)庫異常down掉(機(jī)器死機(jī)趾断,掉電)
從Redo的什么位置開始恢復(fù)拒名?
在某一點(diǎn),在這一點(diǎn)之前的所有數(shù)據(jù)芋酌,Oracle都已經(jīng)成功的寫入到了磁盤上增显。
實(shí)例恢復(fù)是一個(gè)自動(dòng)的過程,不需要人工干預(yù)
實(shí)例恢復(fù)發(fā)生在那個(gè)階段脐帝?
–sql>startup nomount(讀取spfle) 同云,沒有實(shí)例恢復(fù)。
–sql>alter database mount (讀取控制文件)堵腹,沒有實(shí)例恢復(fù)炸站。
–sql>alter database open (檢查控制文件,數(shù)據(jù)文件頭)疚顷,發(fā)生實(shí)例恢復(fù)旱易。
- 如果直接startup命令禁偎,會(huì)經(jīng)過啟動(dòng)裝載打開三個(gè)步驟。
SQL> shutdown abort;
ORACLE 例程已經(jīng)關(guān)閉阀坏。
SQL> startup;
ORACLE 例程已經(jīng)啟動(dòng)如暖。
Total System Global Area 3307048960 bytes
Fixed Size 2180264 bytes
Variable Size 1828719448 bytes
Database Buffers 1459617792 bytes
Redo Buffers 16531456 bytes
數(shù)據(jù)庫裝載完畢。
數(shù)據(jù)庫已經(jīng)打開忌堂。
SQL> shutdown abort;
ORACLE 例程已經(jīng)關(guān)閉盒至。
SQL> startup nomount;
ORACLE 例程已經(jīng)啟動(dòng)。
Total System Global Area 3307048960 bytes
Fixed Size 2180264 bytes
Variable Size 1828719448 bytes
Database Buffers 1459617792 bytes
Redo Buffers 16531456 bytes
SQL> alter database mount;
數(shù)據(jù)庫已更改士修。
SQL> alter database open;
數(shù)據(jù)庫已更改枷遂。
oracle在打開數(shù)據(jù)庫時(shí)(alter database open),會(huì)檢查每個(gè)文件頭上的信息(SCN)棋嘲,并同控制文件中相應(yīng)的信息(SCN)比較酒唉,如果不一致就進(jìn)行實(shí)例恢復(fù)。
實(shí)例恢復(fù)的過程
- 前滾rolling forward
讀取狀態(tài)為current和active狀態(tài)的日志(redo log)沸移,將發(fā)生crash時(shí)黔州,沒有來得及寫磁盤的數(shù)據(jù)塊,使用redo信息來恢復(fù)阔籽。
- 打開數(shù)據(jù)庫alter database open
- 回滾rolling back
將沒有提交的事務(wù)進(jìn)行回滾
介質(zhì)恢復(fù)
當(dāng)發(fā)生以下情況時(shí),實(shí)例恢復(fù)無效牲蜀,需要進(jìn)行介質(zhì)恢復(fù):
- 數(shù)據(jù)文件丟失笆制,損壞。
- 在線日志文件(onlineredo)丟失涣达,損壞在辆。
- 數(shù)據(jù)文件太舊(比如從一個(gè)備份集中恢復(fù)過來的文件。)
- 文件太新(比如度苔,其它所有的文件都是從備份中恢復(fù)過來的)
數(shù)據(jù)損壞時(shí)基本都要進(jìn)行介質(zhì)恢復(fù)
Oracle的備份方式
Rman(物理備份)--Recovery Manager
備份和還原數(shù)據(jù)庫文件匆篓、歸檔日志和控制文件。它也可以用來執(zhí)行完全或不完全的數(shù)據(jù)庫恢復(fù)寇窑。
Rman比較慢鸦概,相同情況下一般使用Dataguard
Rman是是oracle數(shù)據(jù)庫自帶的一個(gè)備份工具,用Rman備份的步驟如下:
C:\Users\clg>sqlplus / as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on 星期二 3月 8 17:33:37 2016
Copyright (c) 1982, 2010, Oracle. All rights reserved.
連接到:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> alter database open;
數(shù)據(jù)庫已更改甩骏。
SQL> quit;
從 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 斷
開
C:\Users\clg>rman target /
恢復(fù)管理器: Release 11.2.0.1.0 - Production on 星期二 3月 8 17:34:10 2016
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
連接到目標(biāo)數(shù)據(jù)庫: ORCL (DBID=1433387646)
RMAN> backup database;
啟動(dòng) backup 于 08-3月 -16
使用目標(biāo)數(shù)據(jù)庫控制文件替代恢復(fù)目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: SID=134 設(shè)備類型=DISK
通道 ORA_DISK_1: 正在啟動(dòng)全部數(shù)據(jù)文件備份集
通道 ORA_DISK_1: 正在指定備份集內(nèi)的數(shù)據(jù)文件
輸入數(shù)據(jù)文件: 文件號(hào)=00001 名稱=D:\APP\CLG\ORADATA\ORCL\SYSTEM01.DBF
輸入數(shù)據(jù)文件: 文件號(hào)=00002 名稱=D:\APP\CLG\ORADATA\ORCL\SYSAUX01.DBF
輸入數(shù)據(jù)文件: 文件號(hào)=00003 名稱=D:\APP\CLG\ORADATA\ORCL\UNDOTBS01.DBF
輸入數(shù)據(jù)文件: 文件號(hào)=00005 名稱=D:\APP\CLG\ORADATA\ORCL\EXAMPLE01.DBF
輸入數(shù)據(jù)文件: 文件號(hào)=00004 名稱=D:\APP\CLG\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 正在啟動(dòng)段 1 于 08-3月 -16
通道 ORA_DISK_1: 已完成段 1 于 08-3月 -16
段句柄=D:\APP\CLG\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2016_03_08\O1_MF_NNNDF_TAG2
0160308T173510_CFX76H7L_.BKP 標(biāo)記=TAG20160308T173510 注釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經(jīng)過時(shí)間:00:00:35
通道 ORA_DISK_1: 正在啟動(dòng)全部數(shù)據(jù)文件備份集
通道 ORA_DISK_1: 正在指定備份集內(nèi)的數(shù)據(jù)文件
備份集內(nèi)包括當(dāng)前控制文件
備份集內(nèi)包括當(dāng)前的 SPFILE
通道 ORA_DISK_1: 正在啟動(dòng)段 1 于 08-3月 -16
通道 ORA_DISK_1: 已完成段 1 于 08-3月 -16
段句柄=D:\APP\CLG\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2016_03_08\O1_MF_NCSNF_TAG2
0160308T173510_CFX77M5Q_.BKP 標(biāo)記=TAG20160308T173510 注釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經(jīng)過時(shí)間:00:00:01
完成 backup 于 08-3月 -16
如果這是備份表空間窗市,可以用一下語句實(shí)現(xiàn)
SQL> select tablespace_name from dba_tablespaces;
TABLESPACE_NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
TEMP
USERS
EXAMPLE
已選擇6行。
SQL> quit;
C:\Users\clg>rman target /
RMAN>
RMAN> backup tablespace users;
這樣就可以備份制定的表空間饮笛。
exp,expdp(邏輯備份)
–用戶咨察,數(shù)據(jù)庫對(duì)象(表,分區(qū)...)
只讀表空間+傳遞表空間
OLAP(Online Analytical Process)數(shù)據(jù)庫的一種備份方案
Dataguard--重點(diǎn)
最簡(jiǎn)單的備份方案
- 備份自動(dòng)
- 故障恢復(fù)時(shí)間非常短
缺點(diǎn)和限制
- 需要數(shù)據(jù)庫歸檔(OLAP類型的數(shù)據(jù)庫不適宜歸檔)
- 對(duì)于海量數(shù)據(jù)不合適
Oracle的閃回技術(shù)--flashback
數(shù)據(jù)庫的閃回
默認(rèn)數(shù)據(jù)庫的閃回是關(guān)閉的福青。
可以用以下命令查詢看是否是開啟的
select flashback_on from v$database;
可以用以下命令開啟摄狱,建議開啟flashback
alter database flashback on;
基于SCN的閃回
一般不太容易知道SCN脓诡,不易獲得SCN
基于時(shí)間的閃回
數(shù)據(jù)庫閃回到具體時(shí)間
表的閃回
system用戶刪除的table不進(jìn)recyclebin,普通用戶刪除的table會(huì)進(jìn)入recyclebin。具體如下:
SQL> show user;
USER 為 "SYS"
SQL> create table t1(id int);
表已創(chuàng)建媒役。
SQL> drop table t1;
表已刪除祝谚。
SQL> show recyclebin;
SQL> SELECT * FROM RECYCLEBIN;
未選定行
/*可見回收站中并沒有t1表*/
SQL> conn liuyifei/a4852396
已連接。
SQL> create table t1(id int);
表已創(chuàng)建刊愚。
SQL> drop table t1;
表已刪除踊跟。
SQL> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
T1 BIN$EqiCMfIYSHGQW4KrIX0Alg==$0 TABLE 2016-03-08:19:20:23
SQL> flashback table t1 to before drop;
閃回完成。
SQL> desc t1;
名稱 是否為空? 類型
----------------------------------------- -------- ----------------------------
ID NUMBER(38)
徹底刪除表鸥诽,不進(jìn)入回收站的辦法
SQL> drop table t1 purge;
關(guān)于回收站的資料如下:
http://www.jb51.net/article/34733.htm
DML操作的閃回
事務(wù)的閃回
版本的閃回
上面三種閃回后面在進(jìn)行補(bǔ)充
以下是關(guān)于歸檔模式和非歸檔模式的知識(shí):
歸檔模式轉(zhuǎn)換為非歸檔模式:
查看數(shù)據(jù)庫是否是歸檔模式:兩種方式
SQL> select name,log_mode from v$database;
NAME LOG_MODE
--------- ------------
ORCL NOARCHIVELOG
SQL> archive log list;
數(shù)據(jù)庫日志模式 非存檔模式
自動(dòng)存檔 禁用
存檔終點(diǎn) USE_DB_RECOVERY_FILE_DEST
最早的聯(lián)機(jī)日志序列 28
當(dāng)前日志序列 30
非歸檔模式轉(zhuǎn)換為歸檔模式:
SQL>SHUTDOWN NORMAL/IMMEDIATE; 先down下數(shù)據(jù)
SQL>START MOUNT; 啟動(dòng)數(shù)據(jù)庫實(shí)例到mount狀態(tài)商玫,但不要打開
SQL>ALTER DATABASE ARCHIVELOG; 設(shè)置數(shù)據(jù)庫為歸檔日志模式
SQL>ALTER DATABASE OPEN; 打開數(shù)據(jù)庫
SQL>archive log list; 確認(rèn)數(shù)據(jù)庫現(xiàn)在處于歸檔日志模式
一般設(shè)置數(shù)據(jù)庫為歸檔日志模式時(shí)會(huì)出現(xiàn)如下錯(cuò)誤:
ORA-00265: 要求實(shí)例恢復(fù), 無法設(shè)置 ARCHIVELOG 模式
這是我們可以按照如下步驟解決:
SQL> alter database archivelog;
alter database archivelog
*
第 1 行出現(xiàn)錯(cuò)誤:
ORA-00265: 要求實(shí)例恢復(fù), 無法設(shè)置 ARCHIVELOG 模式
SQL> shutdown immediate;
ORA-01109: 數(shù)據(jù)庫未打開
已經(jīng)卸載數(shù)據(jù)庫。
ORACLE 例程已經(jīng)關(guān)閉牡借。
SQL> startup restrict;
ORACLE 例程已經(jīng)啟動(dòng)拳昌。
Total System Global Area 3307048960 bytes
Fixed Size 2180264 bytes
Variable Size 1828719448 bytes
Database Buffers 1459617792 bytes
Redo Buffers 16531456 bytes
數(shù)據(jù)庫裝載完畢。
數(shù)據(jù)庫已經(jīng)打開钠龙。
SQL> shutdown immediate;
數(shù)據(jù)庫已經(jīng)關(guān)閉炬藤。
已經(jīng)卸載數(shù)據(jù)庫。
ORACLE 例程已經(jīng)關(guān)閉碴里。
SQL> startup mount;
ORACLE 例程已經(jīng)啟動(dòng)沈矿。
Total System Global Area 3307048960 bytes
Fixed Size 2180264 bytes
Variable Size 1828719448 bytes
Database Buffers 1459617792 bytes
Redo Buffers 16531456 bytes
數(shù)據(jù)庫裝載完畢。
SQL> archive log list;
數(shù)據(jù)庫日志模式 非存檔模式
自動(dòng)存檔 禁用
存檔終點(diǎn) USE_DB_RECOVERY_FILE_DEST
最早的聯(lián)機(jī)日志序列 30
當(dāng)前日志序列 32
SQL> alter database archivelog;
數(shù)據(jù)庫已更改咬腋。
SQL> archive log list;
數(shù)據(jù)庫日志模式 存檔模式
自動(dòng)存檔 啟用
存檔終點(diǎn) USE_DB_RECOVERY_FILE_DEST
最早的聯(lián)機(jī)日志序列 30
下一個(gè)存檔日志序列 32
當(dāng)前日志序列 32
SQL> alter database open;
數(shù)據(jù)庫已更改羹膳。
記得幫我點(diǎn)贊哦!
精心整理了計(jì)算機(jī)各個(gè)方向的從入門根竿、進(jìn)階陵像、實(shí)戰(zhàn)的視頻課程和電子書,按照目錄合理分類寇壳,總能找到你需要的學(xué)習(xí)資料醒颖,還在等什么?快去關(guān)注下載吧?茄住E⑶浮!
念念不忘匿辩,必有回響疏日,小伙伴們幫我點(diǎn)個(gè)贊吧,非常感謝撒汉。
我是職場(chǎng)亮哥沟优,YY高級(jí)軟件工程師、四年工作經(jīng)驗(yàn)睬辐,拒絕咸魚爭(zhēng)當(dāng)龍頭的斜杠程序員挠阁。
聽我說宾肺,進(jìn)步多,程序人生一把梭
如果有幸能幫到你侵俗,請(qǐng)幫我點(diǎn)個(gè)【贊】锨用,給個(gè)關(guān)注,如果能順帶評(píng)論給個(gè)鼓勵(lì)隘谣,將不勝感激增拥。
職場(chǎng)亮哥文章列表:更多文章
本人所有文章、回答都與版權(quán)保護(hù)平臺(tái)有合作寻歧,著作權(quán)歸職場(chǎng)亮哥所有掌栅,未經(jīng)授權(quán),轉(zhuǎn)載必究码泛!