oracle 网络
客户端 监听 数据库 需要各自独自配置
监听:
后台有一个文本文件 其中包含配置信息。 工具或命令行都存在这个文件中
$ORACLE_HOME/network/admin/listener.ora 在oracle的家目录中
vi $ORACLE_HOME/network/admin/listener.ora
LISTENER = //监听名称
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = node1.test.com)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
监听起不来,网络用户无法进入数据库,不影响本地使用。
更改IP地址:1./etc/sysconfig/network-scripts/ifcfg-eth0
2.cat /etc/hosts
更改主机名 1.cat /etc/sysconfig/network
2.cat /etc/hosts
3.cat $ORACLE_HOME/network/admin/listener.ora
监听(listener):
命令行控制监听 lsnrctl start /stop /status /servive
也可以用图形化工具netca和netmgr
在Linux系统命令行中输入netca 可以通过向导增加、删除监听。
增加监听后,可以用netmgr 进一步配置监听。
实例的配置
静态注册和动态注册
什么是静态注册
就是监听器的配置文件中写明了监听哪个实例 需要配置SID_DESC字段
定位实例的方式可以使用SID_NAME或者SERVICE_NAME来定位
什么是动态注册
就是监听器的配置文件中没写明监听哪个实例
要通过PMON告知监听器要监听的具体实例
PMON是将SERVER_NAME告诉给监听器 这个过程就是注册
默认一分钟PMON注册一次 也就是说启动监听 还没注册时 是无法连接的
添加3种方式,后面的删掉,用文档改写
区分静态注册和动态注册
lsnrctl status
是 ready 就是动态
是 unknow 就是静态
3种注册方式:
本地默认端口监听
本地非默认端口监听
远程监听
本地非默认端口:
netca创建listener15210,使用15210端口
$ netstat -tlnp | grep 15210
写入监听的别名:
$ cd $ORACLE_HOME/network/admin
$ vi tnsnames.ora
listener15210 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = node1.test.com)(PORT = 15210))
)
修改参数:
SQL> ALTER SYSTEM SET LOCAL_LISTENER=listener15210;
SQL> ALTER SYSTEM register; 立即注册(可选)
服务信息已添加到新的监听中:
$ lsnrctl status listener15210
客户端指定新端口连接:
$ sqlplus sys/password@192.168.0.1:1521/orcl as sysdba 报错
$ sqlplus sys/password@192.168.0.1:15210/orcl as sysdba
删除配置:
SQL> ALTER SYSTEM SET LOCAL_LISTENER='';
SQL> ALTER SYSTEM register;
$ vi tnsnames.ora 删除listener15210别名
netca删除15210端口的监听
客户端配置
轻松连接:
$ sqlplus sys/password@192.168.0.1:1521/orcl as sysdba
适用于临时性的连接
本地命名:
查看现有的主机连接字符串
$ cd $ORACLE_HOME/network/admin
$ vi tnsnames.ora
$ sqlplus sys/password@orcl as sysdba
使用netca添加新的主机连接字符串orcl192
$ sqlplus sys/password@orcl192 as sysdba
SQL> select name from v$database;
tnsping测试,不需要用户名和口令:
$ tnsping 192.168.0.1:1521/orcl
$ tnsping orcl192
解析方法的顺序:
$ vi sqlnet.ora
netca可以修改
恢复默认设置:
SQL> alter system set local_listener='';
SQL> alter system register;