《循序渐进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
相关文章
|
5月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】Oracle数据库配置助手:DBCA
Oracle数据库配置助手(DBCA)是用于创建和配置Oracle数据库的工具,支持图形界面和静默执行模式。本文介绍了使用DBCA在Linux环境下创建数据库的完整步骤,包括选择数据库操作类型、配置存储与网络选项、设置管理密码等,并提供了界面截图与视频讲解,帮助用户快速掌握数据库创建流程。
477 93
|
4月前
|
Oracle 关系型数据库 Linux
【赵渝强老师】使用NetManager创建Oracle数据库的监听器
Oracle NetManager是数据库网络配置工具,用于创建监听器、配置服务命名与网络连接,支持多数据库共享监听,确保客户端与服务器通信顺畅。
275 0
|
7月前
|
存储 Oracle 关系型数据库
服务器数据恢复—光纤存储上oracle数据库数据恢复案例
一台光纤服务器存储上有16块FC硬盘,上层部署了Oracle数据库。服务器存储前面板2个硬盘指示灯显示异常,存储映射到linux操作系统上的卷挂载不上,业务中断。 通过storage manager查看存储状态,发现逻辑卷状态失败。再查看物理磁盘状态,发现其中一块盘报告“警告”,硬盘指示灯显示异常的2块盘报告“失败”。 将当前存储的完整日志状态备份下来,解析备份出来的存储日志并获得了关于逻辑卷结构的部分信息。
|
5月前
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
399 8
|
7月前
|
SQL Oracle 关系型数据库
比较MySQL和Oracle数据库系统,特别是在进行分页查询的方法上的不同
两者的性能差异将取决于数据量大小、索引优化、查询设计以及具体版本的数据库服务器。考虑硬件资源、数据库设计和具体需求对于实现优化的分页查询至关重要。开发者和数据库管理员需要根据自身使用的具体数据库系统版本和环境,选择最合适的分页机制,并进行必要的性能调优来满足应用需求。
369 11
|
7月前
|
Oracle 关系型数据库 数据库
数据库数据恢复—服务器异常断电导致Oracle数据库报错的数据恢复案例
Oracle数据库故障: 某公司一台服务器上部署Oracle数据库。服务器意外断电导致数据库报错,报错内容为“system01.dbf需要更多的恢复来保持一致性”。该Oracle数据库没有备份,仅有一些断断续续的归档日志。 Oracle数据库恢复流程: 1、检测数据库故障情况; 2、尝试挂起并修复数据库; 3、解析数据库文件; 4、导出并验证恢复的数据库文件。
|
7月前
|
存储 Oracle 关系型数据库
【赵渝强老师】Oracle RMAN的目录数据库
Oracle RMAN默认将备份元信息存储在控制文件中,但控制文件损坏或丢失会导致恢复失败,且备份增多会使控制文件无限增长。为解决这些问题,Oracle引入了RMAN目录数据库(Catalog Database),专门用于存储RMAN备份的元信息。使用目录数据库可提升备份管理效率,支持多数据库共享、长期备份历史记录存储,并可保存RMAN脚本。本文详细介绍了如何创建目录数据库、注册目标数据库及其操作步骤。
196 0
|
10月前
|
Oracle 安全 关系型数据库
【Oracle】使用Navicat Premium连接Oracle数据库两种方法
以上就是两种使用Navicat Premium连接Oracle数据库的方法介绍,希望对你有所帮助!
2079 28
|
8月前
|
存储 Oracle 关系型数据库
oracle数据恢复—oracle数据库执行错误truncate命令的数据恢复案例
oracle数据库误执行truncate命令导致数据丢失是一种常见情况。通常情况下,oracle数据库误操作删除数据只需要通过备份恢复数据即可。也会碰到一些特殊情况,例如数据库备份无法使用或者还原报错等。下面和大家分享一例oracle数据库误执行truncate命令导致数据丢失的数据库数据恢复过程。

推荐镜像

更多