Here’s a production-ready runbook with clear execution, validation, and rollback steps for renaming a PDB in an Oracle Data Guard environment.
Runbook: Rename PDB in Primary & Standby (Oracle Data Guard)
Change Details
Change Type: Database (PDB Rename)
Environment: Oracle Data Guard (Primary + Standby)
Source PDB Name:
PDB_OLDTarget PDB Name:
PDB_NEW
1. Pre-Change Checks
1.1 Verify Data Guard Health (Primary)
SELECT database_role, open_mode FROM v$database;
SELECT dest_id, status, error FROM v$archive_dest WHERE status <> 'INACTIVE';
SELECT process, status, thread#, sequence# FROM v$managed_standby;
✅ Ensure:
No transport lag
No apply lag
No errors in archive destinations
1.2 Verify PDB Status
SELECT name, open_mode, restricted FROM v$pdbs;
1.3 Backup (Recommended)
Take RMAN backup or snapshot backup
Ensure restore point if required:
CREATE RESTORE POINT before_pdb_rename GUARANTEE FLASHBACK DATABASE;
2. Change Execution Steps
Step 1: Restrict PDB (Primary)
ALTER PLUGGABLE DATABASE PDB_OLD CLOSE;
ALTER PLUGGABLE DATABASE PDB_OLD OPEN RESTRICTED;
SELECT name, open_mode, restricted FROM v$pdbs;
Step 2: Close PDB (Standby)
ALTER PLUGGABLE DATABASE PDB_OLD CLOSE;
Step 3: Rename PDB (Primary)
ALTER SESSION SET CONTAINER = PDB_OLD;
ALTER PLUGGABLE DATABASE PDB_OLD RENAME TO PDB_NEW;
Step 4: Restart PDB (Primary)
ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;
ALTER PLUGGABLE DATABASE OPEN;
Step 5: Monitor Redo Apply (Standby)
SELECT process, status, sequence# FROM v$managed_standby;
Wait until redo apply completes.
Step 6: Verify Rename (Standby)
SELECT name, open_mode FROM v$pdbs;
Step 7: Open PDB (Standby)
ALTER PLUGGABLE DATABASE PDB_NEW OPEN READ ONLY;
Step 8 (Optional): Move Datafiles
ALTER DATABASE MOVE DATAFILE
'/u01/oradata/CDB1/pdb_old/system01.dbf'
TO '/u01/oradata/CDB1/pdb_new/system01.dbf';
3. Post-Change Validation
3.1 Primary Validation
SELECT name FROM v$pdbs;
3.2 Standby Validation
SELECT name FROM v$pdbs;
SELECT database_role, open_mode FROM v$database;
3.3 Application Check
Validate application connectivity
Check updated service names
3.4 Listener & Services
SELECT name FROM cdb_services;
4. Rollback Plan
Rollback Trigger Conditions
Rename not reflected on standby
Redo apply failure
Application connectivity failure
Unexpected errors
Rollback Option 1: Rename Back (Preferred)
On Primary:
ALTER SESSION SET CONTAINER = PDB_NEW;
ALTER PLUGGABLE DATABASE PDB_NEW RENAME TO PDB_OLD;
ALTER PLUGGABLE DATABASE CLOSE IMMEDIATE;
ALTER PLUGGABLE DATABASE OPEN;
On Standby:
Wait for redo apply
Verify:
SELECT name FROM v$pdbs;
Rollback Option 2: Flashback Database (If Enabled)
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
FLASHBACK DATABASE TO RESTORE POINT before_pdb_rename;
ALTER DATABASE OPEN RESETLOGS;
⚠️ Rebuild standby may be required after RESETLOGS.
Rollback Option 3: Restore from Backup
Restore RMAN backup
Recover database
Reconfigure Data Guard if needed
5. Risks & Mitigation
| Risk | Mitigation |
|---|---|
| Redo apply lag | Monitor continuously |
| Service mismatch | Update service names |
| App downtime | Perform during maintenance window |
| Datafile path issues | Pre-create directories |
6. Change Completion Checklist
✅ PDB renamed on Primary
✅ PDB renamed on Standby
✅ Redo apply running normally
✅ Application connectivity verified
✅ Services updated
✅ No errors in alert logs
7. Notes
Rename operation is fully propagated via redo
No need to manually rename on standby
Always validate Data Guard sync before and after change
No comments:
Post a Comment