search
  • Sign In
  • Sign Up
Password reset successful

Follow the proiects vou are interested in andi aet the latestnews about them taster

Table of Contents
Prerequisites
Step-by-Step: Clone a PDB Locally
Using NOCOPY or FILE_NAME_CONVERT
Refresh and Usage for Testing
Home Database Oracle How to clone an Oracle PDB (Pluggable Database) for testing

How to clone an Oracle PDB (Pluggable Database) for testing

Dec 28, 2025 am 05:18 AM

To clone an Oracle PDB for testing, ensure prerequisites like SYSDBA privileges and source PDB availability, then use CREATE PLUGGABLE DATABASE ... FROM to create a copy within the same or another CDB, optionally using NOCOPY or FILE_NAME_CONVERT for efficiency, followed by opening the new PDB and updating configurations for test usage.

How to clone an Oracle PDB (Pluggable Database) for testing

To clone an Oracle Pluggable Database (PDB) for testing, you create a copy of an existing PDB within the same or a different Container Database (CDB). This is useful for development, testing, or staging environments. The process requires proper setup and privileges but is straightforward using SQL*Plus or SQL Developer.

Prerequisites

Before cloning, ensure the following:

  • You have SYSDBA or equivalent privileges on the CDB.
  • The source PDB is in READ ONLY or OPEN mode.
  • A new PDB name is chosen and not already in use.
  • The target CDB (if different) has compatible character sets and options.
  • Proper storage (file system or ASM) is available for the new data files.

Step-by-Step: Clone a PDB Locally

This example shows how to clone a PDB within the same CDB.

  1. Connect to the CDB as a privileged user:
    sqlplus sys@cdb1 as sysdba
  2. Ensure the source PDB is open:
    ALTER PLUGGABLE DATABASE pdb_source OPEN;
  3. Issue the CREATE PLUGGABLE DATABASE ... FROM command:
    CREATE PLUGGABLE DATABASE pdb_test FROM pdb_source;
  4. Open the new PDB:
    ALTER PLUGGABLE DATABASE pdb_test OPEN;
  5. (Optional) Set a new admin password:
    ALTER USER pdb_admin IDENTIFIED BY new_password;

Using NOCOPY or FILE_NAME_CONVERT

By default, Oracle copies all data files. You can change this behavior:

  • NOCOPY: Creates a reference without copying files (faster, but source must remain).
    Example: CREATE PLUGGABLE DATABASE pdb_test FROM pdb_source NOCOPY;
  • FILE_NAME_CONVERT: Manually define file path mapping.
    Example: CREATE PLUGGABLE DATABASE pdb_test FROM pdb_source
    FILE_NAME_CONVERT = ('/pdb_source/', '/pdb_test/');

Refresh and Usage for Testing

After cloning, consider:

  • Running noncdb_to_pdb.sql if the source was a non-CDB (rare in modern setups).
  • Updating connection strings in test applications to point to the new PDB service.
  • Verifying schema data, users, and roles are correctly copied.
  • Isolating test changes—use restore points or drop the PDB after tests if needed.

Cloning a PDB is efficient and fast, especially with filesystem snapshots or storage-level clones in enterprise environments. For repeated test setups, automate the process using scripts.

Basically, just prepare the environment, run the CREATE PLUGGABLE DATABASE command, and open the new instance. It’s reliable and built into Oracle’s multitenant architecture.

The above is the detailed content of How to clone an Oracle PDB (Pluggable Database) for testing. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

ArtGPT

ArtGPT

AI image generator for creative art from text prompts.

Stock Market GPT

Stock Market GPT

AI powered investment research for smarter decisions

Popular tool

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to unlock a user account in Oracle Database? (User Management) How to unlock a user account in Oracle Database? (User Management) Mar 04, 2026 am 12:48 AM

Directly executing ALTERUSERusernameACCOUNTUNLOCK can unlock the account, but DBA authority is required; if it is a compound state such as EXPIRED&LOCKED or LOCKED (TIMED), the password must be reset simultaneously or the profile parameters must be adjusted.

How to troubleshoot the Oracle Listener startup? (Network Services) How to troubleshoot the Oracle Listener startup? (Network Services) Mar 10, 2026 am 12:58 AM

Oraclelistenerstartupfailuresstemfromsilentlistener.oraparsingerrors,hostnameresolutionissues,orpermissionproblems—notbinariesorports;validatesyntaxwithreload,checkownership,verifyactualconfigpath,testDNS,useexplicitIPs,confirmADR_BASE,enabletracingp

How to patch Oracle Grid Infrastructure? (System Maintenance) How to patch Oracle Grid Infrastructure? (System Maintenance) Mar 10, 2026 am 01:00 AM

Three things must be confirmed before applying the GI patch: 1. The opatchlsinventory-detail output of each node is consistent; 2. OCR and VoteDisk are online and crsctlcheckcluster-all and ocrcheck both return SUCCESS; 3. $GRID_HOME/crs/install/rootcrs.sh-prepatch has been successfully executed.

How to use Sequences in Oracle to generate IDs? (Auto-increment) How to use Sequences in Oracle to generate IDs? (Auto-increment) Mar 06, 2026 am 01:16 AM

ID auto-increment in Oracle requires the cooperation of SEQUENCE and BEFOREINSERT triggers, and the trigger must check: NEW.IDISNULL; 12c supports IDENTITY but is not compatible with older versions and disables explicit insertion.

How to use Oracle APEX to build a low-code app? (Rapid Development) How to use Oracle APEX to build a low-code app? (Rapid Development) Mar 13, 2026 am 12:48 AM

OracleAPEXislow-glue,notno-code:itskipsinfrastructurebutrequiresSQL,PL/SQL,anddeclarativelogic;ApplicationProcesseshandleserver-sidevalidationandsideeffects,DynamicActionsmanageclient-sideinteractivity;InteractiveGridneedskey-preservedsourcesforediti

How to implement Transparent Data Encryption (TDE) in Oracle? (Data Security) How to implement Transparent Data Encryption (TDE) in Oracle? (Data Security) Mar 13, 2026 am 12:14 AM

OracleTDE must first enable and open the encrypted wallet (Wallet), otherwise ORA-28365 will be reported when executing ALTERTABLESPACE...ENCRYPTION; Wallet needs to be created, opened and managed through the ADMINISTERKEYMANAGEMENT command, and the path must be explicitly configured in sqlnet.ora and permissions must be ensured.

How to manage Flashback Data Archive_Flashback Data Archive table space allocation How to manage Flashback Data Archive_Flashback Data Archive table space allocation Mar 28, 2026 pm 04:06 PM

The reason why the FlashbackDataArchive table space is full is that the hidden history table (SYS_FBA_HIST_XXXXXX) occupies the table space where the main table is located and does not go through ASSM cleaning; you need to use ALTERFLASHBACKARCHIVE...MODIFYTABLESPACE to migrate to the local management automatic segment space table space, and manually clean up the orphan history table.

How to use JSON data types in Oracle Database? (NoSQL Features) How to use JSON data types in Oracle Database? (NoSQL Features) Mar 08, 2026 am 01:03 AM

In Oracle's JSON scenario, you should select VARCHAR2 (4000CHAR) plus ISJSON constraints (small documents) or BLOB plus ISJSON constraints (large documents), and disable CLOB; ISJSON is a column-level constraint syntax, not a function call; the JSON_VALUE path must be a string literal; JSON_EXISTS needs to be speeded up with the JSON_VALUE function index.

Related articles