Oracle11G 在线重定义】的更多相关文章

create tablespace tbs1 datafile '/opt/oracle/oradata/haier/tbs1.dbf' size 500m autoextend on maxsize 2G; create tablespace tbs2 datafile '/opt/oracle/oradata/haier/tbs2.dbf' size 500m autoextend on maxsize 2G; create tablespace tbs3 datafile '/opt/or…
==================原始表================原始表=====================原始表 create table BUILDING_temp(building_id NUMBER(19) not null,buildingform VARCHAR2(10),city_code VARCHAR2(4)) alter table BUILDING add constraint PK_BUILDING primary key (BUILDING_ID) ===…
1.1.TAB_TAOBAO_BILL 1.1.1检查下这张表是否可以在线重定义,无报错表示可以,报错会给出错误信息: exec dbms_redefinition.can_redef_table('ycheng', 'P_TAB_TAOBAO_BILL');   1.1.2.expdp导出表进行备份(这里的DATA_PUMP_1目录是/data1/dpdump) expdp \'\/ as sysdba\' directory=DATA_PUMP_1 tables=TAB_TAOBAO_BIL…
实验环境:RHEL 6.4 + Oracle 11.2.0.3实验:在线重定义 普通表 为 分区表,包括主键对应的索引都改造为分区索引. 1,构造普通表t_objects conn test1/test1; create table t_objects as select * from dba_objects; SQL> select count(1) from t_objects; COUNT(1) ---------- 468738 --t_objects建立主键和索引 alter tabl…
在一个高可用系统中,如果需要改变一个表的定义是一件比较棘手的问题,尤其是对于7×24系统.Oracle提供的基本语法基本可以满足一般性修改,但是对于把普通堆表改为分区表,把索引组织表修改为堆表等操作就无法完成了.而且,对于被大量DML语句访问的表,幸运的是,Oracle从9i版本开始提供了在线重定义表功能,通过调用DBMS_REDEFINITION包,可以在修改表结构的同时允许DML操作. 在线重定义表具有以下功能: 修改表的存储参数: 可以将表转移到其他表空间: 增加并行查询选项: 增加或删除…
二.        概念理解 在线重定义用于对表的逻辑或者物理结构的修改,而且在修改时不影响表的可用性与传统方式相比.当一个表被重定义时,会被锁定为exclusive mode很短一段时间,这段时间的长短取决于表的依赖关系,和复杂度,而且这些对用户来说都是透明的. 注:如果对重定义期间表是否可用没有要求的话,可以使用更简单的方式.使用ALTER TABLE MOVE这个命令. 在线重定义时基于物化视图的,在同步数据时就是应用物化视图日志刷新物化视图,使得临时表中的数据和原表中的数据保持一致. 三…
Oracle 支持在线重定义表,也就是说我们可以在修改表结构(DDL)的同时进行相关的DQL.DML操作,使得前端的DML根本感觉不到表结构实际上已经发生了变化,对于用户而言是完全透明的.当然在线重定义期间,前端性能会稍微有所下降.Oracle提供的重定义包dbms_redefinition即是用与完成此操作.其实质是Oracle使用了智能物化视图及物化视图日志的方式.在对象结构重组期间,表现为一个本地对象的复制,重组期间发生的任何变化都会被刷新到最新. 1.在线重定义表的主要功能:     修…
dbms_redefinition在线重定义表结构 (2013-08-29 22:52:58) 转载▼ 标签: dbms_redefinition 非分区表转换成分区表 王显伟 在线重定义表结构 在线转换非分区表 分类: ORACLE新特性实践 刚接手一套系统应用数据库,因为项目建设期间种种原因,库是非归档模式也没有备份,更让我无语的是有个表增长的比较快,将近90G大小,每隔一段时间都要删除前三个月以前的数据,然后再用shrink收缩空间,因为是非分区表,shrink很是浪费时间,而且很多时间无…
dbms_redefinition在线重定义表结构 (2013-08-29 22:52:58) 转载▼ 标签: dbms_redefinition 非分区表转换成分区表 王显伟 在线重定义表结构 在线转换非分区表 分类: ORACLE新特性实践 刚接手一套系统应用数据库,因为项目建设期间种种原因,库是非归档模式也没有备份,更让我无语的是有个表增长的比较快,将近90G大小,每隔一段时间都要删除前三个月以前的数据,然后再用shrink收缩空间,因为是非分区表,shrink很是浪费时间,而且很多时间无…
基础介绍 Oracle Online Redefinition可以保证在数据表进行DDL类型操作,如插入.删除数据列,分区处理的时候,还能够支持DML操作,特别是insert/update/delete操作. 对一般的DDL过程而言,Oracle都会给数据对象一个独占表锁.也就是说,在进行DDL操作的过程中,我们是不能对数据表进行DML(增加.修改和删除操作).只有等待DDL结束,才能够继续操作. 也就是说,如果一个DDL持续时间很长,比如数据表海量大小,那么在这个长时间中,系统数据表其实是不能…
使用Oracle的在线重定义技术,可以将Oracle的普通表改为分区表.操作如下: STEP1:测试表是否可以在线重定义,这里以unixdev数据库的LIJIAMAN.BSTEST为例 EXEC DBMS_REDEFINITION.CAN_REDEF_TABLE('LIJIAMAN','BSTEST', DBMS_REDEFINITION.CONS_USE_PK); 如果表上没有主键,则会报错:SQL> exec dbms_redefinition.start_redef_table('LIJI…
--操作的用户需要有以下的权限 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…
--输出信息采用缩排或换行格式化 EXEC DBMS_METADATA.set_transform_param(DBMS_METADATA.session_transform, 'PRETTY', TRUE); --确保每个语句都带分号 EXEC DBMS_METADATA.set_transform_param(DBMS_METADATA.session_transform, 'SQLTERMINATOR', TRUE); --关闭表索引.外键等关联(后面单独生成) EXEC DBMS_MET…
今天在做数据抽取的时候,发现有一张业务表数据量达到了5000W,所以就想将此表改为分区表.分区表的有点如下: 1.改善查询性能:对分区对象的查询可以仅搜索自己关心的分区,提高检索速度.2.增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用:3.维护方便:如果表的某个分区出现故障,需要修复数据,只修复该分区即可:4.均衡I/O:可以把不同的分区映射到磁盘以平衡I/O,改善整个系统性能. 第一步:首先对要在线重定义的表自行验证,看该表是否可以重定义,如果不可以则会提示错误信息 SQL>…
今天因为要对一套数据库的数据抽取进行io优化,希望通过修改表结构将抽取io降下来,因为抽取只针对标签HAVE_FLAG为"0"的值进行抽取,抽取之后更新HAVE_FLAG为其他值,所以计划将HAVE_FLAG在时间分区里面再按照"0"和其他值进行list分区,控制SQL扫描的范围,再配合索引,降低IO. 准备工作 提取表和索引的语句. SELECT DBMS_METADATA.GET_DDL(OBJECT_TYPE => 'TABLE', NAME =>…
这里的问题实质是我们在头文件中直接定义全局变量或者函数,却分别在主函数和对应的cpp文件中包含了两次,于是在编译的时候这个变量或者函数被定义了两次,问题就出现了,因此,我们应该形成一种编码风格,即: 在一个头文件中要想定义一个全局变量,除非我们能够保证这个头文件仅仅只被一个cpp文件包含(也就是main函数所在的那个cpp文件),否则,我们都应该将对应的定义放在这个头文件对应的cpp文件中,仅仅在这个头文件中声明他,这样才能够保证这个变量不被重定义 下面是我找出问题的博客,转载自:C++中重定义…
出自:http://blog.163.com/clevertanglei900@126/blog/ 1 成员函数重载特征: a 相同的范围(在同一个类中) b 函数名字相同 c 参数不同 d virtual关键字可有可无 2 重写(覆盖)是指派生类函数覆盖基类函数,特征是: a 不同的范围,分别位于基类和派生类中 b 函数的名字相同 c 参数相同 d 基类函数必须有virtual关键字 3 重定义(隐藏)是指派生类的函数屏蔽了与其同名的基类函数,规则如下: a 如果派生类的函数和基类的函数同名,…
C++ 三大特性 封装,继承,多态 封装 定义:封装就是将抽象得到的数据和行为相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成类,其中数据和函数都是类的成员,目的在于将对象的使用者和设计者分开,   以提高软件的可维护性和可修改性 特性:1. 结合性,即是将属性和方法结合    2. 信息隐蔽性,利用接口机制隐蔽内部实现细节,只留下接口给外界调用    3. 实现代码重用 继承 定义:继承就是新类从已有类那里得到已有的特性. 类的派生指的是从已有类产生新类的过程.原…
warning C4005: “AF_IPX”: 宏重定义warning C4005: “AF_IPX”: 宏重定义 解决方法: 由以上代码可以看出如果在没有定义WIN32_LEAN_AND_MEAN宏的大前 提下windows.h有可能包含winsock.h 头文件,因此我们得出一个很简单 的解决方法就是在包含<windows.h>之前定义WIN32_LEAN_AND_MEAN宏,如 下所示: #define WIN32_LEAN_AND_MEAN #include <windows.…
类型定义的那个头文件只需要在功能源文件里#include 开始在主函数源文件里也#include,所以出现了重定义…
#ifndef 在头文件中的作用 在一个大的软件工程里面,可能会有多个文件同时包含一个头文件,当这些文件编译链接成一个可执行文件时,就会出现大量 “重定义”的错误. 在头文件中使用#ifndef #define #endif能避免头文件的重定义. 方法:例如要编写头文件test.h 在头文件开头写上两行: #ifndef _TEST_H #define _TEST_H//一般是文件名的大写 头文件结尾写上一行:#endif 这样一个工程文件里同时包含两个test.h时,就不会出现重定义的错误了.…
前言 很久没有写博客了,也是两个原因:一是自己觉得一直在班门弄斧,其实自己没什么技术可言:二是很多朋友的问题实际上可以自行解决,我经常觉得不该我来过问,或者是有时候我认为技术还得靠自己钻研,我一两句话不能让各位醍醐灌顶…… 不过还是偶尔做一下记录,免得博客界渐渐就把我淡忘了. 这篇博客主要给大家讲一下Spring中如何批量修改Bean的定义. 应用场景 我之前遇到一个很有意思的问题:我需要批量重定义特定类型的由Spring容器托管的Bean.具体体现在,我有很多控制器类(Controller)和…
windows.h和winsock2.h有类型重定义我是知道的,本来就一个库来说没问题,把winsock2放到windows.h前或先定义WIN32_LEAN_AND_MEAN都能解决问题但现的出了问题,自己写的一个库里要用到ws2tcpip,这个头文件第一个包含的头文件就是winsock2.h把它放到windows前,库是能成功编译了,但当我在一个wxWidgets中调用它时,又出现那个让人厌烦的错误 ““sockaddr”: “struct”类型重定义”明显是wxWidgets先包含了win…
发现重复定义是由于从两个不同的路径包含了同一个头文件而引起的,同事也建议从另外一个路径打开工程试试, 这才慢慢发现了原因.这个原因可能有些拗口,而事实上要出现这种错误也有些"曲折", 让我从不同情况下的类型重定义来解释一下吧. 我总结的类型重定义情况有三.一.没有在文件头加#pragma once指示符.Type1.h: //#pragma onceclass Type{}; Main.cpp: #include "Type1.h"#include "Ty…
1.重载:重载是在一个类中,函数名一样,参数类型或参数个数不同的一系列函数需要注意的是,与返回类型无关. class Test { public: void show(); void show(int a); void show(double a); void show(int a,int b); void show(int a,double b); }; 2.重写我们比较熟悉的另一个词是“覆盖”用在继承中,子类若没有重新定义父类的虚方法,则子类对象调用该方法时,使用的仍是父类的方法:否则,子类…
同一域名空间,函数名相同,签名不同 编译期绑定确定绑定函数,也称为静态多态 重写:覆盖(override) 虚函数 子类空间,函数名相同,签名相同 重定义:遮蔽(redefine) 非虚函数,子类成员函数与父类成员函数同名 虚函数,子类成员函数与父类成员函数同名但不同签名 多态:(动态多态) 运行期确定绑定对象,也称为动态多态 同签名虚函数构成覆盖 父类指针指向子类对象,调用属于子类的函数 顶层函数重载操作符 非对象操作数可以出现在操作符左边 使用类成员函数重载是,第一操作数必须是累的对象 顶层…
文章引用自:http://blog.163.com/clevertanglei900@126/blog/static/111352259201102441934870/ 重载overload:是函数名相同,参数列表不同 重载只是在类的内部存在.但是不能靠返回类型来判断. 重写override:也叫做覆盖.子类重新定义父类中有相同名称和参数的虚函数.函数特征相同.但是具体实现不同,主要是在继承关系中出现的 . 重写需要注意: 1 被重写的函数不能是static的.必须是virtual的 2 重写函…
Verilog重载模块参数: 当一个模块引用另外一个模块时,高层模块可以改变低层模块用parameter定义的参数值,改变低层模块的参数值可采用以下两种方式: 1)defparam 重定义参数语法:defparam path_name = value ;低层模块的参数可以通过层次路径名重新定义,如下例: module top ( .....) input....; output....; ; M1 U1 (..........); endmodule module M1(....); ; inp…
前一篇 http://www.cnblogs.com/iois/p/4085173.html 写有些地方不够准确,重新整理了一遍 函数重载(Function Overloading) C++允许同一范围(scope)( 在同一个类中 )内具有多个名称相同的函数.这些函数成为重载函数(overloaded function). C++ 使用函数声明的参数数量,参数类型,省略号存在或缺失 ( Presence or absence of ellipsis ), const 或 volatile来区分…
写的不是很明白,后来又重新整理过了,在: http://www.cnblogs.com/iois/p/4986790.html 函数重载(Function Overloading) C++允许同一范围(scope)(在同一个类中)内具有多个名称相同的函数.这些函数成为重载函数(overloaded function). C++ 使用函数声明的  参数数量,参数类型,省略号存在或缺失(Presence or absence of ellipsis),const 或 volatile 来区分同一范围…