今天项目中又用到了Oracle,时隔三年没有碰过Oracle,之前在做某城市公共自行车管理系统时使用的是Orace10g版本,Oracle给我最大的感觉就是安装上以后,电脑就会变得很卡,所以大家当不使用的时候,可以将Oracle服务停掉。这么长时间过去了,已经忘的差不多了,当然这里指的是配置和使用。刚刚在安装和配置过程中也遇到了以前没有遇到过的问题,因此写一篇博客记录下遇到的问题,以便以后再次遇到同样的问题。
下面是安装步骤(以Oracle10g为例,部分截图可能来源于其他文章,因为刚才在安装时未进行截图,又在自己笔记本上安装了一遍,可能是Win10的原因,在校验过程中出现错误,抱歉):
一、双击安装程序
二、安装程序会先进行程序兼容性检查,如果检查未通过,程序将直接退出
三、检查通过后进入安装向导,设置安装路径,以及数据库用户名及口令,如图:
四、出现准备安装界面,稍等一会儿
五、进行产品先决条件检查,注意在这一步中若出现一条检查错误信息,则将无法继续安装,我在win10装oracle 10g的时候出现错误,导致无法进行继续安装,应该是安装版本太低的原因,如图:
检查结果如下:
六、继续点击下一步时出现如下提示,只要没有出现错误的状态,选择“是”进行下一步安装,
七、等待进度条到达100%时,进入下一步安装界面
点击安装
八、安装后出现口令管理界面,可对数据库口令进行管理,这里我并未进行相应配置
九、点击确定后,安装继续进行,进行配置并启动先前的组件
最后一步,点击退出向导
至此,所有的安装已完成。
下面将介绍如何进行配置以及使用:
首先如何在oracle数据库中配置项目中数据库连接字符串的用户名和密码,在开始安装oracle数据库时,需要配置安装路径以及全局数据库用户名以及数据库口令,默认的这个数据库用户作为全局的数据库用户,它可以用于SYS、SYSTEM、SYSMAN和DBSNMP账户,若想在oracle数据库中创建自己的用户,需要使用SYSDBA的权限登录数据库,我这里使用我自己的用户名orcl,密码:spring进行登录,如图所示:
登录后可以看到PL/SQL的工作台,
使用SQL命令进行创建用户以及授权,选择文件->新建->SQL窗口:
使用sql命令
create user username identified by password
创建用户,比如我要创建一个test用户,密码为spring,则命令为:
create user test identified by spring
按F8或者直接点击执行按钮进行创建,如图所示:
下一步进行对该用户授权,使用
sql命令:
grant connect,resource to username
为test用户授权,则命令为:
grant connect,resource to test
点击执行按钮,即可授权成功。这时我们就可以使用test用户进行登录了,退出PL/SQL,重新登录。如图所示,连接选择为Normal,点击登录。
若想删除你所创建的用户,则要继续使用全局DBA用户,登录使用
sql命令:
drop user username cascade
我要删除test用户,
命令为:drop user test cascade
我这里只进行简单的创建用户以及授权,当然关于创建用户的操作还有很多,比如给该用户指定空间。大家自己如果用到,只能自己去查了。当我们创建好用户以后,如何连接项目中要用到的数据库服务器,通常直接在tnsnames.ora配置文件中配置,这里先说名下tnsnames.ora文件:
客户机为了和服务器连接,必须先和服务器上的监听进程联络。ORACLE通过tnsnames.ora文件中的连接描述符来说明连接信息。一般tnsnames.ora 是建立在客户机上的。如果是客户机/服务器结构,整个网络上只有一台机器安装了ORACLE数据库服务器,那么只需在每个要访问ORACLE服务器的客户机上定义该文件,在服务器上无需定义。但是,如果网络上有多台机器均安装了ORACLE数据库服务器,并且服务器之间有数据共享的要求,那么在每台服务器上都必须定义该文件。tnsnames.ora文件缺省放在/ORACLE_HOME/ 10.2.0/db_1/network/ADMIN目录下。下面是tnsnames.ora的文件样式:
# tnsnames.ora Network Configuration File: D:oracleproduct10.2.0db_1 etworkadmin nsnames.ora # Generated by Oracle configuration tools. ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ALLEN-PC)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) EXTPROC_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) ) (CONNECT_DATA = (SID = PLSExtProc) (PRESENTATION = RO) ) )
字段含义如下:
ADDRESS_LIST 表示该客户机要经由多种协议与一台或多台服务器连接。在该样式文件中就表示该客户机要用TCP/IP协议来和服务器相连。
PROTOCOL 指明要连接使用的协议。
SERVICE_NAME “SERVICE_NAME”就是“Global Database Name”,ORACLE8i数据库使用“Global Database Name”来唯一标识自己,通常的格式为“name.domain”,此处的值为“orcl”。
HOST 是TCP/IP协议使用的服务器IP地址。
PORT 是TCP/IP使用的端口地址。
SID 指定要连接的服务器上ORACLE数据库的ORACLE_SID。
SERVER=DEDICATED 表示用专用服务器连接ORACLE数据库。
下面是一个tnsnames.ora文件内容举例:
ORCL= 连接描述符名:ORCL
(description = 描述
(address = 网络地址之一
(protocol = tcp) 网络协议(tcp表示TCP/IP协议)
(host = 127.0.0.1) 服务器IP地址:127.0.0.1或者主机名
(port = 1521) 服务器端口号:1521
)
(connect_data = 连接数据
(sid = ora7) 数据库标识名:ora7
)
)
如果我想配置我用到的服务器的数据库,那么就可以直接在这个配置文件中添加节点就可以了,如,添加一个在11.10.126.241服务器上的数据库,连接的描述符名称为:ORCL_TestDb 服务器端口为:1251,则可以这样配置,如下:
ORCL_TestDb = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 11.10.126.241)(PORT = 1251)) ) (CONNECT_DATA = (SID = ORCL) (SERVER = DEDICATED) ) )
配置完成后保存文件即可。然后打开PL/SQL 使用我们创建的Test用户,数据库名下拉列表中就可以选择刚刚添加的ORCL_TestDb,连接方式选择Normal,点击确定就可以连接我们要连接的数据库了。Ok,搞定!