正文
通常创建 Oracle 数据库都是通过 DBCA(Database Configuration Assistant) 工具完成的, DBCA 工具可以通过两种方式完成建库任务, 即图形界面方式和静默命令行方式. 既然安装数据库软件可以通过静默方式来完成, 创建数据库也可以通过静默方式来完成, 本文就对使用 DBCA 工具静默创建数据库的方式进行梳理和总结.
关于静默方式安装 Oracle 数据库软件可以参考另一篇博文: CentOS 7 静默安装 Oracle 11g R2 数据库软件
关于使用 DBCA 工具创建和管理数据库详细说明可以参考官方文档: Creating and Managing a Database with DBCA
环境准备
操作系统 (OS):CentOS Linux release 7.5.1804 (Core)
数据库版本 (Oracle Database):Oracle Database 11g R2(11.2.0.4.0)
其中监听也已经通过静默方式配置启动成功. 有关 DBCA 工具的命令行参数可以通过如下命令查看:
$ORACLE_HOME/bin/dbca -help
建库准备
通过 DBCA 工具进行静默创建数据库时, 选项参数有三种方式传递给工具进行创建:
DBCA 工具命令行选项指定;
通过 response file(响应文件) 的方式传递;
以上两种方式混合使用, 当混合使用时命令行选项值优先级更高.
关于使用响应文件安装和配置数据库的详细说明可以参考官方文档: Installing and Configuring Oracle Database Using Response Files
本文讨论的是只通过响应文件的方式来实现, 修改响应文件当中的选项参数来创建合适的数据库. 在安装完数据库软件之后, 默认会生成响应文件的模板, 该文件位于 $ORACLE_HOME/assistants/dbca 目录下, 名为 dbca.rsp.
复制响应文件模板
在 oracle 用户下通过复制生成一份此次创建数据库需要的响应文件, 并重命名为 dbabd_dbca.rsp:
- $ id
- uid=1000(oracle) gid=1000(oinstall) groups=1000(oinstall),1001(dba) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
- $ cd $ORACLE_HOME/assistants/dbca
- $ cp dbca.rsp /data/App/dbabd_dbca.rsp -ra
编辑修改响应文件
为了使响应文件简单便于编辑修改, 去除了多余的空行和注释语句, 关于响应文件当中的选项说明可以参考模板文件当中的注释语句.
- [GENERAL]
- RESPONSEFILE_VERSION = "11.2.0"
- OPERATION_TYPE = "createDatabase"
- [CREATEDATABASE]
- GDBNAME = "orcl11g.us.oracle.com"
- SID = "orcl11g"
- TEMPLATENAME = "General_Purpose.dbc"
- [createTemplateFromDB]
- SOURCEDB = "myhost:1521:orcl"
- SYSDBAUSERNAME = "system"
- TEMPLATENAME = "My Copy TEMPLATE"
- [createCloneTemplate]
- SOURCEDB = "orcl"
- TEMPLATENAME = "My Clone TEMPLATE"
- [DELETEDATABASE]
- SOURCEDB = "orcl"
- [generateScripts]
- TEMPLATENAME = "New Database"
- GDBNAME = "orcl11.us.oracle.com"
- [CONFIGUREDATABASE]
- [ADDINSTANCE]
- DB_UNIQUE_NAME = "orcl11g.us.oracle.com"
- NODELIST=
- SYSDBAUSERNAME = "sys"
- [DELETEINSTANCE]
- DB_UNIQUE_NAME = "orcl11g.us.oracle.com"
- INSTANCENAME = "orcl11g"
- SYSDBAUSERNAME = "sys"
以上是响应文件模板默认选项内容, 接下来对其选项进行自定义并修改其中某些选项值, 这样为了更接近创建需求. 修改后的响应文件 dbabd_dbca.rsp 如下:
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0" -- 响应文件版本
OPERATION_TYPE = "createDatabase" -- 响应文件操作类型
[CREATEDATABASE] -- 操作类型对应选项标签
GDBNAME = "dbabd" -- 全局数据库名 (Global Name)
SID = "dbabd" -- 数据库实例名 (SID)
TEMPLATENAME = "General_Purpose.dbc" -- 引用的模板
SYSPASSWORD = "oracle" -- SYS 用户密码
SYSTEMPASSWORD = "password" -- SYSTEM 用户密码
DATAFILEDESTINATION = /data/App/oracle/data -- 指定数据文件路径
CHARACTERSET = "AL32UTF8" -- 指定字符集
TOTALMEMORY = "300" -- 指定分配内存大小 (MEMORY_TARGET), 单位为 MB
SAMPLESCHEMA = TRUE -- 是否创建示例 SCHEMA
以上注释只是为了更好解析响应文件的内容, 实际文件当中并不存在注释内容.
关于响应文件当中指定的模板, 可以在 $ORACLE_HOME/assistants/dbca/templates 目录下面查看其内容, 模板文件当中指定了创建数据库的一些选项, 这里就不再详细赘述.
开始建库
创建数据文件目录
本次建库的数据文件存放路径为 /data/App/oracle/data, 进入 oracle 用户下面进行创建:
- # su - oracle
- $ mkdir -pv $ORACLE_BASE/data
- mkdir: created directory '/data/app/oracle/data'
- $ ls $ORACLE_BASE
- cfgtoollogs checkpoints data diag product
使用 DBCA 工具创建
在 oracle 用户下执行如下命令创建数据库:
$ $ORACLE_HOME/bin/dbca -silent -responseFile /data/App/dbabd_dbca.rsp
输出内容如下:
- Copying database files
- 1% complete
- 3% complete
- 11% complete
- 18% complete
- 26% complete
- 37% complete
- Creating and starting Oracle instance
- 40% complete
- 45% complete
- 50% complete
- 55% complete
- 56% complete
- 57% complete
- 60% complete
- 62% complete
- Completing Database Creation
- 66% complete
- 70% complete
- 73% complete
- 85% complete
- 96% complete
- 100% complete
- Look at the log file "/data/app/oracle/cfgtoollogs/dbca/dbabd/dbabd.log" for further details.
至此数据库创建完成, 可以通过 sqlplus 进行查询实例状态:
- $ sqlplus / as sysdba
- SQL*Plus: Release 11.2.0.4.0 Production on Thu Jan 10 15:56:47 2019
- Copyright (c) 1982, 2013, Oracle. All rights reserved.
- Connected to:
- Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
- With the Partitioning, OLAP, Data Mining and Real Application Testing options
- SQL> select instance_name,startup_time,status from v$instance;
- INSTANCE_NAME STARTUP_TIME STATUS
- ------------------------------------------------ ------------------- ------------------------------------
- dbabd 2019-01-10 15:51:23 OPEN
也可以通过监听查看实例状态:
- $ lsnrctl status
- LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 10-JAN-2019 16:00:00
- Copyright (c) 1991, 2013, Oracle. All rights reserved.
- Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
- STATUS of the LISTENER
- ------------------------
- Alias LISTENER
- Version TNSLSNR for Linux: Version 11.2.0.4.0 - Production
- Start Date 10-JAN-2019 15:44:14
- Uptime 0 days 0 hr. 15 min. 46 sec
- Trace Level off
- Security ON: Local OS Authentication
- SNMP OFF
- Listener Parameter File /data/App/oracle/product/11.2.0/db_1/network/admin/listener.ora
- Listener Log File /data/App/oracle/diag/tnslsnr/dbabd/listener/alert/log.xml
- Listening Endpoints Summary...
- (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
- (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dbabd)(PORT=1521)))
- Services Summary...
- Service "dbabd" has 1 instance(s).
- Instance "dbabd", status READY, has 1 handler(s) for this service...
- Service "dbabdXDB" has 1 instance(s).
- Instance "dbabd", status READY, has 1 handler(s) for this service...
- The command completed successfully
参考
☆[本人水平有限, 文中如有错误还请留言批评指正!]☆
来源: https://www.cnblogs.com/dbabd/p/10250968.html