Oracle-12C版本数据库遇到的坑与解决方案_tnsnames.ora 12c_Allow me的博客-程序员秘密

技术标签: Oracle12C  数据库  

问题一:

   使用sqlplus本地能连接Oracle数据库,但使用navicat和plsql图形化软件连接的时候就会报协议适配器错误,或者连接不上报navicat cannot create oci 

原因:

   这是因为数据库监听端口配置的有问题,或者navicat客户端OCI环境和可执行sqlplus版本低于Oracle数据库版本

解决方案:

   1.检查数据库的listener.ora和tnsnames.ora配置文件

   以下为我的数据库单实例配置文件:  
listener.ora:
# listener.ora Network Configuration File:  D:\app\oracle12c\product\12.1.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
  (SID_LIST =
     (SID_DESC =
        (SID_NAME = orcl)
          (ORACLE_HOME = D:\app\oracle\product\12.1.0\dbhome_1)
    )
)
LISTENER =
   (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(HOST =192.168.1.207)(PORT = 1521))
    )
)
  ADR_BASE_LISTENER = D:\app\oracle\product\12.1.0\dbhome_1\log
tnsnames.ora:
# tnsnames.ora Network Configuration File: D:\app\oracle12c\product\12.1.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.207)(PORT = 1521))
    (CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)))
LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.207)(PORT = 1521))
2.下载Oracle12c客户端连接文件
  百度网盘链接:链接:https://pan.baidu.com/s/16uloD0ZT6Z644su2UFYHtA 提取码:1111 
  下载完成后将其放入navicat客户端文件夹下,打开navicat→工具→选项→环境→将sqlplus和oci环境的路径替换为刚才下载的两个文件夹的路径.
  注意:我这里的客户端连接文件为64位的,如使用的是32位的系统,请前往Oracle官网下载.

问题二:

  登录数据库成功后,只能创建公用用户,但创建不了本地用户

原因:

      这是因为Oracle12C版本的新特性导致的,以下为Oracle12C版本新特性的概述:
  Oracle 12C引入了CDB与PDB的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个
  可插拔数据库(PDB)。CDB全称为Container Database,中文翻译为数据库容器,PDB全称为Pluggable Database,即可插拔数据库。在ORACLE 12C之前,
  实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。
  当进入ORACLE 12C后,实例与数据库可以是一对多的关系。下面是官方文档关于CDB与PDB的关系图。

在这里插入图片描述

       cdb相当于操作系统,调用并管理各个pdb。pdb相当于真正提供业务需求的数据库实例。oracle 12c安装后只创建了cdb,需要自己生成相应的pdb。
   oracle 12c使用了CDB-PDB架构,类似于docker,在container-db内可以加载多个pluggable-db. 
   Oracle Database 12c 第 1 版安装的时候会默认安装一个名称为pdborcl的实例,Oracle Database 12c 第 2 版默认名是orclpdb
       所以,当我们安装完数据库,使用sys或者system等公用用户以DBA的身份登录后,默认是在CDB容器中,而在CDB容器中是只能创建公用用户,不能创建本地用户的.PDB中才能创建.

解决方案:

1./*查看当前使用容器*/
select sys_context('USERENV','CON_NAME') FROM DUAL;

2./*查看pdb容器状态*/
select con_id,dbid,NAME,OPEN_MODE from v$pdbs;

3./*打开PDB*/
alter pluggable database PDBORCL open;

4./*切换到PDB*/
alter session set container=PDBORCL;

5./*查看当前使用容器*/
select sys_context('USERENV','CON_NAME') FROM DUAL;

/*===================================================================*/

切换到PDB容器之后就可以创建本地用户了:
1./*创建临时表空间*/
create temporary tablespace shop_temp  
tempfile 'D:\app\oracle12c\oradata\orcl\pdborcl\maxingping_temp.dbf' size 50m autoextend on  
next 50m maxsize 20480m  extent management local;  
2./*创建数据表空间*/
create tablespace shop  logging  datafile 'D:\app\oracle12c\oradata\orcl\pdborcl\maxingping_temp.dbf' size 50m autoextend on
next 50m maxsize 20480m  extent management local; 
#这里分配的表空间为2G,也可以设置为不限制
3./*创建用户并指定表空间*/
create user maxingping identified by 123456  default tablespace maxingping temporary tablespace maxingping_temp;  
4./*给用户授予权限*/
grant connect,resource,dba to maxingping;
现在就可以用自己创建的本地用户登录PDB数据库了
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45472243/article/details/115522963

智能推荐

寻找海明校验算法_大江之舞的博客-程序员秘密

早晨过来,顺便在小摊上买了套程序员合订本,好久没有看过这类杂志了。翻开来看,却无法消遣,看看光盘,偶然觅到小球称量,不得其所。只好找找海明校验算法,然GOOLE BAIDU搜索再三,却全是介绍和软考大纲之类,不得详解。再觅WIKI,校验、CRC、海明等等皆无其踪。郁闷之极。好象只有大学的计算机组成原理中才有

IAR 设置问题_iar的工程窗口被关掉了_bingquan3333的博客-程序员秘密

1、worksplace 的设置问题:edit configuration这样,每个工程都可以有一个workplace,方便切换。2、文件夹包含问题3、包含.dat文件问题.dat 实际为宏定义一些参数,在宏定义的参数名称前加上 -D 即可4、版本问题5、IAR中设置Tab键方法IAR中设置Tab键方法发下: Tools --》 Options --》Editor --...

Vue2.0权限树组件_敲键盘的猫的博客-程序员秘密

项目使用的饿了么的Element-Ui,权限树使用其树形控件:刚开始没有特殊需求,三级分支,效果看着还可以。但是接下来的新需求:增加页面操作按钮权限,即达到四级分支,同时要求四级权限布局方式为横向,而且操作按钮权限非固定四级树,但是样式要求一致。这样子就很难操作了,如果单单是四级树为横向,还可以调调样式完成。本来想修改element的tree控件源码来实现,网上查了一些资料,还没有很好

用Eclipse进行可视化Java界面设计(zz)_djsl6073的博客-程序员秘密

<script language="javascript" type="text/javascript">var newasp_fontsize=9;var newasp_lineheight=12;</script> 用Eclipse进行可视...

C/C++学习记录:深入理解三种传参方式_河边小咸鱼的博客-程序员秘密

C/C++学习记录:深入理解三种传参方式  之前对传参这方面的东西一直是知其然不知所以然。概念用法怎么用都知道,但是其真正的内部操作流程确实是理解不足。这两天一直在总结shell脚本的笔记,写累了正好研究一下传参这方面的内容。  这篇笔记中记录了关于这方面我的理解过程和心得。关于本篇笔记的深度,也是到汇编为止不再深入,就我个人理解来看已经是足够了。目录一、关于三种传参方式1. 值传参1.1 简单总结1.2 我的疑问2. 引用传参2.1 简单总结2.2 我的疑问3. 指针传参3.1 简单总结3.2 我

DPVS_dpvs学习笔记: 17 压测性能及优化_内酷少女的博客-程序员秘密

测试环境DPVS: Inspur NF5270M3, E5-2630 2.60GHz 24 cores, memory 96GReal Server: 6 台核数不同的机器,148 个 redis-serverBench Client: 8 台核数不同的机器,24000 个连接 ping官方推荐用 f-stack nginx 压测,还要让 real server 跑 dpdk 太麻烦。使用 red...

随便推点

React实现Google第三方登录_react-google-login_Bright1668的博客-程序员秘密

npm install react-google-login使用import React from 'react';import ReactDOM from 'react-dom';import GoogleLogin from 'react-google-login';// orimport { GoogleLogin } from 'react-google-login';const responseGoogle = (response) => { console.log(

GetWindowLong与SetWindowLong_c# getwindowlong_aptentity的博客-程序员秘密

      函数功能:该函数获得有关指定窗口的信息,函数也获得在额外窗口内存中指定偏移位地址的32位度整型值。   函数原型:LONG GetWindowLong(HWND hWnd,int nlndex);   参数:   hWnd:窗口句柄及间接给出的窗口所属的窗口类。   nlndex:指定要检索的基于0的偏移量。有效值的范围从0到窗口额外内存空间的字节数,减去4。例如,若指定了12位或多于12位的窗体类的额外存储空间,则应设为第三个32位整数的索引位8(12- 4=8)。要获得任意其他值,指定下列值

【23种设计模式之】15.观察者模式_雨降的博客-程序员秘密

练习源码:https://github.com/liaoooyx/Design-Patterns来自:https://www.baeldung.com/java-observer-patternObserver is a behavioral design pattern. It specifies communication between objects: observable and o...

Android Studio依赖冲突排查解决方法(亲试有效)_android studio 依赖冲突_潇曜的博客-程序员秘密

一、直入主题1、先使用cd命令回到AS项目的根目录,也就是gradlew所在的目录,正常来说,你点开Android Studio的Teminal,默认显示的路径就是项目的根目录,如下图所示:2、输入命令:gradlew 子模块名:dependencies,就可以显示出对应项目的依赖树,比如:1)先看看Demo build.gradle设置的依赖关系debugImplementation ...

推荐文章

热门文章

相关标签