Oracle空间数据库的逻辑迁移
1. 环境:
SDE: 10.2
Database:11g
OS:Windows XP SP2
工具: expdp,impdp
系统数据所在的Schema是SDE,系统数据所在表空间是SDE,用户数据所在表空间是LFTBS,原数据库实例为test,目标数据库为dest,两个实例在同一台机器上。
描述:
expdp,impdp(数据泵)是oracle10g所提供的数据迁移的命令行工具。属于服务器端软件,跟客户端除了显示信息的交互没有其它的交互。
步骤:
一. 导出数据。
1. 创建导出数据所存放的目录,本次试验放在e:/dest,目录中。
2. 设置SID,set ORACLE_SID=test
3. 以system用户用sqlplus登陆原数据库,system/password
4. 创建一个目录对象,使该目录对象指向e:/dest目录(create directory sdetemp as ‘e:/dest’)
5. Exit退出sqlplus环境
6. 使用expdp导出数据,选择导出用户的模式sde 直接导出sde全体数据
7. 最终导出的数据位于e:/dest/dest.dmp,另外还有一个export.log文件,记录了整个导出过程。可以查看export.log文件,检查是否有错误产生。
二. 导入数据
1. 使用dbca创建一个数据库,数据库实例为dest
2. 设置SID,set ORACLE_SID=dest
3. 以system用户登陆到dest数据库,system/password.
4. 创建一个目录对象,使该目录对象指向e:/dest目录(create directory sdetemp as ‘e:/dest’)
5. 创建sde和lfdbs表空间。
6. Exit退出sqlplus环境
7. 使用impdp工具导入数据。
完成后,查看import.log文件,有以下错误
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的权限,所以编译有错误。
8. 解决编译错误,首先把执行sys.DBMS_LOCK和sys.DBMS_PIPE权限赋给PUBLIC
,以sys as sysdba登陆到sqlplus,然后执行
Grant execute on dbms_pipe to sde;
Grant execute on dbms_lock to sde;
9.编译:”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;
10.至此完成了数据的迁移,现在的dest库可以建立服务正常的用ArcCatalog访问了。
转载自:https://blog.csdn.net/zclovepp1314/article/details/79138010