SDE Schema和User Schema的介绍


      在ArcSDE的相关帮助上经常会看到关于SDE Schema和User Schema的描述,一开始不是很理解是什么意思,而且在学习ArcSDE的时候也经常会把User Schema的意思理解错,这里就不再说明错误的意思了,下面就给大家介绍一下SdeSchema和User Schema是一个什么东东。

具体步骤

       我们有一个Oracle11G的实例名称为orcl,然后我们进行正常的ArcSDE安装,Post Installation操作,那么数据库里面有一个sde用户和sde用户对应的数据库SDE,那么我们都知道SDE库里面存储着关于ArcSDE和Geodatabase的相关表。然后我们再通过数据库的方法创建一个aaa用户,该用户我们只需拥有connect和resource的角色,然后我们就可以使用aaa用户进行连接,那么我们在aaa用户下创建的ArcGIS对象(要素类等)就会在SDE库里面进行相关的注册。

SDE Schema和User Schema的介绍_第1张图片

       截止到上面所说的相关信息我们统称为SDE Schema,也就是说我们用户的相关信息在SDE用户下进行注册。下面我们看看怎么创建User Schema,那么我们再创建一个用户bbb,我们需要给bbb赋予关于sde用户的相关权限。创建userschema我们可以使用ArcSDE命令来创建:

sdesetup –o install –d oracle11g –i5151:bbb –u bbb –p bbb

我们可以使用PL/SQL进入bbb用户查看,发现已经把相关的ArcSDE和Geodatabase的相关表也创建到bbb用户下,那么我们在该用户下创建一个要素类:

服务连接Service:     5151:bbb
直连连接Service:     sde:oracle11g:orcl:bbb(ArcGIS10)

我们可以看到在bbb用户下创建的要素类信息只注册到bbb的相关表里面,并没有注册到sde用户下。这就是User Schema。

总结

       我们结合上面的图可以看出,使用SDE Schema统一由Sde用户进行管理,其他用户创建的对象都会在SDE用户下进行注册统一管理,那么使用User Schema就是有相关的user 用户进行管理,其实这个user的权限就是sde用户的权限。

好处

之所以使用user schema,有什么优势呢,我个人总结了几条,但是只是个人意见

1:使用User  Schema来存储在备份、恢复方面特别是使用数据库逻辑备份(IMP)比较方便。

这句话可能还是有所误解,因为没有进行测试,有用户反映是不是可以直接备份user Schema的数据,而不用备份sde schema的数据,这个是错误的。因为虽然user schema里面包含了gdb和sde的相关表,但是user schema的相关信息还是在sde 库里面有注册的,比如sde_instance,st_geometry_index等,所以说在备份方面还是需要备份这两个schema的(sde ,user)

sde 方案中的地理数据库始终是主地理数据库,并包含可在 Oracle 数据库中跟踪所有其他地理数据库的表 (SDE.INSTANCES)。sde 方案也包含 ST_Geometry 类型、其子类型和功能以及使用的系统表,如 ST_SPATIAL_REFERENCES。

2:使用User Schema来存储可以分门别类的将用户不同类别的数据库分开管理,比如针对于一个综合部门,他可以管线一个库,土地一个库等。这样我们就可以使用一个ArcSDE服务来连接不同的库。其实好多用户也会这样来做就是建立不同的数据库实例,一个数据库实例对应一个SDE Schema然后建立相应的ArcSDE服务,那么多个数据库实例就是多个ArcSDE服务,但是使用User Schema就可以使用一个ArcSDE服务管理多个User Schema库,效果是一样的。


反正既然ArcGIS提供了User Schema肯定有它的用途。

以下包括想要在同一 Oracle 数据库中拥有多个地理数据库的情况:

如果组织中较小的组,如部门或项目组,可以彼此相互独立工作,则这些小组可能想要自己的数据。可以为每个组创建一个地理数据库。
将开发环境从产品环境中分离 
为地理数据库服务的特定应用程序单独调整每个地理数据库 
保护敏感信息
例如,您可能想要一个保护在其自己的地理数据库中的敏感军事数据库,以使其他实例的所有者不能够看见该数据。

以下是在一个 Oracle 数据库中使用多个地理数据库时的规则:

一个用户只能拥有一个地理数据库。 
只有一个地理数据库可以参考已注册到 ArcSDE 的数据集。 
地理数据库归创建它的用户所有。对于这一地理数据库,该用户即为 ArcSDE 管理员用户。

提问

       既然上述说明了一个ArcSDE服务管理多个User Schema,那么这个连接数是针对某一个Schema的数据连接还是累计不同Schema的连接呢,我们做了一个实验就是连接不同的库,查询相关的连接信息

C:\Users\gis>sdemon -o info -I users
 
ArcSDE Instance esri_sdeora Registered Server Tasks on lish at Tue Aug 3015:57:27 2011
------------------------------------------------------------------------------
S-ID  S-PID  User   Conn  Client Machine:OS                Started
----- ----- -------- ---- ---------------------------------------------------
332   6928  SDE      AS  Lish-PC:Win32:XDR                Tue Aug 30 15:56:47
 
C:\Users\gis>sdemon -o info -I users -i 5151:nis
 
ArcSDE Instance 5151:nis Registered Server Tasks on lish at Tue Aug 3015:57:38 2011
------------------------------------------------------------------------------
S-ID  S-PID  User   Conn  Client Machine:OS                Started
----- ----- -------- ---- ---------------------------------------------------
333   6684  NIS      AS  Lish-PC:Win32:XDR                Tue Aug 30 15:56:50

       可以ArcSDE服务的连接数是针对不同的Schema的,这个大家可以放心的使用。那么在我们使用一些关于针对User Schema的使用方面我们需要指明相关的Service信息。

sdetable –o register –t mytable –i 2299:schemaname –u user –p passwd 
sdelayer –o create –l mylayer,shape –i port:schemaname –u user -p passwd
sdesetup -o delete -d ORACLE11G -u theschemaowner  -p nomira -i 5151:theschemaowner


文档下载地址:http://wenku.baidu.com/view/33c4b63b376baf1ffc4fad09.html

 

你可能感兴趣的:(oracle,数据库,schema,user,service,oracle11g)