正文 通常創建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
環境準備
- 操作系統(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://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
☆〖本人水平有限,文中如有錯誤還請留言批評指正!〗☆