--操作的用户需要有以下的权限
GRANT CONNECT, RESOURCE TO CMIGDW;
GRANT EXECUTE ON DBMS_REDEFINITION TO CMIGDW;
GRANT ALTER ANY TABLE TO CMIGDW;
GRANT DROP ANY TABLE TO CMIGDW;
GRANT LOCK ANY TABLE TO CMIGDW;
GRANT CREATE ANY TABLE TO CMIGDW;
GRANT SELECT ANY TABLE TO CMIGDW;
GRANT CREATE ANY TRIGGER TO CMIGDW;
GRANT CREATE ANY INDEX TO CMIGDW; --需要分区的表
select * from CMIGDW.TEST_DATE_DIM; --表结构
create table TEST_DATE_DIM
(
date_id NUMBER,
year_ NUMBER,
half_year VARCHAR2(20),
season_id VARCHAR2(20),
season VARCHAR2(20),
month_ NUMBER,
week NUMBER
); --创建一个与TEST_DATE_DIM 表字段相同,但是分区的表
create table TEST_DATE_DIM2
(
date_id NUMBER,
year_ NUMBER,
half_year VARCHAR2(20),
season_id VARCHAR2(20),
season VARCHAR2(20),
month_ NUMBER,
week NUMBER
)
PARTITION BY list (month_)
(
PARTITION P1 values (201501),
PARTITION P2 values (201502),
PARTITION P3 values (default)
); --开始在线重定义
Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.3.0
Connected as CMIGDW@CMIG_TEST SQL> EXEC dbms_redefinition.start_redef_table('CMIGDW', 'TEST_DATE_DIM', 'TEST_DATE_DIM2');
begin dbms_redefinition.start_redef_table('CMIGDW', 'TEST_DATE_DIM', 'TEST_DATE_DIM2'); end;
ORA-12089: 不能联机重新定义无主键的表 "CMIGDW"."TEST_DATE_DIM"
ORA-06512: 在 "SYS.DBMS_REDEFINITION", line 56
ORA-06512: 在 "SYS.DBMS_REDEFINITION", line 1490
ORA-06512: 在 line 1
需要有主键
--开始执行在线重定义
SQL> EXEC dbms_redefinition.start_redef_table('CMIGDW', 'TEST_DATE_DIM', 'TEST_DATE_DIM2');
PL/SQL procedure successfully completed SQL>
SQL> DECLARE
2 error_count pls_integer := 0;
3 BEGIN
4 dbms_redefinition.copy_table_dependents('CMIGDW', 'TEST_DATE_DIM', 'TEST_DATE_DIM2',
5 0, true, false, true, false,
6 error_count);
7
8 dbms_output.put_line('errors := ' || to_char(error_count));
9 END;
10 /
PL/SQL procedure successfully completed
--结束在线重定义
SQL> EXEC dbms_redefinition.finish_redef_table('CMIGDW', 'TEST_DATE_DIM', 'TEST_DATE_DIM2');
PL/SQL procedure successfully completed SQL> select * from TEST_DATE_DIM PARTITION (p1);
SQL> select * from TEST_DATE_DIM2; -- 删除中间表
DROP TABLE TEST_DATE_DIM2;

oracle 11g 将非分区表转换为分区表在线重定义的更多相关文章

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

    实验环境:RHEL 6.4 + Oracle 11.2.0.3实验:在线重定义 普通表 为 分区表,包括主键对应的索引都改造为分区索引. 1,构造普通表t_objects conn test1/tes ...

  2. oracle在线重定义表

    在一个高可用系统中,如果需要改变一个表的定义是一件比较棘手的问题,尤其是对于7×24系统.Oracle提供的基本语法基本可以满足一般性修改,但是对于把普通堆表改为分区表,把索引组织表修改为堆表等操作就 ...

  3. (Oracle)已有数据表建立表分区—在线重定义

    今天在做数据抽取的时候,发现有一张业务表数据量达到了5000W,所以就想将此表改为分区表.分区表的有点如下: 1.改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度.2.增强可用性: ...

  4. Oracle在线重定义(online redefinition)--将普通表改为分区表

    使用Oracle的在线重定义技术,可以将Oracle的普通表改为分区表.操作如下: STEP1:测试表是否可以在线重定义,这里以unixdev数据库的LIJIAMAN.BSTEST为例 EXEC DB ...

  5. oracle普通表转分区表(在线重定义方式)

    1.1.TAB_TAOBAO_BILL 1.1.1检查下这张表是否可以在线重定义,无报错表示可以,报错会给出错误信息: exec dbms_redefinition.can_redef_table(' ...

  6. Oracle 在线重定义表分区

    ==================原始表================原始表=====================原始表 create table BUILDING_temp(building ...

  7. 基于 dbms_redefinition 在线重定义表

    Oracle 支持在线重定义表,也就是说我们可以在修改表结构(DDL)的同时进行相关的DQL.DML操作,使得前端的DML根本感觉不到表结构实际上已经发生了变化,对于用户而言是完全透明的.当然在线重定 ...

  8. dbms_redefinition在线重定义表结构 可以在表分区的时候使用

    dbms_redefinition在线重定义表结构 (2013-08-29 22:52:58) 转载▼ 标签: dbms_redefinition 非分区表转换成分区表 王显伟 在线重定义表结构 在线 ...

  9. dbms_redefinition在线重定义表结构

    dbms_redefinition在线重定义表结构 (2013-08-29 22:52:58) 转载▼ 标签: dbms_redefinition 非分区表转换成分区表 王显伟 在线重定义表结构 在线 ...

随机推荐

  1. int类型转换成String , 不足n位 在前面补0

    1.String.format("%02d", 5);-->结果:05 0代表前面要补的字符 2代表字符串长度 d表示参数为整数类型 2.秒转换成时分秒 private St ...

  2. CodeForces - 710C Magic Odd Square(奇数和幻方构造)

    Magic Odd Square Find an n × n matrix with different numbers from 1 to n2, so the sum in each row, c ...

  3. FineUI从iis6迁移到iis7.5上遇到的奇葩事情

    前天把一台旧服务器上的windows2003+iis6上的fineui项目迁移到了win7+iis7上面来了,没有编译,直接以源码方式运行. 本来运行的好好的,昨天下午在上面用vs2010打开了一下看 ...

  4. Data Base 常用数据库之top/limit/rownum用法

    常用数据库之top/limit/rownum用法 一.常用数据库: sql server: select top 10 from users where status=1 mysql: select ...

  5. 100个大型机器学习数据集汇总(CV/NLP/音频方向)

    网站首页: 网址:数据集

  6. 【bzoj4800】: [Ceoi2015]Ice Hockey World Championship dfs

    [bzoj4800]: [Ceoi2015]Ice Hockey World Championship N<=40所以如果直接dfs背包会TLE 考虑Meet-in-the-middle 如果把 ...

  7. wamp配置apache虚拟主机支持多域名访问localhost

    1.背景: 在进行网站开发的时候,通常需要以http://localhost或者127.0.0.1等地址来访问本地环境的网站.不过随着开发项目的增多,需要每次先访问localhost然后再选项目,显得 ...

  8. P2948 [USACO09OPEN]滑雪课Ski Lessons

    题意:Bessie去滑雪,限时T,滑雪场有S节课 每节课开始于$m_i$,长度为$l_i$,可以将Bessie的能力值变成$a_i$(注意是变成不是增加) 有n个滑雪坡,去滑雪需要$c_i$的能力,并 ...

  9. IDEA 中 使用 git(Git)

    GitLab GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务.安装方法是参考GitLab在GitHub上的Wiki页面. Git Git( ...

  10. lvs 中DR模式负载均衡及keepalived

    lvs DR配置 LVS负载均衡:三种负载均衡模式:DR,TUN(ip隧道),NAT,这里我们介绍DR模式 server1: 首先,配置server机yum源 方便后期实验流畅vim /etc/yum ...