表在线重定义(无主键)

1、T2表结构

SQL> desc t2
Name           Type          Nullable Default Comments 
-------------- ------------- -------- ------- -------- 
OWNER          VARCHAR2(30)  Y                         
OBJECT_NAME    VARCHAR2(128) Y                         
SUBOBJECT_NAME VARCHAR2(30)  Y                         
OBJECT_ID      NUMBER        Y                         
DATA_OBJECT_ID NUMBER        Y                         
OBJECT_TYPE    VARCHAR2(19)  Y                         
CREATED        DATE          Y                         
LAST_DDL_TIME  DATE          Y                         
TIMESTAMP      VARCHAR2(19)  Y                         
STATUS         VARCHAR2(7)   Y                         
TEMPORARY      VARCHAR2(1)   Y                         
GENERATED      VARCHAR2(1)   Y                         
SECONDARY      VARCHAR2(1)   Y   

2、创建中间表

CREATE TABLE T2_1
AS
SELECT * FROM t2 WHERE 1=0;

3、验证T2是否用于重定义(因没有主键,采用rowid实现)

EXEC DBMS_REDEFINITION.CAN_REDEF_TABLE(user, 'T2', DBMS_REDEFINITION.cons_use_rowid);

4、执行表的在线重定义

EXEC DBMS_REDEFINITION.START_REDEF_TABLE(USER, 'T2', 'T2_1','OWNER OWNER, OBJECT_NAME OBJECT_NAME, SUBOBJECT_NAME  SUBOBJECT_NAME, OBJECT_ID OBJECT_ID, DATA_OBJECT_ID DATA_OBJECT_ID, OBJECT_TYPE OBJECT_TYPE, CREATED CREATED, LAST_DDL_TIME LAST_DDL_TIME, TIMESTAMP TIMESTAMP, STATUS STATUS, TEMPORARY TEMPORARY, GENERATED GENERATED, SECONDARY SECONDARY',DBMS_REDEFINITION.cons_use_rowid);

说明:
1)采用单引号列出T2与T2_1表列的对应关系
2)列与列之间采用单引号分割,单引号后面要有空格

5、同步数据(可选)

exec dbms_redefinition.sync_interim_table(user, 'T2', 'T2_1');

6、执行结束在线定义过程

EXEC DBMS_REDEFINITION.FINISH_REDEF_TABLE(user, 'T2', 'T2_1');

7、删除中间表

drop table t2_1 purge;

8、处理T2表(删除隐藏列)

SQL> select col#,name,type# from SYS.COL$ WHERE OBJ#=(select object_id from dba_objects where object_name='T2');
 
      COL# NAME                                TYPE#
---------- ------------------------------ ----------
         1 OWNER                                   1
         2 OBJECT_NAME                             1
         3 SUBOBJECT_NAME                          1
         4 OBJECT_ID                               2
         5 DATA_OBJECT_ID                          2
         6 OBJECT_TYPE                             1
         7 CREATED                                12
         8 LAST_DDL_TIME                          12
         9 TIMESTAMP                               1
        10 STATUS                                  1
        11 TEMPORARY                               1
        12 GENERATED                               1
        13 SECONDARY                               1
         0 SYS_C00014_11081015:39:40$              1
--发现一个多余隐藏列SYS_C00014_11081015:39:40$,我们需要删除
SQL>  alter table t2 set unused ("SYS_C00014_11081015:39:40$");
 
Table altered

SQL>  alter table t2 drop unused columns;
 
Table altered

表在线重定义(有主键)

发表在 Oracle | 2 条评论

Oracle 10g RAC相关进程

Oracle Clusterware进程
OCSSD
该进程是Clusterware最关键进程,如果出现异常,会导致系统重启,该进程提供的服务为CSS(Cluster Synchronization Service)服务。CSS服务是通过多种心跳机制来实现实时监控集群的健康状态,提供脑裂保护等基础集群服务功能。CSS服务有两种心跳机制:一种是通过私有网络的Network Heartbeat,另一种是通过Voting Disk的Disk Heartbeat

CRSD
CRSD是实现“高可用(HA)”的主要进程,它所提供的服务叫做CRS(Cluster Ready Service)服务。该进程对Oracle Clusterware中的资源进行监控,并在这些资源运行异常时进行干预,包括关闭、重启进程或者转移服务。

EVMD
该进程负责发布CRS产生的各种事件(Event)

RACGIMON
该进程负责检查数据库的健康状态,负责Service的启动、停止、故障转移(Failover)。这个进程会建立到数据库的持久连接,定期检查SGA中的特定信息,该信息由PMON进程定时更新

OPROCD
该进程也叫做Process Monitor Daemon。如果在非Linux平台上,并且没有使用第三方的集群软件,会看到这个进程。实现“IO隔离”功能,在Liunx平台上,是利用hangcheck-timer模块来实现“IO隔离”功能

Oracle Instance进程
LMSn
负责数据块在实例间的传递,对应的服务叫作GCS(Global Cache Service),这个进程的数量是通过参数GCS_SERVER_PROCESSES控制,缺省值是2个,取值范围为0至9

LMD
负责在多个实例间协调数据库的访问顺序,保证数据的一致性访问,对应的服务是GES(Global Enqueue Service)

LCK
负责Non-Cache Fusion资源的同步访问,每个实例只有一个LCK进程

LMON
各个实例的LMON进程进行定期通信,以检查集群中各节点的健康状态,当某个节点出现故障时,负责集群重构、GRD恢复等操作,它提供的服务叫作 Cluster Group Services(CGS)

DIAG
监控实例的健康状态,并在实例运行出现错误时收集诊断数据记录到Alert.log日志中

GSD
负责从客户端工具接收命令,为用户提供管理接口

发表在 Oracle RAC | 评论关闭

路走对了,就不怕远

1、一天很短,开心了就笑,不开心了就过会儿再笑。
2、真正的朋友从不追究你的过错,也从不嫉妒你的成功。
3、爱情就像是冰激凌,吃掉美味的奶油,就露出了它最真实的面目。
4、我宁愿爱上一个我不能拥有的人,也不想拥有一个我无法爱上的人。
5、品格不由你占有的东西决定,而是由你匮乏的东西塑造的。
6、痛过,才知道如何保护自己; 哭过,才知道心痛是什么感觉, 傻过,才知道适时的坚持与放弃, 爱过,才知道自己其实很脆弱。 其实,生活并不需要这么些无谓的执著,没有什么就真的不能割舍。
7、命,乃失败者的借口;运,乃成功者的谦辞。
8、一个人头脑聪明本领大,当然是好事,脑瓜子笨一点能力差一点也没有关系,只要有必胜的信念,只要有决不放弃的原则,照样能成为一个优秀的人物。
9、派大星:“嗨,海绵宝宝,我们去抓水母吧。”海绵宝宝:“对不起,今天不行,我要上学。”派大星:“如果你去上学的话,我今天该干点什么?”海绵宝宝:“我不知道,一般我不在家的时候,你都干些什么啊?”派大星:“等你回来。”
10、想把别人推进地狱的人,多半自己也住在地狱里。
11、也许我们很难知道,离成功究竟还有多远,但是我们十分清楚,自己到底还能撑多久。我们不一定能等到成功到来的那一刻,但可以肯定的是,我们可以坚持到自己的最后一刻。
12、你拨动了我的心弦,却不曾为我驻足,当我以为你还在的时候,你已没有踪影,当你回头找寻我的时候,我已开始寻找自己的天空。亲爱的,我把最美好的年华留给了你,我,于你无愧。亲爱的,我的青春有限,承担不起一生一世的等待。亲爱的,让我骄傲一次,这次,是我不要你了。
13、安妮宝贝《彼岸花》:任何一件事情,只要心甘情愿,总是能够变得简单。
14、《刺猬的优雅》:某些事情必须结束,某些事情必须开始。我只是渴望一件事情:那就是希望别人能让我平静地度过此生,不要对我太苛刻,此外,我能每天花点时间,能够尽情满足自己的饥渴,足矣。
15、《飘》:我从来不是那样的人,不能耐心地拾起一片碎片,把它们凑合在一起,然后对自己说这个修补好了的东西跟新的完全一样。一样东西破碎了就是破碎了,我宁愿记住它最好时的模样,而不想把它修补好,然后终生看着那些碎了的地方。
16、魏剑美:做人做事最好的状态就是:不刻意。不刻意自我表现,也不刻意淡泊名利;不刻意迎合,也不刻意狂狷;不刻意追逐流行,也不刻意卓尔不群。如是,则不心累,不纠结,不失望。
17、路金波:莫要晒甜蜜,莫要秀幸福。因为物理学常识告诉我们,晒容易流失水分,而冷藏是保鲜的最佳方式。
18、韩寒:鹅卵石为什么被人捏在手里玩?就是因为它没有棱角。 
19、宋丹丹:原本只想要一个拥抱,不小心多了一个吻,然后你发现需要一张床,一套房,一个证……离婚的时候才想起:你原本只想要一个拥抱。
20、路走对了,就不怕远!

发表在 至理名言 | 评论关闭