Oracle數(shù)據(jù)庫備份和恢復(fù)

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⑶浮!

resource-introduce

念念不忘匿辩,必有回響疏日,小伙伴們幫我點(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)載必究码泛!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末猾封,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子噪珊,更是在濱河造成了極大的恐慌晌缘,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,525評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件痢站,死亡現(xiàn)場(chǎng)離奇詭異磷箕,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)阵难,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門搀捷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人多望,你說我怎么就攤上這事∏夂妫” “怎么了怀偷?”我有些...
    開封第一講書人閱讀 164,862評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)播玖。 經(jīng)常有香客問我椎工,道長(zhǎng),這世上最難降的妖魔是什么蜀踏? 我笑而不...
    開封第一講書人閱讀 58,728評(píng)論 1 294
  • 正文 為了忘掉前任维蒙,我火速辦了婚禮,結(jié)果婚禮上果覆,老公的妹妹穿的比我還像新娘颅痊。我一直安慰自己,他們只是感情好局待,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評(píng)論 6 392
  • 文/花漫 我一把揭開白布斑响。 她就那樣靜靜地躺著菱属,像睡著了一般。 火紅的嫁衣襯著肌膚如雪舰罚。 梳的紋絲不亂的頭發(fā)上纽门,一...
    開封第一講書人閱讀 51,590評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音营罢,去河邊找鬼赏陵。 笑死,一個(gè)胖子當(dāng)著我的面吹牛饲漾,可吹牛的內(nèi)容都是我干的蝙搔。 我是一名探鬼主播栈顷,決...
    沈念sama閱讀 40,330評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼丧靡,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼樊卓!你這毒婦竟也來了鹅颊?” 一聲冷哼從身側(cè)響起氯质,我...
    開封第一講書人閱讀 39,244評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤姜钳,失蹤者是張志新(化名)和其女友劉穎劈愚,沒想到半個(gè)月后疫铜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體镜硕,經(jīng)...
    沈念sama閱讀 45,693評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡运翼,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了兴枯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片血淌。...
    茶點(diǎn)故事閱讀 40,001評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖财剖,靈堂內(nèi)的尸體忽然破棺而出悠夯,到底是詐尸還是另有隱情,我是刑警寧澤躺坟,帶...
    沈念sama閱讀 35,723評(píng)論 5 346
  • 正文 年R本政府宣布沦补,位于F島的核電站,受9級(jí)特大地震影響咪橙,放射性物質(zhì)發(fā)生泄漏夕膀。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評(píng)論 3 330
  • 文/蒙蒙 一美侦、第九天 我趴在偏房一處隱蔽的房頂上張望产舞。 院中可真熱鬧,春花似錦菠剩、人聲如沸易猫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽擦囊。三九已至违霞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瞬场,已是汗流浹背买鸽。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評(píng)論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留贯被,地道東北人眼五。 一個(gè)月前我還...
    沈念sama閱讀 48,191評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像彤灶,于是被迫代替她去往敵國和親看幼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評(píng)論 2 355