oracle9i解密rewrap,ORACLE9I+DATAGUARD+RMAN
ORACLE9I+DATAGUARD+RMAN
第一、修改數據庫為歸檔模式
SQL> startup mount;
SQL> alter database archivelog;
SQL> alter database open;
SQL> alter system archive log start;
第二、復制數據庫
1.利用RMAN來復制數據庫,步驟如下(一般不是文件系統才使用此方法).
******************RMAN備份用戶需要的權限*****************
SQL>grant recovery_catalog_owner to rman;
SQL>grant connect, resource to rman;
***********************************************************
Rman nocatalog target sys/sys@ORACLE_SID
RMAN>Backup database;
RMAN> Backup current controlfile for standby;
RMAN> sql "Alter System Archive Log Current";
RMAN>exit;
2.操作系統的復制(一般適合文件系統)
第三、配置DATAGUARD
1.創建備用數據庫的參數和控制文件。
SQL>create pfile from spfile;
SQL>alter database create standby controlfile as ‘/path/filename’;
SQL>alter system archive log current;
2.修改/添加參數文件.
Primary INIT.ORA setup:
==========================
db_name = PROD
instance_name = PROD
fal_client = PROD
fal_server= STANDBY
log_archive_dest_1 = 'LOCATION= /arch'
log_archive_dest_2 = 'SERVICE=STANDBY LGWR ASYNC AFFIRM'
log_archive_format = %t_%s.arc
log_archive_start = true
remote_login_passwordfile = EXCLUSIVE
service_names =PROD
Standby INIT.ORA setup:
==========================
# Copy the init.ora from production to standby.
# Edit the initSTANDBY.ora to make neccessary changes:
db_name = "PROD"-- Must match the production database.
instance_name = STANDBY-- Instance identifier
lock_name_space = STANDBY-- Used when the standby or clone have the same
name as the production database being copied.
service_names = STANDBY-- Specifies the service names supported by the
instance.
fal_client = STANDBY-- Specifies the service name resolved from the
remote host to fetch archive logs to local.
fal_server = PROD-- Specifies the service name resolved on the
local host to request archive logs from remote.
db_file_name_convert= ('/p01/oradata/PROD',
'/u03/STANDBY/oradata')
log_file_name_convert= ('/p01/oradata/PROD',
'/u03/STANDBY/oradata')
# Use these parameters if you have a different filesystem structure on the
# standby. Then edit all the dump_dest and controlfile locations for the
# standby site.
standby_archive_dest = /p01/app/oracle/product/9.0.1/dbs/arch
standby_file_management = auto
REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE
可以用以下語句來進行模式間的切換,默認是maximizeperformance。
ALTER?DATABASE?SET?STANDBY?DATABASE?TO?MAXIMIZE?{PROTECTION?|?AVAILABILITY?|?PERFORMANCE};
修改主數據庫保護模式需要重啟數據庫才能生效。
select protection_mode,protection_level from v$database;
3.配置網絡連接
修改TNSNAMES.ORA文件。修改完畢后tnsping測試通過,否則日志傳輸會受到影響。
4.啟動備用數據庫
SQL>startup nomount;
SQL>alter database mount standby database;
SQL>alter database recover managed standby database disconnect from session.
5.配置完畢后檢查data-guard是否正常工作。
cd $ORACLE_BASE/admin/[SID]/bdump
tail –f alert_[SID].log如果看到如下信息說明data-guard已經正常運行。
…………………
Meadia Recovery Waitting from thread 1 seq#5
Completed:alter database recover managed standby database…
Media Recovery log /oracle/oradata/db/archive/1_5.arc
Media Recovery Waitting from thread 1 seq#6
4.注意一下幾種情況是不會產生日志
Direct path load
用子查詢建立表
在主數據庫上建立索引
表或索引的屬性為nologging
如果主數據庫的操作不產生日志,所做的修改就不會應用到備份數據庫上,所以在建立備用數據庫的時候,我們應該在主數據庫上執行alter database force logging命令以強制生成日志。
5.數據庫角色的轉換
Alter database commit to switchover
把主數據庫轉換成物理備用數據庫
alter?database?commit?to?switchover?to?physical?standby?with?session?shutdown;
shutdown
startup?nomount?pfile=/dbs/inittbdbsdby.ora
alter?database?mount?standby?database;
recover?managed?standby?database?disconnect;
把備用數據庫轉換成主數據庫
alter?database?commit?to?switchover?to?primary;
shutdown
startup?pfile=/dbs/inittbdb.ora
1、如果在備用端有活動的未歸檔的日志,或者有從主數據庫拷貝過來的聯機日志,可以采
用如下的辦法注冊并恢復
SQL>?ALTER?DATABASE?REGISTER?LOGFILE?'/u01/oracle/oradata/tbdb/archive/1_87.dbf';
SQL>recover?standby?database;
2、如果有活動日志,必須用
alter?database?recover?managed?standby?database?finish;
否則用
alter?database?recover?managed?standby?database?finish?skip?standby?logfile;
這樣切換的備用服務器可以避免最小的數據丟失和不用resetlogs,特別是對于用多個備用服務器的時候,該服務器可以馬上作為主服務器而不用重新創建備用服務器
主機rman nocatalog備份數據庫。每個星期五21:00點開始全庫備份,周一至周四備份歸檔日志。
配置策略:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1;(備份策略保持)
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 5 DAYS;(是保證至少有一個備份能恢復到Sysdate-5的時間點上,之前的備份將標記為Obsolete)
CONFIGURE RETENTION POLICY TO REDUNDANCY 5;(至少需要有三個冗余的備份存在,如果多余三個備份以上的備份將標記為冗余)
CONFIGURE RETENTION POLICY TO NONE;(NONE可以把使備份保持策略失效)
CONFIGURE RETENTION POLICY TO CLEAR;(Clear將恢復默認的保持策略)
CONFIGURE BACKUP OPTIMIZATION OFF;(備份優化開關)
CONFIGURE DEFAULT DEVICE TYPE TO DISK;(配置默認IO設備類型)
CONFIGURE CONTROLFILE AUTOBACKUP OFF;(自動備份控制文件開關)
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR TYPE DISK TO '%F'; (指定控制文件的備份路徑與格式)
CONFIGURE DEVICE TYPE DISK PARALLELISM 1;(并行備份,同時開啟1個通道進行備份與恢復)
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1;(多個備份的拷貝數目)
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; (多個歸檔備份的拷貝數目)
CONFIGURE MAXSETSIZE TO UNLIMITED;(備份集大小限制)
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/9.0.2/dbs/snapcf_U02.f'; (在備份期間,將產生一個控制文件的快照,用于控制文件的讀一致性)
################################################
# My configure
################################################
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 14 DAYS;
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR TYPE DISK TO '/BACKUP/Control_%d_%T';
CONFIGURE DEVICE TYPE DISK PARALLELISM 3;
CONFIGURE MAXSETSIZE TO 2G;
###############################################
#%c備份片的拷貝數
#%d數據庫名稱
#%D位于該月中的第幾天(DD)
#%M位于該年中的第幾月(MM)
#%F一個基于DBID唯一的名稱,這個格式的形式為c-IIIIIIIIII-YYYYMMDD-QQ,
#其中IIIIIIIIII為該數據庫的DBID,YYYYMMDD為日期,QQ是一個1-256的序
#列
#%n數據庫名稱,向右填補到最大八個字符
#%u一個八個字符的名稱代表備份集與創建時間
#%p該備份集中的備份片號,從1開始到創建的文件數
#%U一個唯一的文件名,代表%u_%p_%c
#%s備份集的號
#%t備份集時間戳
#%T年月日格式(YYYYMMDD)
###################################################
#FULL BACKUP (Every firday full backup at 21:00)
###################################################
Export dt=`date +%Y%m%d`
Export ORACLE_SID=
EXPORT ORACLE_HOME=
Rman nocatalog target username/password@$ORACLE_SID msglog /BACKUP/LOG/$ORACLE_SID_$dt.log append <
run {
Allocate channel ch01 type disk;
Allocate channel ch02 type disk;
Allocate channel ch03 type disk;
backup
full
tag 'full_db'
format '/backup/Full_%d_%T_%s_%p'
database;
sql 'alter system archive log current';
backup archivelog all delete input;
release channel ch01;
release channel ch02;
release channel ch03;
}
########################################################################
#Incremental backups (Every Monday to firday backup archive log)
########################################################################
Export dt=`date +%Y%m%d`
Export ORACLE_SID=
EXPORT ORACLE_HOME=
Rman nocatalog target username/password@$ORACLE_SID msglog /u01/$ORACLE_SID_$dt.log append <
run {
Allocate channel ch01 type disk;
Allocate channel ch02 type disk;
Allocate channel ch03 type disk;
sql 'alter system archive log current';
backup
format '/backup/arc_%d_%T_%s_%p'
backup archivelog all delete input;
release channel ch01;
release channel ch02;
release channel ch03;
}
*BACKUP ARCHIVELOG UNTIL TIME 'SYSDATE-7';根據時間備份日志(待測試)
######################################################################
#Delete 14 days before the archive log
######################################################################
Rman nocatalog target username/password@$ORACLE_SID msglog /u01/$ORACLE_SID_$dt.log append <
ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE disk;
DELETE NOPROMPT BACKUP OF DATABASE COMPLETED BEFORE 'SYSDATE-14';
######################################################################
#Delete the last backup
######################################################################
Delete命令可以用來刪除指定的備份或者用來刪除廢棄或者是過期的備份集
如刪除指定的備份集與備份片
RMAN> DELETE BACKUPPIECE 101;
RMAN> DELETE CONTROLFILECOPY '/tmp/control01.ctl';
RMAN> DELETE BACKUP OF TABLESPACE users DEVICE TYPE sbt;
刪除過期或者廢棄了的備份
RMAN> DELETE EXPIRED BACKUP;
RMAN> DELETE NOPROMPT OBSOLETE;
RMAN> DELETE OBSOLETE REDUNDANCY = 3;
RMAN> DELETE OBSOLETE RECOVERY WINDOW OF 7 DAYS;
刪除指定的備份歸檔
RMAN> DELETE NOPROMPT ARCHIVELOG UNTIL SEQUENCE = 300;
#####################################################################
#
#####################################################################
Crosscheck命令
檢查磁盤或磁帶上的備份或拷貝是否正確,并更新備份或者拷貝的狀態
如果不正確,將標記為expired(過期)
Crosscheck backup;
Crosscheck archivelog all;
Delete [noprompt] expired backup命令刪除過期備份
也可以用List來查看相應的報告
LIST EXPIRED BACKUP;
LIST EXPIRED BACKUP SUMMARY;
總結
以上是生活随笔為你收集整理的oracle9i解密rewrap,ORACLE9I+DATAGUARD+RMAN的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php5时区,[摘]PHP5.1时区设置
- 下一篇: oracle12 官网文档,Oracle