一些name的连接 学习总结

主要实现下,oracle中instance_name ,db_name等对连接的关系(动态监听)

我们查看监听

[[email protected] ~]$ lsnrctl status lsnr2

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 17-NOV-2014 19:59:47

Copyright (c) 1991, 2011, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1522)))
STATUS of the LISTENER
------------------------
Alias lsnr2
Version TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date 17-NOV-2014 19:53:45
Uptime 0 days 0 hr. 6 min. 2 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /app/oracle/product/11g/db_1/network/admin/listener.ora
Listener Log File /app/oracle/product/11g/db_1/log/diag/tnslsnr/localhost/lsnr2/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1522)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=extproc1)))
Services Summary...
Service "orcl" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully

可以看到监听中的serice是orcl,则在你的tns中的配置中的

132test=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.23.132)(PORT = 1522))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

这样一些客户端能连接上。

1.当我们修改db_domain

SQL> alter system set db_domain=‘xxx‘ scope= spfile;
System altered.

  需要重启数据库。

在执行lsnrctl status ,会发现,现在的service name为

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1522)))
STATUS of the LISTENER
------------------------
Alias                     lsnr2
Version                   TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date                17-NOV-2014 19:53:45
Uptime                    0 days 0 hr. 13 min. 36 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /app/oracle/product/11g/db_1/network/admin/listener.ora
Listener Log File         /app/oracle/product/11g/db_1/log/diag/tnslsnr/localhost/lsnr2/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1522)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=extproc1)))
Services Summary...
Service "orcl.xxx" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB.xxx" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully

  发现server 为 "orcl.xxx" ,此时的oracle 客户端连接工具,如pl/sql 等工具将连接不上。需要重新配置TNS。

2.如果修改service_names,则情况如下,一个实例下的数据库能对应多个服务

先将原来设置的db_domain 还原

SQL> alter system reset db_domain;
System altered.

重启

SQL> show parameter db_domain
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_domain                            string

  

修改service_names

SQL> alter system set service_names=app1,app2;

System altered.

SQL> show parameter service

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
service_names                        string      APP1, APP2

  在查看监听内容,发现

Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1522)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=extproc1)))
Services Summary...
Service "APP1" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "APP2" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orcl" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully

  此时,我这里使用PL/SQL 可以看到连个都能连上

tns如下

132testapp1=
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.23.132)(PORT = 1522))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = APP1)
    )
  )
132testapp2=
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.23.132)(PORT = 1522))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = APP2)
    )
  )

  

3.db_name是写入到文件头里面的,一般不能修改

4.db_unique_name

SQL> alter system set db_unique_name=‘aaaa‘ scope=spfile;

System altered.

  重启,观察lsnrctl

Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1522)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=extproc1)))
Services Summary...
Service "APP1" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "APP2" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "aaaa" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully

  这样的实验我们可以看书使用tns连接的时候,oracle的一些配置对于tns连接的。可以去排错。

时间: 2024-10-11 13:14:43

一些name的连接 学习总结的相关文章

数据库的连接(学习笔记)

Oracle安装完成后,会在服务中增加几个服务 由于Oracle比较消耗系统资源,建议将服务类型改为手动,需要时,再手动打开,不用时将服务关闭 也可以用以下批处理来完成. 启动: @echo off echo 确定要启动Oracle 11g服务吗? pause net start OracleOraDb11g_home1TNSListener net start OracleServiceORCL net start OracleDBConsoleorcl echo 启动Oracle 11g服务

20165232 第四周学习总结

第四章 处理器体系结构 4.1 Y86-64指令集体系结构 程序员可见状态: Y86-64程序中的每条指令都会读取或修改处理器状态的某些部分,这称为程序员可见状态. Y86-64状态包括15个寄存器.程序计数器PC(存放当前正在执行指令的地址)..3个一位的条件码(ZF.SF和OF).内存和状态码. Y86-64指令 4个传送指令 irmovq rrmovq mrmovq rmmovq 其中指令的第一个字母表明源的类型(i r m)第二个字母表明目的的类型(r m) 4个整数操作指令 addq

Notes of Daily Scrum Meeting(11.5)

Notes of Daily Scrum Meeting(11.5) 今天是我们学习学长代码,同时学习安卓语言的第三天.我们和学长沟通了一下,仔细讨论后得出一个结论,学长在 IOS平台上的代码可以借鉴,但是很多地方是不能移植过去的,需要我们进行重写,最主要的原因还是IOS平台和Android 平台上的差异性,就比如说:在IOS平台上编写UI会非常简单,在Xcode上拉一个界面出来只需要写很简单的代码就能实现 一个很炫的效果,但是在Android平台上,所有的UI效果都需要自己去搭建实现,因此,我

看到别人写的代码,我该从何入手

如今社会代码横行的年代,到处都是代码,看到代码自己一脸懵逼,该怎末办,从头再学,还是保持原态.社会已经被代码侵占,没有代码,社会将不知何去何从. 比如: mySQL:是用于管理文件的一个软件 - 服务端软件 - socket服务端 - 本地文件操作 - 解析指令[SQL语句] - 客户端软件(各种各样) - socket客户端 - 发送指令 - 解析指令[SQL语句] PS: - DBMS:数据库管理系统 - SQL语句 需要掌握的技能: - 安装 服务端和客户端 - 连接 - 学习SQL语句规

MySQL基础知识回顾

MarkdownPad Document MySQL MySQL:是用于管理文件的一个软件     - 服务端软件         - socket服务端         - 本地文件操作         - 解析指令[SQL语句]     - 客户端软件(各种各样)         - socket客户端         - 发送指令         - 解析指令[SQL语句]     PS:         - DBMS:数据库管理系统         - SQL语句 需要掌握的技能:   

MySQL(1):初识SQL

一.前言 MySQL :是用于管理数据的软件 MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性. 分为服务端和客户端(也是基于C/S架构的程序) 服务端: socket服务端 本地文件操作 解析指令(SQL语句) 客户端: socket客户端 发送指令 解析指令(SQL语句) 需要掌握 安装服务端和客户端    https://www.mysql.com 连接 学习SQL语句规则,指示服务端做相应的操作 其他了

01-MySql的前戏

[转]01-MySql的前戏 MySql的前戏 在学习Mysql之前,我们先来想一下一开始做的登录注册案例,当时我们把用户的信息保存到一个文件中: #用户名 |密码root|123321 alex|123123 上面文件内容的规则是我自己定义的,你要想用我这个程序,必须按照我的规则去执行,但凡不是这个规则,就没有交流的余地. 在一开始的时候文件格式的规定是没有规范的,后面学到模块的时候逐渐知道了目录规则,我们会把文件放到db目录下. 类似下面目录结构: 对于上面db目录中,是可以存放多个文件的,

当没有接口时、不可继承时,如果使用mock方案进行单元测试

原版代码: import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; /* 7.4 替换一个HTTP连接 学习到如何为没有Java接口的类(即HttpURLConnection类)编写mock. */ public class WebClient { public String getContent (URL url){ Strin

MySql的前戏

mysql就是用于管理我们的文件的一个软件. 那么对于mysql这个软件来说有两个软件 ---服务器软件 - socket服务端 - 本地文件操作 - 解析指令(mysql语句)---客户端软件 - socket客户端 - 发送指令 - 解析指令(mysql语句) 解释: 对于服务器软件中的socket服务器是一直开着,客户端得需要连接,并且还有创建文件.删除文件等等的操作 对于客户端软件中的scoket客户端,我们得需要发送指令去命令scoket服务端对文件进行操作. 大家应该知道ftp的项目