- 浏览: 557952 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (340)
- Spring (4)
- Hibernate (2)
- Linux (34)
- Oracle (145)
- Eclipse (1)
- UML (1)
- HTML&&JAVASCRIPT (11)
- JAVA (33)
- 设计模式 (1)
- 版本控制 (1)
- wrap框架 (3)
- IBATIS (5)
- Ruby (1)
- DWR (1)
- MINA (11)
- JBPM (2)
- 缓存技术 (4)
- 网络 (3)
- 应用服务器 (1)
- GWT (5)
- 杂谈 (2)
- ICE (4)
- XML (2)
- ArcGis (2)
- Flex (8)
- junit单元测试 (1)
- SNMP (1)
- 存储 (1)
- office (1)
- MongoDB (0)
- Greenplum (3)
- 管理点滴 (1)
- C++ (6)
- 网络入门 (3)
- Tomcat (7)
- JMX (0)
- webservice (1)
- Oracle的10046事件 (1)
- Library cache内部机制详解 (1)
- expdp通过dblink来导入 (1)
最新评论
-
yuanliangding:
有没有关于mock的更多知识。
基于mock对象和JUnit框架简化Spring Web组件单元测试 -
saup007:
ssh端口不是22,怎么搞呢?
Greenplum 学习笔记 -
springmvc-freemarker:
java开源项目源码实例下载
Apache上全部JAVA开源项目简介 -
bobbell:
哇塞,你真厉害,整理的非常全面。我是一个java barcod ...
Greenplum 学习笔记 -
wsj55133245513324:
这不是bug,你将日志级别从debug提升到INFO 就好了 ...
Spring,smppapi,apache mina, ssl快速实现安全的smpp(5)
oracle联机重定义表示例
Oracle 9i 之后可以进行联机重定义表(Online Redefine Tables,或"在线重定义表").该特性从某种程度上提供了一定的高可用性.通过该功能可以做到:
修改表的存储参数
移动该表到相同 Schema 下的 不同表空间内
添加并行查询支持
添加或删除分区
重建表以便减少碎片
在普通表和索引组织(index-organized)表之间互相转换
添加或删除列
做一个从普通表到分区表之间的转换操作.可以用 DBA 用户操作.如果是普通用户需要有DBMS_REDEFINITION 包的可执行权限以及如下权限:
* CREATE ANY TABLE
* ALTER ANY TABLE
* DROP ANY TABLE
* LOCK ANY TABLE
* SELECT ANY TABLE 下面通过一个例子来简单演练一把.假定目前产品库有一个非分区表 TEST. 准备对把该表联机修改为分区表.
我们的测试表结构(ID列为PK):
SQL> DESC TEST
Name Null? Type
----------------------------------------- -------- -------------------
ID NOT NULL VARCHAR2(16)
USER_NAME VARCHAR2(16)
GMT NOT NULL TIMESTAMP(6)
1) 验证该表是否可以进行联机重定义(如果不可以会给出具体原因):
SQL> exec DBMS_REDEFINITION.can_REDEF_TABLE('SCOTT','TEST',1);
2) 创建中间临时表并划分分区:
CREATE TABLE test_p(
ID VARCHAR2(16) NOT NULL,
user_name VARCHAR2(16),
gmt TIMESTAMP(6) NOT NULL
)
PARTITION BY RANGE (gmt) (
PARTITION test_p200511 VALUES LESS THAN(TO_DATE('2005-12-01','yyyy-mm-dd')) ,
PARTITION test_p200512 VALUES LESS THAN(TO_DATE('2006-01-01','yyyy-mm-dd')) );3) 开始重定义表
BEGIN
DBMS_REDEFINITION.start_redef_table
('SCOTT','TEST','TEST_P',
'ID ID,
USER_name USER_name,
GMT GMT',
DBMS_REDEFINITION.cons_use_pk
);
END;
-- 注意条件 dbms_redefinition.cons_use_pk, 如果是根据 ROWID 做联机重定义,则用 dbms_redefinition.cons_use_rowid .
4) 创建索引限制以及触发器等.注:在10g 中,如果这些定义变化了.可以通过 DBMS_REDEFINITION.REGISTER_DEPENDENT_OBJECT() 来创建.如果这些对象定义不变化,则调用 DBMS_REDEFINITION.COPY_TABLE_DEPENDENTS() 即可.
ALTER TABLE test_p
ADD CONSTRAINT test_p_pk PRIMARY KEY (ID)
USING INDEX
TABLESPACE indx;
5) 同步表内容 . 如果需要同步的数据特别大,则可能考虑通过 prebuilt table 的方法先建立物化视图. EXEC DBMS_REDEFINITION.sync_interim_table ('SCOTT', 'test', 'test_p');
6) 结束重定义过程
EXEC DBMS_REDEFINITION.finish_redef_table ('scott', 'test', 'test_p');
7) 删除临时表 TEST_P.
drop table test_p;
*) 如果想中途停止重定义过程,则通过如下指令退出该过程:
EXEC dbms_redefinition.abort_redef_table('SCOTT', 'test','test_p');
进一步熟悉该过程的机理可以通过查询:
SELECT sql_text FROM v$sqlarea WHERE sql_text LIKE '%TEST_P%';联机重定义表必须考虑的问题: 会占用源表两倍的空间.此外还要考虑物化视图 Log 的空间以及带来的其他开销.
参考信息:Oracle9i Database Administrator's Guide Release 2 (9.2) 第十五章.10g 关于联机重定义表的改进可以参考 Oracle Database 10g Online Data Reorganization & Redefinition
本文来自[Svn中文网]转发请保留本站地址:http://www.svn8.com/sql/Oracle/2010051131961.html
发表评论
-
expdp通过dblink来导入
2011-12-14 15:01 1789create.sql: spo create.log rem ... -
Library cache内部机制详解
2011-12-14 14:55 893Library cache内部机制详解 http://www ... -
Oracle的10046事件
2011-12-14 14:53 2098Oracle的10046事件,可以跟踪应用程序所执行的SQL语 ... -
REDO LOG MEMBER STATUS 和 REDO LOG GROUP STATUS
2011-12-14 14:51 928V$LOG 中列出的是REDO LOG GROUP STA ... -
oracle的exp/imp使用方法学习(转)
2011-08-30 08:54 964exp/imp两个命令可以说是oracle中最常用的命令了 ... -
oracle几个awr报告
2011-08-09 14:25 900工作中,碰到的数据库慢的几个awr报告 -
Oracle Profile 使用详解
2011-06-21 14:41 972一、目的: Oracle系统中的profile可以用来对 ... -
ORA-27013
2011-04-13 14:25 1516很新的一个bug,看下你的 memory_target是不是& ... -
ACLE表连接方式分析及常见用法
2011-03-23 09:14 1115摘要: 针对在数据仓库 ... -
ORACLE 外部表应用
2011-03-09 14:58 1068SQL> create or replace direc ... -
How to convert a 32-bit database to 64-bit database on Linux
2011-02-18 14:09 1216How to convert a 32-bit databas ... -
expdp impdp 数据库导入导出命令详解
2011-02-16 09:10 1957一、创建逻辑目录,该命令不会在操作系统创建真正的目录,最 ... -
Oracle手工解/锁表
2011-01-25 14:15 2507手工锁表:lock table tbl_t1 in row ... -
oracle动态性能视图
2011-01-22 10:47 862Oracle动态性能视图个人整理 -
RBO规则介绍
2011-01-17 16:45 1082•无条件使用索引•使用内置的优先级别决定访问路径•比较难以 ... -
关于排序、sort_area_size、临时表空间
2011-01-13 15:30 1120简单陈述一下:针对每 ... -
创建索引ORACLE 需要做的工作
2011-01-13 14:53 1324一. 先来看一下创建索引要做哪些操作:1. 把inde ... -
表之间的连接
2011-01-13 10:42 798Join是一种试图将两个表结合在一起的谓词,一次只能连接2 ... -
重建索引的条件
2011-01-12 16:43 955如果索引存在碎片,那每个索引数据块上的索引数据就更少,会导致我 ... -
TKPROF使用学习
2011-01-10 17:38 726Tkprof工具可用来格式化sql trace产生的文件, ...
相关推荐
MAA的技术组成包括自动存储管理(ASM)、RMAN与快速恢复区、闪回技术、联机重配置、滚动升级以及联机重定义等。这些技术能够帮助企业在发生意外停机、计划停机、系统故障、数据故障和变更时,通过自动化手段迅速恢复...
第33章 使用重定义联机表 第34章 修正损坏块 第35章 使用日里民挖掘 第36章 使用管道 第37章 使用精细访问控制 第38章 使用精细审计 第39章 使用预警事件 第40章 转换rowid 第41章 其他常用包 ...
- **联机重定义表**:Oracle9i支持在线重定义表,无需停机即可进行表结构的修改,提高了系统的可用性。 除了上述特性,Oracle9i还包括其他管理特性,如增强的数据仓库功能、高级安全特性、网络性能优化等。这些新...
第33章 使用重定义联机表 第34章 修正损坏块 第35章 使用日里民挖掘 第36章 使用管道 第37章 使用精细访问控制 第38章 使用精细审计 第39章 使用预警事件 第40章 转换rowid 第41章 其他常用包 ...
优化模块提供了对象统计信息收集、图形化联机重定义、表和索引的大小估计、查询计划展现、对象Pin到内存中、DBMS_Profiler结果的图形化展现、SQL语句自动优化器、批量重组对象、创建新表重组单个表、修复行链接、...
清除、重定位或重命名联机重做日志文件 7-11 联机重做日志的配置 7-12 用 OMF 管理联机重做日志 7-13 获取组和成员的信息 7-14 归档重做日志文件 7-16 小结 7-18 8 管理表空间和数据文件 目标 8-2 概述 8-3 数据库...
第33章使用重定义联机表 第34章修正损坏块 第35章使用日里民挖掘 第36章使用管道 第37章使用精细访问控制 第38章使用精细审计 第39章使用预警事件 第40章转换ROWID 第41章其他常用包 习题答案
9. **联机重定义(Online Redefinition)**:在不中断服务的情况下,可以在线修改表的结构,降低了系统维护的风险和停机时间。 10. **分区(Partitioning)**:对大表进行分区,提高查询和维护性能,尤其适用于大...
第33章 使用重定义联机表 第34章 修正损坏块 第35章 使用日里民挖掘 第36章 使用管道 第37章 使用精细访问控制 第38章 使用精细审计 第39章 使用预警事件 第40章 转换rowid 第41章 其他常用包 ...
文档提到了多种分区表的操作方法,包括插入、交换分区、使用在线重定义、导出导入等,并讨论了分区表索引的分类和特定问题。 最后,文档阐述了Oracle中的锁机制。锁用于保证多用户环境下的数据完整性,防止多个事务...
第33章 使用重定义联机表 第34章 修正损坏块 第35章 使用日里民挖掘 第36章 使用管道 第37章 使用精细访问控制 第38章 使用精细审计 第39章 使用预警事件 第40章 转换rowid 第41章 其他常用包 ...
6. **联机重定义(Online Redefinition)**:允许在不影响业务的情况下在线修改表结构,提高了数据库维护的灵活性。 7. **高级安全特性**:包括细粒度审计、透明数据加密等,增强了数据安全性。 8. **性能优化**:...
使用Oracle支持的数据类型重试。 20. EXP-00019:处理参数失败。检查命令行参数并参考联机帮助。 21. EXP-00020:分配内存失败。减少导出缓冲区大小或增加运行时内存。 22. EXP-00021:只能在全数据库模式下增量...
使用联机重定义 只有C方案才能保证数据的完全一致性; -- 但是经过测试发现方案B和C都存在分区过程的不透明性,对EXCEPTION不好控制,另外C方案比较适合手工操作,不适合自动运行; -- B方案比较适合将非分区表中的数据放...
LogMiner是Oracle用来解析归档日志或联机重做日志的一个工具,主要用于捕捉表和索引的数据更改情况。在性能调优过程中,LogMiner可以帮助我们发现数据修改的模式,从而优化相关操作。 **1.7 关于materialized view...
- **定义**:指数据块的格式不符合Oracle数据库的标准格式要求,使得数据块无法被正确解读。 - **表现**:数据块格式错误,如头部信息损坏或数据结构混乱。 - **原因**: - 硬件故障:如硬盘损坏、内存故障等。 ...
- **解决方案**:使用正确的导出模式重试,确保符合Oracle导出工具的规范要求。 ### EXP-00013 回答'Y'、'N'、RETURN或'.'退出 - **错误描述**:用户输入了无效的命令响应。 - **解决方案**:遵循提示信息,仅输入...
一、填空 1.在多进程Oracle实例系统中,进程分为用户进程、后台进程和服务进程。 2.标准的SQL语言语句类型可以分为:数据定义语句(DDL)、数据操纵语句(DML)... Oracle数据库中角色分为系统预定义的角色和用户自定义的...