1. Oracle RMAN 備份及恢復步驟
1、切換伺服器歸檔模式,如果已經是歸檔模式可跳過此步:
%sqlplus /nolog (啟動)
SQL> conn / as sysdba (以DBA身份連接資料庫)
SQL> shutdown immediate; (立即關閉資料庫)
SQL> startup mount (啟動實例並載入資料庫,但不打開)
SQL> alter database archivelog; (更改資料庫為歸檔模式)
SQL> alter database open; (打開資料庫)
SQL> alter system archive log start; (啟用自動歸檔)
SQL> exit (退出) 2、連接:
rman target=sys/comeon@orcl; (啟動恢復管理器) 3、基本設置:
RMAN> configure default device type to disk; (設置默認的備份設備為磁碟)
RMAN> configure device type disk parallelism 2; (設置備份的並行級別,通道數)
RMAN> configure channel 1 device type disk fromat '/backup1/backup_%U'; (設置備份的文件格式,只適用於磁碟設備)
RMAN> configure channel 2 device type disk fromat '/backup2/backup_%U'; (設置備份的文件格式,只適用於磁碟設備)
RMAN> configure controlfile autobackup on; (打開控制文件與伺服器參數文件的自動備份)
RMAN> configure controlfile autobackup format for device type disk to '/backup1/ctl_%F'; (設置控制文件與伺服器參數文件自動備份的文件格式) 4、查看所有設置:
RMAN> show all 5、查看資料庫方案報表:
RMAN> report schema; 6、備份全庫:
RMAN> backup database plus archivelog delete input; (備份全庫及控制文件、伺服器參數文件與所有歸檔的重做日誌,並刪除舊的歸檔日誌) 7、備份表空間:
RMAN> backup tablespace system plus archivelog delete input; (備份指定表空間及歸檔的重做日誌,並刪除舊的歸檔日誌) 8、備份歸檔日誌:
RMAN> backup archivelog all delete input; 9、復制數據文件:
RMAN> datafile 1 to '/oracle/dbs/system.'; 10、查看備份和文件復本:
RMAN> list backup; 11、驗證備份:
RMAN> validate backupset 3; 12、從自動備份中恢復伺服器參數文件:
RMAN> shutdown immediate; (立即關閉資料庫)
RMAN> startup nomount; (啟動實例)
RMAN> restore spfile to pfile '/backup1/mydb.ora' from autobackup; (從自動備份中恢復伺服器參數文件) 13、從自動備份中恢復控制文件:
RMAN> shutdown immediate; (立即關閉資料庫)
RMAN> startup nomount; (啟動實例)
RMAN> restore controlfile to '/backup1' from autobackup; (從自動備份中恢復控制文件) 13、恢復和復原全資料庫:
RMAN> shutdown immediate; (立即關閉資料庫)
RMAN> exit (退出)
%mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak (將數據文件重命名)
%mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak (將數據文件重命名)
%mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak (將數據文件重命名)
%mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak (將數據文件重命名)
%rman target=rman/rman@mydb (啟動恢復管理器)
RMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.ora (指定初始化參數文件啟動資料庫)
RMAN> restore database; (還原資料庫)
RMAN> recover database; (恢復資料庫)
RMAN> alter database open; (打開資料庫) 14、恢復和復原表空間:
RMAN> sql 'alter tablespace users offline immediate'; (將表空間離線)
RMAN> exit (退出恢復管理器)
%mv /oracle/dbs/users01.dbf /oracle/dbs/users01.bak (將表空間重命名)
%rman target=rman/rman@mydb (啟動恢復管理器)
RMAN> restore tablespace users; (還原表空間)
RMAN> recover tablespace users; (恢復表空間)
RMAN> sql 'alter tablespace users online'; (將表空間聯機)
2. 如何利用RMAN通過IP將資料庫備份到其他計算機
要求:本地已有生產資料庫prod,制定rman備份策略,將數據備份到制定目錄/oracle/rman_bk下。現在需要做恢復測試,驗證備份出來的數據是有效的。且不影響原有的生產資料庫prod。
解決思路:在備份出來的數據中(控制文件),包含了資料庫名,數據文件,redo log等文件的存放路徑,如果在本地直接做恢復,將和原有的資料庫****,因此,需要修改這些信息,將備份出來的數據恢復到另外一個資料庫中。具體步驟如下:
創建新資料庫數據文件及跟蹤文件存放目錄
-bash-2.05b$mkdir -p /oracle/oradata/test
-bash-2.05b$mkdir -p /oracle/admin/test/bmp
-bash-2.05b$mkdir -p /oracle/admin/test/ump
-bash-2.05b$mkdir -p /oracle/admin/test/cmp
2.登錄到生產資料庫。查看當前數據文件信息:
-bash-2.05b$ sqlplus '/ as sysdba'
SQL> select file#,name from v$datafile;
FILE# NAME
---------- --------------------------------------------------
1 /oracle/oradata/test/system01.dbf
2 /oracle/oradata/test/undo01.dbf
3 /oracle/oradata/test/users01.dbf
3.利用rman更改數據文件存放路徑並restore到新的路徑
run {
set newname for datafile 1 to '/oracle/oradata/test/system01.dbf';
set newname for datafile 2 to '/oracle/oradata/test/undo01.dbf';
set newname for datafile 3 to '/oracle/oradata/test/users01.dbf';
restore datafile 1;
restore datafile 2;
restore datafile 3;
}
4。重建控制文件
CREATE CONTROLFILE REUSE set DATABASE "test" RESETLOGS ARCHIVELOG
-- SET STANDBY TO MAXIMIZE PERFORMANCE
MAXLOGFILES 16
MAXLOGMEMBERS 2
MAXDATAFILES 30
MAXINSTANCES 1
MAXLOGHISTORY 453
LOGFILE
GROUP 1 '/oracle/oradata/test/redo01.log' SIZE 10M,
GROUP 2 '/oracle/oradata/test/redo02.log' SIZE 10M,
GROUP 3 '/oracle/oradata/test/redo03.log' SIZE 10M
-- STANDBY LOGFILE
DATAFILE
'/oracle/oradata/test/system01.dbf',
'/oracle/oradata/test/undo01.dbf',
'/oracle/oradata/test/users01.dbf'
CHARACTER SET ZHS16GBK
;
5.打開資料庫
SQL> alter database open resetlogs;
backup archivelog all delete input format '/rman/rman_%t_%s_%p.arc';
with a as
(select rownum p from al connect by level<=21)
select
7 + CEIL(
(7 + CEIL(
(7 + CEIL(p/3))
/3))
/3)
from a;
7+CEIL((7+CEIL((7+CEIL(p/3))/3))/3
本答案來自於互聯網,僅供參考學習作用
如果您對我的回答有不滿意的地方,還請您繼續追問;
答題不易,互相理解,互相幫助!