当前位置: 首页 > news >正文

【Oracle12C】部署服务建立用户及建库建表中遇到的问题以及12C的一些新特性

这是一篇oracle小白由于领导压迫,不堪折磨,苦苦挣扎研究所作。
详细安装文档在上篇博客,安装中可能遇到的错误以及亲测可用的解决方式已给出。

Oracle12C与11g版本的差异

在创建用户时遇到一个问题(我的发现都是根据遇到的问题来研究的):
问题描述:
在创建服务所需用户时提示ORA-65096:公用用户名或角色无效。
问题原因:
根据Oracle官方文档得知,12C版本创建公有用户名(CDB用户)必须以c##或C##开头,测试后发现登陆时也必须加C##用户名登陆。
【Oracle12C】部署服务建立用户及建库建表中遇到的问题以及12C的一些新特性

CDB与PDB解释:
Oracle 12C引入了CDB与PDB的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。
CDB全称为Container Database,中文翻译为数据库容器,PDB全称为Pluggable Database,即可插拔数据库。
在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。当进入ORACLE 12C后,实例与数据库可以是一对多的关系。
下面是官方文档给出的概念图:
【Oracle12C】部署服务建立用户及建库建表中遇到的问题以及12C的一些新特性
我的理解:这个结构有点类似于docker的关系。一个管理库(CDB)来管理所有的可插拔数据库(PDB),如果你想在PDB库中创建用户是不用加c##的,但是同样这个用户也只能在这一个PDB库中使用,无法应用到其他库中。
创建公有用户的示例sql:
CREATE USER c##test IDENTIFIED BY test DEFAULT TABLESPACE test ACCOUNT UNLOCK ;
同样在做授权或登陆等操作时也必须加c##:
GRANT RESOURCE TO c##test;

附带PDB与CDB有关的一些常用SQL语句:
创建PDB空间的示例语句(需要先创建表空间文件):
create tablespace TSCREDITLOG datafile '/home/oracle/app/oracle/creditdb/CREDITLOG/TSCREDITLOG01.dbf' size 20M;

查询所有的PDB及CDB的Name:
SELECT name, pdb FROM v$services ORDER BY name;

只查看PDB库:show pdbs;
(PDB我看到的有两种状态 读写和只读 )

打开所有PDB库: alter pluggable database all open;
切换到某个PDB(容器切换):ALTER SESSION SET container=NAMEPDB;
切换到CDB:alter session set container=cdb$root;
察看现在的容器的名称:show  conname;


操作中遇到的一些问题以及解决方式:

只是报错为问号或乱码:字符集不一致导致 :
运行:alter session set nls_language=american;
如果数据库提示符都为问号乱码:
需要在oracle用户下.bash_profile中添加环境变量NLS_LANG
创建表空间失败问题:
1.表空间文件夹授权有问题;
2.表空间文件夹不存在
创建表时提示创建失败(提示权限不足,没有用户等等):
检查了创建用户的脚本,在第一遍执行的时候返回的都是授权成功或者创建成功但是没有权限,所以重新执行了一遍,问题解决(问题规律—大招:很多问题都可以通过重启实例或者重新执行来解决)。
创建表空间错误ORA-65048:
在可插入数据库PDBORCL中处理当前DDL语句时出错 ORA-00959:表空间‘TEST’不存在
只需要重启数据库即可解决!
 Oracle数据库的启动与关闭方法
  sql>shutdown abort;    --一一异常关闭,但是最快的关机方式,因新装的数据库,就没有那么多顾忌。
sql>startup 
可以开心的正常创建用户了~~

Navicat无法连接oracle12c问题,提示没有匹配的验证协议:
问题原因:Navicat有一个OCI.dll文件版本过低。再深入的没研究,下面直接放找到的解决方法。
需要Oracle 的二个文件:
百度云链接:http://pan.baidu.com/s/1jIfQ95G 密码:wm9l
如果没有Navicat就去百度下一个(Nacicat for oracle)
这里直接把 instantclient-basic-nt-12.1.0.2.0.zip 解压到 Navicat for Oracle 的解压目录的instantclient_10_2目录下
然后这个目录下多了instantclient_12_1 这个目录 ,然后再把instantclient-sqlplus-nt-12.1.0.2.0.zip 解压到 instantclient_12_1下
完成
最后打开Navicat for Oracle 单击 工具->选项-> OCI
这里有二个选项 参考我的路径就知道了
OCI 你的路径\instantclient_12_1.oci.dll
SQL 你的路径\instantclient_12_1.sqlplus.exe
【Oracle12C】部署服务建立用户及建库建表中遇到的问题以及12C的一些新特性

然后新建连接,连接数据库:
【Oracle12C】部署服务建立用户及建库建表中遇到的问题以及12C的一些新特性
搞定。

转载于:https://blog.51cto.com/13632960/2087183

相关文章:

  • iis和apache共存,解决带端口访问问题
  • vue生命周期---详解
  • shell学习笔记(2)
  • spring-boot5代码
  • Android学习:ActionBar活动条
  • 客户端码农学习ML —— Matplotlib基本用法
  • 1041. 考试座位号(15)
  • 在Ubuntu16.04系统为Apache服务器安装Let's Encrypt证书
  • web_reg_find函数检查包含中文字符时报错的解决方案
  • springcloud config+jdbc(mysql)来实现配置管理
  • 从零开始的Spring Session(一)
  • vim 入坑指南
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • saltstack安装
  • 徒手撸UI之DatePicker
  • 2018一半小结一波
  • Leetcode 27 Remove Element
  • magento 货币换算
  • MySQL-事务管理(基础)
  • SSH 免密登录
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • 多线程 start 和 run 方法到底有什么区别?
  • 分类模型——Logistics Regression
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 和 || 运算
  • 回顾 Swift 多平台移植进度 #2
  • 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
  • 普通函数和构造函数的区别
  • 微信小程序--------语音识别(前端自己也能玩)
  • 消息队列系列二(IOT中消息队列的应用)
  • 怎样选择前端框架
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • 第二十章:异步和文件I/O.(二十三)
  • #100天计划# 2013年9月29日
  • #单片机(TB6600驱动42步进电机)
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • (1)Android开发优化---------UI优化
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (c语言)strcpy函数用法
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (收藏)Git和Repo扫盲——如何取得Android源代码
  • (四)图像的%2线性拉伸
  • (一)u-boot-nand.bin的下载
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • *** 2003
  • ***监测系统的构建(chkrootkit )
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .net core控制台应用程序初识
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .Net MVC + EF搭建学生管理系统
  • .NET 回调、接口回调、 委托
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?