ArcGIS 10.1 for Server 数据注册(下)

数据库注册操作

 

如果ArcGIS Server和Desktop安装在同一台机器上,这估计是很多人的软件环境,如果这样的话可能需要多安装一点软件(32位的数据库客户端和64位的数据库客户端都需要安装),原因是ArcGIS Server是64位的而Desktop是32位的,制作地图文档,我们是在Desktop中完成的,我们发布服务最后的数据都是给Server用的,所以两个客户端都是需要安装的。

安装完成后,在系统环变量里面配置客户端的路径,64位的写在32位的前面:如我的(oracle 数据库)

D:\app\Administrator\product\11.2.0\client64\bin;D:\app\Administrator\product\11.1.0\client32\bin;

客户端安装完成之后,分别配置网络服务名,如下:

 

ArcGIS 10.1 for Server 数据注册(下)_第1张图片

 ArcGIS 10.1 for Server 数据注册(下)_第2张图片

 

 

对于SDE 数据库的注册,一种就是我们上面提到的ArcGIS Server托管方式,这种数据库必须是企业级地理数据库,并且一个Server只能注册一个,另外一种可以注册数据库或者企业级地理数据库,在ArcGIS for Desktop中,使用管理员方式连接到ArcGIS Server,右键服务器属性,找到数据存储选项卡,如下图:

 ArcGIS 10.1 for Server 数据注册(下)_第3张图片

 

1.1.1 注册ArcGIS Server托管的地理数据库

注册托管数据库的步骤很容易,我们只需要选择注册托管数据库的这个命令怎出现如下对话框:

 ArcGIS 10.1 for Server 数据注册(下)_第4张图片

输入一个唯一的名称,然后添加数据库连接,如果已经有了.sde文件,只需要import即可,下面是我注册的一个sql server的地理库

 ArcGIS 10.1 for Server 数据注册(下)_第5张图片

 

若果想注册第二个托管数据库,则会有下面的错误(因为托管的数据库只能注册一个):

ArcGIS 10.1 for Server 数据注册(下)_第6张图片

1.1.1.1     使用

如果有了托管数据库,我们可以将shapefile,文件数据库等数据都可以发布为要素服务,下图是我发布一个来自文件数据库的数据,在发布的时候选择要素访问功能,如下图:

 

ArcGIS 10.1 for Server 数据注册(下)_第7张图片

发布成功后,在托管数据库中可以看到发布后的数据,如下图:

在服务目录中也可以看到要素服务,我们可以进行增删改操作,注意当我们删除了要素服务中的数据之后,地图服务中的数据是没有变化的,变化的仅仅是托管数据库里面的数据,而地图文档的数据则原封不动。

如果删除这个服务,会出现下面的警告:

ArcGIS 10.1 for Server 数据注册(下)_第8张图片

点确定之后,服务被删除,并且托管的数据库中和这个服务相关的数据也被删掉了。

1.1.2 另外一种注册方式

这种方式当我们使用不同的用户(数据库用户)发布数据的时候,同一个库的数据可以多次注册。

同时这种情况又可以分为发布者和Server是否使用同一个数据库,如果是同一个数据库见1.2.1,不同的见1.2.2(这个见ArcGIS 10.1 for Server 数据注册(上)http://blog.csdn.net/arcgisserver_book/article/details/7940359
的内容)

如果使用同一个数据库,并且32的客户端和64的客户端配置了相同的网络服务名,则如下:

ArcGIS 10.1 for Server 数据注册(下)_第9张图片

 

对于这种方式,正如我刚才说的一样制作地图需要一个连接也就是发布数据的连接,数据最后是要到Server中的,Server也是要连接数据库的,如果我们在32位的客户端和64位客户端配置的网络服务名相通,那么我们将Same as publisher database connection这个选项选上,如果在32的客户端配置了一个网络服务命名而64的客户端没有,就会出错,下面的test是在32位客户端配置,64的客户端上没这个网络服务名。

 ArcGIS 10.1 for Server 数据注册(下)_第10张图片

 

ArcGIS 10.1 for Server 数据注册(下)_第11张图片

错误如下所示:

 

 ArcGIS 10.1 for Server 数据注册(下)_第12张图片

如果32的客户端和64的客户端对同一个数据库的网络服务名不相同,该则么办?

数据库只有一个,我们可以按照下面的去做,不要勾选Create geodata service,因为我们不需要数据库同步操作。

 ArcGIS 10.1 for Server 数据注册(下)_第13张图片

 

而且服务也发布成功了,在发布之后的msd文档中,我们看到所使用的连接地址如下:

对于1.2.2的这种情况,也就是 Server使用的数据库和发布者使用的数据库不同的话,这要有一个前提就是服务器的数据库里面必须有发布者数据库的一个副本,比如发布者采用sql server数据库,服务器采用一个oracle数据库,我们按照下面的配置:

ArcGIS 10.1 for Server 数据注册(下)_第14张图片

如果选择了Create geodata service的话,那么还会出现创建geodata service的进度条,如下:

 ArcGIS 10.1 for Server 数据注册(下)_第15张图片

在manager页面中也可以看到geodata service 服务,如下图:

ArcGIS 10.1 for Server 数据注册(下)_第16张图片

我们知道geodata service 是用来数据同步的,也就是说数据库中要有数据的的一个replica才可以同步数据,当然数据同步的时候有one-way,two-way,如果在oracle数据库中不存在数据的一个replica,我们在尝试使用geodata service的同步变化的的时候,会看到下面的提示。

 ArcGIS 10.1 for Server 数据注册(下)_第17张图片

说道这里我们可能想到这种方式的同步其实就是分布式数据库的那种机制。

在这里我向另一个orcal数据库采用two-way 方式采用,数据如下:

 ArcGIS 10.1 for Server 数据注册(下)_第18张图片

 

 

 

 

 

发布服务的时候选择了要素访问功能,然后添加了一个要素,结果如下:

ArcGIS 10.1 for Server 数据注册(下)_第19张图片

然后在geodata service 服务上右键-分布式数据库,同步变化,如下图:

ArcGIS 10.1 for Server 数据注册(下)_第20张图片

ArcGIS 10.1 for Server 数据注册(下)_第21张图片

同步之后我们就可以看到地图服务的数据已经发生了变化。

 

 

1.1.3 对于数据库和Server都安装在Linux上的情况

在上面个我们已经说得很清楚了,安装Server的机器上一定要有64位的Oracle客户端,现在以我的机器说明。

我的Oracle是用oracle用户安装的,Server是用arcgis用户安装的,如果没有在arcgis的用户配置文件中没有配置Oracle的一些环境变量,arcgis这个用户是不能访问Oracle的,所以我在arcgis的.bash_profile文件中添加了Oracle的配置信息,并且更改了Oracle安装目录的权限,并配置一下网络服务名,然后用ArcMap连接,并注册,相关步骤如下图。

l  添加配置信息:

ArcGIS 10.1 for Server 数据注册(下)_第22张图片

l  更改权限:

 

l  在arcgis 用户下配置网络服务名:

ArcGIS 10.1 for Server 数据注册(下)_第23张图片

l  在ArcMap中注册:

ArcGIS 10.1 for Server 数据注册(下)_第24张图片

注册成功,发布服务测试,OK!

 

 

 

你可能感兴趣的:(oracle,sql,数据库,server,server,网络,service)