Oracle 12c连接PDB时listener和tnsnames.ora配置
Oracle的tnsnames.ora配置(PLSQLDeveloper)

Oracle的tnsnames.ora配置(PLSQLDeveloper)1. ⾸先打开tnsnames.ora的存放⽬录,⼀般为D:\app\Administrator\product\11.2.0\client_1\network\admin,就看安装具体位置了。
2. 2使⽤editplus或者记事本或其他⼯具打开tnsnames.ora,进⾏编辑配置⼀下⽂件CONN_shenyi2 =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.144.191)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)))3. 3上边的SERVICE_NAME 和HOST、PORT 改为⾃⼰的即可4. 4打开plsql,登陆5. 5登陆完成即可使⽤强⼤的plsql developer/article/b0b63dbfcd34834a4930704a.html222222222222222222222222222222222222222今天是重要的⼀天。
将XML数据导⼊ORACLE遇到很多问题,学了好多,其中很长时间花在⽹络配置上,刚开始学,具体原因不知道,先把搜集到的好⽂章存下来,以后慢慢研究。
监听配置⽂件为了使得外部进程如 CAMS后台程序能够访问 Oracle 数据库必须配置 Oracle ⽹络服务器环境配置 Oracle ⽹络服务器环境是通过配置listener.ora sqlnet.ora 和 tnsnames.ora 共三个⽂件来进⾏的 listener.ora即监听配置⽂件在本⼩节说明另两个⽂件分别在随后的两个⼩节说明监听配置⽂件 listener.ora 的存放路径为 $ORACLE_HOME/network/admin以下是⼀个⽰例LISTENER = #监听器名称(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)))(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))))(DESCRIPTION =(PROTOCOL_STACK =(divSENTATION = GIOP)(SESSION = RAW))(ADDRESS =(PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 2481))))SID_LIST_LISTENER = #命名规则 SID_LIST_+上⾯定义的监听器名称(SID_LIST =(SID_DESC =(SID_NAME = PLSExtProc1)(ORACLE_HOME = /u01/app/oracle/product/8.1.7)(PROGRAM = extproc))(SID_DESC =(GLOBAL_DBNAME = cams)(ORACLE_HOME = /u01/app/oracle/product/8.1.7)(SID_NAME = cams))(SID_DESC =(GLOBAL_DBNAME = oid)(ORACLE_HOME = /u01/app/oracle/product/8.1.7)(SID_NAME = oid)))& 说明1 listener.ora ⽂件中定义⼀个监听器其缺省的名称为 LISTENER这个监听器缺省以tcp/ip为协议地址且端⼝号为1521运⾏在CAMS应⽤中监听⽂件定义的监听器就使⽤这个缺省名字并且使⽤缺省的协议 tcp/ip和缺省的端⼝号 1521 待配置好监听⽂件以及随后说明的 sqlnet.ora 和tnsnames.ora ⽂件之后就可以⽤以下命令将监听⽂件中定义的监听器启动起来$ lsnrctl start停⽌监听器的命令为$ lsnrctl stop监测监听器当前状态的命令为$ lsnrctl status当 lsnrctl status 命令有如下输出结果STATUS of the LISTENER------------------------Alias LISTENERVersion TNSLSNR for Linux: Version 8.1.7.4.0 - Production Start Date 17-JAN-2004 19:00:08Uptime 31 days 15 hr. 27 min. 59 sec就说明监听器正在运⾏否则说明监听器已经停⽌了 CAMS 系统的后台程序的正常运⾏不仅依赖于数据库实例的运⾏还依赖于这个数据库监听器的运⾏假如监听器没有启动即使数据库已经启动 CAMS 后台程序仍然不能正常⼯作2 如(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))所⽰的⼀个IPC 协议地址的监听是为了外部进程调⽤⽤的在数据库安装时⾃动设定不需要改动3 在监听⽂件后部还有⼀个 SID_LIST_LISTENER 段该段⽤于定义监听器的服务即为哪些数据库实例提供监听服务以 cams 实例为例其对应的服务信息为(SID_DESC =(GLOBAL_DBNAME = cams) #数据库名(ORACLE_HOME = /u01/app/oracle/product/8.1.7)(SID_NAME = cams) #数据库实例名)1.2.5 sqlnet.ora ⽂件sqlnet.ora ⽂件的存放路径为 $ORACLE_HOME/network/admin 以下是⼀个⽰例NAMES.DEFAULT_DOMAIN = localdomainNAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)& 说明NAMES.DEFAULT_DOMAIN 指定⽹络域名 NAMES.DIRECTORY_PATH指定当解析客户端连接标识符时命名⽅法 naming metthods 采⽤的优先顺序从左⾄右递减在 CAMS 应⽤中这两个参数采⽤上述所⽰的系统缺省值1.2.6 tnsnames.ora ⽂件tnsnames.ora ⽂件的存放路径为 $ORACLE_HOME/network/admin 以下是⼀个⽰例OID.LOCALDOMAIN =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = oid)))CAMS.LOCALDOMAIN =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = cams)))INST1_HTTP.LOCALDOMAIN =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521)))(CONNECT_DATA =(SERVER = SHARED)(SERVICE_NAME = MODOSE)(divSENTATION = http://admin)))EXTPROC_CONNECTION_DATA.LOCALDOMAIN =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)))(CONNECT_DATA =(SID = PLSExtProc1)(divSENTATION = RO)))& 说明tnsnames.ora ⽂件中定义⼀个或多个⽹络服务 net service cams 实例对应的⽹络服务为CAMS.LOCALDOMAIN =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = cams)))注意这⾥ ADDRESS项包含三个⼦参数PROTOCOL :默认协议TCPHOST :ip地址PORT:端⼝,默认1521CAMS.LOCALDOMAIN为数据名要确保在监听⽂件中也有对应的⼀个 ADDRESS 项也包含同样的三个⼦参数并且⼦参数的值对应都相等另外这⾥ SERVICE_NAME 的值必需确保与监听⽂件中某 SID_DESC项下的 SID_NAME参数的值相等3333333333333333333333333333oracle⽹络配置三个配置⽂件 listener.ora、sqlnet.ora、tnsnames.ora ,都是放在$ORACLE_HOME/network/admin⽬录下。
oracle数据库连接方法

oracle数据库连接方法
Oracle数据库的连接方法有多种,以下列举两种常见的方式:
方法一:
1. 找到tnsnames.ora文件,打开后可以看到类似红色框中的配置。
2. 复制一份配置,放到tnsnames.ora文件底部,然后对其进行修改。
可以根据自己的情况设置四个位置:自定义数据库名、根据远程数据库地址修改地址、根据远程数据库端口号修改端口号、根据远程数据服务名修改服务名。
3. 修改完成后保存,再次打开PLSQL,只要填写正确的用户名密码,并选择刚刚自定义的数据库名,点击确定就可以连接数据库了。
方法二:
1. 从开始菜单中找到Oracle的Net Manager工具,单击打开。
2. 在Net Manager中,找到服务命名,可以看到刚刚配置的数据库名(服务命名),里面的配置和刚刚在tnsnames.ora文件修改的是一样的。
3. 在Navicat中改完重启后,再次打开Navicat,按照上图操作进入Oracle
新建连接界面。
OracleJDBC连接服务名、SID和tnsnames.ora配置的多种方式

OracleJDBC连接服务名、SID和tnsnames.ora配置的多种⽅式⼀、通过plsql链接数据库,配置的时候分别使⽤SERVICE_NAME和SID,都可以链接成功
⼆、jdbc配置,以下三中⽅式都可以成功连接数据库
格式⼀: 使⽤ServiceName⽅式:
jdbc:oracle:thin:@//<host>:<port>/<service_name>
例 jdbc:oracle:thin:@//xxx.xxx.xxx.xxx:1526/CDEV
@后⾯有//, 这是与使⽤SID的主要区别。
(11g在@后不加//也OK)
这种格式是Oracle 推荐的格式.
因为对于集群来说,每个节点的SID是不⼀样的,⽽SERVICE NAME可以包含所有节点。
格式⼆: 使⽤SID⽅式:
jdbc:oracle:thin:@<host>:<port>:<SID>
例 jdbc:oracle:thin:@xxx.xxx.xxx.xxx:1526:CDEV2
格式三:使⽤TNSName⽅式:
jdbc:oracle:thin:@<TNSName>
例 jdbc:oracle:thin:@CDEV
注意,ORACLE从10.2.0.1后⽀持TNSNames
⽐较:1和2中当@后边有双斜杠,端⼝号后边有单斜杠时,⽤服务名和实例名都可以链接成功,3中@后边没有双斜杠,端⼝号后边是冒号⽽不是斜杠的时候只能⽤实例名,当时笔者配置错误的时候是 jdbc:oracle:thin:@//<host>:1521:netgrid ,端⼝号后直接⽤了冒号。
Oracle中Basic与TNS的区别及与Oracle三种连接方式的关系

Oracle中Basic与TNS的区别及与Oracle三种连接⽅式的关系Oracle JDBC连接⼀共有三种⽅式,分别是:SERVICE_NAME、SID和TNSName。
1.SERVICE_NAME⽅式:jdbc:oracle:thin:@//<host>:<port>/<SERVICE_NAME>2.SID连接⽅式:jdbc:oracle:thin:@<host>:<port>:<SID>或:jdbc:oracle:thin:@<host>:<port>/<SID>3.TNSName连接⽅式:jdbc:oracle:thin:@<TNSName>打开oracle路径下的D:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN\tnsames.ora⽂件红线框内的db25就是TNSName,是属于客户端的参数,其余内容都是服务端的参数。
SERVICE_NAME和SID的⽐较:SID是对内的,是实例级别的⼀个名字,⽤来内部之间称呼⽤。
SERVICE_NAME是对外的,是数据库级别的⼀个名字,⽤来告诉外⾯的⼈,我数据库叫"SERVICE_NAME"。
访问数据库的过程:要想访问数据库,必须把数据库⽂件加载进实例中。
SID即INSTANCE_NAME是⽤来唯⼀标⽰实例的。
SERVICE_NAME是oracle8i新引进的,8i之前,⼀个数据库只能由⼀个实例对应,但是随着⾼性能的需求,并⾏技术的使⽤,⼀个数据库可以由多个实例对应了,⽐较典型的应⽤如RAC。
为了充分利⽤所有实例,并且令客户端连接配置简单,ORACLE提出了SERVICE_NAME的概念,该参数直接对应数据库,⽽不是某个实例。
⾃此Oracle JDBC连接多使⽤SERVICE_NAME⽅式连接,逐渐替代SID⽅式连接。
Oracle 客户端连接服务器常见问题

Oracle 客户端连接服务器常见问题之今天安装软件一直在测试链接不能通过,出现ORA-12154: TNS: could not resolve service name,后来才发现是tnsnames.ora中有误。
查找网上的资料,记录下来。
要排除客户端与服务器端的连接问题,首先检查客户端配置是否正确(客户端配置必须与数据库服务器端监听配置一致),再根据错误提示解决。
下面列出几种常见的连接问题:1、ORA-12541: TNS:没有监听器显而易见,服务器端的监听器没有启动,另外检查客户端IP地址或端口填写是否正确。
启动监听器:$ lsnrctl start或C:\lsnrctl start2、ORA-12500: TNS:监听程序无法启动专用服务器进程对于Windows而言,没有启动Oracle实例服务。
启动实例服务:C:\oradim –startup -sid myoracle3、ORA-12535: TNS:操作超时出现这个问题的原因很多,但主要跟网络有关。
解决这个问题,首先检查客户端与服务端的网络是否畅通,如果网络连通,则检查两端的防火墙是否阻挡了连接。
4、ORA-12154: TNS:无法处理服务名检查输入的服务名与配置的服务名是否一致。
另外注意生成的本地服务名文件(Windows下如D:\oracle\ora92\network\admin\tnsnames.ora,Linux/Unix下$ORACLE_HOME/network/admin/tnsnames.ora)里每项服务的首行服务名称前不能有空格。
5、ORA-12514: TNS:监听进程不能解析在连接描述符中给出的 SERVICE_NAME打开Net Manager,选中服务名称,检查服务标识栏里的服务名输入是否正确。
该服务名必须与服务器端监听器配置的全局数据库名一致。
6、Windows下启动监听服务提示找不到路径用命令或在服务窗口中启动监听提示找不到路径,或监听服务启动异常。
Oracle数据库监听器(LISTENER)和本地服务名(Tnsname)配置

Oracle数据库监听器(LISTENER)和本地服务名(Tnsname)配置分类:Oracle 基础知识2009-11-24 10:12 8315人阅读评论(7) 收藏举报一、监听器(LISTENER)监听器是Oracle基于服务器端的一种网络服务,主要用于监听客户端向数据库服务器端提出的连接请求。
既然是基于服务器端的服务,那么它也只存在于数据库服务器端,进行监听器的设置也是在数据库服务器端完成的。
二、本地服务名(Tnsname)Oracle客户端与服务器端的连接是通过客户端发出连接请求,由服务器端监听器对客户端连接请求进行合法检查,如果连接请求有效,则进行连接,否则拒绝该连接。
本地服务名是Oracle客户端网络配置的一种,另外还有Oracle名字服务器(Oracle Names Server)等。
Oracle常用的客户端配置就是采用的本地服务名,本文中介绍的也主要是基于本地服务名的配置。
三、Oracle网络连接配置方法配置Oracle服务器端与客户端都可以在其自带的图形化Oracle网络管理器(Oracle Net Manager)里完成(强烈建议在这个图形化的工具下完成Oracle 服务端或客户端的配置)。
在Windows下,点击“开始/程序/Oracle - OraHome92/Configuration and Migration Tools/Net Manager”启动Oracle网络管理器工具,在Linux/Unix下,利用netmgr命令来启动图形化Oracle网络管理器,如:$ netmgrWindows下启动Net Manager图形窗口如下图示:图(一)1、 Oracle监听器配置(LISTENER)如图(一)示,选中树形目录中监听程序项,再点击左上侧“+”按钮添加监听程序,点击监听程序目录,默认新加的监听器名称是LISTENER(该名称也可以由任意合法字符命名)。
选中该名称,选中窗口右侧栏下拉选项中的“监听位置”,点击添加地址按钮。
oracle12c创建可插拔数据库(PDB)与用户详解

oracle12c创建可插拔数据库(PDB)与⽤户详解前⾔由于oracle 12c使⽤了CDB-PDB架构,类似于docker,在container-db内可以加载多个pluggable-db,因此安装后需要额外配置才能使⽤。
⼀、修改listener.ora , tnsnames.ora###listener.ora###LISTENER =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))(CONNECT_DATA = (SERVICE_NAME = orcl)))#sid list列举cdb和所有pdb的数据库名,所有sid与oracle环境变量保持⼀致#SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME = orcl) #cdb db_name(SID_NAME = orcl))(SID_DESC =(GLOBAL_DBNAME = pdborcl) #pdb db_name(SID_NAME = orcl)))###listener.ora#####tnsnames.ora####cdborcl =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) )(CONNECT_DATA =(SERVICE_NAME = orcl) #cdb的db_name))#pdbpdborcl =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = pdborcl) #pdb的db_name))##tnsnames.ora###在客户端连接时使⽤“service_name+domain_name”连接。
连接另一台机器上的Oracle数据库的配置

一.能干什么:
在公司中,通常都需要自行配置和连接公司服务器上的Oracle数据库(在所以将该配置方法整理出来。
二.步骤:
1.去掉服务端安全限制
有两种方式: 1.关闭服务端防火墙。
2.在服务端防火墙中,将数据库端口(默认为1521)添加2.配置服务器连接
有两种方式: 1.直接修改tnsnames.ora
2.使用Net Manager进行配置
任选一种方式即可。
3.在客户端开发工具中添加该数据库的连接。
(1)PL/SQL Developer
(2)eclipse的db-viewer插件
注:如果只使用db-viewer,不用做第2步。
器上的Oracle数据库(在局域网中或互联网中)。
,将数据库端口(默认为1521)添加到例外端口中。
参见"直接修改tnsnames.ora"标签页
参见"使用Net Manager进行配置"标签页
参见"PL/SQL Developer"标签页
参见"配置eclipse的db-viewer插件"标签页用做第2步。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle 12c连接PDB时,listener和tnsnames.ora配置1、配置监听
首先要明确,所有的PDB都使用1个监听,配置多个实际上启动时也只有第1个有意义。
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ora12c_A)(PORT = 1521)) )
接下来使用SID_LIST_LISTENER来进行静态注册服务。
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = ora12c) #该服务是我配置的cdb信息
(SID_NAME = ora12c)
)
(SID_DESC =
(GLOBAL_DBNAME = pdborcl)#该服务是我配置的pdb信息
(SID_NAME = ora12c)
)
)
ADR_BASE_LISTENER = /opt/oracle
2、tnsnames.ora配置
观察发现,在tnsnames中配置pdb跟CDB,即原来11g的配置完全一样。
这里SERVICE_NAME = pdborcl使用得是PDB的名字,可以在v$pdbs中查看。
ORA12C =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ora12c_A)(PORT = 1521)) )
(CONNECT_DATA =
(SERVICE_NAME = ora12c)
)
)
pdborcl =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ora12c_A)(PORT = 1521)) )
(CONNECT_DATA =
(SERVICE_NAME = pdborcl)
)
)
3、为了保险,检查下sqlnet.ora
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
这一句是为了保证优先使用TNSNAMES解析。
配置完,在PDB启动的情况下(怎么启动这里不多讲了),就可以直接连接到PDB了。
(Oracle12c是没有scott用户的,我自己在PDB下面新建的)。