Creating and Removing PDBs with SQL*Plus
This chapter contains the following topics:
- About Creating and Removing PDBs
- Preparing for PDBs
- Creating a PDB Using the Seed
- Creating a PDB by Plugging an Unplugged PDB into a CDB
- Unplugging a PDB from a CDB
- Dropping a PDB
About Creating and Removing PDBs
You can create a pluggable database (PDB) in a multitenant container database (CDB) in the following ways:
- Create the new PDB by using the seed. See "About a Multitenant Environment" for information about the seed.
- Create the new PDB by cloning an existing PDB or non-CDB.
- Plug an unplugged PDB into a CDB.
- Create the new PDB by using a non-CDB.
You can remove a PDB from a CDB in the following ways:
- Unplug the PDB from a CDB.
- Drop the PDB.
This section contains the following topics:
Techniques for Creating a PDB
This section describes the techniques that you can use to create a PDB. Creating a PDB is the process of associating the PDB with a CDB. You create a PDB when you want to use the PDB as part of the CDB.
Table 38-1 describes the techniques that you can use to create a PDB.
Table 38-1 Techniques for Creating a PDB
Technique | Description | More Information |
---|---|---|
Create a PDB by using the seed |
Create a PDB in a CDB using the files of the seed. This technique copies the files associated with the seed to a new location and associates the copied files with the new PDB. |
"Creating a PDB Using the Seed" |
Create a PDB by cloning an existing PDB or non-CDB |
Create a PDB by cloning a source PDB or non-CDB and plugging the clone into the CDB. A source can be a PDB in the local CDB, a PDB in a remote CDB, or a non-CDB. This technique copies the files associated with the source to a new location and associates the copied files with the new PDB. |
"Creating a PDB by Cloning an Existing PDB or Non-CDB" |
Create a PDB by plugging an unplugged PDB into a CDB |
Create a PDB by using the XML metadata file that describes the PDB and the files associated with the PDB to plug it into the CDB. |
"Creating a PDB by Plugging an Unplugged PDB into a CDB" |
Create a PDB by using a non-CDB |
Create a PDB by moving a non-CDB into a PDB. You can use the DBMS_PDB package to create an unplugged PDB from an Oracle Database 12c non-CDB. You can then plug the unplugged PDB into the CDB.
|
"Creating a PDB Using a Non-CDB" |
All of the techniques described in Table 38-1 use the CREATE
PLUGGABLE
DATABASE
statement to create a PDB. These techniques fall into two main categories: copying and plugging in. Figure 38-1 depicts the options for creating a PDB:
You can unplug a PDB when you want to plug it into a different CDB. You can unplug or drop a PDB when you no longer need it. An unplugged PDB is not usable until it is plugged into a CDB.
The CREATE PLUGGABLE DATABASE Statement
You use the CREATE
PLUGGABLE
DATABASE
statement to create a PDB. All of the techniques described in Table 38-1, "Techniques for Creating a PDB" use this statement.
The following sections describe the clauses for the CREATE
PLUGGABLE
DATABASE
statement and when to use each clause:
- Storage Limits
- File Location of the New PDB
- Restrictions on PDB File Locations
- Source File Locations When Plugging In an Unplugged PDB
- Temp File Reuse
- User Tablespaces
- PDB Tablespace Logging
- PDB Inclusion in Standby CDBs
- Excluding Data When Cloning a PDB
Storage Limits
The optional STORAGE
clause of the CREATE
PLUGGABLE
DATABASE
statement specifies the following limits:
- The amount of storage that can be used by all tablespaces that belong to the PDB
Use
MAXSIZE
and a size clause to specify a limit, or setMAXSIZE
toUNLIMITED
to indicate no limit. - The amount of storage in the default temporary tablespace shared by all PDBs that can be used by sessions connected to the PDB
Use
MAX_SHARED_TEMP_SIZE
and a size clause to specify a limit, or setMAX_SHARED_TEMP_SIZE
toUNLIMITED
to indicate no limit.
If STORAGE
UNLIMITED
is set, or if there is no STORAGE
clause, then there are no storage limits for the PDB.
The following are examples that use the STORAGE
clause:
- Example 38-1, "STORAGE Clause That Specifies Storage Limits"
- Example 38-2, "STORAGE Clause That Specifies Storage Limits for the Shared Temporary Tablespace Only"
- Example 38-3, "STORAGE Clause That Specifies Unlimited Storage"
Example 38-1 STORAGE Clause That Specifies Storage Limits
This STORAGE
clause specifies that the storage used by all tablespaces that belong to the PDB must not exceed 2 gigabytes. It also specifies that the storage used by the PDB sessions in the shared temporary tablespace must not exceed 100 megabytes.
STORAGE (MAXSIZE 2G MAX_SHARED_TEMP_SIZE 100M)
Example 38-2 STORAGE Clause That Specifies Storage Limits for the Shared Temporary Tablespace Only
This STORAGE
clause specifies unlimited storage for all tablespaces that belong to the PDB. It also specifies that the storage used by the PDB sessions in the shared temporary tablespace must not exceed 50 megabytes.
STORAGE (MAXSIZE UNLIMITED MAX_SHARED_TEMP_SIZE 50M)
Example 38-3 STORAGE Clause That Specifies Unlimited Storage
This STORAGE
clause specifies that the PDB has unlimited storage for both its own tablespaces and the shared temporary tablespace.
STORAGE UNLIMITED
See Also:
Oracle Database SQL Language Reference for the syntax of the STORAGE
clause
File Location of the New PDB
In this section, the term "file name" means both the name and the location of a file. The CREATE
PLUGGABLE
DATABASE
statement has the following clauses that indicate the file names of the new PDB being created:
- The
FILE_NAME_CONVERT
clause specifies the names of the PDB‘s files after the PDB is created.Use this clause when the files are not yet at their ultimate destination, and you want to copy or move them during PDB creation. You can use this clause in any
CREATE
PLUGGABLE
DATABASE
statement. - Starting with Oracle Database 12c Release 1 (12.1.0.2), the
CREATE_FILE_DEST
clause specifies the default Oracle Managed Files file system directory or Oracle ASM disk group for the PDB‘s files.Use this clause to enable Oracle Managed Files for the new PDB, independent of any Oracle Managed Files default location specified in the root for the CDB. You can use this clause in any
CREATE
PLUGGABLE
DATABASE
statement.
When necessary, you can use both of these clauses in the same CREATE
PLUGGABLE
DATABASE
statement. In addition, the following initialization parameters can control the location of the new PDB‘s files:
- The
DB_CREATE_FILE_DEST
initialization parameter set in the rootThis initialization parameter specifies the default location for Oracle Managed Files for the CDB. When this parameter is set in a PDB, it specifies the default location for Oracle Managed Files for the PDB.
- The
PDB_FILE_NAME_CONVERT
initialization parameterThis initialization parameter maps names of existing files to new file names when processing a
CREATE PLUGGABLE DATABASE
statement.
When both clauses are used in the same CREATE
PLUGGABLE
DATABASE
statement, and both initialization parameters are set, the precedence order is:
- The
FILE_NAME_CONVERT
clause - The
CREATE_FILE_DEST
clause - The
DB_CREATE_FILE_DEST
initialization parameter set in the root - The
PDB_FILE_NAME_CONVERT
initialization parameter
If FILE_NAME_CONVERT
and CREATE_FILE_DEST
are both specified, then the FILE_NAME_CONVERT
setting is used for the files being placed during PDB creation, and the CREATE_FILE_DEST
setting is used to set the DB_CREATE_FILE_DEST
initialization parameter in the PDB. In this case, Oracle Managed Files controls the location of the files for the PDB after PDB creation.
The following sections describe the PDB file location clauses in more detail:
See Also:
Oracle Database Reference for more information about initialization parameters
FILE_NAME_CONVERT Clause
If the PDB will not use Oracle Managed Files, then the FILE_NAME_CONVERT
clause of the CREATE
PLUGGABLE
DATABASE
statement specifies how to generate the names of files (such as data files) using the names of existing files.
You can use this clause to specify one of the following options:
- One or more file name patterns and replacement file name patterns, in the following form:
‘string1‘ , ‘string2‘ , ‘string3‘ , ‘string4‘ , ...
The string2 file name pattern replaces the string1 file name pattern, and the string4 file name pattern replaces the string3 file name pattern. You can use as many pairs of file name pattern and replacement file name pattern strings as required.
If you specify an odd number of strings (the last string has no corresponding replacement string), then an error is returned. Do not specify more than one pattern/replace string that matches a single file name or directory.
NONE
when no files should be copied or moved during PDB creation. Omitting theFILE_NAME_CONVERT
clause is the same as specifyingNONE
.
You can use the FILE_NAME_CONVERT
clause in any CREATE
PLUGGABLE
DATABASE
statement.
When the FILE_NAME_CONVERT
clause is not specified in a CREATE
PLUGGABLE
DATABASE
statement, either Oracle Managed Files or thePDB_FILE_NAME_CONVERT
initialization parameter specifies how to generate the names of the files. If you use both Oracle Managed Files and thePDB_FILE_NAME_CONVERT
initialization parameter, then Oracle Managed Files takes precedence. The FILE_NAME_CONVERT
clause takes precedence when it is specified.
File name patterns specified in the FILE_NAME_CONVERT
clause cannot match files or directories managed by Oracle Managed Files.
Example 38-4 FILE_NAME_CONVERT Clause
This FILE_NAME_CONVERT
clause generates file names for the new PDB in the /oracle/pdb5 directory using file names in the /oracle/dbs directory.
FILE_NAME_CONVERT = (‘/oracle/dbs/‘, ‘/oracle/pdb5/‘)
Oracle Multitenant Environment (五) Create PDB