--======================
-- Oracle 冷備份
--======================
?
一、冷備份
??? 數(shù)據(jù)庫(kù)在關(guān)閉狀態(tài)下完成所有物理系統(tǒng)文件拷貝的過(guò)程,也稱(chēng)脫機(jī)備份
??? 適合于非歸檔模式下,數(shù)據(jù)庫(kù)處于一致性狀態(tài)
???
二、步驟 ???
??? 首先在運(yùn)行的庫(kù)中得到數(shù)據(jù)庫(kù)運(yùn)行的所有的物理文件位置,然后在計(jì)劃內(nèi)關(guān)閉數(shù)據(jù)庫(kù) ( shutdown )
??? 再執(zhí)行拷貝物理文家到備份路徑或備份設(shè)備
??? 備份完成后立即啟動(dòng)數(shù)據(jù)庫(kù)讓其提供正常的服務(wù)
?
?
三、冷備腳本的寫(xiě)法
??? 首先應(yīng)該在相關(guān)視圖里查出數(shù)據(jù)庫(kù)的數(shù)據(jù)文件,日志文件,控制文件,臨時(shí)文件所在的位置
??? 注意:不要直接把 oradata 下的 cp 就行了,因?yàn)樯a(chǎn)庫(kù)里各個(gè)文件通常分布在不同的磁盤(pán),不同的地方,所以在去視圖里獲得真實(shí)路徑 ?
?
??? -- 查看實(shí)例和數(shù)據(jù)庫(kù)的相關(guān)信息
??? SQL > select instance_name , version , status , archiver , database_status from v$instance ;
?
??? INSTANCE_NAME ??? VERSION ?????????? STATUS ?????? ARCHIVE DATABASE_STATUS
??? ---------------- ----------------- ------------ ------- -----------------
??? orcl ???????????? 10.2.0.1.0 ??????? OPEN ???????? STOPPED ACTIVE
?
??? SQL > select dbid , name , log_mode from v$database ;
?
??????? ? DBID NAME ????? LOG_MODE
??? ---------- --------- ------------
??? 1242732291 ORCL ????? NOARCHIVELOG
?
??? -- 查看數(shù)據(jù)文件及狀態(tài)信息
??? SQL > select file_name , tablespace_name , status , online_status from dba_data_files ;
?
??? FILE_NAME ?????????????????????????????????????????????? TABLESPACE STATUS ??? ONLINE_
??? ------------------------------------------------------- ---------- --------- -------
??? / u01 / app / oracle / oradata / orcl / undotbs01 . dbf ????????????? UNDOTBS1 ?? AVAILABLE ONLINE
??? / u01 / app / oracle / oradata / orcl / system01 . dbf ?????????????? SYSTEM ???? AVAILABLE SYSTEM
??? / u01 / app / oracle / oradata / orcl / sysaux01 . dbf ?????????????? SYSAUX ???? AVAILABLE ONLINE
??? / u01 / app / oracle / oradata / orcl / users01 . dbf ??????????????? USERS ????? AVAILABLE ONLINE
??? / u01 / app / oracle / oradata / orcl / example01 . dbf ????????????? EXAMPLE ??? AVAILABLE ONLINE
??? / u01 / app / oracle / oradata / orcl / tbs1_1 . dbf ???????????????? TBS1 ?????? AVAILABLE ONLINE
??? / u01 / app / oracle / oradata / orcl / tbs1_2 . dbf ???????????????? TBS1 ?????? AVAILABLE ONLINE
?
??? -- 查看數(shù)據(jù)文件
??? SQL > select name from v$datafile ;
?
??? NAME
??? --------------------------------------------------------------------------------
??? / u01 / app / oracle / oradata / orcl / system01 . dbf
??? / u01 / app / oracle / oradata / orcl / undotbs01 . dbf
??? / u01 / app / oracle / oradata / orcl / sysaux01 . dbf
??? / u01 / app / oracle / oradata / orcl / users01 . dbf
??? / u01 / app / oracle / oradata / orcl / example01 . dbf
??? / u01 / app / oracle / oradata / orcl / tbs1_1 . dbf
??? / u01 / app / oracle / oradata / orcl / tbs1_2 . dbf
?
??? -- 查看臨時(shí)文件
??? SQL > select name from v$tempfile ;
?
??? NAME
??? --------------------------------------------------------------------------------
??? / u01 / app / oracle / oradata / orcl / temp01 . dbf
?
??? -- 查看日志文件
??? SQL > select member from v$logfile ;
?
??? MEMBER
??? ------------------------------------------------------------
??? / u01 / app / oracle / oradata / orcl / redo2a . rdo
??? / u01 / app / oracle / oradata / orcl / redo2b . rdo
??? / u01 / app / oracle / oradata / orcl / redo1a . rdo
??? / u01 / app / oracle / oradata / orcl / redo3a . rdo
??? / u01 / app / oracle / oradata / orcl / redo3b . rdo
??? / u01 / app / oracle / oradata / orcl / redo1b . rdo
?
??? -- 查看控制文件
??? SQL > select name from v$controlfile ;
?
??? NAME
??? ------------------------------------------------------------
??? / u01 / app / oracle / oradata / orcl / control01 . ctl
??? / u01 / app / oracle / oradata / orcl / control02 . ctl
?
??? -- 創(chuàng)建備份目錄
??? SQL > ho mkdir / u01 / app / oracle / coolbak
???
??? -- 使用連接符生成復(fù)制文件命令
??? SQL > select 'ho cp ' || name || ' /u01/app/oracle/coolbak' from v$controlfile ;
?
??? 'HOCP' || NAME|| '/U01/APP/ORACLE/COOLBAK'
??? ----------------------------------------------------------------------------------
??? ho cp / u01 / app / oracle / oradata / orcl / control01 . ctl / u01 / app / oracle / coolbak
??? ho cp / u01 / app / oracle / oradata / orcl / control02 . ctl / u01 / app / oracle / coolbak
?
??? SQL > save / tmp / tmpbak . sql ; ?? -- 將上面的輸入保存為 tmpbak.sql
??? Created file / tmp / tmpbak . sql
?
??? SQL > ho vim / tmp / tmpbak . sql ?? -- 編輯 tmpbak.sql, 將下面的內(nèi)容輸入到 tmpbak.sql
?
??? set feedback off
??? set heading off
??? set verify off
??? set trimspool off
??? set pagesize 0
??? set linesize 200
??? define dir = '/u01/app/oracle/coolbak'
??? define script = '/tmp/coolbak.sql'
??? spool & script
??? select 'ho cp ' || name || ' &dir' from v$controlfile
??? union all
??? select 'ho cp ' || name || ' &dir' from v$datafile
??? union all
??? select 'ho cp ' || member || ' &dir' ? from v$logfile
??? union all
??? select 'ho cp ' || name || ' &dir' from v$tempfile
??? /
??? create pfile = '&dir/initorcl.ora' from spfile ;
??? ho cp / u01 / app / oracle / 10g / dbs / orapworcl & dir
??? spool off
??? shutdown immediate
??? start & script
??? ho rm & script
??? startup
?
??? -- 執(zhí)行 tmpbak.sql
??? SQL > @/tmp / tmpbak . sql ;
?
??? -- 執(zhí)行過(guò)程及數(shù)據(jù)庫(kù)啟動(dòng)略
???????
??? -- 啟動(dòng)后查看備份的文件
??? SQL > ho ls / u01 / app / oracle / coolbak
??? control01 . ctl ? orapworcl ?? redo2b . rdo ??? system01 . dbf ?? users01 . dbf
??? control02 . ctl ? redo1a . rdo ? redo3a . rdo ??? tbs1_1 . dbf
??? example01 . dbf ? redo1b . rdo ? redo3b . rdo ??? tbs1_2 . dbf
??? initorcl . ora ?? redo2a . rdo ? sysaux01 . dbf ? undotbs01 . dbf
?
四、總結(jié)
??? 優(yōu)點(diǎn)
??????? 冷備模式下概念易于理解,即將需要備份的文件復(fù)制到安全的位置
??????? 操作比較簡(jiǎn)單,不需要太多的干預(yù)
??????? 容易恢復(fù)到某個(gè)時(shí)間點(diǎn)上 ( 只需將文件再拷貝回去 )
??????? 能與歸檔方法相結(jié)合,作數(shù)據(jù)庫(kù) “ 最新?tīng)顟B(tài) ” 的恢復(fù)。
??? 缺點(diǎn)
??????? 備份時(shí),數(shù)據(jù)庫(kù)必須處于一致性關(guān)閉狀態(tài)
??????? 只能提供到某一時(shí)間點(diǎn)的恢復(fù)
??????? 備份時(shí)速度比較慢,尤其是數(shù)據(jù)量大性能影響比較大
??????? 不能實(shí)現(xiàn)基于表和用戶級(jí)別的數(shù)據(jù)恢復(fù)
?
五、更多參考
?
?
SPFILE 錯(cuò)誤導(dǎo)致數(shù)據(jù)庫(kù)無(wú)法啟動(dòng)
?
?
Oracle 用戶、對(duì)象權(quán)限、系統(tǒng)權(quán)限
?
?
? Oracle 聯(lián)機(jī)重做日志文件(ONLINE LOG FILE)
?
?
?
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
