zoukankan      html  css  js  c++  java
  • 直接进入ORACLE12C插件数据库

    CDB和PDB是ORACLE 12C一个很亮的新特性,由于他们的引入导致传统的ORACLE数据库管理理念不少发生了改变。

        在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。CDB全称为Container Database,中文翻译为数据库容器,PDB全称为Pluggable Database,即可插拔数据库。在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。当进入ORACLE 12C后,实例与数据库可以是一对多的关系。

        其实大家如果对sql server比较熟悉的话,这种CDB与PDB是不是感觉和SQL SERVER的单实例多数据库架构是一回事呢。像PDB$SEED可以看成是master、msdb等系统数据库,PDBS可以看成用户创建的数据库。而可插拔的概念与SQL SERVER中的用户数据库的分离、附加其实就是那么一回事。

    CDB组件(Components of a CDB)

    一个CDB数据库容器包含了下面一些组件:

    ROOT组件

    ROOT又叫CDB$ROOT, 存储着ORACLE提供的元数据和Common User,元数据的一个例子是ORACLE提供的PL/SQL包的源代码,Common User 是指在每个容器中都存在的用户。

    SEED组件

      Seed又叫PDB$SEED,这个是你创建PDBS数据库的模板,你不能在Seed中添加或修改一个对象。一个CDB中有且只能有一个Seed. 这个感念,个人感觉非常类似SQL SERVER中的model数据库。

    PDBS

        CDB中可以有一个或多个PDBS,PDBS向后兼容,可以像以前在数据库中那样操作PDBS,这里指大多数常规操作。

    这些组件中的每一个都可以被称为一个容器。因此,ROOT(根)是一个容器,Seed(种子)是一个容器,每个PDB是一个容器。每个容器在CDB中都有一个独一无二的的ID和名称。

    SQL> show con_name;

    CON_NAME

    ------------------------------

    CDB$ROOT

    SQL> select name ,cdb from v$database;

    NAME      CDB

    --------- ---

    ORCLRQ    YES

    SQL> create user test identifed by test;

    ORA-65096: 公用用户名或角色名无效.

    查官方文档得知“试图创建一个通用用户,必需要用C##或者c##开头”

    创建用户默认的是container=all,在cdb中只能创建全局用户(c##开头),会在cdb和所有的pdb中创建该用户(但是pdb中的全局用户需要另外授权才能够在pdb中访问)。在pdb中只能创建的用户为本地用户

    SQL> create user c##test identifed by test;

    创建成功

    SQL> connect  / as sysdba

    已连接。

    SQL> select con_id,dbid,NAME,OPEN_MODE from v$pdbs;

        CON_ID       DBID NAME                           OPEN_MODE

    ---------- ---------- ------------------------------ ----------

             2 4097782011 PDB$SEED                       READ ONLY

             3 2302298700 PDBORCL                        MOUNTED

    SQL> alter PLUGGABLE database PDBORCL open;

    插接式数据库已变更。

    SQL> select con_id,dbid,NAME,OPEN_MODE from v$pdbs;

        CON_ID       DBID NAME                           OPEN_MODE

    ---------- ---------- ------------------------------ ----------

             2 4097782011 PDB$SEED                       READ ONLY

             3 2302298700 PDBORCL                        READ WRITE

    SQL> alter session set container=PDBORCL;

    会话已更改。

    SQL> show con_name;

    CON_NAME

    ------------------------------

    PDBORCL

    SQL> CREATE USER liferay IDENTIFIED BY liferay 

    DEFAULT TABLESPACE "USERS"

    TEMPORARY TABLESPACE "TEMP";

    创建成功

    SQL>  alter session set container=CDB$ROOT;

    会话已更改。

    SQL> SELECT USERNAME,CON_ID,USER_ID FROM CDB_USERS;

    J:Userslwsoft>lsnrctl status

    LSNRCTL for 64-bit Windows: Version 12.1.0.1.0 - Production on 31-8月 -2014 15:59:19

    Copyright (c) 1991, 2013, Oracle.  All rights reserved.

    正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1522)))

    LISTENER 的 STATUS

    ------------------------

    别名                      LISTENER

    版本                      TNSLSNR for 64-bit Windows: Version 12.1.0.1.0 - Production

    启动日期                  31-8月 -2014 15:41:53

    正常运行时间              0 天 0 小时 17 分 26 秒

    跟踪级别                  off

    安全性                    ON: Local OS Authentication

    SNMP                      OFF

    监听程序参数文件          D:oracleproduct12.1.0dbhome_1 etworkadminlistener.ora

    监听程序日志文件          D:oraclediag nslsnrlwsoalisteneralertlog.xml

    监听端点概要...

      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\.pipeEXTPROC1522ipc)))

      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1522)))

      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=lwsoa)(PORT=5500))(Security=(my_wallet_directory=D:ORACLEadminorclrqxdb_wallet))(Presentation=HTTP)(Session=RAW))

    服务摘要..

    服务 "CLRExtProc" 包含 1 个实例。

      实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...

    服务 "orclrq" 包含 1 个实例。

      实例 "orclrq", 状态 READY, 包含此服务的 1 个处理程序...

    服务 "orclrqXDB" 包含 1 个实例。

      实例 "orclrq", 状态 READY, 包含此服务的 1 个处理程序...

    服务 "pdborcl" 包含 1 个实例。

      实例 "orclrq", 状态 READY, 包含此服务的 1 个处理程序...

    命令执行成功

    ==========此时已可通过JDBC直接访问插件数据库PDBORCL=============

            String driver = "oracle.jdbc.driver.OracleDriver";

            String url = "jdbc:oracle:thin:@//127.0.0.1:1522/pdborcl";

            String username = "liferay";// 用户名

            String password = "cyj";// 密码

            Connection conn = null; // 创建数据库连接对象

            try {

                Class.forName(driver);

                conn = DriverManager.getConnection(url, username, password);

            ……

    ===========================================      

    J:Userslwsoft>tnsping pdborcl

    TNS Ping Utility for 64-bit Windows: Version 12.1.0.1.0 - Production on 31-8月 -2014 16:00:38

    Copyright (c) 1997, 2013, Oracle.  All rights reserved.

    已使用的参数文件:

    D:oracleproduct12.1.0dbhome_1 etworkadminsqlnet.ora

    TNS-03505: 无法解析名称

    ===========================添加本地网络服务名PDBORCL将可直接连接插件数据库PDBORCL================================================

    ORCLRQ =

      (DESCRIPTION =

        (ADDRESS_LIST =

          (ADDRESS = (PROTOCOL = TCP)(HOST = lwcyj)(PORT = 1522))

        )

        (CONNECT_DATA =

          (SERVER = DEDICATED)

          (SERVICE_NAME = orclrq)

        )

      )

    PDBORCL =

      (DESCRIPTION =

        (ADDRESS_LIST =

          (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1522))

        )

        (CONNECT_DATA =

          (SERVICE_NAME = pdborcl)

        )

      )

    ==========================================================

    J:Userslwsoft>tnsping pdborcl

    TNS Ping Utility for 64-bit Windows: Version 12.1.0.1.0 - Production on 31-8月 -2014 17:14:48

    Copyright (c) 1997, 2013, Oracle.  All rights reserved.

    已使用的参数文件:

    D:oracleproduct12.1.0dbhome_1 etworkadminsqlnet.ora

    已使用 TNSNAMES 适配器来解析别名

    尝试连接 (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1522))) (CONNECT_DATA = (SERVICE_NAME = pdborcl)))

    OK (0 毫秒)

    J:Userslwsoft>sqlplus

    SQL*Plus: Release 12.1.0.1.0 Production on 星期日 8月 31 17:06:24 2014

    Copyright (c) 1982, 2013, Oracle.  All rights reserved.

    请输入用户名:  liferay/liferay@pdborcl

    上次成功登录时间: 星期日 8月  31 2014 16:52:22 +08:00

    连接到:

    Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production

    With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options

    SQL>

    复制去Google翻译翻译结果

    转自:http://jingyan.baidu.com/article/9989c746255727f648ecfe84.html

  • 相关阅读:
    使用PrintDocument进行打印
    【转】封装原生JS实现Ajax
    休眠到指定时分秒
    [原创]vscode初体验
    反编译网站
    命令行工具aspnet_regiis.exe实现加密和解密web.config
    Sqlserver内置函数实现MD5
    [转]如何循序渐进向dotnet架构师发展
    [转]高级系统架构师培训笔记
    理解RESTful
  • 原文地址:https://www.cnblogs.com/wanggs/p/5053722.html
Copyright © 2011-2022 走看看