在此之前搞清楚每個檔案的作用,一定要掌握Oracle的基本概念。
一、Oracle基本檔案的備份恢複
1、logfile多元化和備份恢複
日誌查詢
select * from v$logfile;
select * from v$log;
手工切換日誌
alter system switch logfile;
手工檢查點
alter system checkpoint;
警示記錄檔
show paramter dump
$ORACLE_BASE/admin/orcl/bdump
tail -f alert*.log
多元化記錄檔
alter database add logfile member '/opt/ora10g/oradata/orcl/redo01B.log' to group 1;
alter database add logfile member '/opt/ora10g/oradata/orcl/redo02B.log' to group 2;
alter database add logfile member '/opt/ora10g/oradata/orcl/redo03B.log' to group 3;
記錄檔壞了,修複記錄檔(丟失了,也可以用這個恢複)
alter database clear logfile group 1;
如果未歸當
alter database clear unarchived logfile group 2;
新增成員
alter database add logfile group 4;
alter database add logfile member '/opt/ora10g/oradata/orcl/redo04.log' to group 4;
刪除日誌組
alter database drop logfile group 4;
刪除日誌群組成員
alter database drop logfile member '/opt/ora10g/oradata/orcl/redo01B.log';
2、參數檔案備份恢複
用pfile檔案備份二進位的啟動參數檔案
create pfile from spfile;
當spfile檔案丟失或損壞時可以
startup pfile='...INIT<ORACLE_SID>.ora'
create spfile from pfile
startup force
show parameter spfile
3、控制檔案備份恢複
多元化控制檔案
控制檔案記錄和維護資料庫的物理結構,而且還記錄了備份和恢複有關的資訊,如果資料庫只有一個控制檔案,
那麼當出現介質失敗同時控制檔案也損壞的時候,將導致無法裝載資料庫,此時如果沒有控制檔案備份,那會是一場災難,
所以要多元化控制檔案,而且最好分布在不同的磁碟上。
查詢已存的控制檔案:
SQL>select name from v$controlfile;
初始化參數control_files:
Alter system set control_files='/disk1/ora10g/oradata/orcl/control01.ctl','/disk1/ora10g/oradata/orcl/control02.ctl','/disk1/ora10g/oradata/orcl/control03.ctl','/disk1/ora10g/control01.ctl' scope=spfile;
關閉資料庫:
SQL>shutdown immediate;
複製控制檔案:
SQL>host cp /disk1/ora10g/oradata/orcl/control01.ctl /disk1/ora10g/control01.ctl
啟動資料庫:
SQL>startup
備份控制檔案
a、將控制檔案備份為二進位檔案
SQL>alter database backup controlfile to 'i:\oracle\backup\control.bkp';
這種方式直接cp回去就ok
b、將控制檔案備份為文字檔(備份到oracle\base\admin\sid\udump目錄下的追蹤檔案中,將在追蹤檔案中產生一個SQL指令碼)
恢複也很簡單,找到trace檔案,開啟找到類似下面內容的:
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ORCL" RESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 (
'/disk1/ora10g/oradata/orcl/redo01.log',
'/disk1/ora10g/oradata/orcl/redo01B.log'
) SIZE 50M,
GROUP 2 (
'/disk1/ora10g/oradata/orcl/redo02.log',
'/disk1/ora10g/oradata/orcl/redo02B.log'
) SIZE 50M,
GROUP 3 (
'/disk1/ora10g/oradata/orcl/redo03.log',
'/disk1/ora10g/oradata/orcl/redo03B.log'
) SIZE 50M
-- STANDBY LOGFILE
DATAFILE
'/disk1/ora10g/oradata/orcl/system01.dbf',
'/disk1/ora10g/oradata/orcl/undotbs01.dbf',
'/disk1/ora10g/oradata/orcl/sysaux01.dbf',
'/disk1/ora10g/oradata/orcl/users01.dbf',
'/disk1/ora10g/oradata/orcl/example01.dbf'
CHARACTER SET WE8ISO8859P1
;
直接建立為sql檔案,然後通過@調用。
然後alter database open rsetlogs;
更多Oracle相關資訊見Oracle 專題頁面 http://www.bkjia.com/topicnews.aspx?tid=12