10G之ORA_ROWSCN
Oracle 10G中,使用ora_rowscn可以查询到记录最后变更的SCN。不过,默认是基于块级维护(norowdependencies),也就是说,一个BLOCK上的所有行会共享同一个SCN,如果一个BLOCK上的某一行更新了,该BLOCK上的其它行的SCN也会推进,这是因为此时的SCN是从BLOCK头部获取的。另外也可以实现行级维护,在建表时通过加上rowdependencies选项来指定,这样Oracle会为每一行存储各自的SCN。
Oracle 10G中,使用ora_rowscn可以查询到记录最后变更的SCN。不过,默认是基于块级维护(norowdependencies),也就是说,一个BLOCK上的所有行会共享同一个SCN,如果一个BLOCK上的某一行更新了,该BLOCK上的其它行的SCN也会推进,这是因为此时的SCN是从BLOCK头部获取的。另外也可以实现行级维护,在建表时通过加上rowdependencies选项来指定,这样Oracle会为每一行存储各自的SCN。
Oracle 9I、10G都可以采用:Alter database datafile file_name offline drop;来删除数据文件,但当数据文件为非空时,存放在该数据文件上的数据就无法读据了:
Hash partitioned global index是10G的新特性,Oracle对哪种情况下适合使用该索引,也有一点说明:
Hash partitioned global indexes can improve the performance of indexes
where a small number of leaf blocks in the index have high contention
in multiuser OLTP environments. Queries involving the equality and IN
predicates on the index partitioning key can efficiently use hash-partitioned global indexes.
V$SESSION中的AUDSID是会话连接到Oracle数据库的识别标志之一。我们可以在当前会话中使用USERENV(‘SESSIONID’)来获得自己的AUDSID,而AUDSID,其实是从SYS.AUDSES$这个SEQUENCE中获取的。
在yangtingkun的BLOG上看到了“限制用户只能KILL本用户会话”的文章
正好有这个需求,收藏了一下。文中使用了两个存储过程来实现:
DML操作在UNDO中的信息
通过Dump UNDO Block观察到DML操作记录在UNDO中的信息,主要为以下内容:
1、对于Insert操作,需要在UNDO中记录插入行的ROWID(并非直接记录,而是拼凑出来的)。
2、对于Update操作,需要在UNDO中记录被更新列的前镜像,同时也会记录被更新行的ROWID。
3、对于Delete操作,需要在UNDO中记录被删除行所有列的值(前镜像)及ROWID。
应用人员提出要修改SEQUENCE的LAST_NUMBER,增加50W,其间的序列值用于新增数据使用。
翻开手册发现没有直接修改LAST_NUMBER的语句,倒是在PL/SQL中可以直接修改。
这里以LAST_NUMBER增加10000为例,修改过程如下:
在DBA 2.0都到来的时代,还谈UNDO表空间手工管理,实在是有点土了。
可惜这东西,真没接触过,做点简单的笔记,备用,没准还有机会用上。
在默认情况下(也就是AUTHID DEFINER时),Oracle在执行、编译存储过程时并不检查定义者拥有的角色,只是检查其被显式授予的权限,这样就导致了执行、编译存储过程时报权限不足、表不存在的错误(例二的情况,使用AUTHID CURRENT_USER也不行,详见正文):
ORA-01031: insufficient privileges ORA-00942: table or view does not exist |
借一次drop partition机会,观察下相关表及分区的锁情况。
由于表较大,便于观察,作个简单的记录,供以后参考(相关表名等信息略作更改):
记得刚刚当DBA时,查询了一下v$lock视图,做了个group by:
SYS@DB1> select type,count(*) from v$lock 2 group by type order by 2 desc; TYPE COUNT(*) ---- ---------- MR 1193 TM 83 TX 14 RT 3 TS 2 XR 2 DM 1 PI 1 |
发现大量的“MR”锁,赶紧上报说:数据库有问题啊,大量MR锁。哈哈,闹了个小笑话。
10G中,当数据库无法连接,又需要做SYSTEM DUMP时,可以尝试使用sqlplus的prelim选项
站内搜索