当前位置:  数据库>oracle

Oracle 11g 在线重定义

    来源: 互联网  发布时间:2017-05-20

    本文导语: 在Oracle9i出现之前,你只能通过MOVE或导出和导入的方式来进行表的重定义,因此表重定义的过程可能相当漫长或者说是一个离线过程,在此期间应用程序对该表的操作将失败。除了这个,如果用exp,我们也不能保证exp的时候该表...

在Oracle9i出现之前,你只能通过MOVE或导出和导入的方式来进行表的重定义,因此表重定义的过程可能相当漫长或者说是一个离线过程,在此期间应用程序对该表的操作将失败。除了这个,如果用exp,我们也不能保证exp的时候该表的数据没有改变(除非单用户),而imp更是一个漫长的过程。为了解决这个问题,Oracle9i在其DBMS_REDEFINITION软件包中引入了在线重定义功能。这个特性对24*7的数据库系统来说非常重要,使用这个技术DBA可以在保持表允许DML语句的情况下修改结构,比如添加列、移动表到其他表空间、处理表的碎片等,当然了对于表的碎片处理,在10g以后,可以考虑使用shrink操作来实现,关于shrink在这里不做讨论。

在线重定义具有以下功能:

 


(1)修改表的存储参数;

(2)可以将表转移到其他表空间;

(3)在表上增加、修改或删除一列或是多列;

(4)增加并行查询选项;

(5)增加分区支持;

(6)修改分区结构;

(7)重建表以减少碎片;

(8)将堆表改为索引组织表或相反的操作;

 


在线重定义的方法

 


1.基于主键

2.基于ROWID。ROWID的方式不能用于索引组织表,而且重定义后会存在隐藏列M_ROW$$。

默认采用主键的方式。

 


在线重定义的一些限制

 


1.要求原始表和中间表在同一个方案下;

2.要求有2倍甚至是多于2倍的表空间空间;

3.如果使用主键重定义的方式,原始表上要有主键;

 

 

 

对于在线重定义的步骤,这里不再具体说明,我们通过一个实验来演示一下,下面是一个把普通表转换成分区表在线重定义的例子

 


一、首先创建用户tj,并授予能够完成在线重定义的权限和角色

SQL> create user tj identified by tj

  2  default tablespace users

  3  temporary tablespace temp

  4  quota unlimited on users;

User created.

 


SQL> GRANT CREATE SESSION, CREATE ANY TABLE,ALTER ANY TABLE,

  2        DROP ANY TABLE, LOCK ANY TABLE  ,SELECT ANY TABLE,

  3        CREATE ANY INDEX,CREATE ANY TRIGGER

  4  TO TJ;

Grant succeeded.

 


SQL> GRANT EXECUTE_CATALOG_ROLE TO TJ;

Grant succeeded.


    
 
 

您可能感兴趣的文章:

  • oracle异常(预定义异常,自定义异常)应用介绍
  • Oracle将查询的结果放入一张自定义表中并再查询数据
  • Oracle中用GROUPING SETS分组自定义汇总
  • Oracle返回表类型的自定义函数
  • 深入ORACLE变量的定义与使用的详解
  • Oracle中归档模式的定义简述
  • Oracle定义DES加密解密及MD5加密函数示例
  • Oracle10g 预定义主要角色
  • Oracle定义联合数组及使用技巧
  • 杀掉oracle在线用户脚本分享
  • shell如何获取oracle错误码 在线等
  • Oracle与JSDK4.0环境变量冲突,如何解决(在线等待)?
  • 请问,我如何在unix下用c/c++连结数据(oracle)??在线等待!!!!
  • 在线等待:用子线程与ORACLE数据库建立连接的问题。
  • 寻求在Linux 8.0上安装Oracle 9i的安装文档,分不够,可以再加,在线等待。。。
  • 安装ORACLE时的安装界面显示一堆乱码如何解决(我很菜的,分100可再加)---在线
  • 请教: Oracle数据库,谢谢!!!!在线
  • Linux下安装oracle的问题,在线急等,高手帮忙 !!!
  • solaris9下怎么查看oracle服务是否启动,以及怎么启动,在线等待。
  • FC6下安装Oracle9i错误,请高手指教 在线等 解决即结贴
  • oracle9i在linux9上安装的权限问题!在线等候!
  • ubuntu系统中运行java程序调用oracle 的sqlplus,为什么找不到sqlplus呢?在线等
  • 急!!!linux9下安装oracle9i在configuration Tool过程出现错误,在线等待,解决立即给分!
  • ORACLE数据库在线备份原理祥述
  • 取Oracle数据库中的中文数据乱码的问题!!急:在线等待
  • linux 环境下 odbc程序 往oracle数据库insert 中文 乱码问题,请教高手,急!!!!在线等~~
  • linux(redhat9)下安装oracle9。新手问题(急,在线等)
  • jsp显示oracle中varchar2类型字段 在线等待
  • jsp访问oracle超出打开游标的最大数是什么原因?急,在线给分。
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • 请问大家用oracle数据库, 用import oracle.*;下的东西么? 还是用标准库?
  • Oracle 数据库(oracle Database)性能调优技术详解
  • Oracle 12c的九大最新技术特性介绍 iis7站长之家
  • ORACLE日期相关操作
  • Linux系统下Oracle的启动与Oracle监听的启动
  • ORACLE数据库常用字段数据类型介绍
  • 请问在solaris下安装ORACLE,用root用户和用oracle用户安装有什么区别么?
  • Oracle 12c的九大最新技术特性介绍
  • 网间Oracle的连接,远程连接Oracle服务器??


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,