对于原来只玩Windows操作系统得我来说,对IBM小型服务器上AIX操作系统还是比较陌生的,首先简单了解下什么是 AIX ?什么是 UNIX ?两者的关系是什么?UNIX于1969 年由AT&T Bell Labs 发明,是一种健壮、灵活且对开发人员友好的计算环境。UNIX 最初是为 PDP 微型计算机的Digital Equipment Corporation系列编写的,目前它是最受欢迎的多用户通用操作系统,并在所有计算领域——甚至包括曾被大型机垄断的领域——占据主导地位。时至今天,UNIX 已经发展了40 年,它已经成为了最重要的企业级服务器操作系统。同时,它的各个分支系统也在蓬勃的发展着,如Linux,BSD 以及 AIX,都成为了企业级应用的主要基础平台。

  

  AIX 是 Advanced Interactive eXecutive 的缩写,于 1986 年 1 月推出,是 IBM 发布 UNIX 操作系统。最初,AIX 运行在 IBM RT/PC (AIX/RT) 上。自从 1989 年以来,AIX 成为 RS/6000 系列工作站和服务器(AIX/6000)的操作系统。在 AIX 的开发过程中,IBM 和 INTERACTIVE Systems Corporation(同 IBM 签约)将 4.2 BSD 与 4.3BSD 的一些特性加入了 AIX 中。2001 年推出的 AIX 5L 是 AIX 发展史上的重要版本,它基于标准的开放操作系统,符合 The Open Group 的 Single UNIX Specification Version 3 的要求。它为以各种可伸缩性并发运行的 32 位和 64 位应用程序提供完全集成支持。AIX 5L 支持 IBM eServer p5、IBM eServer pSeries、IBM eServer i5 和 IBM RS/6000 服务器产品系列,以及 IntelliStation POWER 和 RS/6000 工作站。2007 年 11 月,伴随着新一代 Power CPU - Power 6 的诞生,IBM 也推出了最新的 AIX 6 操作系统。它在很多方面都进行了革命性的改变和创新,如虚拟化技术、安全架构、开发环境以及持续可用性等方面。

  ArcSDE要求AIX为AIX Rev 5.3 64-bit及以上版本,并且要求200MB以上的硬盘空间~

 

  说完了操作系统,再来说说Oracle数据库,对于Oracle本身就不用做什么介绍了,ArcSDE的安装需要Oracle的一个用户名(用户名通过后面说道的createsdeoracle.sql脚本建)及一个表空间,名字都是SDE(你想起个富有诗意的个性化名字吗?不好意思,ESRI没有给你这个机会,你只能用SDE这个名字,反正我的实验结果是这样。不然在POST的过程中会出现“You don't have the database  schema"的错误,如果有高手知道深层原因,望解答)

  还有一个注意点就是SDE表空间的存放位置,至关重要,本人就是写错了地方,多纠结了一天,还拉上了树彬,汗! 如果你的Oracle只有一个实例(实例好像和Oracle SID一个概念),并且表空间放在Oracle数据库本地,那么很简单,你建立一个400MB左右的名为SDE的自动增长的表空间,存放位置为默认。如果你的Oracle数据库做了负载均衡或者双机热备,比如在多台服务器上分别安装了ESRI1、ESRI2、ESRI3。。。等实例,通过Oracle RAC(real application clusters)作了负载均衡,并通过ESRI这个网络服务名向外提供数据库服务,那么表空间的存放位置一般为多个实例都能访问到的公共磁盘阵列上了,而不是在某台服务器的本地(不然其它服务器上的实例怎么访问呢?)这时候你就需要咨询Oracle的安装人员或者数据库DBA来确定SDE表空间存放的磁盘阵列的位置。

 

  现在我们开始为安装ArcSDE做准备,首先在操作系统中建立一个SDE管理用户,可以通过"/usr/sbin/useradd 用户名 -p 密码"的命令来建,这里我们可以偷懒下,因为安装Oracle数据库后会有oracle这么个用户名,我们直接可以用这个用户名,也便于日后管理~

  建立环境变量,这一步可是个细活,需要额外小心,在.profile文件中建立如下环境变量,不同类型的Unix有不同之处:

SDEHOME <location of ArcSDE>

ORACLE_HOME <location of Oracle>

ORACLE_SID <Oracle SID value>

TNS_ADMIN  <location of the tnsnames.ora file>

PATH $PATH:$SDEHOME/bin:$ORACLE_HOME/bin

LD_LIBRARY_PATH  $SDEHOME/lib:/usr/lib:/lib:$ORACLE_HOME/lib (All platforms except HP and IBM)

SHLIB_PATH $SDEHOME/lib:/usr/lib:/lib:$ORACLE_HOME/lib (for HP only)

LIBPATH $SDEHOME/lib:/usr/lib:/lib:$ORACLE_HOME/lib (for IBM only)

TWO_TASK <value for TWO_TASK> (if ArcSDE and Oracle on different machines即当 ArcSDE 和 Oracle 安装在不同的机器(分布式模式)时与TNS_ADMIN成对使用)

SDEFORCEXDR 1 (needs to be set for all 32-bit clients installed on the same machine as ArcSDE 64-bit)

  下面给出我.profile文件中的部分环境变量:

SDEHOME=/oracle/sdeexe93
export SDEHOME
ORACLE_BASE=/oracle
export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_HOME
LIBPATH=$SDEHOME/lib:/usr/lib:/lib:$ORACLE_HOME/lib:$ORACLE_HOME/ctx/lib:$ORACLE_HOME/lib32
export LIBPATH
ORACLE_SID=esri1
export ORACLE_SID
TNS_ADMIN=$ORACLE_HOME/network/admin
export TNS_ADMIN
TWO_TASK=esri
export TWO_TASK
PATH=$SDEHOME/bin:$ORACLE_HOME/bin:$CRS_HOME/bin:/usr/bin:/etc:/usr/lbin:/usr/bin/X11:/usr//bin:/usr/local/bin:.:$PATH
export PATH

  .profile文件可以通过FTP下载、修改、再上传,高手可以通过命令行来修改。如果为分布式安装模式时需要在本地配置一个指向oracle数据库的oracle net服务(应该就是上述的网络服务名)。并要求配置$SDEHOME/etc/dbinit.sde文件,(添加set LOCAL=ESRI或者set TWO_TASK=ESRI,这里的ESRI是网络服务名) 该文件需要在安装完ArcSDE后才有,还有createsdeoracle.sql也是在安装完ArcSDE后才有~

 

现在安装ArcSDE,首先定位到安装文件,如% cd /cdrom/ibm/oracle10g_64,再使用命令行% ./install -load进行加载,这个时候你可能碰到没有权限的提示,可以通过“chmod -R 777 目录”语句把该目录的权限给安装用户,可以详细看下chmod -R命令。 在安装过程还有一个注意的地方是,ESRI会问你是否遵守许可,语句如下:

ESRI is willing to license the software to you only if you accept and agree to the enclosed license agreement. If you have read and agree with the terms in the enclosed license agreement type 'yes' to continue the installation process, if not press <return> or type 'no' to exit installation process. [no]

但由于你屏幕的原因,可能看不全,我就被这个折腾了N久。你只要定位到最后,把no修改为yes就可以了,然后就指定你的安装文件目录和要安装到的地方,如果你上述设置了SDEHOME=/oracle/sdeexe93,那么安装到的地方就是/oracle

 

如果安装完成后,到安装目录下的etc目录和tools目录中去找dbinit.sde和createsdeoracle.sql文件,进行相应的修改。createsdeoracle.sql的修改如下:

1、为connect语句添加system的用户名和密码,如connect  system/oracle@esri (由于我安装的Oracle数据库对外发布了多个网络服务名,所以连接的时候必须指定要连接的网络服务名,如esri,或者也可以指定实例名,如esri1、esri2等)

2、由于我们已经建立了SDE表空间,所以把建立SDE表空间的SQL语句注释掉(这个就不用我说了吧,自己去找!~)默认的安装路径一般肯定是错误的,当然你也可以在这里添加表空间,但建议用户自己去建,不然出了问题,你就悲剧了(如果你非常熟悉Oracle数据库的命令行,可以在做了负载均衡的环境中删除SDE表空间,那就随便你拉~)

执行sql脚本:
 sqlplus sys as sydba@ESRI     注意添加网络服务名,如果数据库只有一个网络服务名及一个实例名,这个可以忽略
sql> @createsdeoracle.sql;注意最后加分号

如果一切OK,那么现在可以做PostInstall的操作了,命令行如下:

sdesetup -o install -d ORACLE10G -p sde -u sde -l  /oracle/sde.ecp  这里我把ecp许可文件放在了oracle用户目录下了,参数的详细说明如下:

-o install      Creates geodatabase tables and procedures ArcSDE requires.

-d              Underlying RDBMS used to store the ArcSDE geodatabase

-H              Location where ArcSDE files are installed (not required if $SDEHOME is set)

-i              Only used for a user-schema geodatabase; consisting of the port number for the master SDE geodatabase followed by the schema name (for example, 5151:tyort).

-l              ArcSDE authorization key or location to authorization file

-N              No verification

-o              Operation

-p              DBMS DBA user password

-q              Quiet; all titles and warnings are suppressed.

-s              Datasource name

-u              DBMS DBA user name

最后给出启动、关闭及监控SDE服务的命令:

Sdemon –o start –p sde –i esri_sde

Sdemon –o shutdown –p sde –i esri_sde

Sdemon –o status –i esri_sde 

 

下面部分转Flyingis的分布式部署 ArcSDE 和 Oracle 服务,地址如下http://www.cnblogs.com/flyingis/archive/2007/10/14/924049.html

  SDE和Oracle数据库部署在一台服务器上早已是家常便饭,像我的notebook就是一锅出,什么都有,用起来方便,甚至不少最终产品部署的时候都是如此。那么,什么时候需要将两者分开呢?分散服务负载是一种考虑,经典服务器配置理论就是一台服务器一个核心服务,不仅分散服务器的负载,还便于压力测试,方便调试与维护,或是在不同的操作系统平台上进行安装配置,如Oracle数据库在Solaris系统,SDE安装在Windows2003或Suse10企业版上,具体应该如何配置呢?下面给出教条一二三,针对ArcSDE9.x和Oracle9i/10g:

1.首先应该将Oracle安装在单独服务器上并进行dbca,正常监听和启动服务。
2.在SDE服务器上安装Oracle Network Software,以便在SDE服务器上执行sql操控远程Oracle服务器,相对于SDE服务器是Oracle服务器的一个客户端。
3.根据不同的操作系统安装SDE,post时需要做一点调整,在Windows平台上,需手工创建sde服务,因为post无法为远程SDE服务器创建sde服务。
sdeservice -o create -d ORACLE10G,ORACLE_SID -i esri_sde -p password -n
    注意,后面要加上参数"-n"!Windows平台上不能分布式部署SDE8.x。

    环境变量设置:

    SDE服务器只有写入相应的环境变量后,才能让Oracle Network Software找到Oracle服务。Windows系统中,需要设置SDEHOME\etc\dbinit.sde,加入set LOCAL=netservicename,在sde服务创建后写入。Unix系统要在环境变量中添加TWO_TASK,和Oracle双机安装SDE一样,当然少不了TNS_ADMIN。SDE服务启动时,giomgr进程会读取dbinit.sde里的变量值,它们会覆盖.cshrc和.profile中的值,这里需要注意。

    OK,这样就配置好了,如果发现服务还是存在问题,多检查环境变量的设置、Oracle Network连通性,最后重启服务器也许就能解决问题,看到这里,当自己有多余服务器时,要不要尝试一把!

转载OVER~

 

 我这里的ArcSDE虽然安装在一台数据库服务器上,当所用到的是ESRI这个虚拟的网络服务名,这个网络服务名对应着多个实例(如ESRI1、ESRI2、ESRI3。。。),试验结果是,如果在dbinit.sde设置为:

ORACLE_SID=ESRI1 或者 ORACLE_SID=ESRI2 或者 ORACLE_SID=ESRI3。。。 那么启动服务没有问题,但应该只用了一个实例,如果设置ORACLE_SID=ESRI(网络服务名),那么服务启动不了

如果要用网络服务名,那么在dbinit.sde必须设置为TWO_TASK=ESRI(网络服务名),试验结果就是这样,虽然文档上和Flyingis都说只有ArcSDE和Oracle分布安装时才用TWO_TASK

可能这里用到的ESRI是一个网络服务名,是一个虚拟化的东西,对应着多台服务器的SID实例,望高手给出正解~

 

本篇只是个人的一个安装备忘,由于能力有限,可能某些地方说的不够清楚,请见谅,如果有说的不对的地方,望高手指正! 

 

http://www.cnblogs.com/ECNU-GIS-LIUJIE/

 

posted on 2010-04-20 20:47  JayLiu  阅读(2342)  评论(3编辑  收藏  举报