这个问题的简单版本是:是否可以从已达到 4GB 最大大小限制的 Oracle 10g XE 数据库中导出所有数据?
现在,背景是:我的 (Windows) Oracle 10g XE 数据库已达到其允许的最大数据库大小 4GB。我打算针对这个问题实施的解决方案是升级到最大大小限制更大的 Oracle 11g XE,无论如何更好地反映我们的生产环境。当然,在典型的 Oracle 方式中,它们没有就地升级选项(至少我无法为 XE 找到)。因此,我决定按照 Oracle 11g XE 安装指南的“在 10.2 XE 和 11.2 XE 之间导入和导出数据”部分中的说明进行操作。在与 SQLPlus 斗争了一段时间后,我最终到达了指令的第 3d 步,该指令指示用户输入以下内容(它没有指定命令行而不是 SQLPlus,但它表示命令行):
expdp system/system_password full=Y EXCLUDE=SCHEMA:\"LIKE \'APEX_%\'\",SCHEMA:\"LIKE \'FLOWS_%\'\" directory=DUMP_DIR dumpfile=DB10G.dmp logfile=expdpDB10G.log
该命令产生以下输出:
Export: Release 10.2.0.1.0 - Production on Thursday, 29 September, 2011 10:19:11
Copyright (c) 2003, 2005, Oracle. All rights reserved.
Connected to: Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production
ORA-31626: job does not exist
ORA-31633: unable to create master table "SYSTEM.SYS_EXPORT_FULL_06"
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 95
ORA-06512: at "SYS.KUPV$FT", line 863
ORA-12952: The request exceeds the maximum allowed database size of 4 GB
我已经从 USERS 表空间中删除了相当多的数据,但由于数据的物理位置,我无法调整它的大小。而且无论我做什么,我总是得到相同的输出。我尝试从管理 Web 应用程序运行“紧凑型存储”,但没有任何效果。
所以我的问题是,我错过了什么吗?还是甲骨文真的那么无能,以至于如果他们的 XE 数据库填满了,就会让人们完全不走运?