以前博客里面关于ArcSDE for Oracle管理的非常多,这是因为在国内用户中Oracle的数据库至少可以占到70%+,但是SQL Server数据库也是国内的另一大数据库使用对象,但是这块的内容就比较少,下面就简单交流一下ArcSDE for SQL Server管理方面的内容。
不可否认,随着Esri的ArcGIS系列产品的不断升级,或者说ArcSDE产品的的不断演化,ArcSDE软件对不同数据库的区别就越来越少了,除了数据库本身本质的差异意外,在ArcSDE身上已经找不到明显针对不同数据库的区别了,所以说,我们说的管理更多的是针对数据库本身的差异的一些内容,很多东西我会以Oracle做相关对比,这样我们对SQLServer来说的特点就更加的明显。
声明一下:我对SQL server的研究比较少,更多的仅限于ArcSDE for SQL Server方面的知识,如果有内容的偏颇,尽请指正!
系统需求:
每次安装ArcSDE都需要注意系统需求
比如:
ArcSDE版本支持的SQL Server数据库有的需要SQL Server打上相关的SP补丁
怎么查看补丁:http://blog.csdn.net/linghe301/article/details/6712544
系统需求:ArcSDE10.1 http://resources.arcgis.com/en/help/system-requirements/10.1/index.html#/Microsoft_SQL_Server_Database_Requirements/015100000070000000/
Personal ArcSDE
提起SQLServer,不由要说明一下,桌面自带的ArcSDE,那个需要的SQL Server Express版本这个以前也进行了介绍可以参考:
http://blog.csdn.net/linghe301/article/details/6756766
-------------------------------------------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
出处来自:http://blog.csdn.net/linghe301
-------------------------------------------------------------------------------------------------------
ArcSDE安装
关于安装方面,在ArcSDE10.1之后所有数据库基本类似了,但是在以前的版本,不由自主的就会碰到一个界面令用户纠结:
性能或功能方面,两种地理数据库方案类型并没有区别。但两者各有优缺点。请选择最适合于您的系统的用户。
以下是对两种方案类型的比较:
如果在仅支持 Windows身份验证的服务器上运行,那么,创建 dbo 方案地理数据库会大大简化 ArcSDE 的设置和管理,因为将无需专门配置 Windows sde 登录账户。另外,在数据库中映射成 dbo 用户的任何用户都可以执行 ArcSDE 管理任务(如压缩)。
如果您具有限制较为严格的安全模型,则可能需要配置 sde 方案地理数据库。与在服务器范围内通常可以访问到所有数据库的 dbo 用户不同,sde 用户可以被限制为只在特定数据库中具有少量语句权限。
dbo 方案地理数据库只能与单一空间数据库模型一同使用。单一空间数据库模型将所有地理数据库表(系统表和用户表)保存在一个数据库中。SQL Server 中的地理数据库推荐使用此模型。不过,它仍支持多重空间数据库实例。此类型地理数据库需要您使用sde 方案地理数据库。
那么什么是单一空间数据库,什么是多重空间数据库呢?
通过上面的图很容易看到,单一空间数据库,就是用户的数据以及SDE的结构在一个database里面,或者说,当一个新的实例下只有一个数据库(SDE),那么这个SDE数据库里面是SDE的Schema,那么用户的数据导入到sde用户下,也就是就一个用户,一个库。
那么多重空间数据库就是分开来存储了,用户可以将自己的数据放在一个新的数据库中,但是相关的信息会在SDE库里面进行注册。
说说单一空间数据库的优点:
看到这大家应该比较熟悉,尤其是经常搞oracle的朋友会特别容易接受,我就是将自己的数据放在另外一个表空间中。是的,Oracle数据库我们鼓励这样做,但是SQlServer数据库我们建议使用第一种也就是单一空间数据库,因为早在ArcGIS9.3版本,Esri官方已经明确说明,单一数据库的性能要比多重数据库的性能要高。
所以,如果非要说明这两个Schema推荐使用哪个?我的建议是sde Schema,没有理由!
-------------------------------------------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
出处来自:http://blog.csdn.net/linghe301
-------------------------------------------------------------------------------------------------------
现在好了,ArcSDE10.1建库就没有这个纠结的选项了,用户往往默认的使用sde Schema了(默认勾选,如果想使用dbo,钩掉勾选下,输入相关dbo架构的用户即可)
之所以有上面的区别,这个跟SQL Server数据库与Oracle数据库有本质的区别,因为SQL Server数据库(1)是一个实例下可以有多个数据库(2)
特别说明,(1)和(2)都叫数据库,表明的意思不一样,(1)泛指数据库,如Oracle数据库,DB2数据库,(2)指的是下面的一个一个数据库对象
,而Oracle数据库是一个实例,一个库,不过可以有N个表空间,所以在ArcSDE连接的时候,如果选择SQLServer数据库(PostgreSQL、DB2等)都需要填写database内容。
在ArcSDE9.x经常会碰到的一个错误是:Database user name and current user schema do not match
这个可以参考:http://blog.csdn.net/linghe301/article/details/6423755
SQL Server2008之后,在安装过程中最常见的问题就是密码复杂度的问题,密码需要包含:字母开头、数字、大小写等信息
ArcSDE连接
我们有时候连接ArcSDE往往或看到如下对象:
我们可以看到sde102.DBO.pt,这个是database.Schema.Featureclass
那么什么时候会出现DBO,什么时候会出现SDE呢,也就是通过Sde用户连接的就是SDE Schema,通过sa用户或者操作系统验证的用户登录的都是DBO的架构,还是那句话,本身没有什么区别。
-------------------------------------------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
出处来自:http://blog.csdn.net/linghe301
-------------------------------------------------------------------------------------------------------
ArcSDE备份迁移
这里面的方法,我特指的是数据库的方法。
其实关于数据备份恢复容易,迁移比较困难。一般情况下,备份恢复是在同一个环境下,那么迁移是在不同的环境下,不同环境下的对各个方面要求都很高,一点不注意都会有问题,这里我只说明一个小点,就是关于SQLServer数据库一个特点,关于login和user.
我们知道关于SQL Server数据库有一个Login,这个是连接SQL Server实例的名字,还有一个user,这个是连接database的用户,login是认证,user是授权,user必须是login,login不一定是user.
关于SQL Server的备份恢复可以参考:http://blog.csdn.net/linghe301/article/category/773130
SQL Server的实例:
SQLServer分为默认实例和命名实例,在SQL Server安装的界面会有选择
默认实例的名称一般都是:MSSQLSERVER
所以说明这个,大家在直连SQLServer数据库的时候会有需要注意的
ArcSDE10.1之前:
连接对话框实例一项输入:
连接默认实例:sde:sqlserver:<Server Name>
连接命名实例:sde:sqlserver:<Server Name>/<Instance Name>
ArcSDE10.1包含之后
连接对话框实例一项输入:
连接默认实例:<Server Name>
连接命名实例:<Server Name>/<Instance Name>
-------------------------------------------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
出处来自:http://blog.csdn.net/linghe301
-------------------------------------------------------------------------------------------------------
ArcSDE SQL操作:
使用Oracle的用户都知道,可以使用Esri提供的空间操作函数来直接使用SQL语句对存储在Oracle的空间数据津操作,这种方法非常简单易懂,那么对SQL Server用户来说也是可以了,但是至少是SQLServer2008 版本之后,以Geometry和geography进行存储才可以,而且相关提供的操作符是微软提供的,所以相关帮助需要查找MSDN了。
相关参考:http://blog.csdn.net/linghe301/article/details/6315712
ArcSDE性能方面:
Esri提供的关于性能方面的文件可以参考
最大程度缓解 SQL Server 中的磁盘 I/O 争用情况
http://help.arcgis.com/zh-cn/arcgisdesktop/10.0/help/index.html#/na/002q00000021000000/
---------------------------------------------------------------------------------
•打开
AUTO_CREATE_STATISTICS
AUTO_UPDATE_STATISTICS
允许SQL Server自动生成和更新统计信息,提高数据库的性能
AUTOSHRINK
当25%的数据文件包含了没有用的空间时,SQL Server会自动压缩,阻止这种自动操作,在合适的候,手工压缩
AUTOCLOSE
当最后一个用户断开连接的时候,SQL Server会自动关闭数据库。
阻止这种操作。一方面该进程会消耗资源,另一方面当SDE连接频繁连接和断开时,会严重影响性能。
SQL Server 中的内存调整
http://help.arcgis.com/zh-cn/arcgisdesktop/10.0/help/index.html#/na/002q00000022000000/
不过大家也可以参考关于ArcSDE for SQL Server的分区设置:http://blog.csdn.net/linghe301/article/details/8126653
使用SQL Server Profiler监听ArcSDE查询
http://blog.csdn.net/linghe301/article/details/6669138
-------------------------------------------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
出处来自:http://blog.csdn.net/linghe301
-------------------------------------------------------------------------------------------------------