ALTER DATABASE FORCE LOGGING; SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE ARCHIVELOG; ALTER SYSTEM SET db_recovery_file_dest_size=10G; ALTER DATABASE OPEN; ALTER PLUGGABLE DATABASE pcndba OPEN;
-- 查詢 Online Redo 大小 SELECT group#, members, bytes FROM v$log; -- 50M, 3 groups -- 新增 4 組 Standby Redo (groups+1) ALTER DATABASE ADD STANDBY LOGFILE '/path/stdredo01.log' SIZE 50M; ALTER DATABASE ADD STANDBY LOGFILE '/path/stdredo02.log' SIZE 50M; ALTER DATABASE ADD STANDBY LOGFILE '/path/stdredo03.log' SIZE 50M; ALTER DATABASE ADD STANDBY LOGFILE '/path/stdredo04.log' SIZE 50M;
listener.ora 靜態註冊 SID=CDB 名稱;tnsnames.ora 互指 Service Name=PCNDBA。
mkdir -p /home/ora12c/app/oracle/fast_recovery_area mkdir -p /home/ora12c/app/oracle/oradata mkdir -p /home/ora12c/app/oracle/admin/cndba/adump
*.db_name='cndba' *.db_unique_name='cndba_p' *.log_archive_config='dg_config=(cndba_p,cndba_s)' *.log_archive_dest_1='location=USE_DB_RECOVERY_FILE_DEST valid_for=(all_logfiles,all_roles) db_unique_name=cndba_p' *.log_archive_dest_2='service=cndba_s valid_for=(online_logfiles,primary_role) lgwr affirm sync db_unique_name=cndba_s' *.log_archive_dest_state_1=enable *.log_archive_dest_state_2=enable *.standby_file_management='auto' *.fal_server='cndba_s'
若主備 CDB 名稱不同,需再加 DB_FILE_NAME_CONVERT、LOG_FILE_NAME_CONVERT。
scp orapwcndba standby:`pwd`db_unique_name='cndba_s'、fal_server='cndba_p'、log_archive_dest_1/2 互換、控制檔路徑。STARTUP NOMOUNT;
RMAN TARGET sys/oracle@cndba_p AUXILIARY sys/oracle@cndba_s RMAN> DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE NOFILENAMECHECK DORECOVER;
過程:備份密碼檔 → 還原控制檔 → MOUNT STANDBY → 重新命名資料檔/暫存檔 → 透過網路還原所有資料檔 → 切換歸檔 → RECOVER STANDBY → 完成。
ALTER DATABASE OPEN; ALTER PLUGGABLE DATABASE pcndba OPEN; -- 唯讀 ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION; -- 狀態變為 READ ONLY WITH APPLY
-- Primary ALTER SESSION SET CONTAINER=pcndba; CREATE TABLE cndba AS SELECT * FROM dba_users; ALTER SYSTEM SWITCH LOGFILE; -- 必須在 CDB$ROOT 執行 -- Standby ALTER SESSION SET CONTAINER=pcndba; SELECT COUNT(*) FROM cndba; -- 可查到 36 筆,同步成功
ALTER SYSTEM SWITCH LOGFILE 必須在 CDB$ROOT 執行。orapwd 重建。STANDBY_FILE_MANAGEMENT=AUTO 讓資料檔自動同步。