• ArcGIs创建企业级数据库


    本文主要描述ArcGIs创建企业级数据库。

    目标:创建企业级地理数据库,使用ArcMap通过SDE引擎 与Oracle交互数据,创建完成后将本地的mdb数据库中数据迁移到Oracle的地理数据库当中。

    一,安装Oracle客户端

    因为ArcMap也是通过Oracle客户端来连接Oracle的,所以我们要先安装Oracle客户端。

    需要注意的是,安装后的oracle程序文件根目录是没有network文件夹的,需要手动建立。

    然后在network下建立admin文件夹。

    然后创建tnsnames.ora。

    然后编辑tnsnames.ora,把我们要可以连接的Oracle数据都写在里面。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    ORCL@11 =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.11)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = orcl)
        )
      )
       
    ORACLR_CONNECTION_DATA =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
        )
        (CONNECT_DATA =
          (SID = CLRExtProc)
          (PRESENTATION = RO)
        )
      )
    ORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.7.81)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl)
        )
      )
    ORCL@192.168.1.111 =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.111)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl)
        )
    )

    安装完Oracle客户端后可以安装一个PLSQL来测试安装的Oracle客户端是否正常运行。

    二,创建企业级地理数据库

    1,测试连接

    首先打开ArcMap测试本机与Oracle是否可以正常连接,如下图,在右侧找到数据库连接,然后点击添加数据库连接。

    选择Oracle数据,输入实例名和数据库用户的账户密码。

    实例名是我们编辑tnsnames.ora时,等号前的名称,如下图:

    2,创建企业级地理数据库

    因为企业级数据库是创建在Oracle实例上的,而不是创建在表空间上的,即一旦企业级地理数据库创建成功,数据库内所有表空间都可以存储空间数据,所以一个数据库只能创建一个企业级数据库,简单来说就是把某个Oracle数据库设置成企业级数据库。

    下面我们点击ArcToolBox—数据库管理工具—创建企业级数据库。

    然后输入数据库实例,数据库管理员密码(sys默认密码是sys),然后创建一个地理数据库管理员(即数据库用户),然后设置用户的表空间,然后选择安装Desktop时使用的许可文件。

    创建时会弹出提示框显示创建进度(数据库管理员和表空间不为sde的情况下,创建会提示失败)。

    创建成功后提示框信息如下:

    查看企业级数据库

    创建完成后,我们添加数据库连接查看,会出现一个.sde后缀的数据库,然后点击,会发现可以看到数据库全部的表。

    这是由于在创建SDE用户时赋予了SELECT ANY TABLE权限,因此可以访问其他用户的表,这对于数据管理来说是不安全的,而且也增加了寻找要素表的难度。

    为了安全,我们删除用户权限。

    打开PLSQL,随便一个用户登录后,输入查询。

    1
    select privilege from dba_sys_privs where grantee='SDE'

    如下图:

    删除SELECT ANY TABLE权限

    1
    revoke SELECT ANY TABLE from SDE

    再去连接空间库后会发现其他用户的表不见了。

    然后我们再找到数据库连接,然后右键,会发现新建下面多了一个要素类和要素数据集,这代表我们可以直接在数据库中创建空间数据了。

    三,删除企业级用户

    删除企业级用户执行如下代码:

    1
    2
    drop  user  SDE  cascade
    DROP  TABLESPACE SDE INCLUDING CONTENTS  CASCADE  CONSTRAINTS;

    window用户,物理删除sde文件夹

    1
    D:\app\Administrator\product\11.2.0\dbhome_1\database\sde

    Linux用户执行命令删除

    1
    2
    # cd/u01/app/oracle/product/11.2.0/dbhome_1/dbs/
    # rm -rf sde

    如果用户处于连接状态,可以先查询当前连接,如下。

    1
    select username,sid,serial# from v$session

    如下结果:

    usernamesidserial#
    NETBNEW 513 22974
    NETBNEW 514 18183
    NETBNEW 531 9

    然后执行下面代码,删除当前用户连接。

    1
    alter system kill session '531,9'

    三,转移空间数据

    首先在右侧文件夹连接中,连接一个文件夹,然后把地图的mdb放进去,然后选择一个图层右键导出,选择转出至地理数据库(单个),如下图:

    在[要素类至要素类]页面的输出位置中选择刚刚我们创建的数据库连接,然后在输出要素类中输入导入至Oracle后的要素类名称。

    点击确定后,需多等待一会,数据导入成功后,可以右键刷新数据库连接,然后就可以看到刚刚导入的要素类了。

    完成后右下角会提示,如下图:

    然后就可以基于oracle的数据进行共享服务了。

    点击文件—共享为—服务,如下图:

    然后输入响应的信息,就可以发布服务了。

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

    注:此文章为原创,任何形式的转载都请联系作者获得授权并注明出处!
    若您觉得这篇文章还不错,请点击下方的推荐】,非常感谢!

    https://www.cnblogs.com/kiba/p/16035784.html

     

     

  • 相关阅读:
    可视化图像处理 | 可视化训练器 | 图像分类
    Go-Python-Java-C-LeetCode高分解法-第九周合集
    在软件测试行业这种情况下,凭什么他能拿25k?我却约面试都难?
    1.MyBatis初始
    [HDLBits] Exams/ece241 2014 q7a
    02excel基础及函数
    中宣部防沉迷系统PHP版本(管局防沉迷验证-PHP-全版本-接口测试样例)
    Android 13.0 首次开机默认授予app运行时权限(去掉运行时授权弹窗)第二种方法
    Android 多点触控
    企业电子招标采购系统源码Spring Boot + Mybatis + Redis + Layui + 前后端分离 构建企业电子招采平台之立项流程图
  • 原文地址:https://www.cnblogs.com/kiba/p/16035784.html