8、tnsnames文件配置

监听的配置文件

2、tnsnames.ora文件

tnsnames.ora文件:客户端的

配置tnsnames.ora监听文件

1、使用netca命令

指定图像映射机器
[oracle@db11g admin]$ export DISPLAY=192.168.56.1:0.0

netca命令
[oracle@db11g admin]$ netca

2、选择local net service name configuration,点击next

3、选择add,点击next

4、输入service name:cis(一定要和lsnrctl status命令查看到的Service "cis" has 1 instance(s),cis一样),点击next

5、选择TCP,点击next

6、输入Host name:192.168.56.70,点击next

7、是否测试,可以测试,也可以不测试,点击next

8、输入net service name:cistest(这个名字可以随便起)

9、点击next

10、点击next

11、点击finish,完成

查看tnsnames.ora文件内容:

[oracle@db11g ~]$ cd $ORACLE_HOME
[oracle@db11g db_1]$ cd network/admin
[oracle@db11g admin]$ ls
listener.ora  samples  shrept.lst  tnsnames.ora
[oracle@db11g admin]$ cat tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

CISTEST =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.70)(PORT = 1521))
    (CONNECT_DATA =      (SERVER = DEDICATED)      (SERVICE_NAME = cis)
    )
  )

tnsnames.ora文件是一个解析文件,把CISTEST解析成:192.168.56.70IP地址,1521端口号,cis服务名

数据库的两种连接方式

1、
[oracle@db11g admin]$ sqlplus system/oracle@192.168.56.70:1521/cis
2、
[oracle@db11g admin]$ sqlplus system/oracle@cistest    -- cistest:配置的客户端监听名,tnsnames.ora文件里的    

连接的时候,没有@符号,就不走监听,用户直接连接数据库实例,有@符号的时候,就走监听,监听没有启动就连接不上数据库实例了

在Windows里面也是一样的配置方法,测试的时候用:

tnsping cistest2

注意:tnsping,第一cistest2被解析了,第二访问192.168.56.70这个IP地址和1521端口,第三tnsping不去判断监听上有没有cis

所以还需要测试一下能否登录成功:

Windows要连接上linux的oracle,在Windows上就需要一个oracle客户端

Oracle客户端:下载安装包里面有详细的安装说明

1、完整版

带命令、管理工具

tnsnames.ora

库文件(程序连接数据库所要使用的一些函数等、dll、so、o)

2、instant版本

命令:sqlplus(可以有,也可以没有)

tnsnames.ora

库文件

instant版本:

1、就是一个压缩包,解压以后,放在一个目录里面

2、linux:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/oraclient/ora_instant

3、windows:设置环境变量PATH,加上c:\app/ora_instant

三个名字(实例名、数据库名、服务名)

实例名字

查看实例名:

SQL> show parameter instance_name
NAME				                    TYPE	 VALUE
------------------------------------ ----------- ------------------------------
instance_name			               string	 orcl

一个数据库可以有多个实例,每个实例一个名字:

比如:实例1:cis1;实例2:cis2

数据库名字

查看数据库名:

SQL> show parameter db_name
NAME				                     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
db_name 			                    string	 orcl

一个数据库只有一个名字

服务名字

查看服务名:

SQL> show parameter service_name
NAME				                    TYPE	 VALUE
------------------------------------ ----------- ------------------------------
service_names			                string	 orcl

服务的名字可以修改,并且可以有多个服务名

修改服务名:

SQL> alter system set service_name = 'cis,cist';
SQL> alter system register;    -- 注册修改之后的服务名

监听的动态注册

动态注册:默认的往listener监听里面注册

SQL> show parameter local
NAME				                    TYPE	 VALUE
------------------------------------ ----------- ------------------------------
local_listener			             string
log_archive_local_first 	            boolean	 TRUE
parallel_force_local		            boolean	 FALSE

如果想要pmonitor把instancename和servername往listener1里面注册,就要修改local_listener这个参数

如何修改local_listener参数往listener1(IP地址:10.10.10.70)里面注册?

SQL> alter system set LOCAL_LISTENER = '(ADDRESS = (PROTOCOL=TCP)(HOST=10.10.10.70)(PORT=1521))';
SQL> alter system register;

这时候,listener里面就没了:

修改完之后呢,后悔了,这时候怎么修改回来呢?

SQL> alter system set LOCAL_LISTENER = '';
SQL> alter system register;

listener又回来了: