此文章是【史上最新最全Oracle数据库安装及客户端连接教程(图文教程)】的子篇,这篇文章介绍的是Oracle服务端Oracle数据库软件的安装和服务端为实现客户端的远程连接的相关配置。
一、数据库软件的安装
数据库软件的安装分为三个部分:软件安装、配置监听器、创建数据库实例。
Step1:软件安装
1.下载安装文件
2.将上述两个压缩包,解压到同一目录:
3.解压完成后,点击进行安装:
4.在windows 10环境下,会出现如下警告,可以忽略,直接点击“是”,继续安装:
5.oracle安装步骤1:配置安全更新
6.安装步骤2:配置数据库
7.安装类型、产品语言
8.数据库版本,选择企业版,点击下一步
9.安装位置
10.点击完成,开始安装产品,过程中会有提示.net framework 3.5版本安装
直接选择跳过就行,等待安装完成后,点击“关闭”按钮,安装完成
Step2:配置监听器
安装完数据库软件,需要先配置监听器,才能进行创建数据库实例,配置监听器的步骤如下:
1.在开始菜单,以 管理员身份运行Net Configuration Assistant
Step3:创建数据库实例
1.在开始菜单,以 管理员身份运行Database Configuration Assistant
2.创建数据库
提示:在创建管理员等用户的密码时,密码不能以数字开头,最好包含大小写字母,否则会报错
ORA-00922
,ORA-28000
。
二、远程连接的服务端配置
为了实现客户端(比如使用PL/SQL等客户端图形界面工具软件)能够远程连接服务端,服务端需要进行一定的配置,主要涉及了三个文件:
- listener.ora;
- sqlnet.ora;
- tnsnames.ora;
这三个文件位于$ORACLE_BASE
(我的是:D:\Programs\Oracle\server\app\Michael\product\11.2.0\dbhome_1
)下的D:\Programs\Oracle\server\app\Michael\product\11.2.0\dbhome_1\NETWORK\ADMIN
目录中。
接下来是详细的配置!
1.listener.ora
这个文件是listener监听进程的配置文件,配置此文件可以使监听程序接受客户端的远程连接申请并交给oracle的服务器进程。所以如果不是进行客户端远程连接的话这个文件不是必须配置的。为了实现客户端的远程连接,我将这个文件进行了修改,具体如下:
# listener.ora Network Configuration File: D:\Programs\Oracle\server\app\Michael\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = D:\Programs\Oracle\server\app\Michael\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:D:\Programs\Oracle\server\app\Michael\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
#这部分是新加的
(SID_DESC =
(GLOBAL_DBNAME = oradb.cn.oracle.com)
(ORACLE_HOME = D:\Programs\Oracle\server\app\Michael\product\11.2.0\dbhome_1)
(SID_NAME = ORADB)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.122)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
ADR_BASE_LISTENER = D:\Programs\Oracle\server\app\Michael
上面新加的部分’oradb.cn.oracle.com’是我的数据库全局服务名,’ORADB’是服务器上我的数据库唯一标识SID,’HOST’是我数据库服务器的IP地址。
参数说明:
- SID_LIST_LISTENER:oracle服务端实例列表,每监听一个oracle示例,就可以在下面添加一个SID_DESC选项;
- GLOBAL_DBNAME :全局数据库名,通过”select * from global_name”查询得出;
- SID_NAME:服务器端(本机)的SID;
- LISTENER :监听名称,可以配置多个监听,在下面添加一个DESCRIPTION,多个监听的端口号要区分开来;
2.sqlnet.ora
这个文件是创建连接时以何种方式来查找连接字符串的配置文件。为了实现客户端的远程连接,我将这个文件进行了修改,具体如下:
# This file is actually generated by netca. But if customers choose to
# install "Software Only", this file wont exist and without the native
# authentication, they will not be able to connect to the database on NT.
SQLNET.AUTHENTICATION_SERVICES = (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES)
上述配置表明,使用客户端进行连接时会在tnsnames.ora文件中查找配置信息。你也可以进行如下配置:
SQLNET.AUTHENTICATION_SERVICES = (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES,HOSTNAME)
进行上述配置表明,使用客户端进行连接时会首先在tnsnames.ora文件中查找配置信息,如果没有找到,就会把你的连接名(比如orcl)当作主机名,然后通过网络路径解析ip,然后去连接这个ip主机上GLOBAL_DBNAME=orcl的这个实例。
3.tnsnames.ora
这个文件类似于系统的hosts文件,提供了tnsname到主机名或者IP的对应。我们需要把所有想要进行远程连接的oracle服务实例配置在这里,这样我们的客户端连接程序,如pl/sql
,就可以进行解析oracle实例的地址了。比如我这里根据服务端的实际IP地址就可以进行如下配置:
# tnsnames.ora Network Configuration File: D:\Programs\Oracle\server\app\Michael\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
ORADB =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.122)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = oradb.cn.oracle.com)
)
)
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)