Oracle数据库PDB管理-创建、删除、插拔pdb

这里简单介绍了拔出PDB,删除PDB,插入PDB的操作方法:
1 创建pdb
2.命令行的方式可以使用PDB$SEED这个种子容器生成该容器的副本,从而快速创建新的PDB
1).如果使用的是OMF,例如是集群环境,直接使用create pluggable database命令创建PDB,如下:

alter system set db_create_file_dest=’+DGDATA4’;
create pluggable database pdb1 admin user oper identified by pdb1admin;

可以不指定新建的PDB数据文件路径,则会将数据文件存放到DB_CREATE_FILE_DEST下的GUID目录下(GUID可以在v$pdbs中查询到).

create pluggable database pdb2 admin user oper identified by pdb1admin create_file_dest=’++DGDATA3’;

2).如果使用的是非OMF环境,则需要指定PDB数据文件的目录.由于是从PDB S E E D 进 行 的 克 隆 , 所 以 需 要 指 定 一 个 F I L E N A M E C O N V E R T 参 数 , 将 P D B SEED进行的克隆,所以需要指定一个FILE_NAME_CONVERT参数,将PDB SEED,FILENAMECONVERT,PDBSEED的数据文件目录进行转换.
这样创建的PDB默认只创建了SYSTEM,SYSAUX,TEMP,UNDO表空间(19c环境)
克隆本地远程的PDB

ALTER PLUGGABLE DATABASE pdb1 CLOSE;
ALTER PLUGGABLE DATABASE PDB1 OPEN READ ONLY;
CREATE PLUGGABLE DATABASE PDB2 FROM PDB1
ALTER PLUGGABLE DATABASE PDB2 OPEN; ALTER PLUGGABLE DATABASE PDB2 save state;

2 删除PDB
删除PDB之前需要将PDB先关闭

alter pluggable database testpdb5 close; drop pluggable database
testpdb5 including datafiles;

还可以使用keep datafiles为保留数据文件,默认如果不添加任何参数即为keep datafiles,但是注意keep datafiles则必须先将PDB拔出,所以一般是用在拔出和插入PDB场景

3 拔出unplugPDB

查看PDB信息:

SQL> select name,open_mode from v$pdbs;

NAME OPEN_MODE


PDB$SEED READ ONLY
PDB1 READ WRITE
PDB2 READ WRITE
PDB3 READ WRITE
PDB4 READ WRITE、

SQL> alter pluggable database pdb4 close immediate;
SQL> alter pluggable database pdb_4 unplug into ‘/home/oracle/unplugged_pdbs/pdb_4.xml’;

1 xml文件默认创建在 $ORACLE_HOME/dbs目录下。
2 被unplug的pdb,不允许在被打开。**

XML文件中包含了每个数据文件的位置,以及初始化参数等信息。

4 插入plug PDB
1 数据文件以及xml文件拷贝到指定目录。
2 插入pdb

create pluggable database test using ‘/home/oracle/test.xml’ nocopy tempfile reuse;

上述create pluggable database语句中,因为数据文件都在xml文件指定的位置,且仍使用原来的位置作为新的pdb的数据文件的存储位置,因此没有包含其他子句。

另外一条plug PDB的语句也可能如下:

CREATE PLUGGABLE DATABASE pdbname USING ‘/location/filename.xml’
SOURCE_FILE_NAME_CONVERT=(’/location1/’,’/location2/’) MOVE
FILE_NAME_CONVERT=(’/location2/’,’/location3/’)
PATH_PREFIX=’/location3/’
STORAGE (MAXSIZE 2G MAX_SHARED_TEMP_SIZE 100M);

这里xml文件中指示数据文件在/location1/中,而实际上数据文件在/location2/中,且最终我们要将数据文件放在/location3/中。

你可能感兴趣的:(ORACLE数据库pdb管理)