脫機(jī)備份和恢復(fù)
步驟:
1念搬、關(guān)閉數(shù)據(jù)庫(kù)抑堡。
2、將數(shù)據(jù)文件朗徊、控制文件首妖、參數(shù)文件復(fù)制到備份設(shè)備上。
3爷恳、重新啟動(dòng)數(shù)據(jù)庫(kù)有缆。
例如27:脫機(jī)備份數(shù)據(jù)庫(kù)
答:
第一步:確定要備份的文件名稱和路徑
A、確定要備份的數(shù)據(jù)文件的名稱和路徑温亲。
SQL> SELECT FILE_NAME FROM DBA_DATA_FILES;
FILE_NAME
--------------------------------------------------------------------------------
G:\APP\ORA\ORADATA\TEST\USERS01.DBF
G:\APP\ORA\ORADATA\TEST\UNDOTBS01.DBF
G:\APP\ORA\ORADATA\TEST\SYSAUX01.DBF
G:\APP\ORA\ORADATA\TEST\SYSTEM01.DBF
B棚壁、確定要備份的控制文件的名稱和路徑。
SQL> SELECT NAME FROM V$CONTROLFILE;
NAME
--------------------------------------------------------------------------------
G:\APP\ORA\ORADATA\TEST\CONTROL01.CTL
G:\APP\ORA\FLASH_RECOVERY_AREA\TEST\CONTROL02.CTL
C栈虚、確定要備份的日志文件的名稱和路徑
SQL> SELECT MEMBER FROM V$LOGFILE;
MEMBER
--------------------------------------------------------------------------------
G:\APP\ORA\ORADATA\TEST\REDO03.LOG
G:\APP\ORA\ORADATA\TEST\REDO02.LOG
G:\APP\ORA\ORADATA\TEST\REDO01.LOG
第二步:關(guān)閉數(shù)據(jù)庫(kù)
SQL> SHUTDOWN IMMEDIATE;
數(shù)據(jù)庫(kù)已經(jīng)關(guān)閉袖外。
已經(jīng)卸載數(shù)據(jù)庫(kù)。
ORACLE例程已經(jīng)關(guān)閉魂务。
第三步:復(fù)制數(shù)據(jù)庫(kù)文件
SQL> $COPYG:\APP\ORA\ORADATA\TEST\USERS01.DBF F:\BACKUP\;
第四步:恢復(fù)數(shù)據(jù)庫(kù)
關(guān)閉數(shù)據(jù)庫(kù)曼验,將復(fù)制出來(lái)的文件,復(fù)制回原來(lái)的位置头镊,重啟數(shù)據(jù)庫(kù)蚣驼。
聯(lián)機(jī)備份數(shù)據(jù)庫(kù)
步驟:
1、切換到歸檔模式相艇,數(shù)據(jù)庫(kù)實(shí)現(xiàn)聯(lián)機(jī)備份必須在歸檔模式下運(yùn)行颖杏。如果不是歸檔模式,可以使用以下方式切換至歸檔模式坛芽。
A留储、關(guān)閉數(shù)據(jù)庫(kù)
SQL>SHUTDOWN IMMEDIATE;
B、使用STARTUP MOUNT啟動(dòng)例程咙轩,裝載數(shù)據(jù)庫(kù)获讳。但此時(shí)數(shù)據(jù)庫(kù)還沒(méi)有打開,要切換運(yùn)行模式活喊,數(shù)據(jù)庫(kù)必須處在裝載但不打開的狀態(tài)丐膝。
SQL>STARTUP MOUNT;
C、切換到歸檔模式
SQL>ALTER DATABASE ARCHIVELOG;
D钾菊、打開數(shù)據(jù)庫(kù)
SQL>ALTER DATABASE OPEN;
E帅矗、確認(rèn)是否成功
SQL>ARCHIVE LOG LIST;
2煞烫、聯(lián)機(jī)備份
A、備份表空間
a)滞详、設(shè)置表空間為熱備份模式凛俱。
例如28:將表空間USERS設(shè)置為熱備份模式。
答:SQL>ALTER TABLESPACE USERS BEGIN BACKUP;
b)蒲犬、復(fù)制處于熱備份模式下的表空間所對(duì)應(yīng)的所有數(shù)據(jù)文件。
c)暖哨、設(shè)置表空間為非熱備份模式赌朋。
SQL> ALTER TABLESPACE USERS END BACKUP;
d)篇裁、對(duì)每個(gè)表空間都執(zhí)行上訴步驟。
e)赡若、強(qiáng)制進(jìn)行一次日志切換达布,歸檔當(dāng)前的聯(lián)機(jī)重做日志文件。
SQL> ALTER SYSTEM SWITCH LOGFILE;
B逾冬、備份控制文件
備份控制文件要以SYSDBA的身份登錄數(shù)據(jù)庫(kù)黍聂。
a)、直接復(fù)制控制文件
SQL> ALTER DATABASE BACKUP CONTROLFILE TO 'F:\BACKUP\';
b)身腻、生成跟蹤文件的方式復(fù)制控制文件产还。
SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
此時(shí)ORACLE會(huì)在USER_DUMP_DEST指定的目錄下生成一個(gè)跟蹤文件,可根據(jù)下列語(yǔ)句查看跟蹤文件的物理位置嘀趟,該文件記錄了重建控制文件的SQL語(yǔ)句脐区。
SQL> SHOW PARAMETER USER_DUMP_DEST;
下列語(yǔ)句可以查詢SPID,獲得SPID之后到上面查詢的路徑下找到ORCL_ORA_[SPID].TRC文件她按,此文件便記錄了重建控制文件的SQL語(yǔ)句牛隅。
SQL> SELECT SPID FROM V$PROCESS WHERE ADDR = (SELECTPADDR FROM V$SESSION WHERE SID =(SELECT SID FROM V$MYSTAT WHERE ROWNUM = 1));
C、備份日志文件
a)酌泰、強(qiáng)制轉(zhuǎn)換
SQL> ALTERSYSTEM ARCHIVE LOG CURRENT;
b)媒佣、使用$COPY命令。
聯(lián)機(jī)恢復(fù)數(shù)據(jù)庫(kù)
A陵刹、關(guān)閉數(shù)據(jù)庫(kù)
SQL>SHUTDOWN IMMEDIATE;
B默伍、在V$RECOVER_FILE中查找損壞的文件
SQL> SELECT * FROM V$RECOVER_FILE;
C、恢復(fù)數(shù)據(jù)庫(kù)
a)衰琐、以STARTUP MOUNT方式啟動(dòng)也糊。
b)、查詢V$DATAFILE列出所有數(shù)據(jù)文件的狀態(tài)碘耳,確保左右數(shù)據(jù)文件都處于聯(lián)機(jī)狀態(tài)显设,根據(jù)恢復(fù)需要執(zhí)行不同的RECOVER命令。
SQL>RECOVER DATABASE恢復(fù)整個(gè)數(shù)據(jù)庫(kù)辛辨。
SQL> RECOVER TABLESPACE表空間名恢復(fù)某一個(gè)表空間捕捂。
SQL> RECOVER DATAFILE數(shù)據(jù)文件名恢復(fù)某一個(gè)數(shù)據(jù)文件瑟枫。
D、打開數(shù)據(jù)庫(kù)
SQL>ALTER DATABASE OPEN;