oracle rman備份恢復的例子
1、 建rman庫作為repository
$more createrman_db1.sh
set echo on
spool makedb1.log
create database rman
datafile '/export/home/oracle/oradata/rman_data/system.dbf' size 50m autoextend
on next 640K
logfile '/export/home/oracle/oradata/rman_data/redo0101.log' SIZE 10M,
'/export/home/oracle/oradata/rman_data/redo0201.log' SIZE 10M
maxdatafiles 30
maxinstances 8
maxlogfiles 64
character set US7ASCII
national character set US7ASCII
;
disconnect
spool off
exit
@/export/home/oracle/8.1.6/rdbms/admin/catalog.sql;
REM ********** ALTER SYSTEM TABLESPACE *********
ALTER TABLESPACE SYSTEM
DEFAULT STORAGE ( INITIAL 64K NEXT 64K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCR
EASE 50);
ALTER TABLESPACE SYSTEM
MINIMUM EXTENT 64K;
REM ********** TABLESPACE FOR ROLLBACK **********
CREATE TABLESPACE RBS DATAFILE '/export/home/oracle/oradata/rman_data/rbs.dbf' s
ize 50m
AUTOEXTEND ON NEXT 512K
MINIMUM EXTENT 512K
DEFAULT STORAGE ( INITIAL 512K NEXT 512K MINEXTENTS 10 MAXEXTENTS UNLIMITED PC
TINCREASE 0 );
REM ********** TABLESPACE FOR TEMPORARY **********
CREATE TABLESPACE TEMP DATAFILE '/export/home/oracle/oradata/rman_data/temp.dbf'
size 50m
AUTOEXTEND ON NEXT 64K
MINIMUM EXTENT 64K
DEFAULT STORAGE ( INITIAL 64K NEXT 64K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCR
EASE 0) TEMPORARY;
REM **** Creating four rollback segments ****************
CREATE PUBLIC ROLLBACK SEGMENT RBS_0 TABLESPACE RBS
STORAGE ( OPTIMAL 64000K );
ALTER ROLLBACK SEGMENT "RBS_0" ONLINE;
REM **** SYS and SYSTEM users ****************
alter user sys temporary tablespace TEMP;
alter user system temporary tablespace TEMP;
disconnect
spool off
exit
$more createrman_db3.sh
spool crdb3.log
@/export/home/oracle/8.1.6/rdbms/admin/catproc.sql
@/export/home/oracle/8.1.6/rdbms/admin/caths.sql
@/export/home/oracle/8.1.6/rdbms/admin/otrcsvr.sql
connect system/manager
@/export/home/oracle/8.1.6/sqlplus/admin/pupbld.sql
disconnect
spool off
exit
2、建repository存放的表空間和rman使用者
$more createrman_db4.sh
connect internal
create tablespace rman_ts
datafile '/export/home/oracle/oradata/rman_data/rman_ts.dbf'
size 20M default storage (initial 100K next 100K pctincrease 0);
create user rman_hainan identified by rman_hainan
temporary tablespace TEMP
default tablespace rman_ts quota unlimited on
rman_ts;
grant recovery_catalog_owner to rman_hainan;
grant connect ,resource to rman_hainan;
3、建catalog,註冊目標資料庫
$more createrman_db5.sh
rman catalog msglog=rman.log
create catalog ;
exit;
rman target
connect catalog
register database;
exit;
4、可以開始做備份了。
5、做全備
$more rmanshell
. /export/home/oracle/.profile
rman rcvcat target / cmdfile /export/home/oracle/ba
ckup_level0.rcv log /export/home/oracle/backup.log
$more backup_level0.rcv
resync catalog;
run {
allocate channel t1 type disk;
backup
incremental level 0
skip inaccessible
tag hot_db_bk_level0
filesperset 3
format '/export/home/oracle/bk_%s_%p_%t.bk'
(database);
sql 'alter system archive log current';
backup
filesperset 10
format '/export/home/oracle/a1_%s_%p_%t.ac'
(archivelog all delete input);
backup
format '/export/home/oracle/df_t%t_s%s_p%p.ct'
current controlfile ;
}
6、做增備
$more rmanshell1
rman rcvcat target / cmdfile backup_level1.rcv log
backup.log
$more backup_level1.rcv
resync catalog;
run {
allocate channel t1 type disk;
backup
incremental level 1
skip inaccessible
tag hot_db_bk_level1
filesperset 3
format 'bk_%s_%p_%t.bk1'
(database);
sql 'alter system archive log current';
backup
filesperset 10
format 'a1_%s_%p_%t.ac1'
(archivelog all delete input);
backup current controlfile;
}
1、 刪除舊的全備
$rman rcvcat target /
Recovery Manager: Release 8.1.6.0.0 - Production
RMAN-06005: connected to target database: TEST (DBID=1692992254)
RMAN-06008: connected to recovery catalog database
RMAN> list backupset;
RMAN-03022: compiling command: list
List of Backup Sets
Key Recid Stamp LV Set Stamp Set Count Completion Time
------- ---------- ---------- -- ---------- ---------- ----------------------
38 145 399987408 0 399987406 153 11-JUN-00
根據key來刪除舊的備份。
RMAN> allocate channel for maintenance type disk;
RMAN> change backupset 169 delete; ----------THIS IS THE COMMAND TO REMOVE THE ENTRY & OS FILE
做完後可以看到list backupset和作業系統的檔案都沒有了。
2、 恢復
(1) 將資料庫啟動到nomount狀態:
$svrmgrl
Oracle Server Manager Release 3.1.6.0.0 - Production
Copyright (c) 1997, 1999, Oracle Corporation. All Rights Reserved.
Oracle8i Enterprise Edition Release 8.1.6.0.0 - 64bit Production
With the Partitioning option
JServer Release 8.1.6.0.0 - Production
SVRMGR> connect internal
Connected.
SVRMGR> startup nomount;
ORACLE instance started.
Total System Global Area 339275684 bytes
Fixed Size 94116 bytes
Variable Size 318685184 bytes
Database Buffers 16384000 bytes
Redo Buffers 4112384 bytes
SVRMGR> exit
Server Manager complete.
(2) 恢復控制檔案:
$rman rcvcat target /
Recovery Manager: Release 8.1.6.0.0 - Production
RMAN-06006: connected to target database: test (not mounted)
RMAN-06008: connected to recovery catalog database
RMAN> run {
2> allocate channel d1 type disk;
3> restore controlfile;
4> release channel d1;
5> }
(3) 恢復資料檔案
RMAN> run {
2> allocate channel d1 type disk;
3> sql "alter database mount";
4> restore datafile 1;
5> restore datafile 2;
6> restore datafile 3;
7> restore datafile 4;
8> release channel d1;
9> }
(4) 恢復日誌檔案
RMAN> run {
2> set archivelog destination to '/export/home/oracle/admin/test/arch';
3> allocate channel d1 type disk;
4> restore archivelog all;
5> release channel d1;
6> }
會把所有的日誌檔案恢復。
(5) 根據日誌做recover
$svrmgrl
Oracle Server Manager Release 3.1.6.0.0 - Production
Copyright (c) 1997, 1999, Oracle Corporation. All Rights Reserved.
Oracle8i Enterprise Edition Release 8.1.6.0.0 - 64bit Production
With the Partitioning option
JServer Release 8.1.6.0.0 - Production
SVRMGR> connect internal
Connected.
SVRMGR> recover database using backup controlfile until cancel;
ORA-00279: change 51054 generated at 06/11/2000 11:38:37 needed for thread 1
ORA-00289: suggestion : /export/home/oracle/admin/test/arch/arch_1_3.arc
ORA-00280: change 51054 for thread 1 is in sequence #3
Specify log: {
Log applied.
ORA-00279: change 51058 generated at 06/11/2000 11:38:44 needed for thread 1
ORA-00289: suggestion : /export/home/oracle/admin/test/arch/arch_1_4.arc
ORA-00280: change 51058 for thread 1 is in sequence #4
ORA-00278: log file '/export/home/oracle/admin/test/arch/arch_1_3.arc' no longer
needed for this recovery
Specify log: {
Log applied.
ORA-00279: change 51074 generated at 06/11/2000 11:40:20 needed for thread 1
ORA-00289: suggestion : /export/home/oracle/admin/test/arch/arch_1_5.arc
ORA-00280: change 51074 for thread 1 is in sequence #5
ORA-00278: log file '/export/home/oracle/admin/test/arch/arch_1_4.arc' no longer
needed for this recovery
Specify log: {
cancel
Media recovery cancelled.
SVRMGR> alter database open resetlogs;
Statement processed.
恢復完成。
SVRMGR> select table_name from user_tables;
TABLE_NAME
------------------------------
BONUS
DEPT
EMP
SALGRADE
TEST
TEST_ZMY
ZMY
ZMY_DEPT
ZMY_EMP
9 rows selected.
可以檢檢視到,所有的都恢復了,包括全備份後的事務。(只要有歸檔日誌,都可以恢復)。
3、 恢復後rman資料庫的同步
$rman rcvcat target /
Recovery Manager: Release 8.1.6.0.0 - Production
RMAN-06005: connected to target database: TEST (DBID=1692992254)
RMAN-06008: connected to recovery catalog database
RMAN> reset database;
RMAN-03022: compiling command: reset
RMAN-03023: executing command: reset
RMAN-08006: database registered in recovery catalog
RMAN-03023: executing command: full resync
RMAN-08029: snapshot controlfile name set to default value:
RMAN-08002: starting full resync of recovery catalog
RMAN-08004: full resync complete
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-84807/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle RMAN 備份恢復總結Oracle
- oracle RMAN 備份恢復總結Oracle
- ORACLE DG從庫 Rman備份恢復Oracle
- RMAN備份恢復原理
- Oracle的RMAN備份恢復繼續,RMAN部分引數Oracle
- rman備份恢復-rman入門
- Oracle 備份恢復篇之RMAN catalogOracle
- oracle 10g RMAN備份及恢復Oracle 10g
- Oracle塊損壞恢復(有rman備份)Oracle
- [記錄]oracle RMAN 備份恢復總結Oracle
- RMAN備份與恢復之加密備份加密
- RMAN備份恢復——備份到帶庫的效能
- Oracle DG從庫 Rman備份恢復測試Oracle
- 【RMAN】Oracle11g備份恢復新特性Oracle
- Oracle資料庫備份與恢復之RMANOracle資料庫
- oracle實驗記錄 (恢復-rman增量備份)Oracle
- oracle rman備份驗證和備份/恢復進度監控Oracle
- 完整的oraclerman備份恢復的例子(轉)Oracle
- 循序漸進oracle第7章:備份與恢復之RMAN的簡單備份與恢復Oracle
- rman備份恢復-rman恢復資料檔案測試
- RMAN備份恢復典型案例——RMAN備份&系統變慢
- RMAN備份恢復之控制檔案的恢復(三)
- RMAN備份恢復之控制檔案的恢復(二)
- RMAN備份恢復之控制檔案的恢復(一)
- RMAN備份恢復——備份到帶庫的效能(二)
- RMAN備份恢復效能優化優化
- rman備份恢復命令之switch
- RMAN備份恢復整個庫
- Oracle備份恢復之熱備份恢復及異機恢復Oracle
- Oracle rman 全備份的一個小例子Oracle
- Oracle的RMAN備份恢復,先從進入RMAN開始總結Oracle
- oracle 10.2.0.1 win 32 rman 備份異機恢復Oracle
- Oracle9i RMAN備份及恢復步驟Oracle
- 【RMAN】Oracle12c以後rman 備份恢復命令參考Oracle
- Oracle 11G 備份與恢復 使用RMAN建立備份集舉例Oracle
- Oracle 備份恢復概念Oracle
- oracle備份恢復PPTOracle
- Oracle 備份和恢復Oracle