Oracle 11g R2創建數據庫之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

☆〖本人水平有限,文中如有錯誤還請留言批評指正!〗☆


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM