当使用如下语法移动或重建一个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. 详解javascript事件绑定使用方法

    由于html是从上至下加载的,通常我们如果在head部分引入javascript文件,那么我们都会在javascript的开头添加window.onload事件,防止在文档问加载完成时进行DOM操作所 ...

  2. Spring之AOP的注解配置

    配置过程可以简单的分为3步: 1,业务类配置 在业务类前加入,将业务类交由Spring管理 @Component("s") 这个表示,这个业务类的Bean名字为 s . 2,将切点 ...

  3. window.requestAnimationFrame与Tween.js配合使用实现动画缓动效果

    window.requestAnimationFrame 概述 window.requestAnimationFrame()这个方法是用来在页面重绘之前,通知浏览器调用一个指定的函数,以满足开发者操作 ...

  4. MMU学习总结

    待完善 一.MMU主要完成哪些事务? 二.PowerPC上的BAT.LAW是做什么用的? 三.

  5. windows平台vs2010编译64位libiconv与libxml2

    (一)安装libiconv下载路径https://ftp.gnu.org/pub/gnu/libiconv/注意这里选择libiconv-1.11.1版本,因为之后的版本没有Makefile.msvc ...

  6. Android为TV端助力 apk静默安装

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/47803149 之前有很多朋友都问过我,在Android系统中怎样才能实现静默安装呢 ...

  7. 让bind函数支持IE8浏览器的方法

    bind函数在IE8下是不支持的,只需要在你的js文件中加入如下代码就可以支持IE8 //让bind函数支持IE8 if (!Function.prototype.bind) { Function.p ...

  8. 适用于VS C++环境的注释代码段,可以让你的代码被使用时有高可读性的注释

    编码时,在对高级语言(C#/VB etc)函数的访问时,经常会有很明确的函数功能提示,参数提示,与返回值提示.微软的VisualStudio C++集成开发环境同样有这样的功能,只是常见开源的代码很少 ...

  9. celery任务进程关闭

    方法1: ps auxww|grep 方法2: Ctrl+C 方法3: celery multi 管理 celery multi start w1 -A proj -l info celery mul ...

  10. ELK环境配置+log4j日志记录

    ELK环境配置+log4j日志记录 1. 背景介绍 在大数据时代,日志记录和管理变得尤为重要. 以往的文件记录日志的形式,既查询起来又不方便,又造成日志在服务器上分散存储,管理起来相当麻烦, 想根据一 ...