onload 和 onunload 实用程序有其局限性。这些实用程序只能用于在同一操作系统上相同版本的数据库服务器之间移动数据。您无法修改数据库模式,必须关闭日志记录,并且实用程序可能很难使用。
onload 和
onunload 实用程序具有以下要求:
- 源数据库和目标数据库必须来自相同版本的数据库服务器。不能使用 onload 和 onunload 实用程序将数据从一个版本移动到另一个。
- 您不能使用 onload 和 onunload 在不同类型的数据库服务器之间移动数据。
- onload 命令必须与相应的 onunload 命令(它卸载相同的表或 onload 引用的表)的作用域相同。例如,您无法做到先用 onunload 来卸载整个数据库,然后再使用 onload 从该数据库仅装入表子集。
- 如果数据库包含扩展或智能大对象数据类型,那么不要使用 onload 和 onunload 来移动数据。(而是使用 HPL 来移动数据。)
- 因为 onload 读取的磁带包含以磁盘页大小为单位存储的二进制数据,所以源数据库驻留的计算机(使用 onunload 的计算机)和目标数据库将驻留的计算机(使用 onload 的计算机)必须具有相同的页大小、相同的数字数据表示法,针对结构和单位具有相同的字节对齐方式。
- 您不能使用 onload 和 onunload 在非 GLS 和 GLS 语言环境之间移动数据。
- 不能在高可用性集群中的服务器上使用 onload 和 onunload。
- 如果您压缩了表或分段,那么不能使用 onload 和 onunload。
如果 NLS 和 GLS 语言环境是相同的,那么可使用 onunload 和 onload 在数据库间移动数据。例如,如果 NLS 和 GLS 表都是使用相同的法语语言环境创建的,那么 onload 和
onunload 可以移动数据。但是,如果用户 A 在服务器 A 上具有法语语言环境 NLS 表并试图将数据装入服务器 B 上的德语语言环境 GLS 表,那么 onload 将报告错误。
如果页大小不同,onload 将失败。如果两台计算机上的对齐或数字数据类型不同(例如:最重要的字节在最后而不是第一个或者使用不同的浮点类型表示法),那么数据页面的内容会得到错误的解释。