در اوراکل 21c می توان با کمک Data Guard Broker محیط دیتابیس primary را برای راه اندازی Data Gaurd آماده کرد. قرار دادن دیتابیس در مود archivelog، فعال کردن force logging، تنظیم پارامترها، ایجاد Standby Redo Log و … صرفا با اجرای یک دستور در محیط Broker انجام می شود. این دستور PREPARE DATABASE FOR DATA GUARD است که در قسمت زیر نحوه اجرای آن را به همراه عملیاتی که انجام می دهد، مشاهده می کنید:
DGMGRL> PREPARE DATABASE FOR DATA GUARD WITH DB_UNIQUE_NAME IS db21c
DB_RECOVERY_FILE_DEST_SIZE is “550G”
DB_RECOVERY_FILE_DEST is “/oracle21c/FRA”;
Preparing database “db21c” for Data Guard.
Initialization parameter DB_FILES set to 1024.
Initialization parameter LOG_BUFFER set to 268435456.
Primary database must be restarted after setting static initialization parameters.
Primary database must be restarted to enable archivelog mode.
Shutting down database “db21c”.
Database closed.
Database dismounted.
ORACLE instance shut down.
Starting database “db21c” to mounted mode.
ORACLE instance started.
Database mounted.
Initialization parameter DB_FLASHBACK_RETENTION_TARGET set to 120.
Initialization parameter DB_LOST_WRITE_PROTECT set to ‘TYPICAL’.
RMAN configuration archivelog deletion policy set to SHIPPED TO ALL STANDBY.
Initialization parameter DB_RECOVERY_FILE_DEST_SIZE set to ‘550G’.
Initialization parameter DB_RECOVERY_FILE_DEST set to ‘/oracle21c/FRA’.
LOG_ARCHIVE_DEST_n initialization parameter already set for local archival.
Initialization parameter LOG_ARCHIVE_DEST_2 set to ‘location=use_db_recovery_file_dest valid_for=(all_logfiles, all_roles)’.
Initialization parameter LOG_ARCHIVE_DEST_STATE_2 set to ‘Enable’.
Adding standby log group size 209715200 and assigning it to thread 1.
Adding standby log group size 209715200 and assigning it to thread 1.
Adding standby log group size 209715200 and assigning it to thread 1.
Initialization parameter STANDBY_FILE_MANAGEMENT set to ‘AUTO’.
Initialization parameter DG_BROKER_START set to TRUE.
Database set to FORCE LOGGING.
Database set to ARCHIVELOG.
Database set to FLASHBACK ON.
Database opened.
DGMGRL>
همانطور که می بینید، اجرای دستور PREPARE DATABASE FOR DATA GUARD مقدار پارامترهای زیر را تغییر داده است:
log_archive_dest_2 location=use_db_recovery_file_dest valid_for=(all_logfiles, all_roles)
log_archive_dest_state_2 Enable
log_buffer 268435456
db_files 1024
db_recovery_file_dest /oracle21c/FRA
db_recovery_file_dest_size 590558003200
standby_file_management AUTO
db_lost_write_protect TYPICAL
db_flashback_retention_target 120
dg_broker_start TRUE
و قابلیتهای FLASHBACK، ARCHIVELOG و FORCE LOGGING را فعال کرده است:
SQL> select FORCE_LOGGING,FLASHBACK_ON,LOG_MODE from v$database;
FORCE_LOGGING FLASHBACK_ON LOG_MODE
————— —————— ——————
YES YES ARCHIVELOG
به این مجموعه، ایجاد Standby Redo Log file را هم باید اضافه کرد. البته اوراکل تعداد گروهای redo log را برابر با گروهای standby redo log ایجاد خواهد کرد.
SQL> select distinct group#,TYPE from v$logfile order by type,GROUP#;
GROUP# TYPE
———- ——-
1 ONLINE
2 ONLINE
3 ONLINE
4 STANDBY
5 STANDBY
6 STANDBY
6 rows selected.
همچنین پالیسی SHIPPED TO ALL STANDBY را هم برای حذف آرشیولاگها اعمال می کند:
CONFIGURE ARCHIVELOG DELETION POLICY TO SHIPPED TO ALL STANDBY;