zoukankan      html  css  js  c++  java
  • Oracle 19c ORA-65096 公用用户名或角色名无效

    先来看看这个问题出现的前提

    Oracle 12c 开始有了CDB和PDB

    CDB与PDB是Oracle 12C引入的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。

    CDB全称为ContainerDatabase,中文翻译为数据库容器,PDB全称为Pluggable Database,即可插拔数据库。

    在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。

    而实例与数据库不可能是一对多的关系。当进入ORACLE 12C后,实例与数据库可以是一对多的关系。

    12c中,oracle 将CDB看成一个容器,用来存放数据库。

    • 在CDB中可以有多个PDB,其中存在一个root根容器(PDB$ROOT)、一个种子容器(PDB$SEED)和多个PDBS。
    • 所有的PDB共用一个硬件系统资源、sga和pga、redo、临时段、控制文件、参数文件、还原段(还可对每个PDB单独指定)。

    PDB$ROOT:根容器用来做所有容器的跟,用来对每个PDB进行统一管理

    • sqlplus / as  sysdba连接进来默认是连接的根容器,需要切换到其他的PDB容器才可以对单独的PDB操作。
    • 其中有 system数据文件、sysaux数据文件、(undo数据文件、temp数据文件、redo、控制文件)。
    • 一般不存放生产数据文件

    PDB$SEED:种子容器作为插入PDB的模板而存在

    • 每个CDB都有一个种子容器,且不可对其中对象进行修改。
    • 其中有 system数据文件、sysaux数据文件、其他数据文件。

    PDB:新插入容器,该容器用来存放数据库

    • 其中有 system数据文件、sysaux数据文件、其他数据文件。
    • 12c中可以插入多个容器进行统一管理,来减少DBA的工作量。
    • 其中的数据库可以插入或拔出。

    用户:12c中PDB$ROOT中的普通目录可以通过权限分配来访问一个或多个指定的PDB容器,最大权限用户是sysdba

    • 其中PDB也可单独创建普通用户来管理该容器的数据库。
    • PDB资源管理:12c中将多个数据库运行在一个硬件资源上,CDB性能上得到优化。
    • 在CDB中为每个PDB确定使用CPU最低份额,CDB会按照一个PDB份额/分配的总份额数*100%,来保证PDB最低份额数。

    管理容器

    使用sqlplus登陆(用plsql登陆无法使用show指令)

    查询容器是否CDB

    select name,cdb,open_mode,con_id from v$database;

    查看当前容器

    show con_name;

    查看已经创建的pdb

    show pdbs;

    在使用plsql连接Oracle 19c并创建新用户的时候报错, ORA-65096 公用用户名或角色名无效

    官方地址:https://docs.oracle.com/database/121/DBSEG/users.htm#GUID-4BF8A362-AD9B-4780-944E-CFB9B7D84B50

    文档里写的很清楚,如果要创建公共用户,需要加前缀c##

    论读书
    睁开眼,书在面前
    闭上眼,书在心里
  • 相关阅读:
    二分练习题4 查找最接近的元素 题解
    二分练习题5 二分法求函数的零点 题解
    二分练习题3 查找小于x的最大元素 题解
    二分练习题2 查找大于等于x的最小元素 题解
    二分练习题1 查找元素 题解
    code forces 1176 D. Recover it!
    code forces 1173 B. Nauuo and Chess
    code forces 1173 C. Nauuo and Cards
    吴恩达深度学习课程笔记-15
    吴恩达深度学习课程笔记-14
  • 原文地址:https://www.cnblogs.com/YC-L/p/14631835.html
Copyright © 2011-2022 走看看