1、新建零时表

set time on timing on

create table RPTUSER.RPT_TMP_10086BDL_bak

(

HANDLEDATE DATE,

TEL_CALLING VARCHAR2(15)

) TABLESPACE "IS_IEF_CBT"

PARTITION BY RANGE ("HANDLEDATE")

( partition P201805 values less than (TO_DATE('2018-06-01 00:00:00','YYYY-MM-DD hh24:mi:ss')) tablespace IS_IEF_CBT,

partition P201806 values less than (TO_DATE('2018-07-01 00:00:00','YYYY-MM-DD hh24:mi:ss')) tablespace IS_IEF_CBT,

partition P201807 values less than (TO_DATE('2018-08-01 00:00:00','YYYY-MM-DD hh24:mi:ss')) tablespace IS_IEF_CBT,

partition P201808 values less than (TO_DATE('2018-09-01 00:00:00','YYYY-MM-DD hh24:mi:ss')) tablespace IS_IEF_CBT,

partition P201809 values less than (TO_DATE('2018-10-01 00:00:00','YYYY-MM-DD hh24:mi:ss')) tablespace IS_IEF_CBT,

partition P201810 values less than (TO_DATE('2018-11-01 00:00:00','YYYY-MM-DD hh24:mi:ss')) tablespace IS_IEF_CBT,

partition P201811 values less than (TO_DATE('2018-12-01 00:00:00','YYYY-MM-DD hh24:mi:ss')) tablespace IS_IEF_CBT,

partition P201812 values less than (TO_DATE('2019-01-01 00:00:00','YYYY-MM-DD hh24:mi:ss')) tablespace IS_IEF_CBT,

partition P201901 values less than (TO_DATE('2019-02-01 00:00:00','YYYY-MM-DD hh24:mi:ss')) tablespace IS_IEF_CBT,

partition P201902 values less than (TO_DATE('2019-03-01 00:00:00','YYYY-MM-DD hh24:mi:ss')) tablespace IS_IEF_CBT,

partition P201903 values less than (TO_DATE('2019-04-01 00:00:00','YYYY-MM-DD hh24:mi:ss')) tablespace IS_IEF_CBT,

partition P201904 values less than (TO_DATE('2019-05-01 00:00:00','YYYY-MM-DD hh24:mi:ss')) tablespace IS_IEF_CBT,

partition P201905 values less than (TO_DATE('2019-06-01 00:00:00','YYYY-MM-DD hh24:mi:ss')) tablespace IS_IEF_CBT,

partition P201906 values less than (TO_DATE('2019-07-01 00:00:00','YYYY-MM-DD hh24:mi:ss')) tablespace IS_IEF_CBT,

partition P201907 values less than (TO_DATE('2019-08-01 00:00:00','YYYY-MM-DD hh24:mi:ss')) tablespace IS_IEF_CBT,

partition P201908 values less than (TO_DATE('2019-09-01 00:00:00','YYYY-MM-DD hh24:mi:ss')) tablespace IS_IEF_CBT,

partition P201909 values less than (TO_DATE('2019-10-01 00:00:00','YYYY-MM-DD hh24:mi:ss')) tablespace IS_IEF_CBT,

partition P201910 values less than (TO_DATE('2019-11-01 00:00:00','YYYY-MM-DD hh24:mi:ss')) tablespace IS_IEF_CBT,

partition P201911 values less than (TO_DATE('2019-12-01 00:00:00','YYYY-MM-DD hh24:mi:ss')) tablespace IS_IEF_CBT,

partition P201912 values less than (TO_DATE('2020-01-01 00:00:00','YYYY-MM-DD hh24:mi:ss')) tablespace IS_IEF_CBT,

partition pmax values less than (MAXVALUE) tablespace IS_IEF_CBT);

2、创建零时失效对象表

create table system.dba_object_20180820 as select * from dba_objects;

select count(*) from system.dba_object_20180820 where status <> 'VALID';

3、rename表

declare

begin

execute immediate 'alter table RPTUSER.RPT_TMP_10086BDL rename to RPT_TMP_10086BDL_20180820';

execute immediate 'alter table RPTUSER.RPT_TMP_10086BDL_bak rename to RPT_TMP_10086BDL';

end ;

/

4、对比是否有新增失效对象

select count(*) from system.dba_object_20180820 where status <> 'VALID'

union all

select count(*) from dba_objects where status <> 'VALID';

5、对比两个表的权限

select 'grant ' || privilege || ' on ' || owner || '.' || table_name ||

' to ' || grantee || ';' grant_sql

from dba_tab_privs

where table_name = 'RPT_TMP_10086BDL_20180820';

select 'grant ' || privilege || ' on ' || owner || '.' || table_name ||

' to ' || grantee || ';' grant_sql

from dba_tab_privs

where table_name = 'RPT_TMP_10086BDL';

6、插入表数据

insert into RPTUSER.RPT_TMP_10086BDL select * from RPTUSER.RPT_TMP_10086BDL_20180820

where HANDLEDATE >= to_date('2018-05-01 00:00:00','yyyy-mm-dd hh24:mi:ss')

and HANDLEDATE < to_date('2018-06-01 00:00:00','yyyy-mm-dd hh24:mi:ss');

commit;

7.--收集统计信息

set line 300 pages 2000 long 999999

select 'exec dbms_stats.gather_table_stats (ownname=>''' || table_owner ||

''', tabname=>''' || table_name || ''', partname=>''' ||

partition_name ||

''',method_opt=>''FOR ALL COLUMNS SIZE 1'',estimate_percent=>10,degree=>10,cascade=>true);'

from dba_tab_partitions

where table_owner = 'RPTUSER'

and table_name = 'RPT_TMP_10086BDL'

and last_analyzed is null

order by partition_name;

exec dbms_stats.gather_table_stats (ownname=>'RPTUSER', tabname=>'RPT_TMP_10086BDL', partname=>'P201805',method_opt=>'FOR ALL COLUMNS SIZE 1',estimate_percent=>10,degree=>10,cascade=>true);

exec dbms_stats.gather_table_stats (ownname=>'RPTUSER', tabname=>'RPT_TMP_10086BDL', partname=>'P201806',method_opt=>'FOR ALL COLUMNS SIZE 1',estimate_percent=>10,degree=>10,cascade=>true);

exec dbms_stats.gather_table_stats (ownname=>'RPTUSER', tabname=>'RPT_TMP_10086BDL', partname=>'P201807',method_opt=>'FOR ALL COLUMNS SIZE 1',estimate_percent=>10,degree=>10,cascade=>true);

exec dbms_stats.gather_table_stats (ownname=>'RPTUSER', tabname=>'RPT_TMP_10086BDL', partname=>'P201808',method_opt=>'FOR ALL COLUMNS SIZE 1',estimate_percent=>10,degree=>10,cascade=>true);

--查看收集到的统计信息

ora tstat RPT_TMP_10086BDL RPTUSER

8、备份

expdp \"/ as sysdba\" directory=DIR_DP tables=RPTUSER.RPT_TMP_10086BDL_20180820 dumpfile=RPTUSER.RPT_TMP_10086BDL_20180820_%U.dmp compression=all filesize=12g parallel=5 logfile=RPTUSER.RPT_TMP_10086BDL_20180820.log

9、MOVE剩余数据到其他表空间

alter table RPTUSER.RPT_TMP_10086BDL_20180820 move tablespace T_WMSUSERN parallel 4;

10 rebuild 索引

ora unusable

ALTER INDEX RPTUSER.RPT_TMP_10086BDL1 REBUILD ONLINE tablespace TS_WMS_DATA;

######################################回退方案###############################################

declare

begin

execute immediate 'alter table RPTUSER.RPT_TMP_10086BDL rename to RPTUSER.RPT_TMP_10086BDL_bak';

execute immediate 'alter table RPTUSER.RPT_TMP_10086BDL_20180820 rename to RPTUSER.RPT_TMP_10086BDL';

end ;

/

RENAME方法进行分区改造的更多相关文章

  1. 普通表分区改造_rename方式

    一.需求 配合开发人员,对业务临时表进行分区改造(业务认为的临时表,只需要保留近一月数据,并非oracle临时表类型) 二.如下记录完整过程 开发需求 TS_PM 以time_key分区 .沟通明确方 ...

  2. Python os.rename() 方法

    概述 os.rename() 方法用于命名文件或目录,从 src 到 dst,如果dst是一个存在的目录, 将抛出OSError.高佣联盟 www.cgewang.com 语法 rename()方法语 ...

  3. C# rename方法重命名文件

    记得C# File类中是没有rename这个方法 所以网上很多都用的是move moveTo copy+delete等这些方法 其实以上的方法 虽然可以实现功能 但看起来总觉得很蛋疼 今天百度 突然发 ...

  4. node.js中的fs.rename()方法

    node.js 中的fs.rename()模块 var fs=require('fs');//node.js的核心模块 原生模块.修改文件名称,可更改文件的存放路径 方法说明 : 修改文件名称,可更改 ...

  5. 对5月13号中BaseDao方法进行优化改造,更接近于框架的编写

    /* * 通用查询.更新升级版 * */ public class BaseDao2 { static { try { Class.forName(ConfigUtil.getValue(" ...

  6. Appium 三种wait方法(appium 学习之改造轮子)

    前些日子,配置好了appium测试环境,至于环境怎么搭建,参考:http://www.cnblogs.com/tobecrazy/p/4562199.html   知乎Android客户端登陆:htt ...

  7. 【Spark 深入学习-08】说说Spark分区原理及优化方法

    本节内容 ------------------ · Spark为什么要分区 · Spark分区原则及方法 · Spark分区案例 · 参考资料 ------------------ 一.Spark为什 ...

  8. Linux下基于LVM调整分区容量大小的方法

    Linux下调整分区容量大小的方法(适用于centos6-7) 说明:以下方法均使用centos6.9和centos7.4进行测试. Centos6分区容量调整方法 1.web分区空间不足,新添加一块 ...

  9. HAWQ技术解析(八) —— 大表分区

    一.HAWQ中的分区表        与大多数关系数据库一样,HAWQ也支持分区表.这里所说的分区表是指HAWQ的内部分区表,外部分区表在后面"外部数据"篇讨论. 在数据仓库应用中 ...

随机推荐

  1. Roller5.0.3安装配置部署 step by step

    一.下载roller 下载地址:http://roller.apache.org/downloads/downloads.html下载下来之后,解压包含两部份doc.webapps 二.准备环境 1. ...

  2. Selenium Web 自动化 - 项目实战(一)

    Selenium Web 自动化 - 测试框架(一) 2016-08-05 目录 1 框架结构雏形2 把Java项目转变成Maven项目3 加入TestNG配置文件4 Eclipse编码修改5 编写代 ...

  3. 《软件测试自动化之道》读书笔记 之 SQL 存储过程测试

    <软件测试自动化之道>读书笔记 之 SQL 存储过程测试 2014-09-28 待测程序测试程序   创建测试用例以及测试结果存储  执行T-SQL脚本  使用BCP工具导入测试用例数据  ...

  4. SoapUI5.0创建WebService接口模拟服务端(转)

    转载自:https://blog.csdn.net/a19881029/article/details/26348627 使用SoapUI创建WebService接口模拟服务端需要接口描述文件 Mat ...

  5. Android调用相机拍摄照片并显示到 ImageView控件中

    在前面的一篇文章中曾介绍过简单的开启相机照相功能,详见 Android简单调用相机Camera功能,实现打开照相功能 ,这一次就会将前面拍摄的照片显示到ImageView中,形成一个完整的效果 看实例 ...

  6. Java知多少(74)基础类库

    Java 的类库是 Java 语言提供的已经实现的标准类的集合,是 Java 编程的 API(Application Program Interface),它可以帮助开发者方便.快捷地开发 Java ...

  7. mongodb批量操作, bulk_write,

    需要批量操作时候,节省网络连接交互次数,可以使用 bulk_write. 设置ordered=False,因为批量操作中没有互相依赖关系,如果有前后顺序的互相依赖,需要设置为True. bed_typ ...

  8. Google Colab 免费GPU服务器使用教程

    Google免费GPU使用教程(亲测可用)   今天突然看到一篇推文,里面讲解了如何薅资本主义羊毛,即如何免费使用Google免费提供的GPU使用权. 可以免费使用的方式就是通过Google Cola ...

  9. error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2

    使用VS2013版本引用外部的lib进行编译时候提示: 错误 25 error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项:  值“0”不匹配值“2”(jrtpl ...

  10. Arduino数字引脚作为GPIO的使用

    引脚与GPIO的关系 引脚(pin)是对芯片的外部物理接口的一个称呼,它是在不把这个物理接口投入到具体应用场合下的称呼.例如,我们可以说,某某芯片的P1.5引脚可以作为数字输出驱动外部数字设备,也可以 ...