共計(jì) 4402 個字符,預(yù)計(jì)需要花費(fèi) 12 分鐘才能閱讀完成。
這篇文章主要為大家展示了“Oracle 如何實(shí)現(xiàn)冷備份及其恢復(fù)”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓丸趣 TV 小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Oracle 如何實(shí)現(xiàn)冷備份及其恢復(fù)”這篇文章吧。
一、冷備份的概念
冷備份是指在數(shù)據(jù)庫關(guān)閉狀態(tài)下所做的物理拷貝,也稱脫機(jī)備份。
適合于非歸檔模式下的備份,而且也只能采用這種方式備份。
二、需要備份的文件
必須備份的文件:
數(shù)據(jù)文件和控制文件
可以備份的文件:
重做日志文件、臨時文件、二進(jìn)制參數(shù)文件(spfile)、口令文件
三、冷備份的步驟
1. 找到所需要的備份文件
2. 正常關(guān)閉數(shù)據(jù)庫
3. 備份文件到指定的備份路徑下
4. 重新啟動數(shù)據(jù)庫
四、冷腳本的寫法
4.1 查看文件位置及狀態(tài)
– 查看實(shí)例和數(shù)據(jù)庫的相關(guān)信息
SQL select instance_name,version,status,archiver,database_status from v$instance;
INSTANCE_NAME VERSION STATUS
ARCHIVE DATABASE_STATUS
—————-
—————– ———— ——- —————–
dbsrv1 11.2.0.1.0 OPEN STOPPED ACTIVE
SQL select dbid,name,log_mode from v$database;
DBID NAME LOG_MODE
———-
——— ————
294555525 DBSRV1 NOARCHIVELOG
– 查看數(shù)據(jù)文件及狀態(tài)信息
SQL col file_name for a50
SQL col tablespace_name for a15
SQL selectfile_name,tablespace_name,status,online_status from dba_data_files;
FILE_NAME TABLESPACE_NAME STATUS ONLINE_
————————————————–
————— ——— ——-
/opt/oracle/app/oradata/dbsrv1/users01.dbf USERS AVAILABLE ONLINE
/opt/oracle/app/oradata/dbsrv1/undotbs01.dbf UNDOTBS1 AVAILABLE ONLINE
/opt/oracle/app/oradata/dbsrv1/sysaux01.dbf SYSAUX AVAILABLE ONLINE
/opt/oracle/app/oradata/dbsrv1/system01.dbf SYSTEM AVAILABLE SYSTEM
/opt/oracle/app/oradata/costctl/COSTCTL_TBS.dbf COSTCTL_TBS AVAILABLE
ONLINE
/opt/oracle/app/oradata/dbsrv1/DEV_DATA.DBF DEV_DATA AVAILABLE ONLINE
/opt/oracle/app/oradata/pdms/PDMS_DATA.dbf PDMS_DATA AVAILABLE
ONLINE
查看數(shù)據(jù)文件
SQL col name for a50
SQL selectfile#, name, status from v$datafile;
FILE# NAME STATUS
———-
————————————————– ——-
1/opt/oracle/app/oradata/dbsrv1/system01.dbf SYSTEM
2/opt/oracle/app/oradata/dbsrv1/sysaux01.dbf ONLINE
3/opt/oracle/app/oradata/dbsrv1/undotbs01.dbf ONLINE
4/opt/oracle/app/oradata/dbsrv1/users01.dbf ONLINE
5/opt/oracle/app/oradata/costctl/COSTCTL_TBS.dbf ONLINE
6/opt/oracle/app/oradata/dbsrv1/DEV_DATA.DBF ONLINE
7/opt/oracle/app/oradata/pdms/PDMS_DATA.dbf ONLINE
– 查看臨時文件
SQL col name for a60
SQL select name from v$tempfile;
NAME
————————————————————
/opt/oracle/app/oradata/dbsrv1/temp01.dbf
/opt/oracle/app/oradata/costctl/COSTCTL_TBS_temp.dbf
/opt/oracle/app/oradata/pdms/PDMS_DATA_TEMP.dbf
– 查看日志文件
SQL select member from v$logfile;
MEMBER
————————————————–
/opt/oracle/app/oradata/dbsrv1/redo03.log
/opt/oracle/app/oradata/dbsrv1/redo02.log
/opt/oracle/app/oradata/dbsrv1/redo01.log
– 查看控制文件
SQL select name from v$controlfile;
NAME
————————————————————
/opt/oracle/app/oradata/dbsrv1/control01.ctl
/opt/oracle/app/flash_recovery_area/dbsrv1/control02.ctl
– 查看參數(shù)文件
SQL show parameter pfile
NAME TYPE VALUE
————————————
———- ——————————
spfile string /opt/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/spfiledbsrv1.ora
4.2 進(jìn)行備份
方案一、
– 創(chuàng)建備份目錄
SQL ho mkdir -p /u03/backup/coolbak
– 使用連接符生成復(fù)制文件命令
SQL select ho
cp ||name|| /u03/backup/coolbak from v$controlfile;
HOCP ||NAME|| /U03/BACKUP/COOLBAK
——————————————————————————–
ho cp/opt/oracle/app/oradata/dbsrv1/control01.ctl/u03/backup/coolbak
ho cp/opt/oracle/app/flash_recovery_area/dbsrv1/control02.ctl/u03/backup/coolbak
SQL save/tmp/tmpbak.sql; – 將上面的輸入保存為 tmpbak.sql
Created file/tmp/tmpbak.sql
編輯 coolbak.sql
注意修改密碼文件的位置和 pfile 的名字
set feedback off
set heading off
set verify off
set trimspool off
set pagesize 0
set linesize 200
define dir = /u03/backup/coolbak
define script = /u03/backup/coolbak.txt
define passwd = /u01/app/oracle/product/11.2.0/db_1/dbs/orapworcl
spool script
select ho
cp -pv || name ||
dir from v$controlfile
unionall
select ho
cp -pv || name ||
dir from v$datafile
unionall
select ho
cp -pv || member ||
dir from v$logfile
unionall
select ho
cp -pv || name ||
dir from v$tempfile
/
create pfile = dir/initorcl.ora from spfile;
ho cp -pv passwd dir
spool off
shutdown immediate
ho mkdir -pv /u03/backup/coolbak
ho rm -rf /u03/backup/coolbak/*
start script
startup
– 執(zhí)行 coolbak.sql
SQL @/tmp/coolbak.sql;
– 執(zhí)行過程及數(shù)據(jù)庫啟動略
– 啟動后查看備份的文件
需要注意的是這種方式不利于恢復(fù),得去尋找恢復(fù)的目錄最好在 cool 后建立與數(shù)據(jù)庫相同的目錄。
冷恢復(fù)的步驟
脫機(jī)恢復(fù)到原來位置的步驟:
1. 如果數(shù)據(jù)庫沒有關(guān)閉,需關(guān)閉數(shù)據(jù)庫
2. 將所有的備份數(shù)據(jù)文件和備份控制文件復(fù)制到數(shù)據(jù)庫原來的位置
3. 也可以將其它所有的備份文件復(fù)制到數(shù)據(jù)庫原來的位置(該操作不是必須的)
4. 重啟數(shù)據(jù)庫
恢復(fù)成功后,數(shù)據(jù)庫即恢復(fù)到上一次的備份,恢復(fù)所需要的時間就是復(fù)制文件所需要的時間。
脫機(jī)恢復(fù)到非原來位置的步驟:
有時候儲存數(shù)據(jù)文件的磁盤壞了,可能需要改變數(shù)據(jù)文件的恢復(fù)位置
1. 將備份文件恢復(fù)到正常的磁盤上
2. 將數(shù)據(jù)庫加載為 mount 狀態(tài)(startup mount)
3. alter database
rename file u01/xxx.DBF to u02/xxx.DBF (u01 磁盤損壞)
4. alter database open
以上是“Oracle 如何實(shí)現(xiàn)冷備份及其恢復(fù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!