0. 需要准备的软件
(1)Oracle主体程序
(2)Oracle客户端(32位+64位)
(3)arcgis Desktop
(4)arcgis server
(5)arcSDE
1. 全过程概要
(1)Oracle数据库安装(服务端与客户端安装在一台电脑上)
(2)Oracle数据库配置与测试
(3)arcgis server安装与配置
(4)arcgis连接Oracle数据库
(5)arcgis server 服务器注册Oracle数据库
(6)arcgis server发布要素类服务
(7)客户端与浏览器使用要素服务
2. Oracle 数据库安装
参考博文:
https://blog.csdn.net/pancheng1984/article/details/79823467
https://blog.csdn.net/u012359618/article/details/53320447
(1)安装包准备:oracle11g, oracle11g 32位客户端,oracle11g 64位客户端。
(2)安装Oracle11g数据库服务端,期间最好不要有任何错误,否则会影响使用。尤其是卸载后重新安装,卸载一定要完全,卸载的步骤大概为:命令窗口卸载、注册表Oracle相关卸载、安装目录删除。
卸载参考博文:
https://blog.csdn.net/ninewind/article/details/89520400
(3)客户端安装同上,不要有错误,安装选项网上有些说必须选择instant类型,但管理员类型安装也可以。之所以安装32位客户端,是因为arcgis desktop为32位,需要32位客户端才能连接Oracle。
3. Oracle数据库测试与配置
注意:配置与测试期间可能会出现很多错误,一旦发现试遍网上的大部分方法都无法解决,那就需要卸载重装。要时刻记重新启动Oracle数据库监听服务和Oracle数据库实例服务。
错误排查参考博文:
https://blog.csdn.net/sword_anyone/article/details/90613996
(1)新增系统环境变量
(2)排序系统环境变量
(3)新建监听服务
按照提示做,没什么难度。
(4)配置网络服务
主机名可以是计算机名,也可以是“localhost”,也可以是局域网ip地址。当发现1521端口号被占用时,可以停掉监听服务再试。配置完,一定要测试,一定要测试成功,而很多错误都是体现在测试失败上。
(5)修改监听文件
网络服务测试前要修改监听文件,添加一段代码,然后重启监听服务,再测试。添加的代码段如下:
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME =E:\app\Nick\product\11.2.0\dbhome_1)
(SID_NAME = ORCL)
)
相应位置需要改成自己的Oracle数据实例和Oracle安装主目录。
(6) 测试网络服务
切记,一定要测试成功,最麻烦、最困难、最恶心的就在这一步。善用网络,搜索错误标志,解决错误问题。
测试时记得更改登陆密码,即安装时设置的管理员密码。
(7)有时候在创建数据库时,会报出保护EM失败、无法启动dbcontrol服务等提示,这种情况会导致无法打开oracle管理页面。需要打开命令行,进行如下设置:
①emca -deconfig dbcontrol db 用于删除dbcontrol
②emca -repos drop 用于删除EM
③emca -repos create 用于创建新的EM
④emca -config dbcontrol db 用于重新配置dbcontrol
(8)有时服务器重启后,监听服务和数据库实例正常运行,但是数据库无法连接,显示错误“ORA-01034 - Oracle not available”或者“ORA-27101 - shared memory realm does not exist”。
到ORACLE_BASE\ORACLE_HOME\NETWORK\ADMIN下面找sqlnet.ora文件
把sqlnet.authentication_services=(NTS) 改成 sqlnet.authentication_services=(NONE),然后手动重起一下数据库实例服务。
(9)设置SDE表空间自动增长
当导入大量空间数据时,SDE表空间会因为空间不足,导致写入数据失败,提示错误 “000210: 无法创建输出” 或 “ORA-01658无法为表空间中的段创建INITIAL区”,此时需要设置sde表空间自动扩张。
首先用PLSQL工具连接数据库,参见 https://jingyan.baidu.com/article/6181c3e0c756ba152ef1532a.html 和 https://www.cnblogs.com/mingforyou/p/7110459.html
其次查看sde表空间属性
SELECT file_id, file_name, tablespace_name, autoextensible, increment_by
FROM dba_data_files
WHERE tablespace_name = 'SDE'
ORDER BY file_id desc;
修改表空间属性自动扩展,空间数据可以扩展的大一点,每次100M。代码中的路径可由上述语句结果中复制出来。然后重启服务器。
ALTER DATABASE DATAFILE 'D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\SDE' AUTOEXTEND ON NEXT 10M
4. arcgis server安装与配置
参考博文:
(1)安装
按照步骤,安装时即创建站点。无坑。
(2)破解
有破解秘钥,有些破解需要改系统时间。否则无法创建站点。
arcgis server 10.4 安装后,会出现创建站点没有权限的情况,这种一般是授权文件的问题,可以先去安装目录下\ESRI\License10.4\sysgen,把keycodes这个文件删了,重新用你好的授权文件授权。如果还不行,那就是你本来的授权文件有问题。
arcgis server 10.2 官方不兼容windows server 2012,能安装,但打不开manager页面。要么换成windows server 2008的服务器系统,要么,解决不兼容的问题:
① 先去下载1.6.2版本的dojo,访问dojo下载地址: http://downloads.dojotoolkit.org/release-1.6.2/ ,解压后替换 ArcGIS\Server\framework\runtime\tomcat\webapps\arcgis#manager\js\dojo 下全部文件;
② 浏览器输入 http://localhost:6080/arcgis/admin/ ,通过createnewsite的接口方法创建站点,然后管页面可以正常使用。
(3)修改权限
arcgis server安装完,会生成一个用户,需要把这个用户添加到Administrator组里,否则在arcgis server注册Oracle数据库时会出现权限不够的问题。
(4)创建站点管理员
浏览器打开 localhost:6443/arcgis/manager,按照步骤做,无坑,可能出现问题是密钥的时效性问题。
arcgis server 10.2 端口号为6080,且为http协议。
(5)arcgis中创建GIS服务器
这里有个坑,服务器url要改成“https://”开头,另外要想别的电脑访问你的服务器,这里需要写服务器ip地址,不能写“localhost”。
除非,arcgis server 10.2 端口号为6080,且为http协议。
5. arcgis连接Oracle数据库
首先需要安装arcSDE,无坑,也不需要进SDE软件界面使用,因为现在都是隐式地调用。
(1)直连方式(不适用arcgis server于注册Oracle数据库)
直连方式不需要在Oracle数据库实例中创建SDE空间表,用户名可以用创建Oreacle数据库时指定的用户,而不需要用“sde”当用户名
。这种方式可以供arcmap正常存存储和读取数据。
(2)创建SDE空间表
“Tablespace Name”一栏必须要填,否则不会创建SDE空间表,从而导致arcgis server 注册服务器时出错。
注册完后,再执行(1)中直连的步骤,注意这里用户名必须填“sde”。
注意,Oracle数据库的文件夹最好给予arcgis server账户“完全控制权限”,有必要时,还需要将该文件夹设置为共享文件。
arcgis desktop 10.2 的环境下有一个特殊的问题,同一个arccatalog中多次使用建立企业级数据库的工具,将会导致操作失败,只能关掉当前的desktop软件重开,再创建企业级数据库。
6. arcgis服务器注册数据库
可以手动添加,也可以导入之前添加的数据库服务器。
这一步很容易出错,大部分是权限错误。比如下面的错误:
针对这个错误,检查环境变量,检查arcgis server 账户权限,检查SDE空间表的创建,检查arcgis连接的数据库的用户名和密码。
7. arcgis server发布要素服务
参考博文:
https://www.cnblogs.com/sguozeng/articles/6423260.html
https://blog.csdn.net/accpse/article/details/77045349
(1)将要素导入连接的Oracle数据库
导入要发布的要素数据,无坑。
(2)改变数据库中要素属性
一定要选择“注册为版本”,其他两个选项似乎不是必须的(待验证)。
(3)将数据库中数据拖到图层界面,“文件”,“share as”,“service”。
(4)发布要素类服务
勾选“feature access”选项
勾选“Sync”同步更新数据库功能
点击“Analyze”功能,根据报错信息,解决错误,可无视警告。
点击“publish”发布服务
发布服务,这里可能会出现“error 001487”。参考如下博文:
http://blog.sina.com.cn/s/blog_93c4869e0102ymhf.html
http://zhihu.geoscene.cn/question/12389?sort_key=add_time
注意,必须要本地创建ArcMap工程才能发布,从其他电脑上拷过来的工程文件即使更新了数据源,也无法发布,提示 “00032 Standalone table's data source is inaccessible” 错误。
8. 客户端/浏览器使用GIS要素服务
(1)客户端使用要素服务
连接GIS服务器
导出服务器数据(注意是要素服务文件),并创建本地副本。
启动编辑,编辑完成后停止编辑,在相同菜单栏中选择“将本地编辑器内容同步到服务器”,需要等待几秒确认同步结果。
(2)浏览器使用要素服务
打开浏览器中服务器管理页面
点击上图中“REST URL”,后退至“service”页面,点击“FeatureServer”
选择“view in : ArcGIS Online map viewer”
进入浏览器在线查询和编辑页面,也可以直接把这个页面地址发给同一个局域网的电脑。比如
(注意上述链接中的IP地址要替换为自己的服务器IP地址)