今儿在自己电脑上搭建开发环境,在给数据库导入表结构以及数据时报1659错误,错误内容如下:
IMP-00017: 由于 ORACLE 错误 1659, 以下语句失败:
"CREATE TABLE "T_DATA_KKCL"
…………
IMP-00003: 遇到 ORACLE 错误 1659ORA-01659: 无法分配超出 6 的 MINEXTENTS (在表空间 HWITS_1中)
第一反应——空间不足?查看发现C盘只有614KB,尼玛!PS:Oracle安装在虚拟机中
百度……Google……
发现是因为从公司导出的dmp文件中初始化分配表空间的值过大造成
解决方法:
1、在导出表结构的时候exp命令加上compress=n,在exp时有个参数COMPRESS主要用于是否将segment的extent在导出时是否合并,在公司导出时没有加这个参数,导致默认合并,也就是说导出时Oracle将表结构的extent合并到一个extent中。
可惜现在不在公司,没法重新导出,只能使用第二种办法。
2、使用imp中的indexfile=xxx.sql参数,将导入语句生成sql,打开后豁然开朗
REM CREATE TABLE "HWITS"."T_DATA_KKCL" ("CLXXBH" VARCHAR2(18) NOT NULL
REM ENABLE, "SJLY" VARCHAR2(2), "SJLX" VARCHAR2(1) NOT NULL ENABLE,
REM "KKBH" VARCHAR2(12) NOT NULL ENABLE, "KKMC" VARCHAR2(50), "CJJG"
REM VARCHAR2(10) NOT NULL ENABLE, "SBBH" VARCHAR2(16) NOT NULL ENABLE,
REM "FXBH" VARCHAR2(2) NOT NULL ENABLE, "CDBH" VARCHAR2(2) NOT NULL
REM ENABLE, "HPHM" VARCHAR2(15) NOT NULL ENABLE, "HPZL" VARCHAR2(2),
REM "CSYS" VARCHAR2(2), "JGSK" DATE NOT NULL ENABLE, "CLSD" NUMBER(3, 0),
REM "SJCJ" VARCHAR2(1) NOT NULL ENABLE, "CLZT" VARCHAR2(1), "ZJLX"
REM VARCHAR2(1), "TXSL" NUMBER(1, 0) NOT NULL ENABLE, "TXLJ1"
REM VARCHAR2(255) NOT NULL ENABLE, "TXLJ2" VARCHAR2(255), "TXLJ3"
REM VARCHAR2(255), "YLXX" VARCHAR2(50) NOT NULL ENABLE, "BYZD1"
REM VARCHAR2(10), "BYZD2" VARCHAR2(10), "BYZD3" VARCHAR2(10), "SFCQ"
REM VARCHAR2(1)) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 TABLESPACE
REM "HWITS" LOGGING PARTITION BY LIST ("YLXX" ) (PARTITION "P1" VALUES
REM ('01') PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL
REM1031798784FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
REM TABLESPACE "HWITS_1" LOGGING NOCOMPRESS, PARTITION "P2" VALUES ('02')
REM PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL
REM 922746880FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
REM TABLESPACE "HWITS_2" LOGGING NOCOMPRESS, PARTITION "P3" VALUES ('03')
REM PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL
REM 981467136FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
REM TABLESPACE "HWITS_3" LOGGING NOCOMPRESS, PARTITION "P4" VALUES ('04')
…………
注意加黑部分,初始化的空间基本都在800M+,我虚拟机的C盘就剩3G了,这不是坑爹么……
一鼓作气,修改大小为65536,删掉REM,COPY到PL/SQL DEV里面,F8,OK……只可惜木有注释了。
附上两篇相关文章
1、Oracle exp compress参数引起的空间浪费
2、Oracle 表空间
分享到:
相关推荐
### Oracle数据库导入导出命令详解 #### 一、Oracle 导入导出命令概述 Oracle 数据库提供了强大的数据导入导出功能,通过 `exp` 和 `imp` 命令来实现数据的备份与恢复。这些命令对于日常的数据库管理来说至关重要...
Oracle的expimp工具是Oracle数据库管理系统中用于数据迁移和备份的关键组件。它们分别代表了数据导出和导入的功能,能够帮助管理员将数据从一个数据库移动到另一个数据库,或者创建数据库的备份副本。以下是对这两个...
### Oracle数据库导入导出命令详解 #### 一、Oracle数据库导入导出命令概述 Oracle数据库提供了强大的导入导出工具,帮助管理员和开发人员方便地管理数据。这些工具主要包括`exp`(导出)和`imp`(导入)命令。通过...
在进行Oracle数据库的安装时,有几个重要的步骤需要注意: 1. **字符集设置**:安装过程中必须选择字符集为`ZHS16GBK`,这主要是为了确保中文支持的准确性。如果选择了不合适的字符集,在后续的数据处理中可能会...
### Oracle数据导入导出技巧之imp/exp命令 #### 数据导入详解 ##### 1. 基础导入命令 - **基本语法**: ```shell ... imp system/manager@TEST file...希望本文能对您理解和使用Oracle数据库的`imp/exp`命令有所帮助。
在IT领域,尤其是在数据库管理与运维中,Oracle数据库因其强大的数据处理能力和广泛的应用场景而备受青睐。对于数据库管理员(DBA)或开发人员而言,掌握如何有效地导入Oracle数据库是一项必备技能。本文将深入探讨...
"Oracle_imp_exp.rar_ oracle_imp_exp_oracle_oracle exp_oracle_imp_" 这个压缩包文件,显然与Oracle数据库的导入(exp)和导出(imp)操作有关,可能包含一个自编写的工具,用于简化和记录这些过程。 Oracle...
Oracle数据库的备份与恢复是数据库管理中的重要环节,Oracle提供了内置的工具——exp(导出)和imp(导入)命令,用于实现这一目的。这两个命令是Oracle早期版本中用于数据备份和恢复的主要方法,虽然在现代Oracle版本中...
Java备份和还原Oracle数据库知识 Java备份Oracle数据库是指使用Java语言编写的...Java备份和还原Oracle数据库需要使用Oracle的EXP和IMP工具,Java程序需要构建命令,处理错误信息,读取命令的输出信息,处理异常信息。
- **错误处理**:可以通过 `ignore=y` 参数来忽略导入过程中遇到的部分错误。 - **兼容性问题**:在不同的 Oracle 版本之间迁移数据时,需要注意版本间的兼容性问题。 - **性能优化**:可以通过调整 `BUFFER`, `...
- **DMP文件处理**:在执行导入导出命令时,通常需要指定DMP文件的具体路径。此外,对于大型DMP文件,还可以考虑使用压缩工具如WinZip进行压缩,以节省存储空间。 #### 六、示例命令解释 - **示例导入命令**: ```...
9. **处理导入错误**:选择“忽略创建错误”,即遇到错误时继续尝试导入其他对象。 10. **确认导入范围**:输入“yes”确认导入整个导出文件。 11. **导入操作执行**:导入过程可能耗时较长,直至命令行显示“成功...
Oracle数据库报表导入导出工具是针对Oracle数据库设计的一款高效、便捷的数据管理软件,它使得数据库中的数据报表处理变得更加简单和直观。在Oracle数据库环境中,数据的导入与导出是日常维护工作的重要环节,用于...
本压缩包文件“oracle_exp_imp”包含了用于Oracle数据库导入导出的脚本,这些脚本可以帮助用户轻松地备份和恢复数据,提高工作效率。 在Oracle数据库中,数据导出通常使用`expdp`(Export Data Pump)工具,而导入...
Oracle exp/imp 是Oracle数据库系统提供的两个实用工具,用于数据的备份和恢复。exp(Export)用于导出数据库中的对象和数据,而imp(Import)则用于将这些导出的数据导入到另一个数据库中。在实际操作中,由于各种...
3. **错误处理**:增强错误处理逻辑,提供详细的错误信息,帮助快速定位问题。 综上所述,利用Java实现Oracle数据库备份,不仅可以简化备份流程,提高效率,还能增加备份操作的安全性和可靠性。这对于维护数据完整...
Oracle-ImpExp是一款针对Oracle数据库的实用工具,主要用于数据的导入和导出操作。这个工具提供了方便的方式来管理和迁移Oracle数据库中的数据,对于数据库管理员和开发人员来说,它是一个不可或缺的辅助工具。在...
总之,Oracle数据库的DMP文件导入导出是一项涉及多方面技能的任务,包括理解Oracle数据库架构、熟悉导入导出命令、掌握权限管理及处理潜在的导入错误。熟练掌握这一技能对于数据库管理员和开发人员来说至关重要,能...