HelloDBA

Monday, July 31, 2006, 08:54 PM ( 21 浏览 ) - 技术文档 - 发表 fuyuncat
如果某个用户不小心删除了一个十分重要的表,后果将非常严重。在9i中提供的闪回特性只能恢复DML语句造成的影响,而无法恢复DDL语句的影响。DBA只能通过重建一张表,然后从备份数据中导入。

利用Oracle 10G中的闪回表的特性,DBA可以轻松完成这项工作,并将影响降到最小。下面就举一个例子说明:

完整文章

Saturday, July 8, 2006, 09:06 AM ( 27 浏览 ) - 案例 - 发表 fuyuncat
生产环境中发现一条语句很慢,拿回来一看,其实是一个简单的Group By语句:

表CCMMT的数据量比较大,5M多条记录。

1、
SQL> select CDE, CID
2 from CCMMT
3 GROUP BY CDE, CID
4 having max(ADT) < sysdate - 180;

707924 rows selected.

Elapsed: 00:06:17.49

完整文章


Friday, July 7, 2006, 08:53 PM ( 17 浏览 ) - 技术文档 - 发表 fuyuncat
ORA-01555(快照过旧)问题让很多人感到十分头痛。最近我们的生产系统上也报出了ORA-01555错误。就结合这次案例将ORA-1555问题作个案例分析,并浅析产生原因和各种解决办法。

如果要了解1555错误产生的原因,就需要知道ORACLE的两个特性:一致性读(Consistent Get)和延迟块清除(Delayed Block Cleanout)。此外,还要知道关于回滚段的一些配置参数。

完整文章

Monday, June 5, 2006, 08:51 PM ( 15 浏览 ) - 技术文档 - 发表 fuyuncat
数据段压缩,又称为“块级压缩”,是Oracle 9.2 中出现的新特性。他对于数据仓库和那些只需要读的大表来说很有用。数据段压缩可以使存储空间减少,又可以提高查询速度(需要读入的数据块更少)。

压缩可以在创建表时指定,也可以通过修改表来激活。

完整文章

Friday, May 5, 2006, 08:50 PM ( 23 浏览 ) - 技术文档 - 发表 fuyuncat
为了更好的查询一个树状结构的表,在Oracle的PL/SQL中提供乐一个诱人的特性——CONNECT BY子句。它大大的方便了我们查找树状表:遍历一棵树、寻找某个分支……,但还是存在一些不足。在Oracle 10G,就对这个特性做了增强。下面就举例说明一下:
完整文章

Wednesday, April 5, 2006, 08:47 PM ( 17 浏览 ) - 技术文档 - 发表 fuyuncat
RMAN增量备份方案、增量备份的离线恢复、恢复预览、从resetlogs中恢复、文件压缩等被重新设计后变得更加强大了。

大多数人都赞同RMAN就是Oracle事实上的数据库备份工具。尽管早期版本的RMAN已经很强大,但是人们对它的期待还是有很多。很多DBA对于一些很希望有但实际上没有的特性很烦恼。很幸运,在10g中解决了很多问题并且增加了很多受期待的特性,下面就一起看一下。

完整文章

Sunday, March 5, 2006, 08:46 PM ( 21 浏览 ) - 技术文档 - 发表 fuyuncat
哪个工具是DBA每天最常用的?除了很多DBA使用图形界面的工具外,使用最多的就是SQL Plus这个命令行方式的工具了。

尽管在oracle 10G中由于企业管理器的大大增强可能使SQL Plus的地位有所改变,但这个普遍使用的小工具仍然被保留下来了——它对于初学者和有经验的DBA都适用。我们下面将会探讨一下SQL*Plus 10.1.0.2中一些有用的新特性。但是你必须要有随Oracle 10G软件安装的SQL Plus,而不能使用9i客户端连接10G服务器的9i的SQL Plus。
完整文章

Tuesday, February 14, 2006, 08:50 PM ( 21 浏览 ) - 技术文档 - 发表 fuyuncat
当数据库发生了性能问题时,如何去定位?比较常用的方法是采用一个既定的模式:解决诸如“是不是同一问题的再现?”、“是否在某一特殊时间段发生?”、“两个问题之间是否存在联系?”等问题,这样通常能得到一个比较好的诊断结果。 作为一个DBA,你可能使用一个第三方或者自己开发的工具来收集数据库运行期间的精细统计数据,并从中得到性能度量数据。你需要将这些发生问题时的度量数据与当前数据进行比较。重现以前的时间能使现在的问题变得明朗。 因此,持续的收集相关统计数据对于性能分析来说十分重要。在某些情况下,在解决收集统计数据这方面的问题上有自己内置的工具——statspack。尽管在某些情况下的作用非常大,但它缺乏解决性能问题所必须的健壮性。 提供了一个标志性的改进特性:自动工作量存储(Automatic Workload Repository AWR)。AWR是随着数据库一起被安装的,它不仅能收集统计数据,还能从统计数据中分析出度量数据。
完整文章

Wednesday, February 8, 2006, 09:04 AM ( 21 浏览 ) - 案例 - 发表 fuyuncat
最近,一个系统升级后,发现系统运行非常慢。CPU消耗将近100%。

用top查看系统,发现一个进程占用了几乎90%的CPU。用以下语句查出进程相应会话正在执行的操作:

select b.spid, a.sid, a.username, s.sql_text from v$session a , v$process
b, v$sqlarea s where a.PADDR = b.ADDR and a.sql_hash_value = s.hash_value
and b.spid=2585;

完整文章

Sunday, February 5, 2006, 08:43 PM ( 19 浏览 ) - 技术文档 - 发表 fuyuncat
Oracle 10g的审计会在非常细节的层次上捕捉用户的动作,它可以是手动审计、基于触发器审计。

假如用户A用以下语句更新了表里面得一条记录:

SQL> update SCOTT.EMP set salary = 12000 where empno = 123456;

你如何去跟踪这样的操作呢?在Oracle 9i中,审计只捕捉了谁做了操作,但不知道他做了什么?例如,它能让你知道A更新过用户scott的表emp,但是却无法知道他更新了工号为123456的员工的薪水信息。它同样在改变字段salary之前无法显示处它的值——要捕捉这样的信息,你只能通过编写自己的触发器来在值改变前捕捉它,或者通过使用Log Miner(日志挖掘器)从归档日志中找出来。

这两种方式都会让你付出较大代价来跟踪和记录数值的变化。使用触发器记录统计信息会造成很大的性能压力。处于性能考虑,在一些情况下(如在三层构架应用中)会禁止使用用户自定义的触发器。日志挖掘器不会产生性能问题,但它必须依赖于归档日志功能已经启动。

完整文章

<<首页 <上一页 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 下一页> 尾页>>