eygle.com   eygle.com
eygle.com  
 

« August 1, 2007 | Blog首页 | August 4, 2007 »



August 3, 2007

《循序渐进Oracle》一书出版

作者:eygle

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

今天收到了出版社寄来的样书,《循序渐进Oracle》一书正式出版。
估计这本书到书店还要等几天,现在ITPUB系列丛书扩展到四本:

仔细翻了一下新书,感觉封面没有想象中那么有质感,不过设计上较上一本要好,承载了更多的信息。
印刷方面,感觉为了压缩内容,略显紧凑,不过整体尚可。

一本书,毕竟最重要的还是内容,期待这本书能够早日送达读者手中,然后听一听大家的意见。

-The End-

Posted by eygle at 8:25 PM | Comments (11)


《循序渐进Oracle》第一章连载-之三

作者:eygle

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

1.2 数据库创建的脚本

在DBCA的最后一个步骤,我们保存生成了创建数据库的脚本,通过手工执行这些脚本,可以在命令行完成数据库的创建工作,这可以使我们摆脱图形界面的困扰,特别是在一些不易于运行图形界面的环境。此外,很多时候通过DBCA创建数据库可能会遇到一些错误,这些错误在图形界面下可能不易判断,但是通过命令行则要容易定位得多。

1.2.1 数据库创建脚本
现在通过数据库的创建脚本来深入地了解一下数据库的创建过程。按照上面的路径找到生成的数据库创建脚本。

C:\Oracle\admin\eygle\scripts>dir
驱动器 C 中的卷是 SYSTEM
卷的序列号是 8C88-D1B4

C:\Oracle\admin\eygle\scripts 的目录
2007-01-05 15:32

.
2007-01-05 15:32 ..
2007-01-05 15:32 1,139 CreateDB.sql
2007-01-05 15:32 600 CreateDBCatalog.sql
2007-01-05 15:32 326 CreateDBFiles.sql
2007-01-05 15:32 253 emRepository.sql
2007-01-05 15:32 614 eygle.bat
2007-01-05 15:32 698 eygle.sql
2007-01-05 15:32 2,408 init.ora
2007-01-05 15:33 1,108 postDBCreation.sql

在Linux/UNIX环境下,同样存在这样一系列的脚本(以下内容来自Linux上Oracle 9204安装脚本):

[oracle@jumper scripts]$ pwd
/opt/oracle/admin/eygle/scripts
[oracle@jumper scripts]$ ll
total 24
-rw-r--r-- 1 oracle dba 713 Apr 24 2006 CreateDBCatalog.sql
-rw-r--r-- 1 oracle dba 338 Apr 24 2006 CreateDBFiles.sql
-rw-r--r-- 1 oracle dba 769 Apr 24 2006 CreateDB.sql
-rwxr-xr-x 1 oracle dba 628 Aug 18 2006 eygle.sh
-rw-r--r-- 1 oracle dba 2764 Apr 24 2006 init.ora
-rw-r--r-- 1 oracle dba 442 Apr 24 2006 postDBCreation.sql

1.2.2 创建的起点

如果通过手工执行脚本来创建数据库,需要执行的脚本为eygle.bat(在Linux/UNIX下是eygle.sh脚本),来看一下这个脚本的内容:

C:\Oracle\admin\eygle\scripts>type eygle.bat
mkdir C:\oracle\10.2.0\cfgtoollogs\dbca\eygle
mkdir C:\oracle\10.2.0\database
mkdir C:\oracle\admin\eygle\adump
mkdir C:\oracle\admin\eygle\bdump
mkdir C:\oracle\admin\eygle\cdump
mkdir C:\oracle\admin\eygle\dpdump
mkdir C:\oracle\admin\eygle\pfile
mkdir C:\oracle\admin\eygle\udump
mkdir C:\oracle\flash_recovery_area
mkdir C:\oracle\oradata
set ORACLE_SID=eygle
C:\oracle\10.2.0\bin\oradim.exe -new -sid EYGLE -startmode manual -spfile
C:\oracle\10.2.0\bin\oradim.exe -edit -sid EYGLE -startmode auto -srvcstart system
C:\oracle\10.2.0\bin\sqlplus /nolog @C:\oracle\admin\eygle\scripts\eygle.sql

这就是Oracle创建数据库的过程:
(1) 建立一系列的目录;
注意,这里建立的bdump目录是Oracle重要的警告日志的存放地点,其缺省名称为alert_.log,我们应该定期检查该文件以发现数据库的故障或错误信息。
第二个需要格外注意的是cfgtoollogs\dbca\eygle目录,在创建数据库时,主要的日志文件或输出信息会记录在该目录中,通过检查这些文件可以用来诊断创建过程中出现的一些错误。
(2) 设置ORACLE_SID环境变量;
(3) 通过oradim创建并配置实例;
(4) 通过sqlplus运行脚本开始创建数据库。


1.2.3 ORADIM工具的使用
ORADIM工具是Oracle在Windows上的一个命令行工具,用于手工进行Oracle服务的创建、修改、删除等工作。ORADIM的使用很简单,通过帮助文件可以看到常用的命令示例,此处不再赘述。

ORADIM在数据库恢复中也常被用到,很多朋友都问过这样的问题:在Windows上,如果系统崩溃了,可能数据库软件丢掉了,但是数据文件、控制文件、日志文件等都还在,该怎样来恢复Oracle数据库?

其实过程很简单,通常只要按原来的目录结构重新安装Oracle软件,然后通过ORADIM工具重建服务,就可以启动实例、加载数据库(当然相关的参数文件和口令文件等需要在$ORACLE_HOME\database目录存在)。
来看以下过程,通过ORADIM创建一个服务后,实例会随之启动:

C:\>oradim -new -sid eygle 实例已创建。

用net命令可以查看系统启动了哪些服务,看到Oracle的服务已经启动:

C:\>net start
已经启动以下 Windows 服务:
...............
OracleServiceeygle
Plug and Play
Print Spooler
命令成功完成。

如果你的系统装了一些UNIX增强工具,那么可以通过grep过滤一下:

C:\>net start |grep Oracle
OracleServiceeygle

使用ORADIM工具后,会在$ORACLE_HOME\database目录下生成一个日志文件。


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


《循序渐进Oracle》第一章连载-之二

作者:eygle

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

1.1.2 配置数据库选项

启动DBCA之后,就可以通过图形界面进行数据库各项参数的配置,下面对几个重要步骤进行一点说明。
在如图1-3所示的选择数据库模板界面中,可以选择使用模板来创建数据库或者通过自定义方式来创建。

首先选择通过自定义方式创建数据库,在界面中选择"定制数据库"即可。定制数据库不包含数据文件,需要实时创建,使用模板则会包含已经创建好的数据文件
单击"下一步"按钮,进入如图1-4所示的设置数据库标识界面,需要定义一个数据库名称和SID,SID在同一计算机上不能重复,用于唯一标识一个实例。

单击"下一步"按钮,进入如图1-5所示的管理选项界面,选择缺省配置"使用Enterprise Manger配置数据库"复选框即可,选择了这个选项,创建数据库时会自动配置Oracle 10g基于Web方式的Database Control。

我们知道在Oracle 9i之前,数据库会为数据库用户指定缺省口令,SYS用户的缺省口令为change_on_install,SYSTEM的缺省口令为manager,但是由于很多用户经常忘记修改缺省口令,进而可能为数据库留下安全隐患,所以从Oracle 9i开始,Oracle要求用户在创建数据库时自行指定用户口令。因此在如图1-6所示的数据库身份证明界面中可以简单地为所有初始用户定义一个缺省口令。

单击"下一步"按钮,进入如图1-7所示的存储选项界面,该界面用于选择数据库的存储机制,通常可以选择文件系统存储,从Oracle 10g开始Oracle引入了自动存储管理(Automatic Storage Management)的新特性,我们将在后面章节详细介绍这一新特性。

单击"下一步"按钮,进入如图1-8所示的指定数据库文件所在位置界面,数据库文件存储位置可以选择"使用Oracle管理的文件"选项,这实际上就是利用了Oracle 9i中引入的一个新特新OMF(Oracle Managed Files)。

单击"下一步"按钮,进入如图1-9所示的恢复配置界面,该界面用于指定快速恢复区(Flash Recovery Area),这是Oracle 10g的一个新特性,用于简化用户的备份管理,快速恢复区可以是磁盘上的一个存储目录,也可以使用ASM存储,这里可以按照具体的需要设置;同时还可以在这个页面上选择是否启动数据库的归档模式。

单击"下一步"按钮,进入如图1-10所示的选择数据库组件和定制脚本界面,Oracle的数据库组件有很多,为了简化和快速安装,可以去除大部分选项(这要根据需要进行选择)。

单击"下一步"按钮,进入如图1-11所示的初始化参数界面,其中内存选项可以暂时接受数据库的初始推荐,这些参数可以在建库后再进行修改。

注意数据块大小需要认真选择,如图1-12所示,一旦创建数据库之后,这个参数将不可修改(从Oracle 9i开始,Oracle支持在同一数据库中容纳不同block_size的表空间,但是初始定义的block_size将用于SYSTEM、UNDO等表空间,不可修改)。

字符集部分也需要认真选择,在中文的Windows平台上,默认的字符集就是ZHS16GBK,如图1-13所示,可以不需要修改,但是在Linux/UNIX下,如果系统语言环境缺省不是中文,则这里需要根据需要进行调整。

对于连接模式,可以选择默认的"专用服务器模式"选项,如图1-14所示。

单击"下一步"按钮,进入如图1-15所示的数据库存储界面,给出了存储及文件信息,可以按照需要进行调整,通常选择默认设置即可。

单击"下一步"按钮,进入如图1-16所示的页面,控制文件选项中定义了对于控制文件至关重要的几个参数,这些参数在此一旦确定,以后只有重建控制文件才能修改。

单击"下一步"按钮,进入如图1-17所示的创建选项界面,可以选择将此前的设置存储为一个数据库模板,并生成创建数据库的脚本,如果接受"创建数据库"的选项,接下来就可以进行数据库的创建了(此处仅选择生成了模板和创建脚本)。

单击"完成"按钮,则可以看到模板的摘要信息,如图1-17所示。

单击"确定"按钮,进入如图1-18所示的界面,数据库完成了脚本生成工作。如果选择了创建数据库,此时将开始数据库创建工作。

.....to be continued............

Posted by eygle at 9:45 AM | Comments (1)


《循序渐进Oracle》第一章连载-之一

作者:eygle

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

循序渐进Oracle》一书已经在北京印刷完毕,但是具体到达书店可能还需要一些时日。为了使读者能够更好的了解本书内容,以决定是否购买,我决定将本书大约1/10的内容发布出来,供大家参考。
首先发布的是第一章的内容。
-----------------------------------------------------------------------------

第1章 Oracle数据库的创建

对于很多初学者来说,创建数据库通常是Oracle学习的开始,在完成软件安装之后,就可以开始创建数据库。数据库的创建可以通过DBCA(Database Configuration Assistant)工具或者手工方式来完成,通常我们习惯使用DBCA,但是我建议大家都能够尝试一下使用手工的方式进行数据库创建,因为那将使你更加了解Oracle数据库的创建过程。

如果从数据库创建进行深入,你会发现相关知识会延展到各个层面,由这一个点开始,广阔的Oracle知识会逐渐展现在你面前,本书就从这样一个起点开始

由于Oracle 10g已经渐渐成为主流,本文以Oracle 10g为讲解模板,在实际建库的过程中,不管是在Linux/UNIX还是Windows上、不管是Oracle 9i还是Oracle 10g,创建数据库的步骤都是基本相同的。

在安装Oracle软件的过程中,有一个类似如图1-1所示的界面(这里选择Oracle 10gR2版本,不同版本的界面可能有所不同)。

在这个页面中,可以选择在安装软件结束后同时创建数据库,也可以选择使用ASM(Oracle 10g选项),最后一项是"仅安装数据库软件",建议大家选择此项,该选项可以将软件安装和数据库创建分离开来,这样既可以将独立的两个过程分步进行,又可以在安装软件后进行从容的检查和配置。

1.1 使用DBCA创建数据库
在完成Oracle软件安装之后,可以通过运行DBCA(Database Configuration Assistant)来启动数据库创建过程。

1.1.1 DBCA的启动
DBCA可以通过"开始"菜单中的选项来启动,也可以通过命令行方式启动,在命令行键入"dbca"则可以启动数据库创建助手界面,如图1-2所示。

在Windows系统上,通过命令行来运行dbca命令,实际上调用的是$ORACLE_HOME\bin\下的dbca.bat批处理文件,可以简略地看一下这个批处理文件的内容(省略了部分内容):

C:\>type C:\oracle\10.2.0\bin\dbca.bat
............
@set OH=C:\oracle\10.2.0
@set JRE_CLASSPATH=C:\oracle\10.2.0\jdk\jre\lib\rt.jar
@set I18N_CLASSPATH=C:\oracle\10.2.0\jdk\jre\lib\i18n.jar
............
"C:\oracle\10.2.0\jdk\jre\BIN\JAVA" -DORACLE_HOME="%OH%" -DJDBC_PROTOCOL=thin -mx128m oracle.sysman.assistants.dbca.Dbca
%*
exit /B %ERRORLEVEL%

可以看到在设置了一系列的环境变量之后,通过调用Java运行时环境启动了Java工具DBCA。
在UNIX系统中,原理同样类似。来看下面一段取自Sun Solaris环境下的代码:
bash-2.05$ uname -a
SunOS db210-rac2 5.9 Generic_117171-12 sun4u sparc SUNW,Sun-Fire-V210
bash-2.05$ which dbca
/opt/oracle/product/10.2.0/db/bin/dbca

摘录一点DBCA的代码:
bash-2.05$ more /opt/oracle/product/10.2.0/db/bin/dbca
#!/bin/sh -f
............
# Classpath
JRE_CLASSPATH=$JRE_DIR/lib/$JRE_FILE
I18_CLASSPATH=$JRE_DIR/lib/$I18_FILE
EWT_CLASSPATH=$JLIB_DIR/$EWT_FILE:$JLIB_DIR/$EWT_COMP_FILE
SHARE_CLASSPATH=$JLIB_DIR/$SHARE_FILE
............
# Run DBCA
$JRE_DIR/bin/java -Dsun.java2d.font.DisableAlgorithmicStyles=true -DORACLE_HOME=$OH -DDISPLAY=$DISPLAY -DJDBC_PROTOCOL=thin -mx128m
-classpath $CLASSPATH oracle.sysman.assistants.dbca.Dbca $ARGUMENTS

同样最后一行命令启动了Java应用DBCA工具。
以上就是DBCA的初始化及启动。

... to be continued........

Posted by eygle at 9:20 AM | Comments (5)



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