我正在尝试导出一个包含 long raw 的表。表大小为 800GB。数据泵未导出 long raw。我做了一些研究,似乎唯一的方法是将它们传输到 LOB,然后导出/导入。然后我必须在另一个数据库中将它们再次传输到 long raw。还有其他简单的方法吗?
我做了以下操作。请注意,大小很小。对表格进行求和后,dba_table
结果约为 800GB。我知道这种数据类型已被弃用,但目前我无法更改。
Export: Release 19.0.0.0.0 - Production on Tue Dec 17 23:53:38 2024
Version 19.11.0.0.0
Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Starting "db1"."SYS_EXPORT_TABLE_01": db1/********@sv1 directory=backup dumpfile=tablle1_d.dmp LOGFILE=log_tablle1_d.log TABLES=tablle1
EXCLUDE=STATISTICS,INDEX parallel=10
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Processing object type TABLE_EXPORT/TABLE/TABLE
. . exported "db1"."tablle1" 12.54 MB 77 rows
Master table "db1"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded
******************************************************************************
Dump file set for db1.SYS_EXPORT_TABLE_01 is:
/backup/tablle1_d.dmp
Job "db1"."SYS_EXPORT_TABLE_01" successfully completed at Tue Dec 17 23:55:21 2024 elapsed 0 00:01:26
导出的输出显示有 77 行,大小为 12.54 MB。LONG 或 LONG RAW 列不能超过 2G,因此 77 行不能包含超过 154 个 LONG RAW 数据。该表仅包含一个 LONG RAW 列。因此,您的表数据不可能是 800G。我认为您的表包含很多您删除的行,并且 800G 中的大部分是现在未使用的空间。
导出表,截断表,然后再次导入数据。这是重组包含 LONG 或 LONG RAW 列的表的常用方法。您可以导出表,然后使用不同的名称或不同的模式导入它,并检查其内容,然后再进行实际重组。