Oracle空间数据库的逻辑迁移

0
分享 2015-12-17

1. 环境:
SDE: 9.3
Database:10.2.0.4
OS:Windows XP SP2
工具: expdp,impdp
系统数据所在的Schema是SDE,用户数据为LF,系统数据所在表空间是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,lf)

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访问了。
文章来源:http://blog.csdn.net/liufeng1980423/article/details/6074525

2 个评论

现在 10.X 的版本也支持吗?
刘锋

刘锋 回复 小道

支持。

要回复文章请先登录注册