Oracle空间数据库的逻辑迁移

http://blog.csdn.net/liufeng1980423/article/details/6074525

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’)

Oracle空间数据库的逻辑迁移_第1张图片

5. Exit退出sqlplus环境

6. 使用expdp导出数据,选择导出用户的模式(sde,lf)

Oracle空间数据库的逻辑迁移_第2张图片

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表空间。

Oracle空间数据库的逻辑迁移_第3张图片

6. Exit退出sqlplus环境

7. 使用impdp工具导入数据。

Oracle空间数据库的逻辑迁移_第4张图片

完成后,查看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;

Oracle空间数据库的逻辑迁移_第5张图片

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;

Oracle空间数据库的逻辑迁移_第6张图片

10.至此完成了数据的迁移,现在的dest库可以建立服务正常的用ArcCatalog访问了。


你可能感兴趣的:(Oracle空间数据库的逻辑迁移)