欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Oracle 11g R2创建数据库之DBCA静默方式

程序员文章站 2022-04-13 15:27:01
正文 通常创建Oracle数据库都是通过 DBCA (Database Configuration Assistant)工具完成的, DBCA 工具可以通过两种方式完成建库任务,即图形界面方式和静默命令行方式。既然安装数据库软件可以通过静默方式来完成,创建数据库也可以通过静默方式来完成,本文就对使用 ......

正文

通常创建oracle数据库都是通过dbca(database configuration assistant)工具完成的,dbca工具可以通过两种方式完成建库任务,即图形界面方式和静默命令行方式。既然安装数据库软件可以通过静默方式来完成,创建数据库也可以通过静默方式来完成,本文就对使用dbca工具静默创建数据库的方式进行梳理和总结。

关于静默方式安装oracle数据库软件可以参考另一篇博文:centos 7静默安装oracle 11g r2数据库软件

关于使用dbca工具创建和管理数据库详细说明可以参考官方文档:creating and managing a database with dbca

环境准备

  1. 操作系统(os):centos linux release 7.5.1804 (core)
  2. 数据库版本(oracle database):oracle database 11g r2(11.2.0.4.0)

其中监听也已经通过静默方式配置启动成功。有关dbca工具的命令行参数可以通过如下命令查看:

$oracle_home/bin/dbca -help

建库准备

通过dbca工具进行静默创建数据库时,选项参数有三种方式传递给工具进行创建:

  1. dbca工具命令行选项指定;
  2. 通过response file(响应文件)的方式传递;
  3. 以上两种方式混合使用,当混合使用时命令行选项值优先级更高。

关于使用响应文件安装和配置数据库的详细说明可以参考官方文档: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://docs.oracle.com/cd/e11882_01/install.112/e47689/app_nonint.htm#ladbi1341
https://docs.oracle.com/cd/e11882_01/server.112/e10897/install.htm#admqs0231

☆〖本人水平有限,文中如有错误还请留言批评指正!〗☆