日期:2014-05-16 浏览次数:20418 次
?
将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