Oracle中Kill session的研究
作者: Eygleitpub link:http://www.itpub.net/235873.html 我们知道,在Oracle数据库中,可以通过kill session的方式来终止一个进程,其基本语法结构为:alter system kill session 'sid,serial#' ; 被kill掉的session,状态会被标记为killed,Oracle会在该用户下一次touch时清除该进程.我们发现当一个session被kill掉以后,该session的paddr被修改,如果有多个session被kill,那么多个session的paddr都被更改为相同的进程地址:SQL> select saddr,sid,serial#,paddr,username,status from v$session where username is not null; SADDR
关于高级复制的一些数据同步
果你原来两个数据库的表里数据不一致,你用dbms_repcat.add_master_database加表的时候用了:copy_rows=>false, oracle不会帮你做同步,因为你指明了说“不需要复制数据,我保证数据是一致”。这样你永远别想靠replication把数据同步。你要么设置copy_rows=>ture,这样oracle会把远程表清空,做数据同步。要么在用dbms_repcat.add_master_database就手工把数据搞成一致,再用copy_rows=>false把表加入replication group. 一般数据比较多都应该这么做。大致上你可以:suspend replication group:BEGINDBMS_REPCAT.SUSPEND_MASTER
oracle自动生成编译所有函数、存储过程、触发器的语句
set feedback offset heading offset linesize 1000set pagesize 0set pause offset trimspool onset verify offspool tmp.sql;select 'alter '||object_type||' '||owner||'.'||object_name||' compile;'from dba_objectswhere status = 'INVALID'and object_type in ('FUNCTION','JAVA SOURCE','JAVA CLASS','PROCEDURE','PACKAGE','TRIGGER');select 'alter package '||owner||'.'||object_name||' compile body;'from dba_objectswhere status = 'INVALID'and object_type = 'PACKAGE BODY';spool off;@tmp[@more@]