加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

ArcSDE for SQLServer完全备份恢复

发布时间:2020-12-12 14:16:16 所属栏目:MsSql教程 来源:网络整理
导读:以前的备份恢复都是以Oracle数据库为主,这次试试SQLServer的,因为对SQL Server研究不深,而且我们GIS其实不是那种纯数据库的备份恢复,对7×24小时估计够呛了,我们只是给予我们一定时间,这段时间没有用户操作,专门管理员来进行数据库的备份恢复即可。

以前的备份恢复都是以Oracle数据库为主,这次试试SQLServer的,因为对SQL Server研究不深,而且我们GIS其实不是那种纯数据库的备份恢复,对7×24小时估计够呛了,我们只是给予我们一定时间,这段时间没有用户操作,专门管理员来进行数据库的备份恢复即可。

说是ArcSDE,其实和其他数据库备份恢复都是差不多的

环境:SQLServer2008

在做之前,是由一个前提,大家一定要弄清楚数据库到底是备份恢复还是备份迁移恢复,因为备份恢复环境是一样的,问题都不会太多,但是备份迁移恢复环境往往不完全一样,这样恢复起来或者备份的信息就非常多了,我们这次只讨论同一个环境下的备份恢复。

1:断开其他用户连接

2:备份指定数据库(以SDE数据库为例)

use sde
go
backup database sde to disk='c:1.bak'
go
backup log sde to disk ='c:log.bak'
go
执行完毕后查看运行情况
已为数据库 'sde',文件 'sde_dat' (位于文件 1 上)处理了 19584 页。
已为数据库 'sde',文件 'sde_log' (位于文件 1 上)处理了 2 页。
BACKUP DATABASE 成功处理了 19586 页,花费 3.648 秒(41.943 MB/秒)。
已为数据库 'sde',文件 'sde_log' (位于文件 1 上)处理了 2 页。
BACKUP LOG 成功处理了 2 页,花费 0.090 秒(0.141 MB/秒)。

3:我就是用ArcCatalog对该库进行操作(删除几个要素类、添加几个要素类等)

4:恢复指定数据库

restore database sde from disk='c:1.bak' 
go
查看运行结果出现如下错误
消息 3159,级别 16,状态 1,第 2 行
尚未备份数据库 "sde" 的日志尾部。如果该日志包含您不希望丢失的工作,请使用 BACKUP LOG WITH NORECOVERY 备份该日志。请使用 RESTORE 语句的 WITH REPLACE 或 WITH STOPAT 子句来只覆盖该日志的内容。
消息 3013,级别 16,状态 1,第 2 行
RESTORE DATABASE 正在异常终止。
5:查询SDE数据库-属性-选项-恢复模式:完整

我可以不对日志进行完全还原,只对原来的数据文件进行恢复也是可以的,这就是我前面说的,对日志要求不高

restore database sde from disk='c:1.bak' with replace
go
我们在查看相关运行情况
已为数据库 'sde',文件 'sde_dat' (位于文件 1 上)处理了 19584 页。
已为数据库 'sde',文件 'sde_log' (位于文件 1 上)处理了 2 页。
RESTORE DATABASE 成功处理了 19586 页,花费 5.727 秒(26.717 MB/秒)。
6:使用ArcCatalog查看删除的要素类等回复了原来的样子,可以在ArcMap进行操作。


另外,对SQLServer数据库来说,每个数据库都有三种模式可以选择

  • 简单 不用备份的事务日志,即可还原,用于小型数据库和不经常更改的数据库
  • 完整 所有事务都被记录到日志中,保留所有日志,直到事务日志备份,用于生产数据库
  • 大容量日志 完整恢复模式的补充,将大容量日志操作写入日志
那么同样,我们可以将SDE库修改为简单模式,然后使用如下语句恢复即可
restore database sde from disk='c:1.bak' 
go


-------------------------------------以下方式请谨慎使用---------------------------------- 查看SQL Server的相关介绍,我们也可以使用创建脚本的方法


生成脚本是一个向导式的步骤包括:
  • 选择数据库
  • 选择脚本选项
  • 选择对象类型
  • 选择架构
  • 选择存储过程
  • 选择表
  • 选择用户定义函数
  • 选择用户
注意的选择脚本选项,建议都修改为TRUE


最后会保存成一个.sql文件。
然后将相关库进行删除,在查询界面执行生成的sql文件里面的语句,执行一段时间,我们可能会在输出信息产生如下结果
(1 行受影响)
........
(1 行受影响)

(1 行受影响)

(1 行受影响)
消息 4998,级别 16,状态 1,第 1 行
未对表 'SDE_geometry_columns' 启用更改跟踪。

(1 行受影响)

(1 行受影响)

(1 行受影响)
消息 4998,级别 16,状态 1,第 1 行
未对表 'SDE_xml_columns' 启用更改跟踪。
消息 4998,级别 16,状态 1,第 1 行
未对表 'SDE_xml_index_tags' 启用更改跟踪。
警告! 最大键长度为 900 个字节。索引 'xml_indextags_ix1' 的最大长度为 2048 个字节。对于某些大值组合,插入/更新操作将失败。
消息 4998,级别 16,状态 1,第 1 行
未对表 'SDE_states' 启用更改跟踪。

(1 行受影响)
消息 4998,级别 16,状态 1,第 1 行
未对表 'SDE_layer_stats' 启用更改跟踪。
消息 4998,级别 16,状态 1,第 1 行
未对表 'SDE_mvtables_modified' 启用更改跟踪。
都是一些相关的警告信息,经过测试,是可以使用的。 关于未对表启用更改跟踪的请参考: http://technet.microsoft.com/zh-cn/library/bb964713
注意:该方法不适合做迁移,适合同环境下的备份。(不过备份首选第一个备份方式) 如果做迁移,请参考: http://www.voidcn.com/article/p-crfnfscx-eq.html -------------------------------------------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
------------------------------------------------------------------------------------------------------

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读