zoukankan      html  css  js  c++  java
  • ArcSDE空间数据库恢复简要说明

     

    ArcSDE空间数据库恢复简要说明

    注:此简要说明仅适合于ArcSDE同版本之间的数据库恢复;

    先决条件:已备份了原有SDE空间数据库。如备份Sql Server2000ArcSDE9.1版本的SDE数据库文件(sdedata.mdfsdelog.ldf)。

    重装ArcSDE for SQLServer后,需将它恢复过来。操作步骤如下:

    1、分离SDE数据库:

    2、附加SDE数据库:

    选择备份的数据文件,如先前备份的sdedata.mdfsdelog.ldf,指定数据库所有者为sa

    3、统一SDE用户登录映射

    A. 两个服务器上都有SDE用户,但是两者的SDE用户具有不同的标识

    当恢复SDE数据库至新的服务器后,sde数据库中的sde用户的SIDmaster数据库中dbo.sysxlogins表中的sde登录名的SID不同,比如:

    Use sde

    go

    Select SID from sysusers where name = 'sde'

    Use master

    go

    select SID from sysxlogins where name = 'sde'

    SID

    -----------------------------------------------------------

    0x76695419BFAED41184FD00C04F8D0451

    1 rows affected

    SID

    -----------------------------------------------------------

    0xEDDFCA8E56B0D411850000C04F8D0451

    1 rows affected

    此时必须统一两个表中sde用户的SID标识,运行"sp_change_users_login" 存储过程,示例如下:

    Use sde

    go

    sp_change_users_login 'update_one','sde','sde'

    运行上述的SID查询来验证修改结果:

    0xEDDFCA8E56B0D411850000C04F8D0451

    0xEDDFCA8E56B0D411850000C04F8D0451

    可以看出修改后两个表中sde用户的SID标识完全一致,此时就可以启动ArcSDE for SQLServer的服务来使用了。

    B. 目标服务器上还没有SDE用户

    这种情形是指目标服务器上还没有sde登录用户,此时执行上述的SID查询,结果如下:

    Use sde

    go

    Select SID from sysusers where name = 'sde'

    Use master

    go

    select SID from sysxlogins where name = 'sde'

     

    SID

    -----------------------------------------------------------

    0x76695419BFAED41184FD00C04F8D0451

    1 rows affected

    SID

    -----------------------------------------------------------

    0 rows affected

    要矫正这种情况,需要首先到目标服务器中添加sde登录用户,但是不要将sde数据库的权限授予sde用户。添加登录用户,使用"sp_addlogin"存储过程和在企业管理器中使用登录管理工具。比如:

    sp_addlogin 'sde','go','sde'

    然后需要运行 "sp_change_users_login" 存储过程来统一masterdbo.sysxlogins表和恢复后用户数据库内sysusers表中的sde用户SID标识。

    use sde

    go

    sp_change_users_login 'update_one','sde','sde'

    最后,可以执行SID查询来验证SID的一致性:

    Use sde

    Go

    Select SID from sysusers where name = 'sde'

    Use master

    Go

    select SID from sysxlogins where name = 'sde'

     

    SID

    -----------------------------------------------------------

    0xF6DFCA8E56B0D411850000C04F8D0451

    1 rows affected

    SID

    -----------------------------------------------------------

    0xF6DFCA8E56B0D411850000C04F8D0451

    1 rows affected

    经过SDE用户的SID的统一之后,就可以启动ArcSDE服务或者使用直接连接(direct connection)方式使用恢复后的空间数据了。

  • 相关阅读:
    [ Pytorch ] torch.squeeze() 和torch.unsqueeze()的用法
    莫烦
    毕业设计 Makefile 编写
    Manjaro搭建无密访问samba服务器
    GEC6818交叉开发环境搭建拟稿
    彻底删除windows残留启动引导
    Cmd Markdown 编辑阅读器
    Hi3519v101 SDK安装及升级
    Linux 修改SWAP分区后导致开机问题
    Linux 安装搭建 tftpd 服务器
  • 原文地址:https://www.cnblogs.com/3echo/p/638335.html
Copyright © 2011-2022 走看看