RMAN命令詳解

顯示全部RMAN配置sql

rman target sys/oracle@practice nocatalog數據庫

show alloracle

 

創建OS目錄「D:\BACKUP\RMAN」函數

run {host mkdir 「D:\BACKUP\RMAN」}oop

 

配置RMAN備份文件默認格式爲「%d_%s.bak」,而後顯示自動通道配置。spa

configure channel device type disk format ‘D:\BACKUP\RMAN\%d_%s.bak’;.net

show channel;rest

 

配置備份冗餘度爲3,而後顯示備份冗餘度日誌

configure retention policy to redundancy 3;orm

show retention policy;

 

清除備份冗餘度配置,而後顯示備份冗餘度

configure retention policy clear;

show retention policy;

 

 

 

創建PRACTICE 數據庫的備份集

分配3個通道,設置備份片文件最大尺寸爲400M

創建備份集,文件格式:「%d_%s_%p.bak」,備份目錄:「D:\BACKUP\RMAN」

清除通道分配

使用list backup 命令列出全部備份集。

rman targt sys/oracle@practice nocatalog

run {

configure channel device type disk maxpiecesize 400M;  --設置最大尺寸400M

configure device type disk parallelism 3;    --分配3個並行通道

backup database format=’e:\backup\rman\%d_%s_%p.bak’;   --以指定格式備份

configure channel device type disk clear;      --還原最大尺度限制

configure device type disk clear;             --還原並行度

}

list backup;

 

 

 

 

 

創建表空間USERS的備份集

使用REPORT SCHEMA 命令報告目標數據庫的物理方案

創建備份集,文件格式:「%N_%s.bak」, 備份目錄:D:\backup\rman

使用list backup 命令列出全部備份集

report schema;

backup tablespace users format=’e:\backup\rman\%N_%s.bak’;

list backup of tablespace users;

 

創建最近一天歸檔日誌的備份集

手工切換日誌3次

sql ‘alter system switch logfile’;

sql ‘alter system switch logfile’;

sql ‘alter system switch logfile’;

 

創建歸檔日誌的備份集

backup archivelog from time ‘sysdate-1’ until time ‘sysdate’

format=’e:\backup\rman\%d_%s.bak’;

 

使用list backup 命令列出全部備份集

list backup of archivelog all;

 

創建增量備份和累計備份

在USER01表空間上執行增量0級備份

backup incremental level 0 tablespace user01;

創建示例表test_7,並執行pl/sql塊插入數據

run  {host ‘sqlplus sys/oracle@practice as sysdba’;}

create table test_7(cola INT) TABLESPACE user01;

begin

for I in 1..100000 loop

insert into test_7 values(i);

end loop;

commit;

end;

/

 

在USER01表空間上執行增量1級備份

exit

backup incremental level 1 tablespace user01;

 

爲示例表test_7插入1000000行數據

run  {host ‘sqlplus sys/oracle@practice as sysdba’;}

create tale test_7(cola INT) TABLESPACE user01;

begin

for I in 100000..200000 loop

insert into test_7 values(i);

end loop;

commit;

end;

/

exit

在user01表空間上執行累積1級備份

backup incremental level 1 cumulative tablespace user01;

 

在USER01表空間上執行增量0級備份

backup incremental level 0 tablespace user01;

 

列出user01表空間的全部備份集,並比較各個備份片文件的尺寸

list backup of tablespace user01;

 

 

 

在USER01表空間的數據文件上創建映像副本

使用REPORT SCHEMA 命令報告目標數據庫物理方案

report schema;

 

備份user01表空間的數據文件,備份目錄:D:\BACKUP\RMAN

copy datafile 5 to ‘e:\backup\rman\df_5.bak’;

 

 

RMAN恢復

恢復SYSTEM表空間

創建示例表test_8 插入6行數據並提交

create table test_8(cola INT) TABLESPACE system;

insert into test_8 values(1);

insert into test_8 values(2);

insert into test_8 values(3);

insert into test_8 values(4);

insert into test_8 values(5);

insert into test_8 values(6);

 

模擬損壞

rman target sys/oracle@practice nocatalog

report schema;

shutdown immediate

run {host ‘del E:\PRACTICE\SYSTEM01.DBF’;}

 

重啓數據庫,打開數據庫,檢查是否徹底恢復

startup

run {

restore datafile 1;

recover datafile 1;

alter database open;

}

run  {host ‘sqlplus sys/oracle@practice as sysdba’;}

select * from test_8

 

恢復其餘表空間(USER

創建示例表test_9,插入3行數據並提交

create table test_9(cola INT) TABLESPACE users;

insert into test_9 values(1);

insert into test_9 values(2);

insert into test_9 values(3);

commit;

 

模擬損壞

恢復users表空間

檢查test_9是否徹底恢復

shutdown immediate;

run {host ‘del e:\practice\users01.dbf’;}

startup

run {

sql ‘alter database datafile 4 offline’;

sql ‘alter database open’;

restore tablespace users;

recover tablespace users;

sql ‘alter tablespace users online’;

}

run {host ‘sqlplus sys/oracle@practice as sysdba’;}

select * from test_9;

 

基於時間的不徹底恢復

創建示例表test_10,插入6行數據並提交

create test_10 (cola INT) TABLESPACE user01;

insert into test_10 values(1);

insert into test_10 values(2);

insert into test_10 values(3);

insert into test_10 values(4);

insert into test_10 values(5);

insert into test_10 values(6);

commit;

 

查詢sysdate函數肯定當前系統日期和時間

select to_char(sysdate,’YYYY-MM-DD HH24:MI:SS’) from dual;

 

模擬誤操做

DROP table test_10;

 

恢復並檢查結果

set NLS_DATE_FORMAT=YYYY-MM-DD HH24:MI:SS

rman target sys/oracle@practice nocatalog

run {

startup force mount;

set until time ‘’;

restore database;

recover database;

alter database open resetlogs;

}

run {host ‘sqlplus sys/oracle@practice as sysdba’;}

select * from test_10;

 

基於取消的不徹底恢復

創建示例表TEST_11,並插入6行數據每插入一行提交一次,並手工切換日誌

create table test_11(cola INT) TABLESPACE user01;

insert into test_11 values(2);

commit;

insert into test_11 values(3);

commit;

insert into test_11 values(4);

commit;

insert into test_11 values(5);

commit;

insert into test_11 values(6);

commit;

alter system switch logfile;

 

模擬損壞, 恢復數據,並檢查test_11表的結果

shutdown immediate;

run {host ‘del e:\practice\user01.dbf’;}

run {host ‘del e:\practice\archive\47_1_993476187.ARC’}

run {host ‘del C:\practice\archive\47_1_993476187.ARC’}

 

run{

startup force mount;

setuntil sequence=3;

restore database;

recover database;

alter database open resetlogs;

}

 

run {host ‘sqlplus sys/oracle@practice as sysdba’;}

select * from test11;

 

RMAN維護

REPORT:,查看目標數據庫物理結構,查看須要備份的文件,陳舊的備份文件

LIST:列出全部備份集,備份片,映像副本

CROSSCHECK:查看備份狀態是否失效,保持同步狀態

DELETE:刪除    --noprompt 不顯示信息

CHANGE:改變備份集,備份片狀態,以及是否長久保存

CATALOG:添加用戶備份到RMAN備份資料庫中

 

刪除全部備份集和映像副本

delete noprompt backup;

delete noprompt copy;

 

使用REPORT命令

報告數據庫物理方案

export schema;

 

報告3天爲備份的數據文件,而後備份相應的數據文件

report need backup days 1 database;

 

在user01表空間上執行如下語句創建TEST_12表:

CREATE TABLE test_12 TABLESPACE user01 NOLOGGING

AS SELECT * FROM test11;

 

報告不可恢復的數據文件,而後備份相應的數據文件

report unrecoverable;

backup datafile 5 format =」E:\BACKUP\rman\%d_%s.bak」;

 

使用LIST命令

列出表空間 USERS 的備份集

list backup of tablespace users;

 

列出全部數據庫的副本

list incarnation of database;

 

使用CROSSCHECK命令

列出表空間USER01的備份集,而後使用OS命令刪除某個備份集文件

list backup of tablespace user01;

run {host ‘del e:\backup\rman\practice_16.bak’;}

 

使用CROSSCHECK 命令覈對表空間USER01的備份集

crosscheck backup of tablespace user01;

 

使用DELETE命令

刪除陳舊備份

delete noprompt obsolete;

 

刪除EXPIRED備份集

delete expired backup;

 

使用CHANGE命令

列出表空間USER的備份集,而後改變備份集爲UNAVAILABLE狀態

list backup of tablespace users;

change backupset 13 unavailable;

 

列出表空間USER的備份集,而後改變備份集爲AVAILABLE狀態

list backup of tablespace users;

change backupset 13 unavailable;

 

 

使用CATALOG命令

使用用戶管理備份方式備份USER01表空間

run {host ‘sqlplus sys/oracle @practice as sysdba’;}

alter tablespace user01 begin backup;

host copy e:\practice\user01.dbf d:\backup\rman

alter tablespace user01 end backup;

exit

 

追加USER01表空間備份信息到RMAN資料庫

catalog datafile copy ‘E:\backup\rman\user01.dbf’;

相關文章
相關標籤/搜索