Oracle创建PDB及配置SID与service_name

PDB简介:

Oracle 12C 提出了多租户环境(Multitenant Environment)和容器(Container)的概念, 区分了两个层级:

        a. CDB ,Container Database, 数据库容器

        b. PDB,Pluggable Database, 可插拔数据库

在数据库中建立的用户对应以上两个层级:

        COMMOM USERS , 普通用户, 一般建立在CDB层, 用户名需要以 C#或C##开头;

        LOCAL USERS , 本地用户, 仅建立在PBD层,建立的时候需要指定容器

创建PDB的大致步骤如下:

--查看pdb情况,需要sys权限
SHOW PDBS;
--创建PDB
CREATE PLUGGABLE DATABASE PDB_NAME ADMIN USER SYS_PDB IDENTIFIED BY "SYS_PDB#2022" DEFAULT TABLESPACE TABLESPACE_NAME FILE_NAME_CONVERT=('/ORADATA/','/ORADATA/PDB_NAME.DBF');
--打开PDB读写
ALTER PLUGGABLE DATABASE PDB_NAME OPEN;
--切换session
ALTER SESSION SET CONTAINER = PDB_NAME;
--授权PDB用户相关权限
GRANT DBA,RESOURCE,CONNECT TO SYS_PDB;

修改tns,修改之前记得备份

#备份文件
cp tnsnames.ora tnsnames.ora.back
#修改文件
vi tnsnames.ora
#直接在最后面追加这两坨
#这一坨为service_name方式登录数据库
PDB_NAME =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = LOCALHOST)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = PDB_NAME)
    )
  )
 #这一坨用作SID方式登录数据库,不加使用SID登录的时候会报错ORA-12505
 PDB_NAME_SID =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = LOCALHOST)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
#      (SERVICE_NAME = PDB_NAME)
      (SID = PDB_NAME)
    )
  )

修改监听,修改之前记得备份

#备份文件
cp listener.ora listener.ora.back
#修改监听文件
vi listener.ora
#直接在最后面追加这一坨
#语法 USE_SID_AS_SERVICE_<listener_name> = ON
USE_SID_AS_SERVICE_LISTENER = ON
#停止监听
lsnrctl stop
#启动监听
lsnrctl start
#stop和start可用lsnrctl  reload代替
#查看监听状态
lsnrctl status

重启数据库

--停止数据库
shutdown immediate
--启动数据库
startup

验证登录

--验证,能登录成功则说明创建成功
CONN SYS_PDB/"SYS_PDB#2022"@PDB_NAME;


版权声明:本文为qq_37219543原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。