APP下载

Oracle 10g数据库远程启动的研究与实现

2015-09-21赵雪琴杨艳郑州大学西亚斯国际学院郑州4550中原工学院郑州450007

现代计算机 2015年10期
关键词:服务器端监听实例

赵雪琴,杨艳(.郑州大学西亚斯国际学院,郑州 4550;.中原工学院,郑州 450007)

Oracle 10g数据库远程启动的研究与实现

赵雪琴1,杨艳2
(1.郑州大学西亚斯国际学院,郑州451150;2.中原工学院,郑州450007)

0 引言

Oracle 10g数据库允许远程SYSDBA对数据库进行管理,如果数据库关闭,SYSDBA可以通过网络远程将数据库进行启动。为了实现该过程,需要深入了解远程登录的原理,进行初始化参数文件中参数的设置及服务器端监听器的配置,如果管理员对这些原理及配置过程缺乏了解,往往造成远程启动的失败。本文通过远程Oracle启动的实现,深入研究Oracle远程启动所涉及的相关技术,结合实际解决了工作中的问题。

1 建立TCP/IP连接

当SYSDBA在一台客户机上,数据库驻留在远端的另一台服务器上,为了实现远程启动,这两台机器必须要建立一个TCP/IP的网络连接,前提条件是客户端安装了Oracle客户端软件,SYSDBA通过该软件向数据库服务器发出请求,力图连接数据库服务器。例如,SYSDBA发出以下的请求:

SQL>Sqlplus sys/sias@orcl as sysdba

我们使用的客户端软件是SQL*PLUS,sys/sias为用户名/密码,启动数据库的用户必须具有DBA的身份或操作员的身份,因此要验证sys的身份及密码是否符合条件,但连接的服务器上数据库已经关闭了,如何来验证用户的身份呢?如何判断SYSDBA权限呢?如何查找要连接的数据库是否正确呢?这就需要在数据库服务器端和客户端都做好相关参数配置。

2 数据库服务器端配置

在远程启动数据库时,数据库服务器端有三个前置参数或文件需要重点关注:Password file密码文件、Remote_login_passwordfile参数和 Listener.ora监听文件。Password file密码文件是检测远程启动用户是否有权限进行操作,Remote_login_passwordfile参数是数据库允许远程登录或者操作的开关,Listener.ora监听文件是保证远程操作用户能够正确地连接到远程数据库实例。下面对三个参数或文件进行具体分析。

2.1Password file密码文件

在数据库关闭情况下,服务器本地的SYSDBA可以通过Oracle本地的操作系统认证方式来检测启动者的身份。在Oracle安装过程中,会在操作系统中指定Oracle管理员的组,该组中的成员都可以作为SYSDBA的身份连接Oracle,不需要指定用户名或密码。但对网络上的SYSDBA,操作系统认证不再起作用了。在数据库关闭情况下,客户连接的另一端好像还 “没有数据库”,因此不能从数据库中进行身份的验证,在该情况下,另一种机制产生了,这就是使用密码文件Password-file。在密码文件中保存了一定数量的用户名和密码,这些用户名可以通过远程来管理数据库[1]。

密码文件的默认位置为[ORACLE_HOME]database目录下,默认的名字为PWDora_sid.ora。如果该文件中有sys且密码为sias,那么该用户就得到验证,符合启动条件。

如果密码文件丢失或破坏,我们可以使用命令行工具 Orapwd重新创建密码文件,该工具在[ORACLE_HOME]in目录下:

Orapwd file=<fname>password=<password>entries=<users>force=<y/n>

命令中的参数file为密码文件名称,password为用户sys的密码,entries为可选参数,设置DBA和操作员的最大数目,force为可选参数,该参数值决定是否重写现有的密码文件。

C:>orapwd file='e:oracleproduct10.1.0DB_1database pwdorcl.ora'password=sias entries=20

命令结束后,创建一个位于默认位置的密码文件,刚创建的文件中只有一个用户,就是SYS,利用该用户SYS作为SYSDBA,通过网络来连接Oracle数据库。

但有密码文件还不行,服务器端必须允许使用密码文件来验证远程SYSDBA的身份,初始化参数文件中的remote_login_passwordfile参数来控制是否允许使用密码文件[2]。

2.2Remote_login_passwordfile

Oracle初始化参数文件中的参数分为两种类型:静态参数和动态参数。静态参数的特点是参数修改后不能够立即生效,必须重新启动数据库后才能生效。动态参数是参数修改后立即生效,数据库重新启动后依然有效。

Remote_login_passwordfile为静态参数,默认值为NONE,该设置意味着不能使用密码文件,因此不存在远程的SYSDBA的登录。该参数还有另外两个设置:shared和exclusive。shared值的含义为多个数据库可以同时使用同样的密码文件,exclusive值的含义是只有一个数据库使用一个给定的密码文件。一般用法:一个数据库只使用一个密码文件,我们可以将该参数设置为exclusive:

SQL>alter system set remote_login_passwordfile=exclusive scope=spfile;

该参数重新启动实例后生效,sys/sias的身份就可以通过密码文件进行验证了。

2.3Listener.ora

Listener.ora位于服务器[ORACLE_HOME] etwork admin目录。该文件的内容提供监听进程能够监听到的实例、实例对应的服务及实例对应的服务器监听端口。数据库服务必须注册到监听器,客户请求连接该数据库时,监听器能够监听到,才能做出响应。注册的过程就是将数据库作为一个服务注册到监听进程中。数据库的注册分为两种类型,静态注册和动态注册。

静态注册就是监听进程启动时读取Listener.ora文件,将文件中记录的实例和服务注册到监听程序,而无论该数据库实例是否启动[3]。

动态注册是数据库实例及服务没有记录到Listener.ora文件中,当实例启动时,PMON进程根据初始化参数文件中的参数instance_name,service_name两个参数将实例和服务动态注册到监听程序,当数据库关闭时,监听程序中不再有该数据库实例及服务的信息。

当数据库安装后,Listener.ora配置如下:

Oracle数据库实例及服务并没有记录在该文件中,所以当我们想启动远程已关闭的数据库时,监听程序由于数据库已经关闭,不再有数据库实例及服务的信息,因此远程连接失败。解决方法:重新配置listener. ora文件,可以通过net manager进行配置,将数据库实例及服务的信息记录到文件中,信息如下:

文件中已经存在orcl实例及服务的信息,关闭监听服务,然后重新启动监听服务,启动过程中,监听进程读取Listener.ora中的服务信息。因为Listener.ora中已经存在了orcl的信息,所以尽管数据库已经关闭,但监听器中仍然有该服务的信息,所以客户端连接成功,然后可以通过startup启动数据库。

3 数据库客户端配置

当数据库服务器端参数或者文件进行正确配置后,我们在客户端输入:

SQL>Sqlplus sys/sias@orcl as sysdba

@后面的orcl为 TNS串。TNS的全称为 Transparent Network Substrate,代表透明的网络底层。TNS是客户端与服务器端远程连接的基础软件。通过TNS连接串来告诉Oracle软件如何与远程数据库服务器进行连接。当客户端发出该命令,往往会读取存在于客户端上的一个tnsnames.ora的纯文本配置文件,该文件存放在[ORACLE_HOME] etworkadmin目录下。

根据以上配置信息,我们看到orcl对应一系列的信息。Oracle客户端软件将TNS连接串映射为一些连接的重要信息,即连接的服务器主机名为HTTP-55C2042D62,数据库监听器的端口为1521,数据库的服务名为orcl。通过以上信息,客户端软件确定要连接的目的地,它会与主机名为HTTP-55C2042D62的数据库服务器在端口1521上打开一条TCP/IP连接,随后会校验输入的用户名、密码和数据库实例,以及数据库实例是否允许远程登录,等等,从而达到远程启动数据库的目的[4]。

4 应用和实现

在配置完远程启动Oracle 10g数据库相关参数后,可进一步集成,将远程启动功能捆绑在数据库信息系统的管理客户端,通过自动执行远程数据库启动的批处理文件,定期远程启动数据库,执行定期抓取数据进行分析的功能。管理客户端的批处理文件在实现远程启动功能外,可增加判断远程数据库监听状态、判断远程数据库状态和自动连接数据库提示,以提高批处理文件的处理能力,提升远程启动数据库功能的效果[5]。具体实例如下:

批处理文件执行后正常连接到远程数据库,执行startup命令即可启动远程数据库ORCL[6]。

5 结语

远程启动Oracle数据库必须对该技术所涉及的原理及配置充分了解。在该处理过程中,涉及到了服务器端的密码文件、参数文件的设置、TNS连接串、客户端的Tnsname.ora、服务器端的Listener.ora及数据库服务的静态注册和动态注册诸多内容,将该功能应用到实际工作,能够解决很多具体问题。

[1]Thomas kyte.Oracle 9i&10g编程艺术——深入数据库体系结构[M].北京:人民邮电出版社,2006.10

[2]王岚,张国宁.Oracle程访问技术研究及其应用[J].计算机与网络,2009(24)

[3]张春玉.Oracle数据库启动过程分析[J].福建电脑,2010(08)

[4]盖国强.DBA入门、进阶与诊断案例[M].北京:人民邮电出版社,2006.7

[5]CSDN论坛[EB/OL].http://bbs.csdn.net

[6]杨艳,秦森.Oracle数据库自动备份程序的设计与实现[J].电脑知识与技术(学术交流),2007(22)

Oracle 10g;Remote Boot;Parameters;Registration

Research and Implementation of Remote Boot of Oracle 10g Database

ZHAO Xue Qin1,YANG Yan2
(1.Sias International Institute,Zhengzhou University,Xinzheng 451100;
2.Zhongyuan University of Technology,Zhengzhou 450007)

1007-1423(2015)10-0049-04

10.3969/j.issn.1007-1423.2015.10.014

赵雪琴(1972-),女,河北藁城人,硕士,讲师,研究方向为数据库

2015-02-05

2015-03-06

Oracle 10g数据库允许SYSDBA对数据库进行远程管理,如果数据库关闭,SYSDBA可以通过网络远程将数据库进行启动。详细分析、研究和实例化整个启动过程,涉及服务器端和客户端的启动原理、工作流程,包括服务端的密码文件、初始化参数文件和客户端的服务名文件。并结合实际工作,设计和实现监听、启动远程数据库的过程。

Oracle 10g;远程启动;参数;注册

杨艳(1981-),女,河南济源人,硕士,讲师,研究方向为数据库和系统仿真

Oracle 10g database allows SYSDBA to perform remote database management.If the database is closed,SYSDBA can boot it remotely through network.Analyzes,researches and exemplifies the entire boot process involves starting the server and client,and workflow,including server password file,initialization parameter file and client service name file.Based on the practical work,designs and implements the process of monitoring and starting remote database.

猜你喜欢

服务器端监听实例
英国风真无线监听耳机新贵 Cambridge Audio(剑桥)Melomania Touch
Linux环境下基于Socket的数据传输软件设计
千元监听风格Hi-Fi箱新选择 Summer audio A-401
网络监听的防范措施
基于Qt的安全即时通讯软件服务器端设计
基于Qt的网络聊天软件服务器端设计
应召反潜时无人机监听航路的规划
基于C/S架构的嵌入式监控组态外设扩展机制研究与应用
完形填空Ⅱ
完形填空Ⅰ