非常完整的oracle 熱備份與恢復

2021-06-18 22:47:00 字數 3011 閱讀 4555

一、首先把資料庫啟動到歸檔模式下,具體操作如下:

1、shutdown immediate;

2、startup mount;

3、alter database archivelog;

4、alter database open;

這樣資料庫就啟動到歸檔模式下了。

二、一定要檢視是否在歸檔模式下,具體**如下:

1、archive log list ;    執行命令會出現三個序列號,然後執行下面的命令

2、alter  system  switch logfile;

3、archive log list ;  如果序列號改變了,說明已經成功切換到歸檔模式下了,下面就可以準備熱備份工作了。

三、開始備份工作,具體操作如下:

1、select  tablespace_name from dba_data_files; 檢視所有的表空間

2、select name from v$datafile; 找出所有的資料檔案及路徑

3、 alter database begin backup;

4、 copy 所有的資料檔案到你指定的路徑下,例如: 

(1)mkdir  /u02/horcl   建立備份路徑

(2) select  'ho cp ' || name ||'  /u02/horcl/ '  from v$ datafile; 查詢出來的 語句,全部複製,全部執行即可。

(3)  例如:  cp  /u01/oracle/oradata/orcl/*1.dbf    /u02/horcl/

cp  /u01/oracle/oradata/orcl/*2.dbf    /u02/horcl/

cp  /u01/oracle/oradata/orcl/*3.dbf    /u02/horcl/

cp  /u01/oracle/oradata/orcl/*4.dbf    /u02/horcl/

cp  /u01/oracle/oradata/orcl/*5.dbf    /u02/horcl/

cp  /u01/oracle/oradata/orcl/*6.dbf    /u02/horcl/

等等全部執行。

(4)完成之後,執行:alter database  end  backup;將你的表空間解凍。

(5)當然這只是備份了資料檔案,還要備份控制檔案、引數檔案。

(6)備份控制檔案的具體操作:

sql>alter database backup controlfile to '/u02/horcl/controlfile/*.ctl'--路徑

(7)備份引數檔案的具體操作:

sql>create pfile='/u02/horcl/initorcl.ora' from spfile;

(8)如何書寫乙個完整的熱備份的指令碼:

vi /u02/hotbak.sql   ---建立指令碼

spool /tmp/hot.sql

select 『ho cp '||name||'/u02/horcl/' from v$datafile;

spool off

ho sed  -n '/^ho cp/p' /tmp/hot.sql > /tmp/hotorcl.sql

alter database begin backup;

start /tmp/hotorcl.sql

alter database  end backup;

ho rm /tmp/hot*.sql ---刪除

alter database backup controlfile to  '/u02/horcl/control01.ctl';

create pfile='/u02/horcl/initorcl.ora'  from spfile;

(9)如何執行指令碼:

sql>@/u02/hotbak

/------以上是使用資料庫的熱備方式-----/

下面我們來看如何使用表空間來做熱備:

1、首先查詢一下你的表空間和名字:

sql>select tablaespace_name,file_name from dba_data_files;

2、開始備份工作:

sql>alter tablespace ulp begin backup; ---ulp 為表空間名

3、拷貝ulp下的資料檔案:

sql> ho cp 路徑1  路徑2  ----路徑1是你剛才查詢出來的資料檔案的路徑和名字

路徑2 是你要備份的路徑

sql>alter tablespace ulp end backup;

其他表空間一樣的操作。

完整的指令碼語句如下:

cat /u02/hot2.sql ---建立的指令碼名字

set heading off   --- 指令碼內容從此開始

spool /tmp/hot.sql

select 'alter tablespace' || tablespace_name ||' begin backup; '||chr(10) '|| ho cp'|| file_name ||'  /u02/horcl/' || chr(10) || ' alter tablespace ' || tablespace_name || ' end backup ; ' from dba_data_files  order by  tablespace_name;

spool off  ---- 以上指令碼是資料檔案的備份

start /tmp/hot.sql  ---執行

rm ho /tmp/hot.sql ---刪除

alter database backup controlfile to '/u02/horcl/control01.ctl';  ---備份控制檔案

create pfile='/u02/horcl/initorcl.ora'  from spfile;  --- 備份引數檔案

ho cat /u02/hot2.sql    ----檢視以上指令碼

sql>@/u02/hot2.sql    ---- 執行以上指令碼

oracle 雙機熱備份

一 建立 standby database 要求1 primary 與standby 資料庫所在主機上的 oracle server 及作業系統版本必須相同,且具有相同的補丁 2 primary 資料庫必須為 archive mode standby database 也必須為 archive mo...

oracle雙機熱備份

oracle雙機熱備份方法 一 建立standby database 要求 1 primary 與standby 資料庫所在主機上的oracle server及 作系統版本必須相同,且具有相同的補丁 2 primary 資料庫必須為archive mode standby database也必須為a...

Oracle 熱備份實踐

實踐oracle的熱備份操作過程 windows下進行 注意 1.oracle必須執行在歸檔模式下 檢視是否處於歸檔模式 archive log list 如果不是處於歸檔模式,需要shutdown資料庫並且把資料庫設定為在歸檔模式下執行 在mount狀態下進行修改 shutdown immedia...