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;

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的自动化部署Oracle数据库脚本,供您参考: ```bash #!/bin/bash # 设置环境变量 export ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1 export PATH=$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib # 检查是否已经安装Oracle客户端 if ! rpm -qa | grep -qw oracle-instantclient12.2-basic; then echo "请先安装Oracle客户端" exit 1 fi # 创建数据库目录 mkdir -p /u01/app/oracle/oradata chown -R oracle:oinstall /u01/app/oracle # 解压Oracle安装文件 unzip /path/to/oracle-12.2.0.1.0.zip -d /tmp # 进入Oracle安装目录 cd /tmp/database # 执行安装 ./runInstaller -ignorePrereq -waitforcompletion -silent \ -responseFile /path/to/response/db_install.rsp \ oracle.install.option=INSTALL_DB_SWONLY \ ORACLE_HOSTNAME=oracle-server.example.com \ UNIX_GROUP_NAME=oinstall \ INVENTORY_LOCATION=/u01/app/oraInventory \ SELECTED_LANGUAGES=en,en_GB,zh_CN,zh_TW,ja \ ORACLE_HOME=$ORACLE_HOME \ ORACLE_BASE=/u01/app/oracle \ oracle.install.db.InstallEdition=EE \ oracle.install.db.OSDBA_GROUP=dba \ oracle.install.db.OSOPER_GROUP=dba \ oracle.install.db.OSBACKUPDBA_GROUP=dba \ oracle.install.db.OSDGDBA_GROUP=dba \ oracle.install.db.OSKMDBA_GROUP=dba \ oracle.install.db.OSRACDBA_GROUP=dba \ SECURITY_UPDATES_VIA_MYORACLESUPPORT=false \ DECLINE_SECURITY_UPDATES=true # 配置监听器 cp /u01/app/oracle/product/12.2.0/dbhome_1/network/admin/listener.ora /u01/app/oracle/product/12.2.0/dbhome_1/network/admin/listener.ora.bak echo "LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle-server.example.com)(PORT = 1521)) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = orcl.example.com) (ORACLE_HOME = /u01/app/oracle/product/12.2.0/dbhome_1) (SID_NAME = orcl) ) ) ADR_BASE_LISTENER = /u01/app/oracle" > /u01/app/oracle/product/12.2.0/dbhome_1/network/admin/listener.ora # 启动监听器 lsnrctl start # 创建数据库 dbca -silent -createDatabase \ -templateName General_Purpose.dbc \ -gdbname orcl.example.com -sid orcl \ -sysPassword syspassword123 \ -systemPassword systempassword123 \ -createAsContainerDatabase true \ -numberOfPDBs 1 \ -pdbName pdb1 \ -pdbAdminPassword pdbpassword123 \ -databaseType MULTIPURPOSE \ -automaticMemoryManagement false \ -totalMemory 2048 \ -storageType FS \ -characterSet AL32UTF8 \ -nationalCharacterSet AL16UTF16 \ -recoveryAreaDestination /u01/app/oracle/fast_recovery_area \ -redoLogFileSize 50 \ -emConfiguration NONE # 启动数据库 sqlplus / as sysdba << EOF startup; exit; EOF echo "Oracle数据库部署完成" ``` 请注意,此脚本仅供参考,您需要根据实际情况进行修改和调整。同时,为了保证安全性和可靠性,请在测试环境中先进行测试,并在生产环境中谨慎使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值