关于oracle11g简单的网络配置
2015-06-05 09:03
471 查看
大家在学习oracle的时候,网络配置和os认证一般很困扰,下面来介绍下关于oracle的网络配置。 我的服务器是在虚拟机里,客户端是在我的电脑上。我的oracle服务器基本信息:数据库名:orcl3939 ip:178.3.601.172 虚拟机名: localhost.localdomain 数据库全局名:orcl3939.localdomain客户端是从oracle官网上下载的win64_11gR2_client,第三方工具使用的是PL/SQL DEVELOPER下面介绍一下网络配置方面的一些名词:Global_name:对一个数据库(Oracle database)的唯一标识,oracle建议用此种方法命令数据库。该值是在创建数据库是决定的,缺省值为Db_name. Db_domain。
DB_NAME:
DB_NAME概念相比于INSTANCE_NAME要重要的多,它决定实例将挂在的数据文件。它出现在数据文件,控制文件,日志文件中。在参数文件中也出现,且必须出现。这个参数涉及到系统的物理文件。
SERVICE_NAME和GLOBAL_DBNAME:
这两个参数之所以放在一起讲,是因为他们往往是成对出现的。SERVICE_NAME出现在Tnsnames.ora文件中,是客户端要请求的服务名。
Service_name:该参数是oracle8i新引进的。在8i以前,我们用SID来表示标识数据库的一个实例,但是在Oracle的并行环境中,一个数据库对应多个实例,这样就需要多个网络服务名,设置繁琐。为了方便并行环境中的设置,引进了Service_name参数,该参数对应一个数据库,而不是一个实例,而且该参数有许多其它的好处。该参数的缺省值为Db_name. Db_domain,即等于Global_name。一个数据库可以对应多个Service_name,以便实现更灵活的配置。该参数与SID没有直接关系,即不必Service name 必须与SID一样。
Net service name:网络服务名,又可以称为数据库别名(database alias)。是客户端程序访问数据库时所需要,屏蔽了客户端如何连接到服务器端的细节,实现了数据库的位置透明的特性。
ORACLE_SID(INSTANCE_NAME):(ORACLE SYSTEM IDENTIFIER)
以环境变量的形式出现的。
Oracle实例是由SGA和一组后台进程组成的,实例的创建和启动需要一个参数文件,而参数文件的名称就是由ORACLE_SID决定的。对于init文件,缺省的文件名称是init<ORACLE_SID>.ora,对于spfile文件,缺省的文件名称是spfile<ORACLE_SID>.ora
设置不同的ORACLE_SID值,就可以默认使用不同的参数文件启动不同的数据库实例。
另外,ORACLE_SID的作用远远不是作为一个实例入口这么简单的,在实例启动后,实例名称INSTANCE_NAME也是从ORACLE_SID得到的。
ORACLE_SID参数,这个参数是操作系统中用到的,它是描述我们要默认连接的数据库实例.
instance_name是oracle数据库参数。而ORACLE_SID是操作系统的环境变量,ORACLE_SID必须与instance_name的值一致.
INSTANCE_NAME:
实例名称,这是Oracle实例的名字,用来区分不通的实例。在Oracle9i之前,该名字存储在两个地方:参数文件和数据库的内部视图(V$INSTANCE).
而在Oracle10g之后的版本中,该名字不再出现在参数文件中,而是动态从系统中获得,默认是取自ORACLE_SID。
INSTANCE_NAME的作用除了区别不同实例之外,在监听器动态注册时,还会用于向监听器注册。比如instance_name=kanon,监听中将动态注册Instance "kanon",status READY信息。
因为我的服务器是在安装在虚拟机linux下的,所以虚拟机的网络配置也很重要,虚拟机选择桥接连接模式,自动获取ip(在虚拟网络编辑器里一定要主要网卡的选择,这个可能造成你网连不通),vim /etc/sysconfig/network-ig/network-scripts/ifcfg-eth0(注意红颜色部分)
TYPE=Ethernet
DEVICE=eth0
HWADDR=00:50:56:34:9c:ed
BOOTPROTO=dhcp
ONBOOT=yes
USERCTL=no
IPV6INIT=no
PEERDNS=yes
CHANNEL=自动
MODE=Auto
SECURITYMODE=off
RATE=auto
这一切弄好后,可以ifconfig或者在我电脑上ping 178.3.601.172
来自 172.18.112.178 的回复: 字节=32 时间=3ms TTL=64
来自 172.18.112.178 的回复: 字节=32 时间<1ms TTL=64
来自 172.18.112.178 的回复: 字节=32 时间<1ms TTL=64
来自 172.18.112.178 的回复: 字节=32 时间<1ms TTL=64
172.18.112.178 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 0ms,最长 = 3ms,平均 = 0ms
看到了吧,虚拟机和电脑网络是通的。
服务器的网络配置:服务器端的配置是配置监听,也就是配置../dbhome/network/admit/listener.org默认的监听是listener,我加了一个监听(listener1):LISTENER1 = (DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1522))
)
)
[oracle@localhost ~]$ lsnrctl start listener1;
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 17-12月-2014 13:11:24
Copyright (c) 1991, 2009, Oracle. All rights reserved.
启动/u01/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: 请稍候...
TNSLSNR for Linux: Version 11.2.0.1.0 - Production
系统参数文件为/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
写入/u01/app/oracle/diag/tnslsnr/localhost/listener1/alert/log.xml的日志信息
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1522)))
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1522)))
LISTENER 的 STATUS
------------------------
别名 listener1
版本 TNSLSNR for Linux: Version 11.2.0.1.0 - Production
启动日期 17-12月-2014 13:11:27
正常运行时间 0 天 0 小时 0 分 5 秒
跟踪级别 off
安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件 /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
监听程序日志文件 /u01/app/oracle/diag/tnslsnr/localhost/listener1/alert/log.xml
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1522)))
监听程序不支持服务
命令执行成功 我所加的监听listener1是动态注册,我们也可以静态注册。如下: LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = orcl3939)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(GLOBAL_DBNAME = orcl3939.localdomain)
)
)以上所涉及到的名词不在赘述,开头已经介绍。我们来启动静态监听listener: [oracle@localhost ~]$ lsnrctl start listener;
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 17-12月-2014 13:18:15
Copyright (c) 1991, 2009, Oracle. All rights reserved.
启动/u01/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: 请稍候...
TNSLSNR for Linux: Version 11.2.0.1.0 - Production
系统参数文件为/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
写入/u01/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml的日志信息
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521)))
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1521)))
LISTENER 的 STATUS
------------------------
别名 listener
版本 TNSLSNR for Linux: Version 11.2.0.1.0 - Production
启动日期 17-12月-2014 13:18:15
正常运行时间 0 天 0 小时 0 分 1 秒
跟踪级别 off
安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件 /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
监听程序日志文件 /u01/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521)))
服务摘要..
服务 "orcl3939.localdomain" 包含 1 个实例。
实例 "orcl3939", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功此时oracle的服务器端已经配置好了,那我们再配置客户端。
客户端的网络配置:客户端的配置,推荐用oracle net mananger配置其实就是配置服务命名和监听,oracle把很多东西都包装在服务命名中,服务命名此时就是一个数据库,可以这么理解。首先我们手动配置:手动配置tns:F:\product\11.2.0\client\network\admin下配置tnsnames.ora文件:
JINGTAI(很多人都问,这里要填什么,你填什么都可以) =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 178.3.601.172 )(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl3939.localdomain)
)
)
手动配置listener:woo =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = [b]178.3.601.172)(PORT = 1521))
)
SID_LIST_888 =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl3939.localdomain)
(SID_NAME = orcl3939)
)
)
[/b] 到这里我们手动配置客户端就OK了,下面我们介绍利用[b]oracle net mananger来配置。[/b]利用[b]oracle net mananger:[/b]在oracle net mananger 里新建一个服务命名wo(你写啥都可以): 这里的主机名:填写服务器所在的ip地址 服务名:填写全局数据库名 端口号:和你tns中对应配置的相同。接下来我们来配置一些监听:新建一个监听woo(你写啥都行):监听位置里对应的主机写ip.数据库服务里的oracle主目录是可选的。接下来我们可以tnsping wo:C:\Users\Administrator>tnsping wo
TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 17-12月-
2014 13:48:44
Copyright (c) 1997, 2010, Oracle. All rights reserved.
已使用的参数文件:
F:\app\Administrator\product\11.2.0\client\network\admin\sqlnet.ora
已使用 TNSNAMES 适配器来解析别名
尝试连接 (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST =178.3.601.172 )(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = orcl3939.localdomain))
)
OK (120 毫秒)
测试结果:
![](http://img.blog.csdn.net/20141217135303001?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQkFUX29z/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://img.blog.csdn.net/20141218213622156?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQkFUX29z/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
已经ok啦。此时我们打开第三方工具pl/sql developer时:
![](http://img.blog.csdn.net/20141217135538924?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQkFUX29z/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
以上就是比较基本的oracle客户端连接服务器端的网络配置,希望对大家有用。
DB_NAME:
DB_NAME概念相比于INSTANCE_NAME要重要的多,它决定实例将挂在的数据文件。它出现在数据文件,控制文件,日志文件中。在参数文件中也出现,且必须出现。这个参数涉及到系统的物理文件。
SERVICE_NAME和GLOBAL_DBNAME:
这两个参数之所以放在一起讲,是因为他们往往是成对出现的。SERVICE_NAME出现在Tnsnames.ora文件中,是客户端要请求的服务名。
Service_name:该参数是oracle8i新引进的。在8i以前,我们用SID来表示标识数据库的一个实例,但是在Oracle的并行环境中,一个数据库对应多个实例,这样就需要多个网络服务名,设置繁琐。为了方便并行环境中的设置,引进了Service_name参数,该参数对应一个数据库,而不是一个实例,而且该参数有许多其它的好处。该参数的缺省值为Db_name. Db_domain,即等于Global_name。一个数据库可以对应多个Service_name,以便实现更灵活的配置。该参数与SID没有直接关系,即不必Service name 必须与SID一样。
Net service name:网络服务名,又可以称为数据库别名(database alias)。是客户端程序访问数据库时所需要,屏蔽了客户端如何连接到服务器端的细节,实现了数据库的位置透明的特性。
ORACLE_SID(INSTANCE_NAME):(ORACLE SYSTEM IDENTIFIER)
以环境变量的形式出现的。
Oracle实例是由SGA和一组后台进程组成的,实例的创建和启动需要一个参数文件,而参数文件的名称就是由ORACLE_SID决定的。对于init文件,缺省的文件名称是init<ORACLE_SID>.ora,对于spfile文件,缺省的文件名称是spfile<ORACLE_SID>.ora
设置不同的ORACLE_SID值,就可以默认使用不同的参数文件启动不同的数据库实例。
另外,ORACLE_SID的作用远远不是作为一个实例入口这么简单的,在实例启动后,实例名称INSTANCE_NAME也是从ORACLE_SID得到的。
ORACLE_SID参数,这个参数是操作系统中用到的,它是描述我们要默认连接的数据库实例.
instance_name是oracle数据库参数。而ORACLE_SID是操作系统的环境变量,ORACLE_SID必须与instance_name的值一致.
INSTANCE_NAME:
实例名称,这是Oracle实例的名字,用来区分不通的实例。在Oracle9i之前,该名字存储在两个地方:参数文件和数据库的内部视图(V$INSTANCE).
而在Oracle10g之后的版本中,该名字不再出现在参数文件中,而是动态从系统中获得,默认是取自ORACLE_SID。
INSTANCE_NAME的作用除了区别不同实例之外,在监听器动态注册时,还会用于向监听器注册。比如instance_name=kanon,监听中将动态注册Instance "kanon",status READY信息。
因为我的服务器是在安装在虚拟机linux下的,所以虚拟机的网络配置也很重要,虚拟机选择桥接连接模式,自动获取ip(在虚拟网络编辑器里一定要主要网卡的选择,这个可能造成你网连不通),vim /etc/sysconfig/network-ig/network-scripts/ifcfg-eth0(注意红颜色部分)
TYPE=Ethernet
DEVICE=eth0
HWADDR=00:50:56:34:9c:ed
BOOTPROTO=dhcp
ONBOOT=yes
USERCTL=no
IPV6INIT=no
PEERDNS=yes
CHANNEL=自动
MODE=Auto
SECURITYMODE=off
RATE=auto
这一切弄好后,可以ifconfig或者在我电脑上ping 178.3.601.172
来自 172.18.112.178 的回复: 字节=32 时间=3ms TTL=64
来自 172.18.112.178 的回复: 字节=32 时间<1ms TTL=64
来自 172.18.112.178 的回复: 字节=32 时间<1ms TTL=64
来自 172.18.112.178 的回复: 字节=32 时间<1ms TTL=64
172.18.112.178 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 0ms,最长 = 3ms,平均 = 0ms
看到了吧,虚拟机和电脑网络是通的。
服务器的网络配置:服务器端的配置是配置监听,也就是配置../dbhome/network/admit/listener.org默认的监听是listener,我加了一个监听(listener1):LISTENER1 = (DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1522))
)
)
[oracle@localhost ~]$ lsnrctl start listener1;
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 17-12月-2014 13:11:24
Copyright (c) 1991, 2009, Oracle. All rights reserved.
启动/u01/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: 请稍候...
TNSLSNR for Linux: Version 11.2.0.1.0 - Production
系统参数文件为/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
写入/u01/app/oracle/diag/tnslsnr/localhost/listener1/alert/log.xml的日志信息
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1522)))
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1522)))
LISTENER 的 STATUS
------------------------
别名 listener1
版本 TNSLSNR for Linux: Version 11.2.0.1.0 - Production
启动日期 17-12月-2014 13:11:27
正常运行时间 0 天 0 小时 0 分 5 秒
跟踪级别 off
安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件 /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
监听程序日志文件 /u01/app/oracle/diag/tnslsnr/localhost/listener1/alert/log.xml
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1522)))
监听程序不支持服务
命令执行成功 我所加的监听listener1是动态注册,我们也可以静态注册。如下: LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = orcl3939)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(GLOBAL_DBNAME = orcl3939.localdomain)
)
)以上所涉及到的名词不在赘述,开头已经介绍。我们来启动静态监听listener: [oracle@localhost ~]$ lsnrctl start listener;
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 17-12月-2014 13:18:15
Copyright (c) 1991, 2009, Oracle. All rights reserved.
启动/u01/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: 请稍候...
TNSLSNR for Linux: Version 11.2.0.1.0 - Production
系统参数文件为/u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
写入/u01/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml的日志信息
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521)))
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomain)(PORT=1521)))
LISTENER 的 STATUS
------------------------
别名 listener
版本 TNSLSNR for Linux: Version 11.2.0.1.0 - Production
启动日期 17-12月-2014 13:18:15
正常运行时间 0 天 0 小时 0 分 1 秒
跟踪级别 off
安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件 /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
监听程序日志文件 /u01/app/oracle/diag/tnslsnr/localhost/listener/alert/log.xml
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521)))
服务摘要..
服务 "orcl3939.localdomain" 包含 1 个实例。
实例 "orcl3939", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功此时oracle的服务器端已经配置好了,那我们再配置客户端。
客户端的网络配置:客户端的配置,推荐用oracle net mananger配置其实就是配置服务命名和监听,oracle把很多东西都包装在服务命名中,服务命名此时就是一个数据库,可以这么理解。首先我们手动配置:手动配置tns:F:\product\11.2.0\client\network\admin下配置tnsnames.ora文件:
JINGTAI(很多人都问,这里要填什么,你填什么都可以) =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 178.3.601.172 )(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl3939.localdomain)
)
)
手动配置listener:woo =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = [b]178.3.601.172)(PORT = 1521))
)
SID_LIST_888 =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl3939.localdomain)
(SID_NAME = orcl3939)
)
)
[/b] 到这里我们手动配置客户端就OK了,下面我们介绍利用[b]oracle net mananger来配置。[/b]利用[b]oracle net mananger:[/b]在oracle net mananger 里新建一个服务命名wo(你写啥都可以): 这里的主机名:填写服务器所在的ip地址 服务名:填写全局数据库名 端口号:和你tns中对应配置的相同。接下来我们来配置一些监听:新建一个监听woo(你写啥都行):监听位置里对应的主机写ip.数据库服务里的oracle主目录是可选的。接下来我们可以tnsping wo:C:\Users\Administrator>tnsping wo
TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 17-12月-
2014 13:48:44
Copyright (c) 1997, 2010, Oracle. All rights reserved.
已使用的参数文件:
F:\app\Administrator\product\11.2.0\client\network\admin\sqlnet.ora
已使用 TNSNAMES 适配器来解析别名
尝试连接 (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST =178.3.601.172 )(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = orcl3939.localdomain))
)
OK (120 毫秒)
测试结果:
已经ok啦。此时我们打开第三方工具pl/sql developer时:
以上就是比较基本的oracle客户端连接服务器端的网络配置,希望对大家有用。
相关文章推荐
- 几种TCP连接中出现RST的情况
- C++网络爬虫的实现——WinSock编程
- 计算机网络(浅谈DNS协议)
- webservice中采用协议Http,它是指什么意思
- 从电视到网络,vivo营销之变
- 黑马程序员_java语言_TCP
- 计算机网络- 可靠数据传输协议-停等协议的设计与实现
- 计算机网络--http代理服务器的设计与实现
- angularjs中$http返回data类型修改
- .Net开发笔记(十五) 基于“泵”的TCP通讯(接上篇)
- 清晰易懂TCP通信原理解析(附demo、简易TCP通信库源码、解决沾包问题等)
- 网络游戏帧锁,事件锁,客户端预测和服务端补偿,状态同步以及命令同步
- 《Android面试宝典》学习笔记(第七章:网络和加密)
- 计算机网络面试题
- Android 网络通信框架Volley的解析
- 《计算机网络》笔记
- UNIX网络编程之旅-配置unp.h头文件环境
- Cocos2d-x网络通信
- 【树形dp】Bzoj3391 [Usaco2004 Dec]Tree Cutting网络破坏
- 黑马程序员_Java_网络编程(二)