Thursday, April 16, 2026

Rename PDB in Primary & Standby (Oracle Data Guard)

 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_OLD

  • Target 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

RiskMitigation
Redo apply lagMonitor continuously
Service mismatchUpdate service names
App downtimePerform during maintenance window
Datafile path issuesPre-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