源服务器:
arcgis :10.2.2版本
操作系统:win10
Oracle:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production2
目标服务器配置与原服务器相同
1.“源服务器”操作如下:
(1)由于采用数据泵导入导出的方式所以先在“源服务器”上创建一个目录对象,在“源服务器”上某个磁盘创建备份文件夹,例如在C盘创建sdebackups文件夹。
(2)使用(1)中创建的文件夹创建目录对象,使用SQL Plus或者PL/SQL 皆可,使用sys用户登录数据库,执行如下语句:
create directory sdebackups as 'C:\sdebackups '
使用如下语句:select * from dba_directories
可查询当前用户的所有目录对象,检查目录对象是否创建成功。
(3)打开cmd命令窗口,使用expdp方法按角色导出数据库dmp文件,本人数据库模式如下:sde为地理数据库用户、 test用户用于存放数据集与要素类,所以要导出sde、test两个用户,在cmd命令窗口执行如下语句:
expdp sys/ORCL@ORCL directory=sdebackups dumpfile=sdebackups.dmp schemas=(sde,test)
参数说明:sys为角色名,ORCL为角色对应密码,@后字符串为对应实例也可加ip地址形式例如:127.0.0.1/ORCL ,directory为sys用户下新建的目录对象,dumpfile为导出的dmp文件名,schemas为要导出的角色。
以上步骤执行完可看C:\sdebackups目录下导出的dmp文件以及导出的log日志。
2.“目标服务器“操作 如下
(1)与”源服务器相同“,所以先在“目标服务器”上创建一个目录对象,先在“目标服务器”上某个磁盘创建备份文件夹,例如在C盘创建sdebackups文件夹,然后将”源服务器“上的dmp文件拷贝到该目录下。
(2)与”源服务器“的(2)步操作相同创建”目标服务器“的sys用户的目录对象。
(3)由于使用expdp的方式导出备份,所以”目标服务器“不需要创建sde和test两个角色,此角色数据存在dmp文件中,在impdp导入的时候程序会自动创建用户,但是表空间需要自己创建,在”源服务器“中执行如下SQL语句可查看”源服务器“数据库的表空间以及物理文件所在磁盘,SQL语句如下:
select tablespace_name, file_id, file_name,round(bytes/(1024*1024),0) total_space
from dba_data_files order by tablespace_name
创建与”源服务器“相同的表空间,sde默认的表空间如下:
可看见表空间大小为400m,所以执行如下语句在“目标服务器”创建表空间,语句如下:
create tablespace SDE_TBS
logging
datafile 'D:\app\Administrator\oradata\orcl\SDE_TBS'
size 400m
autoextend on
next 50m maxsize unlimited
extent management local;
同样创建test用户所在的表空间,语句如下:
create tablespace TEST
logging
datafile 'D:\app\Administrator\oradata\orcl\TEST.dbf'
size 1024m
autoextend on
next 50m maxsize unlimited
extent management local;
注: 至此表空间创建完毕,可以看到两台电脑,oracle安装的位置以及表空间存放位置并不相同,”源服务器“在E盘,”目标服务器“在D盘,这将影响到impdp导入操作,应为dmp文件中会记录的”源服务器“的表空间物理路径,所以导入时会报错,提示表空间不存在,具体参数在第四步叙述。
(4)表空间创建完成后执行impdp导入操做,打开cmd命令窗口,输入如下命令语句:
impdp sys/orcl@ORCL directory=sdebackups dumpfile=sdebackups.dmp
schemas=(sde,test) remap_tablespace=SDE_TBS:SDE_TBS,TEST:TEST
参数说明:sys为角色名,orcl为角色对应密码,@后字符串为对应实例也可加ip地址形式例如:127.0.0.1/ORCL ,directory为sys用户下新建的目录对象,dumpfile为导出的dmp文件名,schemas为要导如的角色,remap_tablespace参数为指定表空间,用到此参数的原因见(3)注,该参数为将源表空间的所有对象导入到目标表空间中 :REMAP_TABLESPACE=source_tablespace:target_tablespace ,多个表空间指定用英文逗号”,“分开。
3.遇到问题以及解决办法
导入完成后,会在创建的目录对象的文件夹下生成对应日志文件,查看import.log文件,如以下错误:
(1).错误一如下:
ORA-39082: 对象类型 PACKAGE_BODY:"SDE"."PINFO_UTIL" 已创建, 但带有编译警告
ORA-39082: 对象类型 PACKAGE_BODY:"SDE"."LOCK_UTIL" 已创建, 但带有编译警告
ORA-39082: 对象类型 PACKAGE_BODY:"SDE"."VERSION_USER_DDL" 已创建, 但带有编译警告
原因是因为SDE.PINFO_UTIL,SDE.LOCK_UTIL,SDE.VERSION_USER_DDL三个包,没有执行sys.DBMS_LOCK和sys.DBMS_PIPE的权限,用以下方式解决。
1)用sys用户登录数据库,执行如下两条语句给SDE用户赋予权限:
Grant execute on dbms_pipe to sde;
Grant execute on dbms_lock to sde;
2)执行如下语句,编译:“SDE”.“LOCK_UTIL”,“SDE”.“PININFO_UTIL”,SDE.VERSION_USER_DDL三个包。
Alter package sde.lock_util compile ;
Alter package sde.lock_util compile body;
Alter package sde.pinfo_util compile;
Alter package sde.pinfo_util compile body;
Alter package sde.version_user_ddl compile;
Alter package sde.version_user_ddl compile body;
(2)错误二如下:
ORA-31693: Table data object "SDE"."GDB_ITEMS" failed to load/unload and is being skipped due to error:
ORA-02354: error in exporting/importing data
ORA-00600: internal error code, arguments: [kpudpxcs_ctxConvertStream_ref_1], [SYS_TYPEID("SHAPE")], [], [], [], [], [], [], [], [], [], []"
此错误可看此文章方法解决,博客链接: https://blog.csdn.net/linghe301/article/details/12747351
本人未下载到博客中所提到的Oracle补丁,采用的是PL/SQL 的导出方法,导出GDB_ITEMS表的数据,然后使用PL/SQL 的导入方法导入数据,对"SDE".“GDB_ITEMS_VW"和"SDE”."GDB_ITEMRELATIONSHIPS_VW"两个视图重新编译。
图1 使用PL/SQL 导出GDB_ITEMS表的数据
图2 使用PL/SQL 导入GDB_ITEMS表的数据
图3 使用PL/SQL 重新编译视图
完成以上所有步骤后,用ArcMap软件可连接该sde数据库,查看对应的数据。
本文操作参考以下博客连接:
[Bug]IMPDP导入ArcSDE数据报:ORA-31693, ORA-02354, ORA-00600:
https://blog.csdn.net/linghe301/article/details/12747351
Oracle空间数据库的逻辑迁移:
https://blog.csdn.net/zclovepp1314/article/details/79138010
oracle11g数据库导入导出方法教程:
https://blog.csdn.net/xinxiaoyonng/article/details/79436673
地理数据库系统表概述
https://desktop.arcgis.com/zh-cn/arcmap/10.3/manage-data/using-sql-with-gdbs/overview-geodatabase-system-tables.htm
oracle通过impdp导入不同表用户、不同表空间的数据:
https://www.cnblogs.com/yaoyangding/p/12042025.html