服务器端配置

连接Oracle服务器

客户端与Oracle服务器连接的三种方法:
衍生一个服务器进程并将连接传送给该进程或由其继承,每个连接派生一个子进程

 
注意:在windows早期版本里(对于只支持WINSSOCK2)要支持这种方式须修改注册表,USE SHARED_SOCKET值为TRUE.
将连接传送给Oracle Shared Server 配置中的调度程序,一般在share server模式下使用

 
这种方式必须操作系统支持不同进程间传递socket描述符。
将连接重定向到调度程序或服务器进程

 
服务注册方式
可以通过两种方式配置监听程序:
动态服务注册
无需在listener.ora 文件中进行配置
监听程序依赖PMON 进程。在listener晚于数据库启动时POM会周期(一般为60s)检查并注册。
静态服务配置
用于Oracle8 及更早版本
需要配置listener.ora
对Oracle Enterprise Manager 和其它服务是必需的
静态服务注册配置
可以使用一下方法之一:
1、 使用netca或netmgr。

 
2、 在ORACLE_HOME/network/admin/samples目录下有listener.ora作为示例文件。拷贝示例文件到ORACLE_HOME/network/admin/下作相应修改。

 
动态注册:
只需要配置初始化参数文件,但listener的配置必须和初始化参数文件里的参数对应。
动态注册优先于静态注册(Oracle读取动态注册信息优先于读取listener.ora文件)。
动态注册必须配置这两个参数:
service_names
instance_name
默认的service_names等于global database name。instance_name默认等于SID。
Global database name = db_name = db_name + db_domain
SQL> show parameter name
 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ---------------
db_name                              string      lty
global_names                         boolean     FALSE
instance_name                        string      lty
service_names                        string      lty
SQL> show parameter db_domain
 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ---------------
db_domain                            string
缺省情况下,PMON 向TCP/IP 的缺省本地地址 端口1521 处的服务器上的本地监听程序进行注册。
在下列情况下,PMON 将向非缺省监听程序注册:
已经定义LOCAL_LISTENER 初始化参数
已为Oracle Shared Server 定义DISPATCHERS 初始化参数的LISTENER 属性
lsnrctl 工具的使用:
START [listener_name]
STOP [listener_name]
其他命令:

 

 
 
实验演示:
1 、$ netmgr
2 、如图:

 

3、 验证:
$ pwd
/u01/oracle/network/admin
$ ls
$ cat listener.ora
# LISTENER.ORA Network Configuration File: /u01/oracle/network/admin/listener.ora
# Generated by Oracle configuration tools.
 
TRACE_LEVEL_LISTENER10 = USER
 
SID_LIST_LISTENER =
 (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /u01/oracle)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = lty)
      (ORACLE_HOME = /u01/oracle)
      (SID_NAME = lty)
    )
 )
 
LISTENER10 =
 (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1523))
 )
 
LISTENER =
 (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    )
 )
 
SID_LIST_LISTENER10 =
 (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = lty)
      (ORACLE_HOME = /u01/oracle)
      (SID_NAME = lty)
    )
 )
启动listener10:
$ lsnrctl start listener10
 
客户端配置(windows为例):
修改“客户端安装目录\network\ADMIN\ tnsnames.ora ”文件,在文件中添加下面语句:
ORACLE10 =
 (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1523))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = lty)
    )
 )
 
测试:
>sqlplus luo/luo@oracle10
 
验证trace功能:
tac –f /u01/oracle/network/trace/listener10.trc
 
客户端配置
连接服务器五元组:User Name,IP Address,Port Number,Password,Service Name.
客户端链接服务器的方法:

 
Easy Connect Naming Method
CONNECT username@[//]host[:port][/service_name][:server][/instance_name]
Enter password: password
例:
sqlplus luo/luo@192.168.1.10:1521/lty.suny.com
 
LOCAL NAMEING:
配置tnsnames.ora与sqlnet.ora,作用和示例如下:
tnsnames.ora (用于指定五元组):
 
ORACLE =
 (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = lty.suny.com)
#     (SID = lty)     # 这里service_name与SID二选一。
)
 
 
sqlnet.ora (用于指定连接方法):
 
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
 

 
排错:
ping tnsping 检查连通性。
Tnsping [ 描述符] [次数]

 
 
使用netmgr或netca配置
。。。 。。。