服务器端配置
连接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配置
。。。 。。。
转载于:https://blog.51cto.com/luotaoyang/311447