1. Primary DB 參數:
#DB_NAME : Primary 與 Standby 都設為相同
#DB_UNIQUE_NAME : Primary 與 Standby 各不同名稱
#LOG_ARCHIVE_CONFIG='DG_CONFIG=(PRI,PRIBK),SEND,RECEIVE' : DG_CONFIG 中的值須為 Primary 與 Standby DB 所設定的 DB_UNIQUE_NAME, SEND 表示傳 Redo log 到遠端 , RECEIVE 表示收遠端的 Archived log.
#LOG_ARCHIVE_DEST_1='LOCATION=d:\ARCH\ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=PRI' : 代表 Archived log 產生到d:\ARCH 目錄
#LOG_ARCHIVE_DEST_2='SERVICE=PRIBK ARCH VALID_FOR=(ONLINE_LOGFILE,PRIMARY_ROLE) DB_UNIQUE_NAME=PRIBK OPTIONAL REOPEN=300' : 代表 Archived log 產生到 tnsnames.ora 的 PRIBK, 利用 Archiver, 只限定 Valid 為 Archiving redo log 時, 且產生的 DB 是 PRIMARY_ROLE 的狀況下 , REOPEN 表示 300秒後 archiver processes (ARCn) or the log writer process (LGWR) should try again to access a previously failed destination , OPTIONAL 表示不需等到傳完redo data 即將 online redo log 變成可reuse 狀態.
#LOG_ARCHIVE_DEST_STATE_1=ENABLE : ENABLE 代表允許redo transport services 傳送 redo data 到指定目的地
#LOG_ARCHIVE_DEST_STATE_2=ENABLE : 若為 DEFER 表示不傳送到此.
#REMOTE_LOGIN_PASSWORDFILE=SHARED : NONE 表示只能用 OS 認證方式登入 , SHARED 可表示利用 orapwxxx.ora password 來記錄與允許遠端登入成 SYSDBA
#LOG_ARCHIVE_FORMAT=%t_%s_%r.arc : %s log sequence number ,%t thread number , %r resetlogs ID
#LOG_ARCHIVE_MAX_PROCESSES : 預設為 4 個
#FAL_SERVER='PRIBK' : 指定Standby , FAL (fetch archive log) server for a standby database
#FAL_CLIENT='PRI'
#DB_FILE_NAME_CONVERT='c:\pri\t1\','d:\pribk\t1' : 表示PRI 的 datafile 路徑為/pri/t1/ , 於PRIBK 的路徑為 /pribk/t1/
#LOG_FILE_NAME_CONVERT='c:\pri\t1\','d:\pribk\t1' : 表示PRI 的 log file 路徑為/pri/t1/ , 於PRIBK 的路徑為 /pribk/t1
#STANDBY_ARCHIVE_DEST='d:\ARCH\'
#STANDBY_FILE_MANAGEMENT=AUTO : AUTO so when datafiles are added to or dropped from the primary database, corresponding changes are made automatically to the standby database.
2. Standby DB 參數:
#CONTROL_FILES='c:\PIRBK\bak.ctl' : 於 Primary DB 所產生出來的 Standby control file
#DB_NAME : 與 Primary DB 設為相同
#DB_UNIQUE_NAME=PRIBK : 與 Primary DB 設為不相同
#FAL_SERVER='PRI' : 指定 Primary DB , FAL (fetch archive log) server for a standby database
#FAL_CLIENT='PRIBK'
#STANDBY_ARCHIVE_DEST='d:\ARCH\'
#STANDBY_FILE_MANAGEMENT=AUTO
#LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
#REMOTE_LOGIN_PASSWORDFILE=SHARED
#LOG_ARCHIVE_DEST_1='LOCATION=d:\ARCH\ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=PRIBK'
#LOG_ARCHIVE_DEST_2='SERVICE=PRI ARCH VALID_FOR=(ONLINE_LOGFILE,PRIMARY_ROLE) DB_UNIQUE_NAME=PRIBK OPTIONAL REOPEN=300'
#LOG_ARCHIVE_DEST_STATE_1=ENABLE
#LOG_ARCHIVE_DEST_STATE_2=ENABLE
3. 建立
Primary 上
# Primary 資料庫上的 tnsnames.ora ,將Primary 與 Standby 加入
# 確認 Archive log mode 有啟動
# 確認 password file 有產生
# alter database force logging;
# backup databse
# shutdown database , startup mount
alter databse create standby controlfile as 'd:\bk\pribk.ctl'
Standby 上
#確認 Listener (Standby) , tnsnames.ora (Primary 與Standby 皆需有) , Control file, password file
# 確認 standby db 的 init parameter file 位置
# startup Standby DB
# Start apply log
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
4. Active Standby DB 步驟
# Stop Primary DB , 登入 Standby DB
# sqlplus " / as sysdba"
# alter database recover managed standby database finish skip standby logfile; (若是採用 LGWR 方式則skip standby logfile 可去掉)
# alter database commit to switchover to primary;
# shutdown immediate
4.1 確認準備好的 initPRI.ora parameter file存在 , 內容重點的
INSTANCE_NAME=PRI
SERVICE_NAMES=PRI
# 確認password file 存在(ORAPWDPRI.ora)., listener.ora 有 listen 此 Instance, tnsnames.ora 需調整
4.2 增加 Windows 上 Oracle Service .
oradim -new -sid PRI -startmode Auto -SHUTMODE immediate
4.3 set ORACLE_SID=PRI
sqlplus " / as sysdba"
shutdown immediate
0 意見:
Post a Comment