- 对于 Oracle 8i 和 9i 的操作需要是相同的。对于 Oracle 10g,可移植的表空间可以跨多个平台使用。同样,Oracle 7 中不支持可移植的表空间。
- 源数据库和目标数据库的数据块大小和 charset 相同。
- 目标不应具有预先存在的表空间名。
- 不支持快照/复制、基于函数的索引、区域引用(Scoped REF)、域索引,等等。
- 表空间必须是独立的(self contained)。
对于 DB2 UDB,因为源数据库和目标数据库的操作系统相同,所以本场景与上面第一个场景 2 相同。简单地将备份文件夹复制到新机器上,并恢复它。
本场景中,您在 Oracle 中除了导出和导入,别无选择。您可以执行全数据库导出、模式级或表级导出。注意,为了使可移植的表空间跨不同的平台工作,您至少需要有 Oracle 10g。按照下列步骤执行全导出和导入。请确保启用了角色 IMP_FULL_DATABASE。若要执行全数据导出和导入,请执行下列步骤。
- imp system/manager full=y constraints=n indexes=n file=full817.dmp log=full817_1.dmp
- imp system/manager full=y constraints=y indexes=y rows=n ignore=y file=full817.dmp log=full817_2.log
在 DB2 UDB 中,有两种方法完成该任务。
- 使用备份和恢复 - 在 AIX 和 Solaris 和 HPUX 之间备份/恢复工作。
- 使用 db2move 实用程序 - 将数据库移入/移出包括 Linux、Unix、Windows(LUW)在内的不同平台和驻留在主机系统中的数据库。
若要使用 Backup & Restore 选项,请执行下列步骤。
- 从源机器(例如 AIX)发出备份命令:
db2 'backup database sample to "/home/db2inst1/sample"'。 - 将带有长名的文件 FTP 至目标(例如 Solaris)。
- 发出恢复命令:
db2 'restore database sample from "/home/db2inst1"'。
当使用 DB2move 时,它首先将数据导出至 ixf 格式中。 执行下列步骤:
- 在 Windows 的 DB2 UDB 8.2 中,通过发出命令
db2move sample export -tc administrator导出数据。 - FTP 至 AIX 机器。
- 预先创建表以驻留在理想的表空间中。注意,虽然 db2move 为您创建该表,但它可能不在理想的表空间中。使用命令
db2look -d sample -u administrator -e -m -o sample.sql为这些表找到表空间。 - 在 AIX 中发出命令
db2move sample load -lo replace。如果您的表没有预先创建,那么将获得 SQL3304N The table does not exist 消息。(请查阅 DB2 UDB Information Centre,因为 db2move 提供了比这里所呈现的更多的选项)。
在 Oracle 中,如果您的数据库是 8i 或 9i,那么可移植的表空间就无法用于跨平台。如果是 8i 或 9i,惟一的选择就是 imp/exp。然而,如果使用 10g,那么完成该任务的最佳方法就是使用可移植的表空间。
在 DB2 UDB 中,这与场景 4 相同。您可以选择使用 DB2 Backup 和 Restore 或 db2move。






