在关系数据库管理系统(DBMS)中,ArcSDE就像管理地理数据的“大门”,使得DBMS中数据可以快速向ArcMap、 ArcCatalog、ArcIMS,以及其它互联网络客户端传输。ArcSDE和DBMS的组合使用,有利于将基于传统文件的矢量,栅格和CAD数据都移植到一个空间数据及属性数据集成的数据库中。这样,所有的空间数据及一般的商业数据都被管理在传统IT框架内,有利于数据的一体化。
ArcSDE 支持许多的数据库软件,因此选择配置的方案是很灵活的。当然,客户端应用从ArcSDE获取空间数据的速度快慢的性能取决于多个因素,包括硬件、数据库配置、ArcSDE配置、客户端处理能力和网络带宽等等。本文将对基于Oracle数据库的ArcSDE系统的一些基本运行配置方案进行描述。
1、 Oracle及ArcSDE简介
Oracle数据库是由一个例程(Instance)和存储在硬盘上的文件组成的。Oracle例程是由进程和内存结构组成的。服务器进程(Server Process)从SGA与Oracle客户端交互,比如ArcSDE。它负责处理用户提交的SQL语句以及读写用户数据。后台进程(Background Process)代表服务器进程与组成数据库的物理文件交互。构成Oracle这样大容量数据库的是一系列数据文件,其中存储了如表和索引等这样的对象。
通过Oracle服务端程序,ArcSDE使用giomgr进程与数据库交互。每个ArcSDE服务都有一个giomgr进程在监听用户应用的连接请求、清理断开的用户进程。每个连接ArcSDE的客户端应用程序都被指定一个gsrvr进程,该进程由giomgr生成。通过Oracle服务端程序,Gsrvr提交用户所有的数据库查询及编辑的请求。
2、逻辑数据库设计
如何正确配置ArcSDE Oracle数据库,首先要分析这个数据库将的用途。一般地,数据库要么用于联机分析处理(OLAP),要么用于决策支持系统(DSS)。OLAP数据库的特征就是频繁的数据更改,例如典型的插入或更新操作,这对大用户量的数据库是很习以为常的。这样类型的系统包括订单输入系统、订票系统和打卡系统。 DSS数据库则有所不同。它可以从大量的数据中产生报表信息。一般来说,OLAP系统的用户群一般都比较大,DSS用户群相对要少得多。
DSS系统的主要特性是能够快速地获取大量的数据。大部分的GIS应用都选用DSS系统,因为它们需要获取用于分析和显示的大量地理数据和属性信息。当然,很多的 GIS系统在数据更新时候也可以像OLTP系统那样工作。由于大多数的GIS都采用DSS数据库的配置,因此可以根据相应的应用进行数据库的物理设计和逻辑设计。
逻辑设计的目的就是优化配置数据库,使数据库对象按照其活动性相互分离。比如,表和其索引分离,高活动性表和低活动性表也不要存放在一起。如此配置将会获得运行效率极高、并且易于管理的数据库。
一般情况下,只有表和索引被视为对象,其实还存在其它很多对象,比如视图、序列和同义词等等。在操作系统中,Oracle将对象逻辑地存储在一个或多个数据文件所支撑的表空间内。对于不同类型数据,在Oracle中都应当应该分别给它们各自独立的表空间。比如,典型的ArcSDE配置将提供最少五个表空间用于存储地理数据,它们分别是 FEATURE,ATTRIBUTE,SPATIAL_INDEX,ORACLE_INDEX和SDE。每一个表空间都存储ArcSDE和其相关客户端所使用的不同的表或索引。FEATURE表空间用于存储“F[n]”(F表),即ArcSDE创建的要素表。ATTRIBUTE表空间存储包含属性信息的业务表。SPATIAL_INDEX表空间存储“S[n]”(S表),即空间索引表。ORACLE_INDEX表空间存储的是基于要素、属性和空间索引表创建的ORACLE索引。SDE表空间存储ArcSDE系统表。除了上述这些ArcSDE表空间外,Oracle数据库应该至少还包含 SYSTEM,ROLLBACK,TEMP和USER表空间,分别用来存储用于ORACLE内部进程的不同对象。
3、物理数据库设计
通常情况下,并不需要考虑数据库的物理布局。只有当数据库运行遇到性能问题时,物理布局才被考虑到。其实,要配置一个高性能的数据库,正如数据库的逻辑设计中的精心安排一样,数据库文件的物理布局设计必须也要同时进行。在任何Oracle数据库中,I/O争用往往是数据库性能的瓶颈。因此数据文件的物理布局应该始于对数据I/O情况的识别。要减少I/O争用,必须将不同的对象组安排在不同磁盘驱动器和表空间中。
一般情况下,客户端访问的表空间中的表和索引将会占据大量的I/O。在ArcSDE配置中,这种情况在FEATURE、ATTRIBUTE、 SPATIAL_INDEX和ORACLE_INDEX表空间中都会出现。如果可能的话,应当将这些表空间的数据文件各自单独存放到不同磁盘中。典型的 GIS客户端应用(如,ArcMAP)在普通的会话过程中都会频繁访问这些表空间里的表和索引文件。比如,当用户在ArcMAP中进行缩放或移动操作时,查询语句将提交给ArcSDE,以获取应用程序窗口范围内的要素。执行之一过程的动作是从S表的索引表中获取符合条件的要素标识码。然后通过使用FID字段的索引,从F表中提取相应的要素几何图形。如果查询中还包含属性查询,业务表也将被提取。所以,如果系统存储中每个表空间在物理上都分别存放,对于 ArcMap这样的客户端将获得更好的操作性能。
SYSTEM表空间保存Oracle的数据字典,因此应该被安排在活动性适中的磁盘上。每当 Oracle对一个SQL语句进行解析的时候,都会检查存放在数据字典中的表。SYSTEM表空间中只存储数据字典是最好的。
ROLLBACK表空间用于维护数据库中数据的一致性。对于数据库中的每个事务处理,Oracle在回退段中生成一个数据的Before Image。它的作用除了提供回退机制以外,还得保证在该事务处理提交之前其它客户端查询的读取一致性(read consistency)。一般来说,给ROLLBACK表空间分配50MB的空间。并且,ROLLBACK表空间应该分割存储到不同的磁盘上。
TEMP 表空间用于存储动态由SELECT DISTINCT,UNION和CREATE INDEX等大数据量的排序操作产生的数据。创建TEMP表空间时,一定要记住,创建一个索引需要两倍于该索引存储的空间大小。在ArcSDE数据库中的空间索引中,一般情况下,S表的索引(S_[x])是需要存储空间最大的索引。因此,为TEMP表空间分配的空间至少是该索引存储量大小的两倍。建议把临时表空间与其它表空间物理地分开。
与SYSTEM表空间很相似,SDE表空间是用于存储Oracle数据字典的,这里保存了管理ArcSDE例程的元数据。SDE表空间可以和SYSTEM表空间存放在同一个磁盘上。
4、其它数据库文件
Oracle使用控制文件来保存数据库信息,如数据库标识符、创建日期、表空间名字、数据文件名,以及其它用于数据库正常启动和运行的重要细节信息。在数据库使用过程中,这些文件被Oracle不断更新,因此数据库打开的时候,它必须是可写的。如果由于某些原因导致该文件不可用,数据库将不能够正常运行。由于这个原因,这个控制文件应该包括最少三个镜像。
联机重作(Online redo)日志文件用于记录数据库的所有事务处理操作,这些操作包括:插入,更新和删除。在数据库例程崩溃的时候,Oracle使用这些文件来最小化数据损失。在一个例程崩溃时,Oracle读取这些文件,用以恢复已提交但尚未写入数据文件中的数据。Oracle至少需要两个redo日志文件。一旦一个日志文件写满了,Oracle开始写另一个日志文件。这个处理过程称为日志切换,它会触发检查点事件,而检查点是相当耗资源的。大多数ArcSDE数据库保持静态,随时间推移,数据库一般是变化不大的。为了把日志切换的次数减至最少,一般来说,需要创建两个50兆的联机重作日志文件。重做日志文件的使用频率并非特别高,可以和数据库的其它文件存放在一块。
5、Oracle进程参数配置
数据库例程的配置在很大程度上决定了数据库的性能。在数据库启动的时候,一个系统全局区域(SGA)都会分配,并且数据库的后台进程同时启动。SGA是存放数据库信息的一块内存区域,供数据库用户共享。Oracle后台进程和SGA的组合称为Oracle例程。在启动的时候,Oracle使用init[sid].ora参数文件来配置该进程。
在Oracle上运行ArcSDE数据库的时候,一些关键参数设置是尤其举足轻重的。DB_BLOCK_SIZE和DB_BLOCK_BUFFERS参数控制SGA中BLOCK缓存的大小。在很多情况下,给该缓存分配1/3或更多的系统可用内存。在内存中,BLOCK缓存存储了先前访问过的表和索引数据块,减少系统的I/O需求。将DB_BLOCK_SIZE设置为16,384字节是非常合适的,当这个参数低于8,192字节时,可能会降低数据库性能。DB_BLOCK_BUFFERS参数乘以 DB_BLOCK_SIZE,就是BLOCK缓存的总大小。例如,将DB_BLOCK_BUFFERS设置为100,000,并将 DB_BLOCK_SIZE设置为16K,那么BLOCK缓存的大小就是1.6G。
ArcSDE和DSS数据库的另外一个重要配置参数,是 DB_FILE_MULTIBLOCK_READ_COUNT。该参数决定了在一次读取操作的时候,从硬盘读取的数据量。磁盘I/O过频,将降低系统的性能,磁盘读取的次数越少越好。在DSS数据库中该参数经常被设置成一个很高的值,但是当该参数被设置为8时,ArcSDE似乎能运行得更好。偏高的参数值反而会影响Oracle的执行计划。
共享池(shared pool)是SGA中的一个重要部分,它包括数据字典缓存(data dictionary cache)和库缓存(library cache)。库缓存存储了最近解析过的SQL语句。共享池的大小由SHARED_POOL_SIZE参数控制。推荐设置大小为55MB,最大值为 75MB。
SGA的还有一个重作日志缓冲(log buffer),它保存着尚未提交地数据更新。日志缓冲由LOG_BUFFER参数所控制。如果内存空间允许,可以将该参数设置为10MB。
6、结论
以上是基于Oracle的ArcSDE的一些通用配置方案,然而,要让你的空间数据库能够向客户端提供高性能的服务,以上这些是远远不够的,还需要很多很多尝试。作好Oracle数据库物理布局是获得高性能数据库的起点。ArcGIS中国培训中心开设为期五天的ArcSDE Oracle管理员教程,可以为你提供一套完整的空间数据库配置解决方案。
当基于Oracle或是SQL Server安装ArcSde后,一般会生成十几张以GDB_开头的系统表,这些表一般为SDE中数据信息的描述,以下为本人对其中几张主要表的一点理解:
1、GDB_ObjectClasses表:记录所有SDE中注册过的普通表、FeatureClass,一般包括Name和ID字段,Name为在ArcCatalog中所看到的名字,ID为唯一标识,以后关于此对象的所有数据(如F表、S表)信息都以该ID表示;若删除该表中的某条记录,则该记录所对应的表在ArcCatalog中将无法看到。
2、GDB_FeatureClasses表:为所有空间表(FeatureClass)的描述信息,一般包括 ObjectclassID,featuretype,geometrytype,shapeField等字段,objectclassid与 GDB_ObjectClasses中的ID相对应,featuretype为特征类型(如:1为矢量,2为栅格等),geometrytype为空间几何体类型(如:1为点,2为线等),ShapeField为该空间表中空间图形存储的字段名(一般为Shape,在创建时也可定义为别的);若删除该表中的某条记录,则该记录所对应的featureclass在ArcCatalog中将无法看到。
3、GDB_FeatureDataset表:该表记录SDE中FeatureDataset信息,包括Owner,Name等;删除该表中的某条记录,则该记录所对应的featuredataset在 ArcCatalog中将无法看到。
4、GDB_FieldInfo表:为SDE中所有表的字段信息,一般包含ClassID、 FieldName,AliasName,IsEditable等字段,可直接通过操作此表来修改表或featureclass的字段的名称和别名。
5、 GDB_Domains表:SDE中的Domain对象,具体可查看该表结构,若了解Domain,则比较容易理解该表。
6、 GDB_SubTypes表:SDE中的SubType对象,具体可查看该表结构,若了解SubType,则比较容易理解该表。
7、 GDB_RasterCatalogs表:该表记录SDE中的RasterCatalog的元数据信息,一般包含 objectclassid,rasterfield,israsterdataset, 其中,objectclassid与GDB_ObjectClasses中的ID对应,rasterField为在RasterCatalog表中存储 Raster的字段,israsterDataset标识是否为RasterDataset。
另外,SDE中的系统表还有十几张,但和我们应用关系最密切的主要为上面几张,其它的系统表,可以通过Oracle Client或是PL/SQL查看。
分享到:
相关推荐
### ArcSDE 连接 Oracle 配置详解 #### 一、ArcSDE与Oracle数据库的集成概述 ArcSDE是Esri推出的一款用于管理地理空间数据的企业级解决方案,能够支持多种数据库管理系统(DBMS)。当ArcSDE与Oracle数据库进行集成...
"arcgis,arcsde,oracle安装配置手册" 本手册旨在提供arcgis,arcsde,oracle的安装和配置过程的详细指导。本手册的内容涵盖了ORACLE数据库的安装、ARCSDE的安装和配置 serta ArcGIS的安装。通过本手册,读者可以轻松...
3. **初始化ArcSDE**: 在Oracle数据库中创建ArcSDE系统表和存储空间,这通常通过arcgis.sde连接进行。 4. **创建地理数据库**: 在ArcSDE连接上创建一个新的地理数据库,这是GIS数据的容器。 5. **配置安全性和权限...
4. **安装过程**:安装ArcSDE涉及几个关键步骤,包括准备Oracle数据库环境,安装ArcSDE服务端软件,配置ArcSDE连接,以及安装客户端工具。对于Oracle 10g和11g,可能需要不同的数据库配置和兼容性设置。 5. **数据...
**ArcSDE for Oracle 10g** 是一款由Esri公司开发的专业地理信息系统(GIS)数据管理软件,主要用于在Oracle 10g数据库中存储、管理和分发地理空间数据。这款产品是ArcGIS系统的重要组成部分,使得GIS数据能够与企业...
为了能够正确地安装和配置 ArcSDE for Oracle,本文将详细介绍单机和分布式安装的步骤。 单机安装 在单机安装中,ArcSDE 和 Oracle 都安装在同一台机器上。这种安装方式比较简单,只需要安装 Oracle 服务端,然后...
### ArcSDE操作Oracle数据库中的空间数据:原理与配置 #### 引言 在地理信息系统(GIS)领域,ArcSDE作为一个高级的空间数据库引擎,它为Oracle等关系型数据库提供了强大的空间数据管理能力。自ArcSDE 9.2版本起,...
安装过程中,通常需要设置ArcGIS Server和Oracle数据库的连接参数,配置数据库模式,创建必要的系统表和索引,以及设置用户权限。安装完成后,ArcGIS Server可以通过ArcSDE接口直接存取Oracle 11g中的空间数据,提供...
根据提供的标题、描述以及部分文本内容,我们可以总结出与ArcSDE+Oracle配置相关的知识点。 ### 关于ArcSDE+Oracle的配置问题 #### 一、ArcSDE简介 ArcSDE是Esri公司推出的一款空间数据库引擎,主要用于管理地理...
**配置ArcSDE**:安装完成后,还需要进行一些配置工作,如设置连接字符串、初始化数据库表结构等。 4. **测试连接**:通过ESRI的ArcGIS Desktop或其他GIS客户端软件测试与ArcSDE的连接,确保一切正常。 #### 四、...
arcsde10.1 for oracle 11g百度云下载链接,包括ArcSDE_Windows_101.iso,server101.ecp,ArcSDE10.1安装.pdf等等内容
### ArcSDE连接数设置及其性能说明 #### 一、引言 在地理信息系统(GIS)领域中,ArcSDE作为一款重要的空间数据库管理系统,被广泛应用于存储和管理空间数据。随着多用户并发操作的需求日益增加,ArcSDE连接数的...
本文将详细介绍如何在两台不同的机器上安装配置ArcSDE(oracle),确保在远程服务器上成功运行。 ### 步骤一:确保Oracle已安装并运行于远程服务器 首先,必须确保Oracle数据库系统已经安装在远程服务器上,并且...
ArcSDE和Oracle Spatial的定位不同
总结来说,ArcSDE for Oracle(AIX)分布式部署涉及多个步骤,包括安装ArcSDE软件,配置Oracle客户端,手动创建和管理数据库对象,以及调整系统配置文件以确保服务的正确启动和通信。这一过程需要对AIX、Oracle数据库...
这个就不要分啦!希望帮助到需要的人~破解文件也上传了,大家可以在我上传的资源里找到
三、ArcSDE 10.2 与 Oracle 11g r2 的服务连接配置 在配置 ArcSDE 10.2 与 Oracle 11g r2 的服务连接之前,需要按照以下步骤进行配置: 1. 在 C:\Windows\System32\drivers\etc 目 录 下 的service 文件下增加一个...
### 图解Arcmap中数据导入到ArcSDE+Oracle #### 概述 在地理信息系统(GIS)领域,ArcMap是Esri公司开发的一款强大的桌面GIS软件,它为用户提供了全面的地图制作、空间数据分析和地理信息管理功能。而ArcSDE...
在本文中,我们将详细探讨如何在Linux环境下,特别是CentOS系统上安装ArcSDE for Oracle。ArcSDE(Spatial Database Extension)是Esri公司提供的一个中间件,它允许GIS(地理信息系统)应用程序与多种关系数据库...