10gocm->session3->數據備份與恢復



這個實驗考查我們當數據庫出現故障宕機、數據丟失的情況下如何挽回我們的損失,如何在最短時間內恢復我們的數據庫服務。

RMAN規劃
host target庫 catalog庫
ocm01 ocmdb  
ocm02   ocmdb02



一 模擬Control File 丟失故障處理(實例)
我們模擬控制文件丟失故障並進行快速恢復
強行停止數據庫
select open_mode,log_mode from v$database;
1.shutdown abort  
rm命令刪除控制文件
rm control01.ctl
startup 啓動數據庫時就會發現報錯信息
我們檢查alert日誌獲知控制文件丟失
shutdown immediate  停掉數據庫
2.使用完好的控制文件恢復丟失的控制文件
cp control02.ctl  ../disk1/control01.ctl
重啓數據庫
startup




二 創建CATALOG庫保存RMAN備份信息
1.catalog庫統一管理RMAN備份信息即元數據信息,如果沒有catalog庫,就把RMAN備份信息寫入控制文件
2.目標數據庫必須註冊到catalog庫中才能使用
官方文檔:Backup and Recovery Reference -> CREATE CATALOG和REGISTER
Backup and Recovery Advanced User’s Guide -> 10 Managing the Recovery Catalog -> Creating a Recovery Catalog
注:ocmdb是目標數據庫
    ocmdb02是CATALOG數據庫
1.創建表空間            這個表空間存放catalog庫內容
sqlplus sys/oracle@ocmdb02 as sysdba
create tablespace catalog_tbs datafile '/u01/oracle/oradata/ocmdb02/catalog_tbs01.dbf' size 100m autoextend on;
2.創建catalog庫管理用戶catalog_admin默認表空間catalog_tbs
create user catalog_admin identified by catalog_admin default tablespace catalog_tbs;
3.將recovery_catalog角色授予給catalog_admin用戶才能備份和恢復
注:有的同學會問,我直接授予DBA角色不就可以了嗎。其實DBA角色不是萬能的,它不包括上述角色因此我們需要單獨設置
select * from dba_roles where role like '%RECOVER%';                  有沒有這個角色
select * from role_sys_privs where role='RECOVERY_CATALOG_OWNER';     這個角色包含哪些權限
grant connect,resource,recovery_catalog_owner to catalog_admin;       只需這三個角色即可
4.登錄RMAN創建CATALOG庫
rman catalog catalog_admin/catalog_admin@ocmdb02 
create catalog tablespace catalog_tbs;                               把catalog_tbs表空間指定爲catalog庫
exit
5.註冊目標數據庫
註冊ocmdb
必須要管理員身份登錄數據庫纔可註冊普通用戶不可以
rman target sys/oracle@ocmdb1521 catalog catalog_admin/catalog_admin@ocmdb02 
register database;
註冊ocmdb02
rman target sys/oracle catalog catalog_admin/catalog_admin
register database;
【unregister database; 】取消註冊命令
6.在數據庫中確認註冊成功,看看哪些數據庫註冊到catalog庫了
sqlplus catalog_admin/catalog_admin@ocmdb02
select * from rc_database;
7.ocmdb開啓歸檔
alter system set log_archive_dest_1='location=/u01/oracle/arcdata' scope=spfile;
shutdown immediate
startup mount
alter database archivelog;
alter database open;
select log_mode from v$database;




三 設置RMAN環境變量
官方文檔:Backup and Recovery Reference -> CONFIGURE
我們在使用RMAN工具進行備份恢復時,第一 可以在命令行模式下指定備份恢復選項
                                  第二 可以提前設置好RMAN環境變量,當達到觸發條件時自動觸發(目的)
必須連接到目標數據庫後纔可以查看設置好的變量值
rman target sys/oracle@ocmdb1521 catalog catalog_admin/catalog_admin@ocmdb02 
show all;
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default 冗餘配置保留政策:冗餘數是1
CONFIGURE BACKUP OPTIMIZATION OFF; # default          開啓增量備份:關
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default      默認備份設備是磁盤
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default       控制文件自動備份:關
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default 控制文件自動備份目錄和格式:%F  【備份設備:Disk】
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default    備份的並行度:1,備份類型爲備份集【幾個並行度就分配幾個通道】
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default           數據文件採用複製方式備份
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default         歸檔日誌採用複製方式備份
CONFIGURE MAXSETSIZE TO UNLIMITED; # default          最大值:無限制
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default      加密數據庫:關
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default    加密算法採用AES128        加密表空間時默認AES192算法
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default                         歸檔日誌刪除策略:空
CONFIGURE SNAPSHOT CONTROLFILE NAME TO                快照控制文件名
RMAN默認備份介質保存目錄/home/oracle/backup
configure channel device type disk format '/home/oracle/backup/ocmdb_%U';
控制文件自動備份
configure controlfile autobackup on; 
configure controlfile autobackup format for device type disk to '/home/oracle/backup/control/controlfile_%F'; 
備份並行度2
CONFIGURE DEVICE TYPE DISK PARALLELISM 2;
增量備份
configure backup optimization on;
備份介質保留期爲30天
configure retention policy to recovery window of 30 days;
顯示我們設置完的參數配置
show all;
四 RMAN備份和閃回數據庫
官方文檔:Backup and Recovery Reference -> BACKUP 
Backup and Recovery Basics -> 4 Backing Up Databases Using RMAN -> 4.2.5 Using Compressed Backupsets for RMAN Backup
1.壓縮全備
backup as compressed backupset database plus archivelog;       使用默認的備份介質目錄和格式,使用控制文件和參數文件自動備份
2.RMAN模塊版壓縮備份數據庫,採用壓縮備份方式全庫備份
run{
backup as compressed backupset full database
format '/home/oracle/backup/full_ocmdb_%u%p%s.rmn'
include current controlfile;
backup as compressed backupset archivelog all
format '/home/oracle/backup/arch_ocmdb_%u%p%s.rmn'
delete all input;
}
3.使用默認備份介質目錄和格式,同時 刪除備份過的歸檔日誌
backup as compressed backupset full database include current controlfile plus archivelog delete all input; 
4.“一行RMAN命令”壓縮備份數據庫
backup as compressed backupset full database format 
'/home/oracle/backup/full_ocmdb_%u%p%s.rmn' include current controlfile 
plus 
archivelog format '/home/oracle/backup/arch_ocmdb_%u%p%s.rmn'  delete all input; 
5.檢查所有備份集
list backupset summary;
6.配置flashback數據庫
閃回數據庫:使用閃回日誌恢復數據庫到之前的一個時間點。
啓動閃回前提條件是開啓歸檔:歸檔日誌可以輔助閃回日誌完成閃回工作,往回閃不用歸檔,往前閃會用到歸檔。
1.檢查數據庫狀態
select open_mode,log_mode,flashback_on from v$database; 是否在mount和archive狀態
archive log list;
先設置快速恢復區大小再設置目錄
alter system set db_recovery_file_dest_size=2g; 
mkdir -p /home/oracle/flash
alter system set db_recovery_file_dest='/home/oracle/flash';      (保存閃回日誌)
設置閃回保留期24小時(1天)單位是分鐘
alter system set db_flashback_retention_target=1440 scope=spfile; 
2.重啓使參數生效
shutdown immediate
startup mount
show parameter db_recovery
啓動閃回功能
alter database flashback on;
3.打開數據庫
alter database open;
select open_mode,log_mode,flashback_on from v$database;
閃回種類
閃回查詢   undo
閃回表     recycbin
閃回版本   undo
閃回事物   undo
閃回數據庫 閃回日誌
閃迴歸檔  表空間(永久保存11g新特性)





來源OCM實驗選講





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章