-
概念理解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就需要到数据库里面查询了
-
实操感受,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目录下
好了,掌握这些估计能基本操作了,先到这里