Here are both options you asked for—first a one-page quick execution checklist (perfect for night deployment), followed by a scripted automation version you can adapt.
✅ One-Page Quick Execution Checklist (Night Deployment)
Change: Rename PDB (PDB_OLD → PDB_NEW)
🔹 Pre-Checks (Must Complete Before Start)
Data Guard healthy
SELECT database_role, open_mode FROM v$database;
SELECT dest_id, status, error FROM v$archive_dest;
No redo/apply lag
SELECT process, status FROM v$managed_standby;
PDB exists and is open
SELECT name, open_mode FROM v$pdbs;
Backup / Restore point created
CREATE RESTORE POINT before_pdb_rename GUARANTEE FLASHBACK DATABASE;
🔹 Execution Steps
1. Restrict PDB (Primary)
ALTER PLUGGABLE DATABASE PDB_OLD CLOSE;
ALTER PLUGGABLE DATABASE PDB_OLD OPEN RESTRICTED;
2. Close PDB (Standby)
ALTER PLUGGABLE DATABASE PDB_OLD CLOSE;
3. Rename PDB (Primary)
ALTER SESSION SET CONTAINER=PDB_OLD;
ALTER PLUGGABLE DATABASE PDB_OLD RENAME TO PDB_NEW;
4. Restart PDB (Primary)
ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;
ALTER PLUGGABLE DATABASE OPEN;
5. Monitor Standby Apply
SELECT process, status, sequence# FROM v$managed_standby;
6. Validate on Standby
SELECT name FROM v$pdbs;
7. Open PDB (Standby)
ALTER PLUGGABLE DATABASE PDB_NEW OPEN READ ONLY;
🔹 Post-Validation
PDB name updated on Primary
PDB name updated on Standby
Redo apply running
Application connectivity OK
Services updated
🔴 Rollback (Quick)
If issue occurs:
ALTER SESSION SET CONTAINER=PDB_NEW;
ALTER PLUGGABLE DATABASE PDB_NEW RENAME TO PDB_OLD;
ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;
ALTER PLUGGABLE DATABASE OPEN;
⚙️ Scripted Automation Version (SQL + Bash Style)
You can adapt this for manual execution or automation tools (Ansible/Shell).
🔹 Primary Script (rename_pdb_primary.sql)
-- Pre-check
SELECT name, open_mode FROM v$pdbs;
-- Restrict PDB
ALTER PLUGGABLE DATABASE PDB_OLD CLOSE;
ALTER PLUGGABLE DATABASE PDB_OLD OPEN RESTRICTED;
-- Rename
ALTER SESSION SET CONTAINER=PDB_OLD;
ALTER PLUGGABLE DATABASE PDB_OLD RENAME TO PDB_NEW;
-- Restart
ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;
ALTER PLUGGABLE DATABASE OPEN;
-- Validate
SELECT name, open_mode FROM v$pdbs;
🔹 Standby Script (rename_pdb_standby.sql)
-- Close old PDB
ALTER PLUGGABLE DATABASE PDB_OLD CLOSE;
-- Monitor apply
SELECT process, status, sequence# FROM v$managed_standby;
-- Validate rename
SELECT name FROM v$pdbs;
-- Open new PDB
ALTER PLUGGABLE DATABASE PDB_NEW OPEN READ ONLY;
🔹 Optional Bash Wrapper
#!/bin/bash
ORACLE_SID=CDB1
export ORACLE_SID
echo "Starting PDB Rename प्रक्रिया..."
sqlplus / as sysdba <<EOF
@rename_pdb_primary.sql
EXIT;
EOF
echo "Primary completed. Verify standby manually."
🔹 Rollback Script (rollback_pdb.sql)
ALTER SESSION SET CONTAINER=PDB_NEW;
ALTER PLUGGABLE DATABASE PDB_NEW RENAME TO PDB_OLD;
ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;
ALTER PLUGGABLE DATABASE OPEN;
SELECT name FROM v$pdbs;
💡 Pro Tips (From Real Deployments)
Always keep one session monitoring standby apply
Keep alert logs open (tail -f) on both servers
Don’t rush after rename—wait for redo sync
If using services, update them immediately after rename
No comments:
Post a Comment