Oracle 冷備份 |
發(fā)布時(shí)間: 2012/9/16 15:30:50 |
-- Oracle 冷備份 --======================
一、冷備份 數(shù)據(jù)庫(kù)在關(guān)閉狀態(tài)下完成所有物理系統(tǒ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ù)
三、冷備腳本的寫法 首先應(yīng)該在相關(guān)視圖里查出數(shù)據(jù)庫(kù)的數(shù)據(jù)文件,日志文件,控制文件,臨時(shí)文件所在的位置 注意:不要直接把oradata下的cp就行了,因?yàn)樯a(chǎn)庫(kù)里各個(gè)文件通常分布在不同的磁盤,不同的地方,所以在去視圖里獲得真實(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í)行過程及數(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à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ù)
Oracle教程 更多參考 有關(guān)閃回特性請(qǐng)參考 Oracle 閃回特性(FLASHBACK DATABASE) Oracle 閃回特性(FLASHBACK DROP & RECYCLEBIN) Oracle 閃回特性(Flashback Query、Flashback Table) Oracle 閃回特性(Flashback Version、Flashback Transaction) 有關(guān)基于用戶管理的備份和備份恢復(fù)的概念請(qǐng)參考: Oracle 冷備份 Oracle 熱備份 Oracle 備份恢復(fù)概念 Oracle 實(shí)例恢復(fù) Oracle 基于用戶管理恢復(fù)的處理(詳細(xì)描述了介質(zhì)恢復(fù)及其處理) 有關(guān)RMAN的恢復(fù)與管理請(qǐng)參考: RMAN 概述及其體系結(jié)構(gòu) RMAN 配置、監(jiān)控與管理 RMAN 備份詳解 RMAN 還原與恢復(fù) 有關(guān)Oracle體系結(jié)構(gòu)請(qǐng)參考: Oracle 實(shí)例和Oracle數(shù)據(jù)庫(kù)(Oracle體系結(jié)構(gòu)) Oracle 表空間與數(shù)據(jù)文件 Oracle 密碼文件 Oracle 參數(shù)文件 Oracle 數(shù)據(jù)庫(kù)實(shí)例啟動(dòng)關(guān)閉過程 Oracle 聯(lián)機(jī)重做日志文件(ONLINE LOG FILE) Oracle 控制文件(CONTROLFILE) Oracle 歸檔日志
本文出自:億恩科技【mszdt.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |