##【Oracle学习14】 Oracle网络
14.1 配置Oracle Net服务
相关知识:
- 数据库实例名: 是用于和操作系统进行联系的标识,就是说数据库和操作系统之间的交互用的是数据库实例名。
查询当前数据库实例名
方法一:select instance_name from v$instance;
方法二:show parameter instance
方法三:在参数文件中查询。
数据库实例名与ORACLE_SID
虽然两者都表是oracle实例,但两者是有区别的。instance_name是oracle数据库参数。而ORACLE_SID是操作系统的环境变量。
ORACLD_SID用于与操作系统交互,也就是说,从操作系统的角度访问实例名,必须通过ORACLE_SID。
SQL> select instance_name from v$instance;
INSTANCE_NAME
--------------------------------
orcl
SQL> select value from v$parameter where name = 'service_names';
VALUE
---------------------------------------------
orcl
SQL> show parameter service_name;
NAME TYPE VALUE
----------- ---------- -------
service_names string orcl
14.1.1 Oracle Net 和客户端-服务器范例
14.1.2 建立会话
- 连接本地: 唯一不要数据库侦听器。
- 远程链接: listener要开启,并且实例要open
-- 假设oracle 地址为192.168.56.103
nc -z 192.168.56.103 1521
tnsping 192.168.56.103:1521/orcl
sqlplus [username[/password[@database]]]
sqlplus sys/oracle@ORCL@192.168.56.103 as sysdba
sqlplus sys/oracle as sysdba
sqlplus scott/tiger@orcl
sqlplus scott/tiger@oracldb01:1521/orcl
-- instance name
SQL> select instance_name from v$instance;
INSTANCE_NAME
--------------------------------
orcl
SQL> show parameter service_name;
NAME TYPE VALUE
----------- ---------- -------
service_names string orcl
SQL> select value from v$parameter where name = 'service_names';
VALUE
--------------------------------------------------------------------
orcl
14.1.3 创建数据库侦听器
监听器在listener.ora中配置,位于$ORACLE_HOME/network/admin/ 目录。
- listener.ora: 监听配置文件,可同时配置多个监听。
listener.ora:
$cd $ORACLE_HOME/network/admin/
$ls -l
/u01/app/oracle/product/12.2.0/db_1/network/admin/listener.ora
/u01/app/oracle/product/12.2.0/db_1/network/admin/tnsnames.ora
-- 示例文件
$ls -l samples/
-rw-r--r--. 1 oracle oinstall 3867 Sep 9 1997 listener.ora
-rw-r--r--. 1 oracle oinstall 32844 May 21 2014 sqlnet.ora
-rw-r--r--. 1 oracle oinstall 2939 Feb 13 1997 tnsnames.ora
$cat /u01/app/oracle/product/12.2.0/db_1/network/admin/listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/12.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = /u01/app/oracle/product/12.2.0/db_1)
(SID_NAME = orcl)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.103)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
ADR_BASE_LISTENER = /u01/app/oracle
启动/停止监听
- 用netca 创建监听。
- lsnrctl : stop,start,status 监听。
- listener.ora : 可以配置多个监听
--创建监听
netca
-- 查看
listener.ora
--多个监听可指定名称
lsnrctl start LISTENER1
lsnrctl status LISTENER1
14.1.4 动态服务注册
oracle数据库启动可尝试动态服务注册。 侦听注册(LREG:Listener Registration Process)注册服务。
14.1.5 共享服务器
- 专用服务器体系:
- 共享服务器体系:
14.2 使用工具配置和管理Oracle 网络
- listener.ora: 监听配置件
- tnsnaes.ora: 连接别名文件
- silent.ora : 连接规则文件(黒白名单) 文件位置: $ORACLE_HOME/network/admin/ 。
- 动态监听: 启动监听后 启动实例,过一段时间就自动注册上。
- 静态监听: 启动监听后,会马上去找相关联的实例。 SID-Listenxx
14.2.1 Net Manager
- netmgr : net manager
14.2.2 Net Configuration Assistant
- netca : net configureation assistant
14.2.3 侦听器控制实用程序
- lsnrctl : 用法 lsnrctl [ status|start|stop ] [listener_name]
$lsnrctl [ status|start|stop ] [listener_name]
$lsnrctl
LSNRCTL> help
The following operations are available
An asterisk (*) denotes a modifier or extended command:
start stop status services
servacls version reload save_config
trace spawn quit exit
set* show*
14.2.4 TNS_ADMIN 环境变量
- tnsnaes.ora: 连接别名文件
tnsnames.ora
cd $ORACLE_HOME/network/admin/
cat tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/12.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.103)(PORT = 1521))
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.103)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
TNS_ADMIN:
export TNS_ADMIN='/Users/teachertao/oracle'
14.3 配置客户端网络
14.3.1 Easy Connect 名称解析
14.3.2 本地命名名称解析
14.3.3 目录命名和外部命名
14.3.4 测试 Oracle Net 的链接性
$tnsping 192.168.56.103:1521/orcl
$tnsping orcl
TNS Ping Utility for Linux: Version 12.2.0.1.0 - Production on 13-FEB-2020 06:02:14
Copyright (c) 1997, 2016, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.103)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))
OK (0 msec)
14.4 理解数据库驻留连接池
14.5 配置数据库之间的通信
CREATE DATABASE LINK <remote_global_name>
CONNECT TO <user> IDENTIFIED BY <pwd>
USING '<connect_string_for_remote_db>';