oracle 19c 初体验

  1. 概念理解cdb vs pdb,在以下所示版本列表中12CR2  12.2.0.1以后就有的概念(作者由于没有用过12C,18C),注:如果没有理解这两个概念,可能就无法操作数据库了(与11.2.0.4之前搭建一套环境,安装数据库,就开始操作不同了)

    Oracle12c版本的说明: 
    Oracle12cR2=12.2.0.1 
    Oracle18C=12.2.0.2 
    Oracle19c=12.2.0.3

    来自官方文档:Administrator’s Guide--> Multitenant Administrator's Guide中


    1.1 About the Multitenant Architecture

    The  multitenant architecture enables an Oracle database to function as a multitenant container database (CDB).A  CDB includes zero, one, or many customer-created pluggable databases (PDBs). A  PDB is a portable collection of schemas, schema objects, and nonschema objects that appears to an Oracle Net client as a  non-CDB. All Oracle databases before Oracle Database 12 c were non-CDBs.

    简单一点理解,CDB就是一个容器(或者说实例instance),PDB就是传统的database概念,重要一点就是CDB可以包含多个pdb。如下实例名htdb,CDB就需要到数据库里面查询了


  2. 实操感受,pdb是首次dbca创建数据库时候,提示需要建立的pdb,其他但是系统自带的

    安装了数据库,以为sqlplus / as sysdba之后,解锁scott用户,创建数据文件都一一失败了(这就是与11.2.0.4以前不同之处了)。

    这些操作需要连接指定的pdb才可以,命令alter session set container=pdb19;就代表连接这个pdb19库

    sqlplus / as sysdba之后,创建用户失败

    以为是语法问题,检查了一下,语法没有问题

    SQL> show con_name


    CON_NAME

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

    CDB$ROOT

    SQL> show pdbs


        CON_ID CON_NAME   OPEN MODE  RESTRICTED

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

    2 PDB$SEED   READ ONLY  YES

    3 PDB19   MOUNTED

    SQL> alter session set container=pdb19

      2  ;


    Session altered.


    SQL> show con_name


    CON_NAME

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

    PDB19

    SQL> create user longge identified by oracle;

    create user longge identified by oracle


    ERROR at line 1:

    ORA-01109: database not open

    提示数据库没有open,从前面show pdbs也可以看到是mount,直接猜测执行以下命令open

    SQL> alter database open;

    Database altered.


    SQL> create user longge identified by oracle;                       

    User created.以下语句都没有问题,可以看到pdb下面的数据文件,新建表空间

    上面用户虽然创建成功,但是要连接pdb好像还差点,如下错误出现

    以为是密码简单了不行,后面修改成其他得同样报错,百度一下,需要修改tnsname.ora文件,将pdb名称加入进去

    使用conn longge/abcd1234@HTDB;连接,如下是修改后得 tnsname.ora文件

    又是新错误,给授权一下

    SQL> alter session set container=pdb19;


         Session altered.


       SQL> grant RESTRICTED SESSION to longge;

    


  3 scott用户与alert日志

有了数据库,得有些数据测试,熟悉得scott用户没有,百度了一下说 pdb中默认不包含scott用户。

要运行以下脚本产生

$ORACLE_HOME/rdbms/admin/utlsampl.sql

注:需要修改脚步两处内容

     (1) CONNECT SCOTT/tiger     ----- 这个地方需要进行修改增加连接串 ,先配置好 tnsnames.ora

     (2)在CONNECT SCOTT/tiger@HTDB前加一行grant RESTRICTED SESSION to scott;

修改后内容如下(标红是修改的,共2行内容):


sys用户运行脚本

4 再说说alert日志,位置貌似变了

[oracle@long03s admin]$ cd /home/oracle/patch/rdbms/log

[oracle@long03s log]$ ls -lrt |grep alert

[oracle@long03s log]$ ls -lrt |grep -i alert

[oracle@long03s log]$ ls -lrt |grep -i log

-rw-r-----. 1 oracle oinstall   120 May 25 02:19 qopatch.log

-rw-r-----. 1 oracle oinstall  6147 May 27 22:04 qopatch_log.log

这一看就不像alert日志

继续百度一下,提示在这个视图指定的有

看着有个alert感觉这个像,去找找试试,结果被打脸了,不是的

原来在trace目录下( Diag Trace   /u01/app/oracle/diag/rdbms/htdb/htdb/trace

注:11g 也是在trace目录下

好了,掌握这些估计能基本操作了,先到这里

请使用浏览器的分享功能分享到微信等