日期:2014-05-16  浏览次数:20418 次

迁移SDE数据库

?

将SDE数据库从OrclSDE服务器上备份出,在MESDE服务器上恢复(两服务器的Oracle版本相同,ArcSDE版本相同),思路如下:

第一.确定两服务器的字符集一致

很多人都碰到过因为字符集不同而使数据导入失败的情况。这涉及三方面的字符集,一是oracel server端的字符集,二是oracle client端的字符集;三是dmp文件的字符集。在做数据导入的时候,需要这三个字符集都一致才能正确导入。

有很多种方法可以查出oracle server端的字符集,比较直观的查询方法是以下这种:

SQL>select userenv(‘language’) from dual;

结果类似如下:SIMPLIFIED.CHINESE_CHINA. ZHS16GBK

?

第二.从OrclSDE服务器上使用EXP命令将SDE数据库导出

在OrclSDE服务器的dos下执行如下命令:

Exp sde/sde file=d:\OrclSDE.dmp full=y

?

第三.在目标服务器MESDE上,使用ARCSDE创建SDE数据库

确定SDE数据库创建成功,并且SDE服务成功启动。

?

第四.在目标服务器MESDE上删除SDE用户,并删除SDE表空间

打开控制面板,停止SDE服务

注意:一定要确定SDE服务已经被停止,才可以进行以下操作!

删除SDE用户,并删除SDE表空间

?

第五.在MESDE服务器上创建SDE表空间和SDE用户,并授予与第四步骤中SDE用户相同的权限

创建的SDE表空间大小要确保能恢复OrclSDE服务器上备份出的SDE数据库

此时启动SDE服务,会发现启动不了,发生如下所示错误:

本地计算机上的ArcSde Service (esri_sde)启动后又停止了。一些服务自动停止,如果他们没有什么可作的,例如“性能日志和警报”服务。

?

原因:

使用ArcSDE创建的SDE数据库,有一套自己的管理程式,创建有自己的一套系统表、触发器等信息,并保存了SDE数据用户的所有表的对应关系。而用户在删除了此SDE用户和表空间后又自定义的SDE数据库,没有了这些管理信息数据,那么ARCSDE服务在启动时也就找不到所需的信息,所以启动失败。

?

第六.在MESDE服务器上使用IMP命令导入SDE数据库

在MESDE服务器的dos下执行如下命令:

Imp sde/sde file=D:\OrclSDE.dmp

确保成功导入

?

第七.重新启动MESDE服务器上的SDE服务

打开控制面板,启动SDE服务,要确保启动成功,否则将视为还原失败!

在成功导入SDE数据库后,ArcSDE数据库的管理信息又被还原为了OrclSDE服务器上的SDE用户的一套管理信息,那么MESDE服务器上的SDE服务使用此管理信息启动

?

第八.打开Catalog,建立与MESDE的连接,并查看是否能浏览数据。如果可以的话,则说明SDE数据库的迁移成功了。

?

?

以上操作说明如存在问题,烦请给予指出,谢谢!!!

?

?

另阅

【SQL与Oracle中SDE数据库备份实战】http://gis-conquer.blog.sohu.com/110513961.html

【SDE数据库的备份与恢复】http://blog.csdn.net/mydriverc/archive/2007/08/24/1757867.aspx

【SDE数据库怎么备份】http://www.cngis.org/bbs/viewtopic.php?f=75&t=6587&start=0&st=0&sk=t&sd=a