收藏 分享(赏)

arcsde中空间数据的备份与恢复.doc

上传人:天天快乐 文档编号:433074 上传时间:2018-04-06 格式:DOC 页数:5 大小:39.50KB
下载 相关 举报
arcsde中空间数据的备份与恢复.doc_第1页
第1页 / 共5页
arcsde中空间数据的备份与恢复.doc_第2页
第2页 / 共5页
arcsde中空间数据的备份与恢复.doc_第3页
第3页 / 共5页
arcsde中空间数据的备份与恢复.doc_第4页
第4页 / 共5页
arcsde中空间数据的备份与恢复.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、ArcSDE 中空间数据的备份与恢复 :随着 GIS 应用系统在复杂性、集成性、并发性等方面的要求不断增加,系统所需的空间数据量在急剧地增长,同时用户对空间数据并发访问的需求也越来越突出。以传统的文件形式存储和表示空间数据的方法显然已经无法满足这些需求。由于 ArcSDE 本身所具有的海量数据存储、多用户并发访问、版本管理、长事务处理等强大优势,在 GIS 应用系统中引入 ArcSDE 作为空间数据存储和管理引擎,变得越来越普遍。ArcSDE 作为空间数据库引擎,在 ArcGIS 8.1 系列软件中属于服务器端的产品,在整个产品框架中,处于数据中心的重要地位,它利用 Oracle、DB2 、S

2、QL Server、Informix 等关系型数据库在数据存储、数据完整性等方面的先进技术手段,将海量空间数据(包括矢量数据和栅格数据)有机地组织和管理起来,通过其内部异步缓冲、空间索引等先进的机制,提供对空间数据的多用户高效并发访问。 除了存储空间数据并提供访问,对于空间数据的备份和恢复,是空间数据管理中最重要的工作环节之一,也是保障空间数据安全的重要方式。首先,空间数据本身在应用过程中不断地被更新变动,所以经常会需要备份不同时期,不同的空间数据版本;第二,存储介质的意外损坏会导致严重的空间数据丢失,因此需要定期对空间数据对象的整体进行完全备份;第三,有时出于调整的必要,需要在不同服务器、甚

3、至不同数据库管理系统之间进行空间数据的移植和转换。在采用文件形式空间数据的时代,空间数据的备份仅仅是操作系统中的文件拷贝、备份和归档的过程;而空间数据的恢复也不过是复制、覆盖的操作;在基于 ArcSDE 和关系型数据库的空间数据库时代,空间数据的备份更多的依赖于关系型数据库的备份和恢复技术,当然也不能缺少 ArcSDE 所提供的备份工具。按照备份的方式和对象,ArcSDE 中空间数据的备份和恢复可以分为如下两类:指定空间数据对象的备份恢复,和整体空间数据库的备份恢复。一、 指定空间数据对象的备份和恢复这种方式主要用于备份指定的空间数据对象,比如某个图层和要素类、其中的某些满足特定条件的记录、甚

4、至特定的版本。实现这种备份方式的方法主要是利用 ArcSDE 提供的管理工具: sdeexport 和sdeimport 命令。它们的位置在%ArcSDEHOME%bin中。其中,sdeexport 用于将空间数据从ArcSDE Server 上备份为单独的数据文件,而 sdeimport 用于将经由 sdeexport 备份的数据文件恢复到 ArcSDE Server 中。 这一方式的缺点在于不能一次备份完整的空间数据库。但是也有个明显的优点,在于通过 sdeexport 和sdeimport 工具,可以将空间数据在不同的关系型数据库管理系统(RDBMS )之间进行移植。1 备份全部记录使用

5、 sdeexport 命令的缺省方式即可,比如:(1) 将指定的图层备份到备份文件sdeexport -o create -l dcxq,shape -f d:dcxq.exp -i jerry_oracle -u sde -p sde就是将名为 jerry_oracle 的 sde 服务(ArcSDE for oracle8i)中的指定图层 “dcxq”按缺省方式备份到文件 d:dcxq.exp 中。(2) 利用操作系统命令,拷贝备份文件到目标服务器上(3) 将备份文件恢复至目标 RDBMS 中sdeimport -o create -l newDcxq,shape -f d:dcxq.ex

6、p -i jerry_sqlsvr -u sde -p sde此操作将备份文件恢复到名为 jerry_sqlsvr 的 sde 服务(ArcSDE for SQLServer)中,图层名为:newDcxq。 2 备份部分记录sdeexport 命令中添加-w 参数和一个条件选择表达式即可,比如:(1) 将指定图层中满足条件的记录备份到备份文件sdeexport -o create -l dcxq,shape -f d:dcxq.exp -w xzqy = 徐汇区 -i jerry_oracle -u sde -p sde就是将名为 jerry_oracle 的 sde 服务(ArcSDE fo

7、r oracle8i)内的指定图层 “dcxq”中所有“徐汇区“ 的人口调查小区备份到文件 d:dcxq.exp 中。(2) 利用操作系统命令,拷贝备份文件到目标服务器上(3) 将备份文件恢复至目标 RDBMS 中sdeimport -o create -l XHDcxq,shape -f d:dcxq.exp -i jerry_sqlsvr -u sde -p sde此操作将备份文件恢复到名为 jerry_sqlsvr 的 sde 服务(ArcSDE for SQLServer)中,图层名为:XHDcxq。 3 备份特定数据版本sdeexport 命令中添加-v 参数和一个版本名称即可,比如

8、:(1) 将指定图层的特定版本备份到备份文件sdeexport -o create -l dcxq,shape -f d:dcxq.exp -V verAPR -i jerry_oracle -u sde -p sde此操作将名为 jerry_oracle 的 sde 服务(ArcSDE for oracle8i)内的指定图层“dcxq”的 verAPR 版本备份到文件 d:dcxq.exp 中。(2) 利用操作系统命令,拷贝备份文件到目标服务器上(3) 将备份文件恢复至目标 RDBMS 中sdeimport -o create -l APRdcxq,shape -f d:dcxq.exp -

9、i jerry_sqlsvr -u sde -p sde此操作将备份文件恢复到名为 jerry_sqlsvr 的 sde 服务(ArcSDE for SQLServer)中,图层名为:APRDcxq。 二、 整体空间数据库的备份和恢复ArcSDE 空间数据库的整体备份和恢复,实质上很大程度上是其所在的数据库或者数据库对象的备份和恢复问题。当然完整的 ArcSDE 数据备份应当还包括 dbtune.sde,giomgr.defs,dbinit.sde 和services.sde 等文件。 数据库的备份和恢复有很多种类。在不同的数据库管理系统中,更是千差万别。总体上,大都可以分为静态转储和动态转储

10、两个类型。静态转储是在系统中无事务处理时进行的转储操作,因而这种方式得到的一定是一个数据一致性的副本。静态转储的优点是操作简单,保证数据一致性,但是缺点也很明显,转储操作必须等待用户事务结束才能进行,而新的事务必须等待转储操作结束才能执行,因此会降低数据库的可用性。动态转储是指转储操作与用户事务并发进行,转储期间允许数据库进行存取和修改操作,它不必等待所有运行的事务结束,也不会影响新事务的运行,但是无法保证副本中的数据正确、有效、完整。所以在动态转储期间,往往会建立日志文件。后备文件加上日志文件就可以把数据库恢复到正确的状态。 1 oracle 数据库(1) 两种归档模式(archive mo

11、de)oracle 有两中归档模式: NO ARCHIVELOG 和 ARCHIVELOG。在 NO ARCHIVELOG 模式(该模式为缺省模式)下的数据库操作不归档在线日志重做文件。当存储介质损坏时,NO ARCHIVELOG 模式的数据库只能恢复到上一次的备份点上。ARCHIVELOG 模式的数据库可以通过上一次的备份和归档日志重做文件相结合的方式,恢复到介质损坏之前的点上。以 NO ARCHIVELOG 模式创建的 Oracle 数据库可以切换至 ARCHIVELOG 模式。(2) 多种备份与恢复方式oracle 中的数据备份和恢复方式包括:脱机备份与恢复、逻辑备份与恢复、热备份与恢复

12、。* 脱机备份与恢复:脱机备份是一种静态转储技术,备份在数据库关闭、不工作的状态下进行。脱机备份包括两种实现方式:第一种是使用 Oracle 提供的工具 Backup/Recover;第二种是利用操作系统的复制功能,复制数据文件,即:冷备份。* 逻辑备份与恢复:逻辑备份与恢复是指将数据库、用户和表等对象的内容整个转出到一个二进制文件,然后在需要的时候通过转入恢复到原来的形式。这种方式可以备份整个数据库,指定用户和指定表的内容。* 热备份与恢复:脱机备份和逻辑备份通常是用户不访问数据库时的静态备份操作。这些备份只保证数据备份前的一致性和完整性,不保证备份期间的数据一致性。为了保证数据的即时一致性

13、,在备份数据的同时还需要备份日志文件。数据库运行在 ARCHIVELOG 方式下,同时作数据和日志文件的备份称为热备份。(3) 实现步骤选择使用何种备份方式,由具体的数据备份需求所决定。具体的 Oracle 数据库备份实现步骤需要参考Oracle 相关文档,比如Oracle8 Backup and Recovery Guide 。本实例采用 Oracle 中的逻辑备份,使用了 exp 和 imp 工具,以 sde 用户方式备份和恢复整体空间数据。* 备份数据库:使用 Oracle 中的 exp 命令,以 sde 用户方式备份所有相关数据。* 恢复数据库:使用 Oracle 中的 imp 命令,

14、以 sde 用户方式恢复后备数据文件。* 恢复 ArcSDE 系统文件:如果有必要,在恢复 oracle 数据之后,需要恢复安装 ArcSDE 的程序文件;另外还需要从备份机器上恢复 dbtune,giomgr.defs,dbinit.sde,和 services.sde 文件。 2 SQLServer 数据库(1)备份和恢复方式在 MS SQL Server 中,ArcSDE 利用单独的用户数据库 SDE(缺省名)来管理和组织空间数据。SQLServer 不仅可以在同一台服务器上备份和恢复数据库,还允许通过备份和恢复的方式在不同服务器之间很轻松地移动数据库。MS SQL Server 也允许

15、将一个服务器上的数据库备份恢复到另外一台服务器上。如果要将数据库备份恢复到另外一台服务器上,两台服务器上的 code page 和排序方式必须相同。比如,不能把用二进制排序方式(Binary Sort order,BSO)建立的数据库恢复到一个配置为缺省排序方式(字典顺序,dictionary)的服务器上。当然,可以通过在 master 数据库中运行sp_helpsort存储过程设定服务器的排序方式。数据库的备份操作同时备份了数据库的系统表,包括 sysusers。当在不同的服务器上执行备份和恢复操作时,备份数据库中所包含的用户可能会和新的服务器上 master 数据库中 sysxlogins

16、 表中包含的用户不同。这样的话,就无法登录到恢复后的数据库,知道更正并统一 master 数据库中 sysxlogins 表和恢复数据库中 sysusers 表的登录映射。要使上述两个表同步,需要运行“sp_change_users_login“存储过程。(2)实现步骤* 备份 SDE 数据库到备份文件:既可以使用 T-SQL 中的 BACKUP 语句,也可以使用企业管理器中的备份工具向导来完成 SDE 和其他空间数据库的备份。* 将备份文件复制到目标服务器* 将备份文件恢复到目标服务器:可以使用企业管理器中的恢复还原工具向导来完成 SDE 和其他空间数据库的恢复。* 统一 SDE 用户登录映

17、射A. 两个服务器上都有 SDE 用户,但是两者的 SDE 用户具有不同的标识当恢复 SDE 数据库至新的服务器后,sde 数据库中的 sde 用户的 SID 与 master 数据库中dbo.sysxlogins 表中的 sde 登录名的 SID 不同,比如:Use sdegoSelect SID from sysusers where name = sdeUse mastergoselect SID from sysxlogins where name = sdeSID-0x76695419BFAED41184FD00C04F8D0451(1 row(s) affected)SID-0xE

18、DDFCA8E56B0D411850000C04F8D0451(1 row(s) affected)此时必须统一两个表中 sde 用户的 SID 标识,运行“sp_change_users_login“ 存储过程,示例如下:Use sdegosp_change_users_login update_one,sde,sde运行上述的 SID 查询来验证修改结果:0xEDDFCA8E56B0D411850000C04F8D04510xEDDFCA8E56B0D411850000C04F8D0451可以看出修改后两个表中 sde 用户的 SID 标识完全一致,此时就可以启动 ArcSDE for S

19、QLServer 的服务来使用了。B. 目标服务器上还没有 SDE 用户这种情形是指目标服务器上还没有 sde 登录用户,此时执行上述的 SID 查询,结果如下:Use sdegoSelect SID from sysusers where name = sdeUse mastergoselect SID from sysxlogins where name = sdeSID-0x76695419BFAED41184FD00C04F8D0451(1 row(s) affected)SID-(0 row(s) affected)要矫正这种情况,需要首先到目标服务器中添加 sde 登录用户,但是不

20、要将 sde 数据库的权限授予 sde用户。添加登录用户,使用“sp_addlogin“存储过程和在企业管理器中使用登录管理工具。比如:sp_addlogin sde,go,sde然后需要运行 “sp_change_users_login“ 存储过程来统一 master 内 dbo.sysxlogins 表和恢复后用户数据库内 sysusers 表中的 sde 用户 SID 标识。use sdegosp_change_users_login update_one,sde,sde最后,可以执行 SID 查询来验证 SID 的一致性:Use sdeGoSelect SID from sysusers where name = sdeUse masterGoselect SID from sysxlogins where name = sdeSID-0xF6DFCA8E56B0D411850000C04F8D0451(1 row(s) affected)SID-0xF6DFCA8E56B0D411850000C04F8D0451(1 row(s) affected)经过 SDE 用户的 SID 的统一之后,就可以启动 ArcSDE 服务或者使用直接连接(direct connection)方式使用恢复后的空间数据了。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报