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)方式使用恢复后的空间数据了。

  • 相关阅读:
    PHP 大小写转换、首字母大写、每个单词首字母大写转换相关函数
    【论文学习4】BiSample: Bidirectional Sampling for Handling Missing Data with Local Differential Privacy
    【论文学习3】Local Differential Privacy for Deep Learning
    【论文学习2】 Differential Privacy Reinforcement Learning
    深度学习中的优化算法
    Spatial crowdsourcing
    “pip install tensorflow ”出现错误
    python或pip'不是内部或外部命令”
    pip install torch出现错误
    打不开gitHub的解决方法
  • 原文地址:https://www.cnblogs.com/3echo/p/638335.html
Copyright © 2011-2022 走看看