Oracle 在线扩展分区

在对分区表操作是,当一个分区已经有了最大的分区,如何再次扩展分区呢?简单的方式是先删除最大分区,然后添加需要的分区,再次建立最大分区,如果对于7*24小时的系统,可能不行。哪有什么办法呢?下面来做个试验:

SQL> select * from v$version;

BANNER

----------------------------------------------------------------

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi

PL/SQL Release 10.2.0.1.0 - Production

CORE    10.2.0.1.0      Production

TNS for 64-bit Windows: Version 10.2.0.1.0 - Production

NLSRTL Version 10.2.0.1.0 - Production

SQL> drop table test purge;

SQL> create table test

(

id number,

record_date date

)partition by range(record_date)

(

partition p_2013 values less than(to_date(‘2013-01-01‘,‘yyyy-MM-dd‘)),

partition p_2014 values less than(to_date(‘2014-01-01‘,‘yyyy-MM-dd‘)),

partition p_max values less than (maxvalue)

);

SQL> insert into test values(1,to_date(‘2012-10-01‘,‘yyyy-MM-dd‘));

SQL> insert into test values(2,to_date(‘2013-10-01‘,‘yyyy-MM-dd‘));

SQL> insert into test values(3,to_date(‘2014-10-01‘,‘yyyy-MM-dd‘));

SQL> commit;

SQL> select partition_name from user_tab_partitions

where table_name = ‘TEST‘

order by partition_position;

PARTITION_NAME

------------------------------

P_2013

P_2014

P_MAX

SQL> select * from test partition(p_2013);

ID RECORD_DATE

---------- --------------

1 01-10月-12

SQL> select * from test partition(p_2014);

ID RECORD_DATE

---------- --------------

2 01-10月-13

SQL> select * from test partition(p_max);

ID RECORD_DATE

---------- --------------

3 01-10月-14

SQL> alter table test add partition p_2015 values

less than(to_date(‘2015-10-01‘,‘yyyy-MM-dd‘));

alter table test add partition p_2015 values

*

第 1 行出现错误:

ORA-14074: 分区界限必须调整为高于最后一个分区界限

SQL> alter table test split partition p_max at (to_date(‘2015-01-01‘,‘yyyy-MM-dd‘))

into (partition p_2015, partition p_max)  update global indexes;

SQL> select partition_name from user_tab_partitions

where table_name = ‘TEST‘

order by partition_position;

PARTITION_NAME

------------------------------

P_2013

P_2014

P_2015

P_MAX

SQL> insert into test values(4,to_date(‘2015-10-01‘,‘yyyy-MM-dd‘));

SQL> commit;

SQL> select * from test partition(p_2015);

ID RECORD_DATE

---------- --------------

3 01-10月-14

SQL> select * from test partition(p_max);

ID RECORD_DATE

---------- --------------

4 01-10月-15

时间: 2024-08-02 07:46:43

Oracle 在线扩展分区的相关文章

Oracle ASM无法识别扩展分区的磁盘设备

在linux 环境下,我们一般通过udev或者asmlib来绑定磁盘分区作为ASM的候选存储单元.在使用udev的情况下,一般只要我们可以看到被绑定的磁盘的设备,并且这些设备的属主和权限没有问题,ASM就可以识别并使用这些设备了. 但是也有例外情况: 1. 首先观察到的现象:在ASMCA的“"show eligible" 页面,看不到udev绑定的设备/dev/data2 2. udev的rule,和设备的权限以及属主都没有问题 cat 99-oracle-asmdevices.rul

浅谈 ~windows2003操作系统的分区在线扩展

话说由于有些客户的业务系统在2003上运行了好多年,即使迁移到了虚拟化后,仍然不想更换操作系统,windows 2003不像2008或2012操作系统对磁盘的扩展那么方便,直接扩展卷点两下鼠标就可以了. 早上看了下有的朋友写的针对于windows 2003虚拟机的虚拟磁盘扩容后怎么增加分区容量的文章,我也特意写了以下几个方式进行总结. 搭建了一个实验的环境对几种方法进行演示: windows 2003操作系统,此虚拟机共有4块硬盘,分别用于3个实验测试 1.使用diskpart命令对磁盘1扩容演

深入学习Oracle分区表及分区索引

关于分区表和分区索引(About Partitioned Tables and Indexes)对于10gR2而言,基本上可以分成几类: •       Range(范围)分区 •       Hash(哈希)分区 •       List(列表)分区 •       以及组合分区:Range-Hash,Range-List. 对于表而言(常规意义上的堆组织表),上述分区形式都可以应用(甚至可以对某个分区指定compress属性),只不过分区依赖列不能是lob,long之类数据类型,每个表的分区

KVM虚拟化笔记(十一)------kvm   Linux虚拟机在线扩展磁盘

kvm虚拟机也支持在线扩展磁盘功能,在线扩展有特定的使用环境,主要用于不能随便停用的生产环境中,本文以hadoop为例具体步骤如下: 1,查看现有磁盘 [[email protected] test]# virsh list --all  Id    Name                           State ----------------------------------------------------  1     win7                       

Oracle在线重定义DBMS_REDEFINITION 普通表—>分区表

实验环境:RHEL 6.4 + Oracle 11.2.0.3实验:在线重定义 普通表 为 分区表,包括主键对应的索引都改造为分区索引. 1,构造普通表t_objects conn test1/test1; create table t_objects as select * from dba_objects; SQL> select count(1) from t_objects; COUNT(1) ---------- 468738 --t_objects建立主键和索引 alter tabl

Centos Ext4 非LVM扩展分区

---------------声明:分区有风险,操作需谨慎------------------------------------ 应用场景:Hyper-V or Esxi,原先空间不够用需要扩展. 第一步(增加硬盘空间)在Esxi或者Hyper-V管理界面 增加硬盘总体空间. 第二步(增加分区空间): 我目前分区是这样的 可以看到目前/dev/sda3 已经没有空间了,我们需要对他进行扩展. 扩展需要一下步骤: 删除/dev/sda3分区 创建新的sd3分区 在线扩展硬盘 [email pro

Timestamp 与 Date 变量绑定与Oracle的自动分区

好久没有更新博客了,其实是工作中遇到的很多问题在Google上都能找到答案,也就没有记录下来的必要了.今天主要想聊一下在实际的系统中遇到的Oracle数据库的问题,希望对大家有一点点帮助就好. 我首先描述一下我所遇到的场景:我们的数据库用的是Oracle 11g,我想大家立马就对它的自动分区(Interval)有了基本的认识了,这是一个非常棒的功能,免除了在建表时弄一大堆建Range分区的代码,也免除了以后对数据库进行分区扩充的麻烦.当然利用JOB也是可以完成分区扩展的,但是既然Oracle提供

【三思笔记】 全面学习Oracle分区表及分区索引

[三思笔记]全面学习Oracle分区表及分区索引 2008-04-15 关于分区表和分区索引(About PartitionedTables and Indexes) 对于 10gR2 而言,基本上可以分成几类: v  Range(范围)分区 v  Hash(哈希)分区 v  List(列表)分区 v  以及组合分区:Range-Hash,Range-List. 对于表而言(常规意义上的堆组织表),上述分区形式都可以应用(甚至可以对某个分区指定 compress 属性),只不过分区依赖列不能是

linux中的磁盘配额以及在线扩展

运行环境:centos7 一.磁盘配额 (1)介绍 磁盘配额是管理员为普通用户设置的使用磁盘的限制,每个用户只能使用有限的磁盘空间,管理员通过磁盘配额的设置.可以很清楚的了解到每个普通用户的磁盘使用情况,避免某些用户浪费磁盘空间导致其它用户无法正常工作:在liunx系统中我们使用超级管理员root用户来进行磁盘配额的配置,可以对用户或组进行文件大小限制或者文件数量限制. 限制又可分为两种: 软限制:当用户或组所分配的空间占满以后,在一定的宽限期内可以超出当前容量,系统会发出警告,但超出时间后系统