假设情景:
现有System.Test表,数据量过千万,处于ts_Test表空间中。
表中有列A,将A=6与A小于6的数据进行分区
确保不会有外部程序修改需要建表分区的表
1. 对需要重建表分区的表进行备份,导出dmp,防止数据丢失
exp 用户名/密码@tns名 file=c:/test.dmp log=c:/test.log full=n rows=y buffer=10240000 tables=System.Test
2. 创建临时表,用来回导数据
create table system.Test_Bak
tablespace ts_Test
as
select * from System.Test;
3. 校验数据行数
select count('x') c1 from System.Test;
select count('x') c2 from System.Test_Bak;
如果行数不一致需查找原因
4. 重建表
truncate table System.Test;
drop table System.Test;
create table System.Test
tablespace ts_Test
PARTITION BY RANGE(A)
(
PARTITION P1 VALUES LESS THAN ('6')
TABLESPACE TS_TEST
,
PARTITION P2 VALUES LESS THAN ('7')
TABLESPACE TS_TEST,
PARTITION P3 VALUES LESS THAN (MAXVALUE)
TABLESPACE TS_TEST
)
as
select
from System.Test_Bak;
第4步执行完之后,表里的数据就分散到了P1和P2分区中
5. 重建索引,将原有表中的索引再建到System.Test表中。
6. 检查分区
select decode(A,'1','1','2','1','3','1','4','1','5','1',a),
count('x') n
from System.Test
group by decode(A,'1','1','2','1','3','1','4','1','5','1',a)
order by decode(A,'1','1','2','1','3','1','4','1','5','1',a);
select count('x') n1 from System.Test partition (p1);
select count('x') n2 from System.Test partition (p2);
分享到:
相关推荐
### 导入导出Oracle分区表数据 #### 一、概述 在Oracle数据库管理中,对分区表进行数据的导入与导出是一项常见的任务。分区技术可以显著提高大型表的性能,尤其是在处理大规模数据集时。为了有效地管理和迁移这些...
本教程将深入探讨如何将Excel数据导出并导入到Oracle数据库中,这对于数据分析、报表制作以及数据迁移等场景非常有用。以下是对这个主题的详细阐述: 一、Excel与Oracle数据库简介 Excel是一款由Microsoft开发的...
Oracle中的数据导入与导出是数据库管理的重要环节,理解并熟练掌握`expdp`和`impdp`的使用,能够有效地提升工作效率,同时保证数据的一致性和完整性。在实际操作中,应结合业务需求灵活运用各种参数和选项,确保数据...
根据给定文件的信息,本文将围绕Oracle数据库中的分区表(PARTITION TABLE)展开,并深入探讨其创建、管理和优化的关键知识点。 ### Oracle 分区表的概念与重要性 在Oracle数据库中,分区是一种对大表进行物理分割...
数据装载涉及将外部数据源,如文本文件、Excel文件或异种数据库(如Access、FoxPro、MS SQL Server、Sybase和DB2)中的数据导入Oracle数据库,而数据重组则涉及到对已有数据的结构调整和优化。本文主要探讨了在...
Oracle数据库的导入导出是数据库管理员(DBA)日常工作中不可或缺的一部分,主要用于数据迁移、备份恢复、系统复制等场景。本篇文章将详细讲解Oracle数据库的导入导出操作,包括使用工具、基本流程、参数设置以及...
### Oracle数据库的导出与导入操作详解 #### 导出操作前的必要条件与环境准备 在进行Oracle数据库的导出操作之前,确保满足以下条件是至关重要的: 1. **数据库服务器控制权**:首先,操作者必须拥有对Oracle...
- 如果导出的是整个数据库,记得在导入前创建相应的表空间和角色。 - 数据安全:不要在不安全的环境中暴露用户名和密码,避免数据泄露。 通过以上步骤,你可以成功地在Oracle数据库之间进行数据迁移。对于大型或...
4. **逆向工程(Reverse Engineering)**:此功能可以从现有的数据库中提取结构,生成数据模型,帮助理解已有数据库的设计。 5. **正向工程(Forward Engineering)**:将数据模型转换为SQL脚本,用于在数据库中...
4. **表已存在**:当遇到表已存在的情况时,可以根据实际需求选择不同的处理方式,例如使用`table_exists_action=replace`来替换原有表。 #### 七、总结 通过上述介绍,我们可以看到`impdp`是一个非常强大的工具,...
在Oracle 10g及后续版本中,为了提供更高效的数据管理能力,引入了一个非常实用的功能——**回收站**(Recycle Bin)。这一特性使得数据库管理员能够在不慎删除表等数据库对象后,能够轻松地从回收站中恢复这些对象,...
2. **还原策略**:在导入时,你可以选择不同的操作模式,如`replace`替换现有表,`append`追加到已有数据,或`update`根据主键更新数据。 3. **分区和表空间**:如果导入的数据涉及分区表或特定表空间,可以使用`...
如果目标数据库已有相同名称的表空间,只需确保其大小足以容纳导入的数据,否则需要扩展表空间。 扩展表空间有多种方式,例如直接增大表空间中数据文件的大小。首先,查询数据文件的位置,然后使用`ALTER DATABASE ...
这两种存储方式各有优劣,根据不同的应用场景选择合适的存储方式对于提升数据库性能和维护数据完整性至关重要。 ### 关于裸设备 #### 1.1 什么是裸设备(RAW DEVICE) 裸设备是指未经格式化或未创建文件系统的...
` 扩展已有数据文件,允许其自动增长。 - `ALTER TABLESPACE app_data ADD DATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP04.DBF' SIZE 50M AUTOEXTEND ON NEXT 50M MAXSIZE unlimited;` 添加新的数据文件...
- 分区和子分区:对分区表的支持使得可以单独导出或导入特定分区。 7. **注意事项**: - 安全性:确保转储文件存储在安全的地方,避免未经授权的访问。 - 大型转储:对于大型数据库,可能需要分块导出和导入,以...
- **使用现有数据创建表**:通过`CREATE TABLE AS SELECT`语句,可以从已有的表中复制数据创建新表。 - **复制表**:创建与源表结构相同的空表,可以使用`CREATE TABLE AS SELECT ... WHERE 1=0`,这样不会复制...
- 如果数据库中的数据量非常大,建议使用分区表和适当的过滤条件来提高导入效率。 - 对于大型数据集,考虑使用`--num-mappers`选项来指定Map任务的数量,以优化性能。 - 当导入具有复杂数据类型(如日期时间)的...
- **§1.4.4 导入与导出**:Oracle提供的数据迁移工具,用于将数据从一个数据库导入或导出到另一个数据库。 #### 二、创建数据库 **单元培训目标:** - 掌握使用Oracle数据库配置代理(DBCA)创建数据库的方法。 - ...