顯示全部RMAN配置sql
rman target sys/oracle@practice nocatalog數據庫
show all;oracle
創建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’;