Oracle的配置文件(二)

2014-11-24 11:32:10 · 作者: · 浏览: 1
9.14)(PORT = 1621))

)

)

)

SID_LIST_LISTENER_CSB =

(SID_LIST =

(SID_DESC =

(ORACLE_HOME = /u02/oracle/app/oracle/product/10.2.0/db)

(SID_NAME = zjdevcsb)

)

)

#############################################

LISTENER_CSA =

(DEION_LIST =

(DEION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.70.9.14)(PORT = 1521))

)

)

)

SID_LIST_LISTENER_CSA =

(SID_LIST =

(SID_DESC =

(ORACLE_HOME = /u02/oracle/app/oracle/product/10.2.0/db)

(SID_NAME = zjdevcsa)

)

)

在上面:

1). LISTENER_CSB,LISTENER_CSA定义了监听器的两个监听名字,和这两个监听器监听的参数:ip,port等。

2). SID_LIST_LISTENER_CSB,SID_LIST_LISTENER_CSA定义了两个监听服务,服务名字格式SID_LIST_,lsnrname就是上面两个监听器的名字,指定了这个服务将会接受的服务将提交给那个监听器;监听的实例名zjdevcsb,zjdevcsa是在tnsnames.ora中需要指定的SERVICE_NAME参数对应。

详细的参数说明可以查看示例的listener.ora文件。

启动数据库

先说一下数据库的相关定义术语

数据库 是指在物理磁盘上的文件数据,就是表空间文件的集合,只能有一个,并唯一;就像类的定义。

实例 是加载数据库文件的一个服务,或者进程。对同一个数据库,可以有多个实例,比如rac模式,多个实例都是加载同一份物理数据。

oracle用户登录主机:

1) 启动数据库实例

首先执行命令sqlplus "/ as sysdba"用数据库系统管理员角色登录,然后执行startup启动数据库实例,关闭数据库实例执行用shutdown命令。如果不需要从远程连接数据库,那么你就可以在本机登录数据库了。执行sqlplus username/password就可以正确登录数据库。

2) 监听

启动监听,执行命令lsnrctl start,可以用lsnrctl status查看监听状态,如果监听成功启动,那么就可以在远程连接数据库了,执行命令sqlplus username/password@tnsname;

关闭监听,执行命令lsnrctl stop。

远程连接数据库

当你执行命令sqlplus username/password@tnsname的时,一般处理过程如下:

1) 查询sqlnet.ora看看名称的解析方式,发现是TNSNAME,或者hostname。

2) 则查询tnsnames.ora文件,从里边找tnsname的记录,并且找到主机名,端口和service_name。

3) 如果listener进程没有问题的话,建立与listener进程的连接。

4) 根据不同的服务器模式如专用服务器模式或者共享服务器模式,listener采取接下去的动作。默认是专用服务器模式,没有问题的话客户端就连接上了数据库的server process。

5) 这时候网络连接已经建立,listener进程的历史使命也就完成了。

如果在连接数据库的时候,出现什么错误,可以按照上面的顺序查找相应的配置,解决问题。

几种连接数据库用到的命令形式

sqlplus "/ as sysdba" 这是典型的操作系统认证,不需要listener进程,数据库即使不可用也可以登录。

sqlplus username/password 不需要listener进程,登录本机数据库,数据库实例启动即可。

sqlplus username/password@tnsname需要listener进程,最常见的远程登录模式,需要启动数据库实例和listener进程。

本文涉及的相关术语

Db_domain:定义一个数据库所在的域,该域的命名同互联网的’域’没有任何关系,只是数据库管理员为了更好的管理分布式数据库而根据实际情况决定的。当然为了管理方便,可以将其等于互联网的域。

Global_name:对一个数据库(Oracle database)的唯一标识,oracle建议用此种方法命令数据库。该值是在创建数据库是决定的,缺省值为Db_name. Db_domain。在以后对参数文件中Db_name与Db_domain参数的任何修改不影响Global_name的值,如果要修改Global_name,只能用ALTER DATABASE RENAME GLOBAL_NAME TO 命令进行修改,然后修改相应参数。

Service_name:该参数是oracle8i新引进的。在8i以前,我们用SID来表示标识数据库的一个实例,但是在Oracle的并行环境中,一个数据库对应多个实例,这样就需要多个网络服务名,设置繁琐。为了方便并行环境中的设置,引进了Service_name参数,该参数对应一个数据库,而不是一个实例,而且该参数有许多其它的好处。该参数的缺省值为Db_name. Db_domain,即等于Global_name。一个数据库可以对应多个Service_name,以便实现更灵活的配置。该参数与SID没有直接关系,即不必Service name 必须与SID一样。