博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Oracle数据库进行企业开发(一)
阅读量:5825 次
发布时间:2019-06-18

本文共 1543 字,大约阅读时间需要 5 分钟。

 开发人员与DBA是两个不同的角色,在实际工作中,两个角色可以互相帮助,互通有无,共同做好项目。但是实际上,开发人员需要一定的Oracle基础知识,这样才可以做出更好更专业的应用程序。

    对于Oracle系统架构等和开发关系不太大的知识,并不在本文讨论范围之内,本文仅针对部分开发人员需要了解的方面展开讨论,并且在某种程度上更偏向于dotnet程序员。

    一、网络配置

使    用Oracle做后台数据库,前端的应用程序必须通过网络配置才能与服务器相连,即便数据库与应用程序在同一台机器上,也需要做一定的配置,如果客户端与服务器不在同一台机器,那么客户端必须安装Oracle客户端软件才可以,客户端的版本与服务器的版本不一定严格一致,比如服务器是Oracle10g,客户端只要装一个Oracle9i以上版本就可以了。下面分别做一下说明:

    1.应用程序与数据库在同一台机器

    这种模式相对简单,因为装了完整版的Oracle后,已经包括了Oracle客户端组件,在默认的情况,连接数据库只要提供数据库的用户名和密码即可,网络相关的东西可以不用理会。这种情况适合于本机只装了一个Oracle的实例,如果有多个实例的话,会需要配置的更复杂一些,与下面的第二点相同,请参考后面介绍。

    2.数据库服务器与应用程序脱离

    所谓脱离,指的是两个机器在物理上是隔离的,这种连接,必须靠OCI来实现。OCI指的是专门用于客户端与服务器连接的一种方式,实现它有多种方式,最简单的办法就是拿Oracle安装盘,在客户端机器上装一个Oracle的客户端版本即可。但是这种方式部署比较困难,因为Oracle的客户端也比较大,最少在100M以上,安装的时候需要指定目录等操作,比较复杂。如果做大面积CS结构部署,会很麻烦。

    替代办法是目前可以找到一个“精简版Oracle客户端”,此版本并非Oracle官方发布,只有9M左右,安装完成后,可以实现客户端与服务器的连接通道,但是不包括任何的客户端工具。

    能否在自己的应用程序中直接把Oracle客户端打包进去一起发布呢,我想肯定能,但是我不会。

    OCI是如何实现这个桥梁作用的呢?在服务器端有一个监听器,一直负责监听外面的请求,这个请求正是客户端的OCI发过来的,监听器收到请求后,然后真正向数据库服务器提出申请,实现整个的连接过程。

    一般服务器端默认情况需要1521端口,因此需要在服务器及中间的firewall上打开1521端口,对于UNIX系列服务器,这样做完就可以了,但是对于Windows系列服务器,你会发现,虽然firewall已经放行1521端口,客户端依然是无法连通,但是把firewall全部打开又太过危险。这是Windows的Socket机制造成的一个特有的现象,原理不再解释,仅说明一下处理方式:

    需要在数据库服务器注册表的如下路径:

    我的电脑\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0中添加一个键:USE_SHARED_SOCKET,并赋值为TRUE,然后就可以了。记得一点,如果还不行,就把数据库服务器重新启动一下。

    针对客户端,有一个主要的文件就是tnsnames.ora,安装过Oracle客户端后,在安装目录可以找到这个文件,在这里面记录着如何连接服务器,一般安装客户端后,系统会自动建立几个连接,如果需要新建,直接模仿就可以,这是个文本文件,可以直接编辑,存盘后即生效,不需要重新启动机器或Oracle服务。

本文转自Aicken(李鸣)博客园博客,原文链接:http://www.cnblogs.com/isline/archive/2010/04/07/1706055.html,如需转载请自行联系原作者

你可能感兴趣的文章
环境变量(总结)
查看>>
ios之UILabel
查看>>
Java基础之String,StringBuilder,StringBuffer
查看>>
1月9日学习内容整理:爬虫基本原理
查看>>
安卓中数据库的搭建与使用
查看>>
AT3908 Two Integers
查看>>
渐变色文字
查看>>
C++ 0X 新特性实例(比较常用的) (转)
查看>>
node生成自定义命令(yargs/commander)
查看>>
各种非算法模板
查看>>
如何创建Servlet
查看>>
.NET 设计规范--.NET约定、惯用法与模式-2.框架设计基础
查看>>
win7 64位+Oracle 11g 64位下使用 PL/SQL Developer 的解决办法
查看>>
BZOJ1997:[HNOI2010]PLANAR——题解
查看>>
BZOJ1014:[JSOI2008]火星人prefix——题解
查看>>
使用Unity3D引擎开发赛车游戏
查看>>
HTML5新手入门指南
查看>>
opennebula 开发记录
查看>>
ubuntu 修改hostname
查看>>
sql 内联,左联,右联,全联
查看>>