Steps to Manually Register a Database and Backup to ZDLRA
Table of Contents
- Section 1: User and Policy Setup
- Section 2: Database Registration in ZDLRA
- Section 3: Wallet and Network Configuration
- Section 4: Database Registration with RMAN
- Section 5: Real-Time Redo Apply
- Section 6: RMAN Channel and Backup Configuration
Section 1: User and Policy Setup
Step 1.1 – Create the VPC User Account
racli add db_user --user_name=USER_NAME --user_type=vpc [--insecure]
Notes:
- If created with
--insecure
, the VPC password will expire, but can be reused. Password rollover is not supported in this mode. - Without
--insecure
, enable password rollover with theenable_stig
option onalter db_user
.
Step 1.2 – Create the DB Admin User Account
racli add db_user --user_name=USER_NAME --user_type=admin
Step 1.3 – Create a New Protection Policy (optional)
You can use the default protection policies provided with ZDLRA, but you may want to create custom policies for more control.
racli create protection_policy --protection_policy_name=VALUE --storage_location_name=VALUE \
[--recovery_window_goal=VALUE] [--description=VALUE] [--polling_policy_name=VALUE] \
[--max_retention_window=VALUE] [--recovery_window_sbt=VALUE] [--unprotected_window=VALUE] \
[--guaranteed_copy=VALUE] [--allow_backup_deletion=VALUE] [--store_and_forward=VALUE] \
[--log_compression_algorithm=VALUE] [--autotune_reserved_space=VALUE] \
[--recovery_window_compliance=VALUE] [--keep_compliance=VALUE] [--comments=VALUE]
Example:
racli create protection_policy --protection_policy_name='test' --storage_location='delta' \
--recovery_window_goal=10days --unprotected_window=30minutes --autotune_reserved_space=yes \
--log_compression=low --recovery_window_compliance=1days --allow_backup_deletion=no
Section 2: Database Registration in ZDLRA
Step 2.1 – Add the Database to ZDLRA Metadata
racli add protected_db --db_unique_name={DB_NAME} --protection_policy_name={PROTECTION_POLICY} --reserved_space={VALUE}
Recommended reserved space = ~2x database size.
Step 2.2 – Grant VPC Users Access
racli grant db_access --db_unique_name={DB_NAME} --username={VPCUSER}
Section 3: Wallet and Network Configuration
Step 3.1 – Determine the Wallet Location
- Check for existing wallets in
$ORACLE_BASE/admin/<dbname>/wallet
andsqlnet.ora
. - Use
WALLET_ROOT/server_seps
(typically$ORACLE_BASE/admin/{db_name}/wallet
).
Step 3.2 – Create or Update the Wallet
orapki wallet create --wallet $ORACLE_BASE/{DB_NAME}/wallet/server_seps
mkstore -wrl $ORACLE_BASE/{DB_NAME}/wallet/server_seps -createCredential {connect string} {VPC user} {password}
orapki wallet add -wallet $ORACLE_BASE/{DB_NAME}/wallet/server_seps -trusted_cert -cert {trusted cert PEM file}
orapki wallet create -wallet $ORACLE_BASE/{DB_NAME}
/wallet/server_seps -auto_login
Copy wallet to all RAC nodes.
Step 3.3 – Update sqlnet.ora
SQLNET.WALLET_OVERRIDE=TRUE
WALLET_LOCATION=
(SOURCE=
(METHOD=FILE)
(METHOD_DATA=
(DIRECTORY={WALLET Location})
)
)
Copy sqlnet.ora
to all RAC nodes.
Step 3.4 – Test SEPS Connection
sqlplus /@<db SCAN listener:PORT/Service:dedicated>
Section 4: Database Registration with RMAN
Step 4.1 – Register the Protected Database
RMAN> CONNECT TARGET /
RMAN> CONNECT CATALOG /@<db_SCAN:PORT/Service:dedicated>
RMAN> REGISTER DATABASE;
Section 5: Real-Time Redo Apply (Optional)
Step 5.1 – Update Wallet Configuration
Ensure the VPC user is in the wallet.
Step 5.2 – Update Database Parameters
ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=shared;
ALTER SYSTEM SET LOG_ARCHIVE_FORMAT='log_%d_%t_%s_%r.arc';
Step 5.3 – Set LOG_ARCHIVE_CONFIG
ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(<ZDLRA DB>,<DB_UNIQUE_NAME>)' SCOPE=BOTH;
Step 5.4 – Update the WALLET_ROOT in the database (if not set)
ALTER SYSTEM SET WALLET_ROOT='{Oracle home}/admin/{DB name}/wallet' scope=spfile;
NOTE: This requires a bounce of the instance to take affect.
Step 5.5 – Change the Redo Transport User to the VPC user
ALTER SYSTEM SET redo_transport_user={VPCUSER};
Step 5.6 – Add ZDLRA as an Archive Log Destination
ALTER SYSTEM SET LOG_ARCHIVE_DEST_<n>=
'SERVICE=<string from wallet>',
VALID_FOR=(ALL_LOGFILES,ALL_ROLES) ASYNC,
DB_UNIQUE_NAME='<ZDLRA DB>' SCOPE=BOTH;
ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_<n>=ENABLE SCOPE=BOTH;
Step 5.7 – Test Archive Log Configuration
SELECT status, error FROM v$archive_dest WHERE dest_id=<destination>;
Section 6: RMAN Channel and Backup Configuration
Step 6.1 – Add Default Channel Configuration
CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' FORMAT '%d_%U'
PARMS 'SBT_LIBRARY=libra.so, ENV=(_RA_NO_SSL=TRUE,RA_WALLET="location=file:<ORACLE_BASE>/admin/<db_name>/wallet/server_seps credential_alias=<string from wallet>")';
CONFIGURE DEVICE TYPE 'SBT_TAPE' PARALLELISM <n> BACKUP TYPE TO BACKUPSET;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE ARCHIVELOG DELETION POLICY TO SHIPPED TO ALL STANDBY;
CONFIGURE DEFAULT DEVICE TYPE TO SBT_TAPE;
Step 6.2 – Perform an Explicit Level 0 Backup
RMAN> CONNECT TARGET /
RMAN> CONNECT CATALOG <string from wallet>
RUN {
BACKUP CUMULATIVE INCREMENTAL LEVEL 0 SECTION SIZE 32g DATABASE PLUS ARCHIVELOG NOT BACKED UP;
}
Step 6.3 – Schedule Regular Incremental Backups
RMAN> CONNECT TARGET /
RMAN> CONNECT CATALOG <string from wallet>
RUN {
BACKUP CUMULATIVE INCREMENTAL LEVEL 1 DATABASE PLUS ARCHIVELOG NOT BACKED UP;
}