Oracle创建PDB的方法
Oracle12c以后,PDB(Pluggable Database)已经成为了非常重要的一个概念。在一个CDB(Container Database)下,可以创建多个PDB,每个PDB可以看做是一个独立的数据库。在实际应用中,PDB可以更好地将数据库细分化,实现更精细的权限控制和资源分配。有了PDB,我们就可以将数据库实例和应用细分,部署在不同的服务器和数据中心内,更好地实现资源消耗和数据库耦合方面的调整。
创建PDB的语句
在Oracle12c以后的数据库中,创建PDB的语句如下所示:
CREATE PLUGGABLE DATABASE pdb_name
ADMIN USER pdb_admin_user IDENTIFIED BY password
PATH='pdb_file_system_location'
STORAGE (MAXSIZE size [AUTOEXTEND ON])
FILE NAME_CONVERT = ('CDB_file_system_location','PDB_file_system_location')
DEFAULT TABLESPACE tablespace_name
FROM seed_database_name;
其中,pdb_name是要创建的PDB的名称;pdb_admin_user是用于管理PDB的用户,需要提供密码;pdb_file_system_location是创建PDB的文件系统路径;size是指定PDB的最大大小,单位可以是G或M;CDB_file_system_location和PDB_file_system_location分别表示CDB的文件路径和PDB的文件路径;tablespace_name表示PDB的默认表空间;seed_database_name是用于创建PDB的种子数据库的名称。
创建PDB的过程
接下来我们就来举个例子来说明如何通过SQL语句来创建一个名为pdbtest的PDB。
(1)首先,需要进入CDB数据库的管理员用户,如下:
SQL>CONNECT / as sysdba;
(2)确定要建立PDB的位置(PATH),以及设置与CDB路径的映射,这个可以在$(ORACLE_HOME)下的dbca.conf文件中找到。我们将要建立的PDB存储在$ORACLE_BASE/oradata目录下,我们还需要将此目录与CDB下的一个目录对应。我们可以通过如下的命令来获取CDB的文件根目录:
SQL>SELECT value FROM v$parameter WHERE name='db_create_file_dest';
得到的结果应该是CDB的文件路径,如/oradata/CDB。
(3)创建PDB的ADMIN USER,如下:
SQL>CREATE USER my_pdb_admin IDENTIFIED BY my_pass;
SQL>GRANT CREATE SESSION, SYSOPER, SYSDBA TO my_pdb_admin;
(4)创建PDB,我们设置PDB的最大大小为10G,并将其默认表空间设置为new_tablespace:
SQL>CREATE PLUGGABLE DATABASE pdbtest
ADMIN USER my_pdb_admin IDENTIFIED BY my_pass
PATH='/usr/oradata/pdbtest'
STORAGE (MAXSIZE 10G)
FILE_NAME_CONVERT=('/oradata/cdb/pdbtest','/usr/oradata/pdbtest')
DEFAULT TABLESPACE new_tablespace
SEED TESTDB;
其中,在SEED的位置填写CDB下已有的一个数据库名,用于创建PDB的种子库。
(5)最后,需要打开PDB:
SQL>ALTER SESSION SET CONTAINER=pdbtest;
SQL>ALTER PLUGGABLE DATABASE OPEN READ WRITE;
注意,在alter session时一定要使用PDB的名字,而不是CDB的名字。
总结
以上就是创建PDB的过程,涵盖了创建管理员用户、创建PDB、设置位置和大小、以及打开PDB的过程。创建PDB是一个非常重要的操作,在实际的使用中必须要熟练掌握。学会如何创建PDB可以让我们更好地实现资源控制和部署。