IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:分区表

共 2 篇相关文章

IT 累计浏览 53

impdp报ORA-39083 ORA-14102错误处理

在Oracle数据库管理中,使用Data Pump的impdp工具导入数据时,可能遇到ORA-39083和ORA-14102错误。本文以实际案例为例,错误发生在将分区表从Oracle 11.2.0.4导出并导入到11.2.0.1版本时。导入过程中,表创建语句失败,提示“Object type TABLE failed to create”,原因是ORA-14102错误,即指定多个LOGGING或NOLOGGING子句。通过检查导出日志和使用DBMS_METADATA.GET_DDL获取DDL语句,发现源表的分区定义中每个分区都包含了NOLOGGING属性,而目标数据库版本不支持这种语法。具体来说,在11.2.0.1中,表级别和分区级别不能同时指定物理属性如NOLOGGING。为解决此问题,提供了两种方法:一是在导出时使用expdp的version参数指定目标版本为11.2.0.1,以生成兼容的DDL;二是在导入时使用impdp的TRANSFORM参数,设置segment_attributes:n来忽略段属性。文章还提到了其他相关错误和解决方案,如impdp创建索引时的ORA-00942错误和Oracle 12c中Data Pump的增强。此案例突出了数据库版本差异对导入导出操作的影响,并给出了具体的排查和修复步骤,对数据库管理员具有实用参考价值。

IT 累计浏览 3,808

使用ORACLE在线重定义将普通表改为分区表

这篇讲的是一个真实的运维案例:一张按全宗号分了77个分区的生产大表,在开发人员多次执行 `ALTER TABLE RENAME` 和 `CREATE TABLE AS SELECT`(CTAS)操作后,悄然退化成了普通堆表,导致查询性能显著下降。根源就在于CTAS只会复制数据和基础结构,却丢掉了原有的分区定义。 对于这种7x24不间断服务的关键业务表,想改回分区结构且不能停机,作者给出了利用Oracle 10g推出的在线重定义(DBMS_REDEFINITION)功能的标准解法。文章在一个OEL 5.4 + Oracle 10.2.0.1的虚拟机环境中,一步步演示了从创建测试表、检查重定义可行性,到执行重定义和最终验证的完整流程。这种操作风险高、步骤多,一个环节出错就可能影响线上服务。 这篇文章的价值不仅在于展示了一个具体的功能用法,更在于它揭示了CTAS这个看似无害的常用操作在特定场景下的隐形陷阱。对于负责数据库维护和性能优化的工程师来说,这个案例提供了处理“结构意外变更”的一个清晰思路和可复现的操作模板。