当使用如下语法移动或重建一个lob分区对象,将报错:
SQL> alter table SHOW_LOB_STORAGE move lob(DDD) store as (tablespace PARTFORLOB03);
ORA-14511: cannot perform operation on a partitioned object
 
正确的语法如下:
alter table <table name> move partition <table partition name> <table partition tablespace_name> lob (<lob column name>) store as <optional lob partition name> (tablespace <lob tablespace name>);
alter table <table name> move partition <table partition name> <table partition tablespace_name> lob (<lob column name>) store as (tablespace <lob tablespace name>);
 
实验如下:
1、创建表空间
create tablespace part_01 datafile '+DATADG' size 30M;
create tablespace part_02 datafile '+DATADG' size 30M;
create tablespace part_03 datafile '+DATADG' size 30M;
create tablespace lob_01 datafile '+DATADG' size 30M;
create tablespace lob_02 datafile '+DATADG' size 30M;
create tablespace lob_03 datafile '+DATADG' size 30M;
2、创建lob表分区
create table t (aaa number(5), bbb varchar2(10), ccc number(5), ddd clob ) partition by range(aaa) (
partition p1 values less than (50) tablespace part_01 lob (ddd) store as (tablespace lob_01),
partition p2 values less than (100) tablespace part_02 lob (ddd) store as (tablespace lob_02),
partition p3 values less than (maxvalue) tablespace part_03 lob (ddd) store as (tablespace lob_03));
insert into t values (11,'a',111,'clob_a');
insert into t values (51,'b',222,'clob_b');
insert into t values (101,'c',333,'clob_c');
commit;
 3、查看lob分区信息
set pagesize 180
col segment_name format a25
col segment_type format a16
col tablespace_name format a13
col partition_name format a15
select segment_name, segment_type, tablespace_name, partition_name from user_segments order by segment_name, partition_name;
select partition_name, lob_partition_name, tablespace_name from user_lob_partitions where table_name = 'T';
select table_name,def_tablespace_name from user_part_tables;
select table_name,column_name,lob_name,lob_index_name from user_part_lobs;
select table_name,partition_name,tablespace_name from user_tab_partitions where table_name='T';
4、move或重建lob分区对象
1)只迁移表分区P2中的lob对象到表空间lob_03
alter table t move partition P2 lob(DDD) store as (tablespace lob_03);
2)迁移表分区P1中lob对象到表空间lob_03,且重命名lob对象名称
alter table t move partition P1 lob(DDD) store as SYS_LOB_P227_111 (tablespace lob_03);  
3)迁移表分区P3中的lob对象到表空间 lob_01中,且表分区P3的表空间迁移到表空间 part_02
alter table t move partition P3 tablespace part_02 lob(DDD) store as (tablespace lob_01);
4)如果增加新的分区,还会使用用户或表默认使用的表空间,需修改分区表的表空间attribute
alter table t modify default attributes tablespace part_new; 
select def_tablespace_name from user_part_tables where table_name='T';

注意:
1、move分区表的lob对象,不应该去查user_lobs视图,而是应该去查user_lob_partitions视图。
2、move包含有blob对象的分区表到新的表空间情形:
---将表分区、lob对象全move到单独一个新表空间tbs_new中,语法类似如下:
alter table t move partition p_1 tablespace tbs_new
lob (lob1) store as (tablespace tbs_new ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 0 NOCACHE )
lob (lob2) store as (tablespace tbs_new ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 0 NOCACHE );
......
alter table t move partition p_n tablespace tbs_new
lob (lob1) store as (tablespace tbs_new ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 0 NOCACHE )
lob (lob2) store as (tablespace tbs_new ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 0 NOCACHE );
---如果将每个表分区、每个lob对象分别存储不同的表空间,则如下:
alter table t move partition p_1 tablespace tbs_1_1
lob (lob1) STORE as (tablespace tbs_2_1 ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 0 NOCACHE )
lob (lob2) store as (tablespace tbs_3_1 ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 0 NOCACHE );
......
alter table t move partition p_n tablespace tbs_1_n
lob (lob1) STORE as (tablespace tbs_2_n ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 0 NOCACHE )
lob (lob2) store as (tablespace tbs_3_n ENABLE STORAGE IN ROW CHUNK 8K PCTVERSION 0 NOCACHE );
3、新的分区(如interval的自动生成的新分区)还是会使用原来的(move前)表空间,需要修改分区表的默认存储表空间的属性:
alter table t modify default attributes tablespace tbs_new;
select def_tablespace_name from user_part_tables where table_name='T';
此时,今后生成的新分区才会去新的表空间,而不是老的表空间。

move或rebuild lob分区对象的更多相关文章

  1. How To Move Or Rebuild A Lob Partition

    How To Move Or Rebuild A Lob Partition [ID 761388.1]             改动时间 29-JUN-2010     类型 HOWTO     状 ...

  2. [转帖]Oracle数据库lob大对象数据类型字段总结,值得收藏

    Oracle数据库lob大对象数据类型字段总结,值得收藏 原创 波波说运维 2019-07-11 00:02:00 https://www.toutiao.com/i67108943269703357 ...

  3. JavaEE JDBC 读写LOB大对象

    JDBC 读写LOB大对象 @author ixenos LOB 除了数字.字符串和日期之外,许多数据库还可以存储大对象,例如图片或其他数据, 在SQL中,二进制(字节型)大对象称为BLOB,字符型大 ...

  4. ORACLE DBA_OBJECTS视图中OBJECT_TYPE为LOB的对象查看

    在ORACLE数据库中,DBA_OBJECTS视图中OBJECT_TYPE为LOB的对象是什么东西呢?其实OBJECT_TYPE为LOB就是大对象(LOB),它指那些用来存储大量数据的数据库字段.下面 ...

  5. Oracle LOB 大对象处理

    LOB类型列主要是用来存储大量数据的数据库字段,最大可以存储4G字节的非结构化数据. 一.LOB数据类型分类 1.按存储数据的类型分: ①字符类型:   CLOB:存储大量 单字节 字符数据.   N ...

  6. LOB对象在数据泵导出、导入后查询对象数量发现丢失

    问题描述:问题:源库的某个Schema使用数据泵Expdp元数据整体导出,在目标库导入且成功后,逻辑验证用户对象,发现缺失.分析查询后,缺失的对象,都是LOB类型(并不是所有的LOB都无法导入,是大部 ...

  7. std::move 移动对象资源

    场景: C++ 标准库使用比如vector::push_back 等这类函数时,会对参数的对象进行复制,连数据也会复制.这就会造成对象内存的额外创建, 本来原意是想把参数push_back进去就行了. ...

  8. 柯南君 :Oracle 分区技术 之 怎样支撑大数据操作?

    前段时间.看了罗女士( 资深技术顾问 - Oracle 中国 顾问咨询部)关于<大批量数据处理技术的演讲>视频.感觉受益良多,结合多年的知识积累,柯南君给大家分享一下: 交流内容: 一.O ...

  9. Oracle表空间迁移Move Tablespace

    move一个表到另外一个表空间时,索引不会跟着一起move,而且会失效.(LOB类型例外) move分为: *普通表move *分区表move *LONG,LOB大字段类型move来进行测试和说明. ...

随机推荐

  1. 并发之AQS

    一.概述 谈到并发,不得不谈ReentrantLock:而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)! 类如其名,抽象的队列式的同步器,AQ ...

  2. [js高手之路]深入浅出webpack教程系列1-安装与基本打包用法和命令参数

    [js高手之路]深入浅出webpack教程系列索引目录: [js高手之路]深入浅出webpack教程系列1-安装与基本打包用法和命令参数 [js高手之路]深入浅出webpack教程系列2-配置文件we ...

  3. Java自动内存管理机制学习(二):垃圾回收器与内存分配策略

    备注:本文引自<深入理解Java虚拟机第二版>仅供参考 图片来自:http://csdn.net/WSYW126 垃圾收集器与内存分配策略 概述 GC要完成3件事: 哪些内存需要回收? 什 ...

  4. Spring之AOP在XML中的配置方法

    AOP 即 Aspect Oriental Program 面向切面编程 先来一个栗子: <aop:config> <aop:pointcut id="loggerCutp ...

  5. 前端学习 之 Bootstrap(二)

    一.代码 内联代码:用<code>包裹,但是需要用<和>表示尖括号. 键盘输入:用<kbd>包裹表示键盘输入的内容. 多行代码:用<pre>包裹多行代码 ...

  6. IDEA 代码格式化,快捷键

    一键格式化代碼: Ctrl+Alt+L 全局搜索替换:ctrl+shift+r 强大的搜索功能,shift+shift (无论您想要搜啥都能找到) ctrl+shift+R==搜索类   CTRL+N ...

  7. 深入理解Java虚拟机03--垃圾收集器与内存分配策略

    一.概述  哪些内存需要回收? 什么时候回收? 如何回收? 二.对象已死吗  1.引用计数算法  定义:给对象添加一个引用计数器,当增加一个引用时,加1,当一个引用时,减1; 缺陷:当对象之间互相循环 ...

  8. git 入门教程之备忘录[译]

    备忘录[译] 创建 | Create 克隆一个已存在的仓库 | Clone an existing repository git clone git@github.com:snowdreams1006 ...

  9. python之模块使用

    1.入口 """ 模块测试入口 """ import show_message as sm # 导入方式一 sm.show(sm.__nam ...

  10. [20190226]删除tab$记录的恢复6.txt

    [20190226]删除tab$记录的恢复6.txt --//春节前几天做了删除tan$记录的测试,链接:http://blog.itpub.net/267265/viewspace-2565245/ ...