《循序渐进Oracle:数据库管理、优化与备份恢复》一一1.2 使用DBCA创建数据库

简介:

本节书摘来自异步社区出版社《循序渐进Oracle:数据库管理、优化与备份恢复》一书中的第1章,第1.2节,作者:盖国强,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.2 使用DBCA创建数据库

循序渐进Oracle:数据库管理、优化与备份恢复
如果我们之前仅安装了数据库软件(或者也应用了补丁软件),在完成安装之后,可以通过运行DBCA(Database Configuration Assistant)来启动数据库创建过程。

1.2.1 DBCA的启动

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

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

image

D:\oracle\11.2.0\BIN>type dbca.bat 
@set OH=D:\oracle\11.2.0 
@set CLASSPATH=%DBCA_CLASSPATH%;%ORACLE_OEM_CLASSPATH% 
@set PATH=%OH%\bin;%PATH% 
"D:\oracle\11.2.0\jdk\jre\BIN\JAVA" -DORACLE_HOME="%OH%" -DJDBC_PROTOCOL=thin -mx128m oracle.sysman. assistants.dbca.Dbca

可以看到在设置了一系列的环境变量之后,通过调用Java运行时环境启动了Java工具DBCA。

在UNIX系统中原理类似,来看下面一段取自Sun Solaris环境(现在已经变成了Oracle 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 
# 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的初始化及启动。

1.2.2 模板选择及EM选项 

启动DBCA之后,就可以通过图形界面进行数据库各项参数的配置,下面对几个重要步骤进行一点说明。

在如图1-10所示的选择数据库模板界面中,可以选择使用模板来创建数据库或者通过自定义方式来创建。注意,右图来自Oracle Database 11gR2版本的相同界面,在这个界面上,已经带有明确的提示文字,指出“带数据文件的模板包含预先创建的数据库”,使用这样的模板可以在数分钟内创建完数据库,否则需要一个小时甚至更长时间。这些说明解释清楚了很多必要的问题。

image

我们选择通过自定义方式创建数据库,在界面中选择“定制数据库”即可。**定制数据库不包含数据文件,需要实时创建,使用模板则会使用“种子数据库(Seed Database)”的备份集恢复出预先创建好的数据文件。
**
接下来的步骤3需要定义一个数据库名称和SID,步骤4则引入了自Oracle Database 10g开始的基于浏览器的Database Control项,此处通常选择缺省配置“使用Enterprise Manger配置数据库”复选框即可,如图1-11所示。

image

在Oracle Database 11gR2的步骤4中,增加了一个选项页,用于定义自动维护任务,在这个页面,用户可以选择是否启用自动维护任务,这些任务包括“优化程序统计信息收集和预防性指导报告”,如图1-12所示。

image

Oracle的每一个小的改动都有其背后的深层原因,在Oracle Database 10g中,自动运行的维护任务影响了很多正常的业务运行,导致故障,所以在这里,Oracle将选择权交给用户。观察Oracle的每个变动非常有助于我们理解数据库的变革。参考1.4小节可以获得相关诊断案例。

这些缺省启用的任务可以通过dba_autotask_task视图查询获得,以下是Oracle 11gR2 11.2.0.2版本的自动任务定义:

SQL> select client_name,task_name,status from dba_autotask_task; 
CLIENT_NAME               TASK_NAME                STATUS 
---------------------------------------- ---------------------------------------- -------- 
sql tuning advisor            AUTO_SQL_TUNING_PROG           ENABLED 
auto optimizer stats collection    gather_stats_prog            ENABLED 
auto space advisor            auto_space_advisor_prog         ENABLED

1.2.3 数据库安全与口令

我们知道在Oracle 9i之前,数据库会为数据库用户指定缺省口令,SYS用户的缺省口令为change_on_install,SYSTEM的缺省口令为manager,但是由于很多用户经常忘记修改缺省口令,进而可能为数据库留下安全隐患,所以从Oracle 9i开始,Oracle要求用户在创建数据库时自行指定用户口令。

在图1-13左图中可以简单地为所有初始用户定义一个缺省口令,但是这样显然不够安全,右图是Oracle 11gR2版本的界面,Oracle将左图中选项上下置换,缺省的就要求为所有用户指定不同的口令,小小的变化昭示着安全上的重视与增强。

image

1.2.4 存储管理及选件

步骤6是如图1-14所示的存储选项界面,该界面用于选择数据库的存储机制,通常可以选择文件系统存储,从Oracle 10g开始Oracle引入了自动存储管理(Automatic Storage Management)的新特性,我们将在后面章节详细介绍这一新特性。从Oracle Database 11gR2开始,Oracle放弃了对于裸设备的支持,在选择存储选项时也就少了一个选项(仅有文件系统和ASM两个选项),图1-14的右图来自Oracle 11gR2的安装截图。

注意,由于ASM技术主要是为RAC集群数据库开发的,所以在单机上使用ASM需要进行一些特殊的配置,在Oracle 10g中,需要启动CSS服务,在Oracle 11gR2中,需要安装Grid Infrastructure,图1-15的左图是10g中的提示信息,右图是11gR2中的提示信息,详细内容可以参考本书的第6章。

image

image

步骤7和步骤8涉及空间位置的设置。其中步骤7指定数据库文件所在位置界面,数据库文件存储位置可以选择“使用Oracle管理的文件”选项,这实际上就是利用了Oracle 9i中引入的一个新特新OMF(Oracle Managed Files),在Oracle 11g的安装界面中,这个步骤被整合到了步骤6中。步骤8中恢复配置界面,该界面用于指定快速恢复区(Flash Recovery Area),这是Oracle 10g的一个新特性,用于简化用户的备份管理,快速恢复区可以是磁盘上的一个存储目录,也可以使用ASM存储,这里可以按照具体的需要设置。同时还可以在这个页面上选择是否启动数据库的归档模式,如图1-16所示。

image

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

image

1.2.5 初始化参数选择设定

步骤10中包含了多个选项页,其中涵盖了大量重要的配置选项。

进入如图1-18所示的初始化参数界面,其中内存选项可以暂时接受数据库的初始推荐,这些参数可以在建库后再进行修改;右图是11g的设置页面,变化不大。

image

在这个内存设置页面,实际上隐含了Oracle数据库从10g到11g的内存管理变化,在10g中,通过设置SGA_TARGET参数可以实现对于SGA的自动管理,而在11g中,通过设置MEMORY_TARGET参数可以实现对于SGA+PGA的统一内存调整和管理,这一变化隐藏在这一页面设置的背后,Oracle的内存管理自动化在不同版本中在不断改进和增强。

在这个页面可以为Oracle的内存使用选择一个比例,缺省的是40%,这是一个较为合理的开始,在数据库运行中,我们也可以根据需要对数据库的内存使用进行配置更改。

注意:

数据块大小需要认真选择,如图1-19所示,一旦创建数据库之后,这个参数将不可修改(从Oracle 9i开始,Oracle支持在同一数据库中容纳不同block_size的表空间,但是初始定义的block_size将用于SYSTEM、UNDO等表空间,不可修改)。
字符集部分也需要认真选择,在中文的Windows平台上,默认的字符集就是ZHS16GBK,如  图1-20所示,可以不需要修改,但是在Linux/UNIX下,如果系统语言环境默认不是中文,则这里需要根据需要进行调整;对于连接模式,可以选择默认的“专用服务器模式”选项,如右图所示。

image
image

image

1.2.6 文件存储及创建选项

下一个步骤是数据库存储界面,如图1-21所示,给出了存储及文件信息,可以按照需要进行调整,通常选择默认设置即可。需要注意控制文件选项,其中定义了对于控制文件至关重要的几个参数,这些参数在此一旦确定,以后往往需要重建控制文件才能修改。

最后一个步骤,可以选择将此前的设置存储为一个数据库模板,并生成创建数据库的脚本,如果接受“创建数据库”的选项,接下来就可以进行数据库的创建了(此处仅选择生成了模板和创建脚本),如图1-22所示。

image

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

image

image

1.2.7 告警日志及跟踪文件

在创建数据库的过程中遇到的错误,可以通过查找Oracle数据库的告警日志文件(alert file) 获得,某些情况下,还会有详细的跟踪文件(trace file)生成,这些文件的位置,在Oracle 11g之前,由*dump参数指定,告警日志文件alert_< ORACLE_SID >.log的位置由参数background_dump_dest定义:

SQL> show parameter background_dump_dest 
NAME                      TYPE    VALUE 
------------------------------------ ----------- ------------------------------ 
background_dump_dest            string   D:\ORACLE\diag\rdbms\eyglee\eyglee\trace

可以在该参数的设置路径下,找到日志文件。从Oracle11g开始,alert文件的格式发生了变化,除原有的文本格式外,还引入了XML格式。现在告警日志文件的存储位置受到一个新的参数影响,这个参数是diagnostic_dest,原有的*dump参数被废弃:

SQL> show parameter diag 
NAME                 TYPE    VALUE 
------------------------------------ ----------- ------------------------------ 
diagnostic_dest           string   D:\ORACLE

diagnostic_dest是Oracle11g的新特性自动诊断库(Automatic Diagnostic Repository,ADR)的设置,该目录用于存放数据库诊断日志、跟踪文件等,通常称为称作ADR base,该参数的默认值和环境变量ORACLE_BASE有关:

如果设置了ORACLE_BASE,则DIAGNOSTIC_DEST = ORACLE_BASE。

如果未设置ORACLE_BASE,则DIAGNOSTIC_DEST = ORACLE_HOME/log。

通过该目录结构,数据库整合存储了大量动态变化的日志及跟踪文件,方便管理及查看。在数据库出现问题时需要优先检查该文件,获得最及时的故障提示信息等。

查询v$diag_info视图可以获得跟踪诊断的相关信息,其中“Default Trace File”指出进程跟踪文件的可能名称:

SQL> select name,value from v$diag_info; 
NAME              VALUE 
------------------------------ ------------------------------------------------------------ 
Diag Enabled          TRUE 
ADR Base            D:\ORACLE 
ADR Home            D:\ORACLE\diag\rdbms\eyglee\eyglee 
Diag Trace           D:\ORACLE\diag\rdbms\eyglee\eyglee\trace 
Diag Alert           D:\ORACLE\diag\rdbms\eyglee\eyglee\alert 
Diag Incident         D:\ORACLE\diag\rdbms\eyglee\eyglee\incident 
Diag Cdump           D:\ORACLE\diag\rdbms\eyglee\eyglee\cdump 
Health Monitor         D:\ORACLE\diag\rdbms\eyglee\eyglee\hm 
Default Trace File       D:\ORACLE\diag\rdbms\eyglee\eyglee\trace\eyglee_ora_3360.trc 
Active Problem Count      3 
Active Incident Count     45
相关文章
|
8天前
|
SQL Oracle 关系型数据库
【Oracle】玩转Oracle数据库(一):装上去,飞起来!
【Oracle】玩转Oracle数据库(一):装上去,飞起来!
45 7
|
25天前
|
Oracle 关系型数据库 数据库
Oracle数据库基本概念理解(3)
Oracle数据库基本概念理解(3)
18 2
|
8天前
|
SQL Oracle 关系型数据库
【Oracle】玩转Oracle数据库(七):RMAN恢复管理器
【Oracle】玩转Oracle数据库(七):RMAN恢复管理器
35 5
|
25天前
|
Oracle 关系型数据库 数据库
Oracle数据库基本概念理解(2)
Oracle数据库基本概念理解(2)
13 1
|
8天前
|
存储 SQL Oracle
【Oracle】玩转Oracle数据库(二):体系结构、存储结构与各类参数
【Oracle】玩转Oracle数据库(二):体系结构、存储结构与各类参数
32 7
|
25天前
|
Oracle 关系型数据库 数据库
Oracle数据库基本概念理解(1)
Oracle数据库基本概念理解(1)
12 1
|
25天前
|
Oracle 关系型数据库 MySQL
Seata常见问题之oracle 数据库 报 just support mysql如何解决
Seata 是一个开源的分布式事务解决方案,旨在提供高效且简单的事务协调机制,以解决微服务架构下跨服务调用(分布式场景)的一致性问题。以下是Seata常见问题的一个合集
53 0
|
1月前
|
Oracle Java 关系型数据库
SpringBoot整合Mybatis连接Oracle数据库
SpringBoot整合Mybatis连接Oracle数据库
SpringBoot整合Mybatis连接Oracle数据库
|
1月前
|
存储 Oracle 关系型数据库
Oracle系列十六:数据库备份
Oracle系列十六:数据库备份
|
1月前
|
SQL Oracle 关系型数据库
Oracle数据库启动时:ORA-00119: invalid specification for system parameter LOCAL_LISTENER;
Oracle数据库启动时:ORA-00119: invalid specification for system parameter LOCAL_LISTENER;