eygle.com   eygle.com
eygle.com  
 

« December 13, 2007 | Blog首页 | December 19, 2007 »



December 17, 2007

China-Pub的年度技术图书评选活动

作者:eygle

出处:http://blog.eygle.com

今天看到China-Pub在搞一个年度技术图书评选活动
数据库类的条目下,我的《深入浅出Oracle》和《循序渐进Oracle》都在评选之列。

目前Tom的《Oracle 9i & 10g编程艺术:深入数据库体系结构》遥遥领先的排在第一位;这是Oracle类图书中毫无疑问的首选之作。

大家看过我的书的,有China-Pub帐号的,号召投一下票!
谢谢支持:)

2007-12-17

Posted by eygle at 4:00 PM | Comments (7)


9i与10g初始化参数instance_name的变化

作者:eygle

出处:http://blog.eygle.com

昨天《循序渐进Oracle》的一位读者提出一个问题,这个问题使得我发现了Oracle9i与Oracle10g初始化参数instance_name的一点不同。

首先我们来看Oracle9i,当我们复制一个参数文件:

C:\ORACLE~1\database>copy SPFILEMYORACLE.ORA SPFILEEYGLE.ORA
已复制 1 个文件。

在另外一个窗口初始化一个实例环境:

C:\Documents and Settings\gqgai>oracle eygle
Hit any key to exit server:

此时连接到当前实例,启动到Nomount状态:

C:\ORACLE~1\database>set oracle_sid=eygle

C:\ORACLE~1\database>sqlplus "/ as sysdba"

SQL*Plus: Release 9.2.0.6.0 - Production on 星期一 12月 17 10:44:06 2007

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

已连接到空闲例程。

SQL> startup nomount;
ORACLE 例程已经启动。

Total System Global Area 311500888 bytes
Fixed Size 454744 bytes
Variable Size 176160768 bytes
Database Buffers 134217728 bytes
Redo Buffers 667648 bytes


注意此时的instance_name参数仍然为myoracle,也就是原来的实例名称:
SQL> show parameter instance_name

NAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
instance_name string
myoracle

这是因为作为一个初始化参数,在Oracle9i中,instance_name被写入参数文件:

*.instance_name='myoracle'

而在Oracle10g中,缺省的,instance_name被从参数文件中移除,在实例启动过程中,Oracle从SID中来获得这个参数值。从而可以用于动态注册。
在9i中,我们可以从参数文件中删除这个参数:

SQL> create pfile from spfile;

文件已创建。

SQL> shutdown immediate;
ORA-01507: ??????


ORACLE 例程已经关闭。


删除spfile,使用pfile启动实例,此时实例名称从SID中获得:
SQL> startup nomount;
ORACLE 例程已经启动。

Total System Global Area 311500888 bytes
Fixed Size 454744 bytes
Variable Size 176160768 bytes
Database Buffers 134217728 bytes
Redo Buffers 667648 bytes
SQL> show parameter instance_name

NAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
instance_name string
eygle
SQL> select instance_name from v$instance;

INSTANCE_NAME
--------------------------------
eygle

感谢我的读者指出,使我发现了以前并未注意到的Oracle9i和Oracle10g的一点小不同。

-The End-

Posted by eygle at 3:21 PM | Comments (2)


DBA警世录:职业生涯误操作之误删除篇

作者:eygle

出处:http://blog.eygle.com

ITPUB上的yxyup同学发起了一个主题:请列出你在从事DBA生涯中,最难以忘怀的一次误操作
这一主题引起了大家普遍的兴趣,很多有趣的案例呈现出来,摘录一下误删除有关的操作,看看都有哪些恐怖的操作会出现,共为警醒:

1.在linux平台上,一次不小心操作,把oradata下所有的东西全删除了
这样的误操作,教训是极其惨痛的,所以备份对于DBA来说仍然是最重要的

2.一次误删了个表,最后恢复了,丢了一天数据.加了一晚上班,至今记得.人越累的时候就越容易犯错误,我就是在最后快下班的几分钟犯的错误.
一定要记住墨菲定律,越着急就越容易犯错误,DBA千万不要赶着去做一件事。

3.在一次测试过程中,把一个在本机执行的删除所有非系统用户的脚本,错误的粘到一个开发数据库的sqlplus窗口中
如果你不注意剪贴板,它就会害你!

4.有一次把一个表一不小心给truncate了,上千万条记录一眨眼就没了
DDL操作一定要谨慎阿!

5.rm -rf /opt/ora92/* 在测试库中本来想删除数据库,结果错误的把ORACLE软件删除了.
rm -rf是相当恐怖的,每个DBA都应该学会不要直接使用这个命令。

6.不小心用rm -rf /home目录下的所有文件,/home目录下放的账务系统的app。一看删除的路径的不对,已经来不及了。
又是一个rm -rf的狠操作。

7.删除一些trace文件,然后就直接删除rm orcl*,结果通过vpn到生产的,网络太慢,命令刚刚慢慢的显示出来,看都没看直接按回车,结果执行的命令却是rm orcl *,因为orcl和星号中间有个空格,所以把这个目录下面所有的内容全部删除了。
网络慢的确害惨过很多人,所以网络可能存在问题时,任何操作都要慎重,不行可以使用脚本在后台跑。

实际上,我们看到,很多误操作都极其低级,和技术能力基本无关,只是需要我们细致、严谨,再认真一点。
DBA有些素质是必需养成的。

-The End-

Posted by eygle at 2:25 PM | Comments (1)



CopyRight © 2004-2008 eygle.com, All rights reserved.