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##

    论读书
    睁开眼,书在面前
    闭上眼,书在心里
  • 相关阅读:
    Linux的SSH(Secure Shell Protocol)服务
    Linux开机自动挂载文件fstab介绍
    Linux之NFS网络文件系统
    深入理解sudo
    Linux定时任务(crond)
    Linux之Vim编辑器的使用
    三大文本处理工具grep、sed及awk
    jquery实现自定义弹出框
    oarcle12c打开本地数据库
    使用POI将doc文件转换为html
  • 原文地址:https://www.cnblogs.com/YC-L/p/14631835.html
Copyright © 2011-2022 走看看