oracle怎么查scn ORACLE怎么查DDL操作
oracle数据库怎么查询scn headroom
SELECT tim,
创新互联公司2013年至今,先为汉川等服务建站,汉川等地企业,进行企业商务咨询服务。为汉川企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
gscn,
round(rate),
round((chk16kscn - gscn) / 24 / 3600 / 16 / 1024, 1) "Headroom"
FROM (select tim,
gscn,
rate,
((((to_number(to_char(tim, 'YYYY')) - 1988) * 12 * 31 * 24 * 60 * 60) +
((to_number(to_char(tim, 'MM')) - 1) * 31 * 24 * 60 * 60) +
(((to_number(to_char(tim, 'DD')) - 1)) * 24 * 60 * 60) +
(to_number(to_char(tim, 'HH24')) * 60 * 60) +
(to_number(to_char(tim, 'MI')) * 60) +
(to_number(to_char(tim, 'SS')))) * (16 * 1024)) chk16kscn
from (select FIRST_TIME tim,
FIRST_CHANGE# gscn,
((NEXT_CHANGE# - FIRST_CHANGE#) /
((NEXT_TIME - FIRST_TIME) * 24 * 60 * 60)) rate
from v$archived_log
where (next_time first_time)))
order by 1, 2;
WITH sysstat AS
(select sn.begin_interval_time begin_interval_time,
sn.end_interval_time end_interval_time,
ss.stat_name stat_name,
ss.value e_value,
lag(ss.value, 1) over(order by ss.snap_id) b_value
from dba_hist_sysstat ss, dba_hist_snapshot sn
where ss.snap_id = sn.snap_id
and ss.dbid = sn.dbid
and ss.instance_number = sn.instance_number
and ss.dbid = (select dbid from v$database)
and ss.instance_number = (select instance_number from v$instance)
and ss.stat_name = 'calls to kcmgas')
select to_char(BEGIN_INTERVAL_TIME, 'mm/dd/yy_hh24_mi') || to_char(END_INTERVAL_TIME, '_hh24_mi') date_time,
stat_name,
round((e_value - nvl(b_value,0)) / (extract(day from(end_interval_time - begin_interval_time)) * 24 * 60 * 60
+ extract(hour from(end_interval_time - begin_interval_time)) * 60 * 60
+ extract(minute from(end_interval_time - begin_interval_time)) * 60 + extract(second from(end_interval_time - begin_interval_time))),0) per_sec
from sysstat where(e_value - nvl(b_value,0)) 0 and nvl(b_value,0) 0;
如何获取ORACLE的SCN
在Oracle9i中,可以使用dbms_flashback.get_system_change_number来获得
例如:
SQL select dbms_flashback.get_system_change_number from dual;
GET_SYSTEM_CHANGE_NUMBER
------------------------
2982184
在Oracle9i之前
可以通过查询x$ktuxe获得
X$KTUXE-------------[K]ernel [T]ransaction [U]ndo Transa[x]tion [E]ntry (table)
SQL select max(ktuxescnw*power(2,32)+ktuxescnb) from x$ktuxe;
MAX(KTUXESCNW*POWER(2,32)+KTUXESCNB)
------------------------------------
2980613
oracle 修改了一个值之后,如何查看原来的值的scn号?
如果你数据库运行在归档且闪回模式下的话,你可以使用以下命令来查询原来的值
select * from 你的表 as of timestamp to_timestamp('修改之前的日期','日期格式')
谁能介绍一下 oracle 中检查点 及SCN的用法。
有一家叫甲骨文的粮店,老板很严谨,为了防止仓库的粮食在买入卖出的时候发生问题,他制订一套流程,首先进出仓库的每一旦粮食都要求有一个编号(SCN),而且出入库之前必须先放到一个平台上(buffer cache),他命令仓库叫大头的伙计(datafile head)来首先记录这个编号,然后每隔一定的时间(log_checkpoint_timeout)或者库房平台上的粮食堆放到一定的数量或者仓库伙计换班(log swtich)的时候,一个叫“点点”(CKPT)的后院家奴就会把仓库伙计记录的信息拿给帐房先生同时还会催促码放在仓库平台的粮食入仓或者出仓(DBWn),帐房先生根据“点点”拿来的帐页记录到自己的帐本上。这样一来每天老板要和账房先生、仓库伙计进行账务的核对,一旦发现仓库伙计记录了而帐房先生没记录的情况就要求帐房先生把伙计记录的信息誊写到自己的帐本上,而如果发现帐房先生有记录了而仓库伙计这里却没有,那就麻烦大了,这说明仓库伙计有可能把之前的记录帐页给丢掉了,也就意味着粮食有丢失的危险,不过也不用过分担心,老板手下还有一个给力干将叫“SMON”, 是的,之所以给力就是因为是个洋和尚,外来的和尚会念经嘛。这个"SMON"的洋和尚会想办法去找这些编号的粮食,一旦找到就会让仓库伙计按照帐房先生的记录来重新同步自己的帐本,这事就算是完了,可一旦连“SMON”都搞不定,那么老板就头大了,生意就得关张,意味着有粮食可能会丢失。这时候要么从其他地方找来一摸一样的粮食充数,还要让帐房先生和仓库伙计的帐本都清空从0开始重新记录,以免又出现不同的情况。
不知道够不够白。。。。。
当前文章:oracle怎么查scn ORACLE怎么查DDL操作
文章位置:http://myzitong.com/article/heppoe.html