服务器端配置
连接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配置
。。。 。。。