控制SCN在備份時不發生變化進行物理拷貝解凍塊頭-->讓SCN可以變化(當對SCN解凍后,系統會自動更新S" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Oracle 熱備份

系統 1960 0

--=======================

-- Oracle 熱備份

--=======================

?

??? Oracle 熱備份是指數據庫處于 open 狀態下,對數據庫的數據文件、控制文件、參數文件、密碼文件等進行一系列備份操作。

熱備是基于用戶管理備份恢復的一種方式,也是除了 RMAN 備份之外較為常用的一種備份方式。

?

一、熱備的過程

??? 凍結塊頭 --> 控制 SCN 在備份時不發生變化

??? 進行物理拷貝

??? 解凍塊頭 --> SCN 可以變化 ( 當對 SCN 解凍后,系統會自動更新 SCN 至最新的狀態 )

?

二、基于數據庫的熱備

??? alter database begin backup ;

??? 拷貝所有的 datafile 到備份目錄

??? alter database end backup ;

?

三、基于表空間的熱備

??? alter tablespace tablespace_name begin backup ;

??? 拷貝 tablespace_name 表空間的數據文件到備份目錄

??? alter tablespace tablespace_name end backup ;

?

??? alter tablespace tablespace_name begin backup 時完成的任務

??????? 檢查點事件發生,檢查點通知 DBWn 將該表空間上所有的臟數據被寫入到磁盤

??????? 在數據文件頭部凍結當前檢查點事件發生時的 SCN

??????? 所有發生變化數據塊的完整鏡像 ( 修改前后 ) 被寫入到 redo log

??????? 允許該表空間內數據的正常讀寫

?

??? 建議使用基于表空間的熱備,這樣將盡可能的減少對系統性能的影響 ???

?

四、控制文件的熱備

??? alter database backup controlfile to '<dir>' ; ????????? -- 控制文件的完整備份

??? alter database backup controlfile to trace as '<dir>' ? -- 用于創建控制文件的語句,丟失了部分信息

??? 控制文件發生變化情況

??????? alter database [add |drop] logfile

??????? alter database [add |drop] logfile member

??????? alter database [add |drop] logfile group

??????? alter database [archivelog |noarchivelog]

??????? alter database rename file

??????? create tablespace

??????? alter tablespace [add | rename] datafile

??????? alter tablespace [read write | read only]

??????? drop tablespace

??? 更多關于控制文件請參考: Oracle 控制文件

???

五、參數文件的熱備

??? create pfile from spfile ;

??? create pfile = '<dir>' from spfile ;

??? 更多關于參數文件請參考: Oracle 參數文件

???

六、臨時表空間的數據文件、日志文件不需要備份

??? -- 查看臨時表空間

??????? SQL > select tablespace_name from dba_temp_files ;

?

??????? TABLESPACE_NAME

??????? ------------------------------

??????? TEMP

???

??? -- 查看臨時表空間的數據文件

??????? SQL > select name from v$tempfile ;

?

??????? NAME

??????? ------------------------------------------------------

??????? / u01 / app / oracle / oradata / orcl / temp01 . dbf

???

??? -- 將臨時表空間置為備份模式,收到了錯誤的提示

??????? SQL > alter tablespace temp begin backup ;

??????? alter tablespace temp begin backup

??????? *

??????? ERROR at line 1 :

??????? ORA - 03217 : invalid option for alter of TEMPORARY TABLESPACE

?

??? -- 將臨時表空間置為備份模式,收到了錯誤的提示

??????? SQL > alter temporary tablespace temp begin backup ;

??????? alter temporary tablespace temp begin backup

??????????? ? *

??????? ERROR at line 1 :

??????? ORA - 00940 : invalid ALTER command

?

七、熱備腳本

??? 1. 基于數據庫熱備的腳本

??????? SQL > ho cat / tmp / tmphotbak . sql ;

??????????? set feedback off

??????????? set heading off

??????????? set verify off

??????????? set trimspool off

??????????? set pagesize 0

??????????? set linesize 200

??????????? define dir = '/u01/app/oracle/hotbak'

??????????? define script = '/tmp/hotbak.sql'

??????????? spool & script

??????????? select 'ho cp ' || name|| ' &dir' ? from v$datafile ;

??????????? spool off

??????????? alter database begin backup ;

??????????? start & script

??????????? alter database end backup ;

??????????? alter database backup controlfile to '&dir/controlbak.ctl' ;

??????????? create pfile = '&dir/initorcl.ora' from spfile ;

??????? SQL > start / tmp / tmphotbak . sql ; ? -- 執行該腳本即可對數據庫進行熱備

???????

??? 2. 基于表空間熱備的腳本

??????? SQL > ho cat / tmp / tmphotbak_tb . sql

??????????? set feedback off

??????????? set heading off

??????????? set verify off

??????????? set trimspool off

??????????? set pagesize 0

??????????? set linesize 200

??????????? define dir = '/u01/app/oracle/hotbak'

??????????? define script = '/tmp/hotbak_tb.sql'

??????????? ho rm & script

??????????? ho rm & dir /* ?

??????????? spool & script

??????????? select 'alter tablespace ' || tablespace_name || ' begin backup ;' ||

??????????? ? chr ( 10 )|| 'ho cp ' || file_name || ' &dir ' ||

??????????? ? chr ( 10 )|| 'alter tablespace ' || tablespace_name || ' end backup;'

??????????? ? from dba_data_files order by tablespace_name ;

??????????? spool off

??????????? start & script

??????????? alter database backup controlfile to '&dir/controlbak.ctl' ;

??????????? create pfile = '&dir/initorcl.ora' from spfile ;

??????? SQL > start / tmp / tmphotbak . sql ; ? -- 執行該腳本即可對數據庫基于表空間進行熱備

???????

八、備份的相關視圖

??? v$backup

???

??? SQL > desc v$backup ;

??? ? Name ????????????????????????????????????? Null ? ??? Type

??? ? ----------------------------------------- -------- ---------------------

??? ? FILE# ????????????????????????????????????????????? NUMBER

??? ? STATUS ???????????????????????????????????????????? VARCHAR2 ( 18 )

??? ? CHANGE# ??????????????????????????????????????????? NUMBER ?? -- 記錄備份時的 SCN

??? ? TIME ?????????????????????????????????????????????? DATE

?

??? SQL > select * from v$backup ; ?? -- 狀態為 NOT ACTIVE , 此時沒有任何數據處于備份狀態

?

??????? ? FILE# STATUS ??????????????? CHANGE# TIME

??? ---------- ------------------ ---------- ---------

??????????? ? 1 NOT ACTIVE ??????????? 1006747 16 - AUG - 10

??????????? ? 2 NOT ACTIVE ??????????? 1006793 16 - AUG - 10

??????????? ? 3 NOT ACTIVE ??????????? 1006729 16 - AUG - 10

??????????? ? 4 NOT ACTIVE ??????????? 1006807 16 - AUG - 10

??????????? ? 5 NOT ACTIVE ??????????? 1006717 16 - AUG - 10

?

??? SQL > alter tablespace users begin backup ; ? -- 對表空間 users 進行熱備

?

??? Tablespace altered .

?

??? SQL > select * from v$backup ; ?? -- 對應的 file# 為的處于 ACTIVE 狀態

?

??????? ? FILE# STATUS ??????????????? CHANGE# TIME

??? ---------- ------------------ ---------- ---------

??????????? ? 1 NOT ACTIVE ??????????? 1006747 16 - AUG - 10

??????????? ? 2 NOT ACTIVE ??????????? 1006793 16 - AUG - 10

??????????? ? 3 NOT ACTIVE ??????????? 1006729 16 - AUG - 10

??????????? ? 4 ACTIVE ??????????????? 1006852 16 - AUG - 10

??????????? ? 5 NOT ACTIVE ??????????? 1006717 16 - AUG - 10

?

??? -- 備份時發生斷電或意外故障的恢復

??? -- 假定 users 表空間目前置于 begin bakup 模式,系統斷電 ?????

??????? SQL > alter tablespace users begin backup ;

?

??????? Tablespace altered .

???????

??????? -- 在另一個會話中強制關閉數據庫 ?

??????? SQL > shutdown abort ;

??????? ORACLE instance shut down .

?

??????? -- 啟動后收到錯誤提示

??????? SQL > startup

??????? ORACLE instance started .

?

??????? Total System Global Area ? 469762048 bytes

??????? Fixed Size ????????????????? 1220048 bytes

??????? Variable Size ????????????? 92275248 bytes

??????? Database Buffers ????????? 373293056 bytes

??????? Redo Buffers ??????????????? 2973696 bytes

??????? Database mounted .

??????? ORA - 01113 : file 4 needs media recovery

??????? ORA - 01110 : data file 4 : '/u01/app/oracle/oradata/orcl/users01.dbf'

?

??????? -- 查看備份視圖,文件此時處于活動狀態

??????? SQL > select * from v$backup ;

?

??????????? ? FILE# STATUS ??????????????? CHANGE# TIME

??????? ---------- ------------------ ---------- ---------

??????????????? ? 1 NOT ACTIVE ??????????? 1006958 16 - AUG - 10

??????????????? ? 2 NOT ACTIVE ??????????? 1006983 16 - AUG - 10

??????????????? ? 3 NOT ACTIVE ??????????? 1006943 16 - AUG - 10

??????????????? ? 4 ACTIVE ??????????????? 1007072 16 - AUG - 10

??????????????? ? 5 NOT ACTIVE ??????????? 1006931 16 - AUG - 10

?

??????? -- 使用 end backup 來終止備份

??????? SQL > alter database datafile 4 end backup ; ?? -- 此處也可以使用 recover datafile 4 來完成恢復

?

??????? Database altered .

?

??????? SQL > alter database open ;

?

??????? Database altered .

?

??????? SQL > select * from dual ;

?

??????? D

??????? -

??????? X

?

??? 有關 Oracle 的冷備份,請參考: Oracle 冷備份

九、更多參考

?

Oracle 冷備份

?

SPFILE 錯誤導致數據庫無法啟動

?

Oracle 用戶、對象權限、系統權限

?

Oracle 角色、配置文件

?

? Oracle 聯機重做日志文件(ONLINE LOG FILE)

?

? Oracle 控制文件(CONTROLFILE)

?

? Oracle 表空間與數據文件

?

Oracle 歸檔日志

?

Oracle 熱備份


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 柞水县| 昭通市| 永福县| 南部县| 隆化县| 永修县| 炉霍县| 三穗县| 皮山县| 英德市| 苍山县| 淳安县| 闻喜县| 迭部县| 和硕县| 会昌县| 日喀则市| 阜康市| 沂源县| 扎囊县| 马鞍山市| 高阳县| 辰溪县| 盐城市| 手机| 农安县| 新郑市| 蕲春县| 泸定县| 沐川县| 龙里县| 蕉岭县| 拜泉县| 南皮县| 珠海市| 白城市| 叶城县| 遂平县| 炎陵县| 深州市| 易门县|