如何通過指令碼建立Oracle資料庫

來源:互聯網
上載者:User

建立Oracle資料庫非常複雜,在平時工作中一般採用dbca工具建立即可,但是有些情況下,比如運行自動化指令碼,則需要通過運行指令碼來建立。下面介紹一個簡單的用指令碼建立Oracle資料庫的方法。

1. 通過DBCA產生資料庫建立指令碼

啟動DBCA通過嚮導建立資料庫,這裡設資料庫名為RICM,在最後一步勾選“Generate Database Creation Scripts”,選擇指令碼存放的目錄,點擊完成。系統首先產生資料庫建立指令碼,指令碼建立完成後,單擊取消按鈕,取消資料庫的建立

回到指令碼存放的目錄,包括資料庫的初始化參數檔案init.ora,initRICMTemp.ora, 還有一系列的sql檔案完成資料庫的恢複、控制檔案建立、帳號控制等等,有興趣的讀者可以研究。資料裡面的RICM.sh即為建立指令碼。

2. RICM.sh 指令碼

開啟RICM.sh指令碼,它首先建立一系列的目錄,用於儲存參數檔案,記錄檔,資料庫資料檔案等等,核心的是調用/oracle/products/11/db/bin/sqlplus /nolog @/oracle/RICM/scripts/RICM.sql, 即RICM.sql指令碼

OLD_UMASK=`umask`
umask 0027
mkdir -p /oracle/products/11/db/dbs
mkdir -p /oracle/products/admin/RICM/adump
mkdir -p /oracle/products/admin/RICM/dpdump
mkdir -p /oracle/products/admin/RICM/pfile
mkdir -p /oracle/products/cfgtoollogs/dbca/RICM
mkdir -p /oracle/products/flash_recovery_area
mkdir -p /oracle/products/flash_recovery_area/RICM
mkdir -p /oracle/products/oradata/RICM
umask ${OLD_UMASK}
ORACLE_SID=RICM; export ORACLE_SID
PATH=$ORACLE_HOME/bin:$PATH; export PATH
echo You should Add this entry in the /etc/oratab: RICM:/oracle/products/11/db:Y
/oracle/products/11/db/bin/sqlplus /nolog @/oracle/RICM/scripts/RICM.sql

3. RICM.sql檔案

開啟RICM.sql檔案,有4個替代變數需要使用者輸入,接著建立口令檔案,最後執行後續一系列的sql建立資料庫。

set verify off
ACCEPT sysPassword CHAR PROMPT 'Enter new password for SYS: ' HIDE
ACCEPT systemPassword CHAR PROMPT 'Enter new password for SYSTEM: ' HIDE
ACCEPT sysmanPassword CHAR PROMPT 'Enter new password for SYSMAN: ' HIDE
ACCEPT dbsnmpPassword CHAR PROMPT 'Enter new password for DBSNMP: ' HIDE
host /oracle/products/11/db/bin/orapwd file=/oracle/products/11/db/dbs/orapwRICM
 force=y
@/oracle/RICM/scripts/CloneRmanRestore.sql
@/oracle/RICM/scripts/cloneDBCreation.sql
@/oracle/RICM/scripts/postScripts.sql
@/oracle/RICM/scripts/lockAccount.sql
@/oracle/RICM/scripts/postDBCreation.sql

 

4. 修改運行指令碼

如果直接執行RICM.sh,可以發現指令碼停住了,提示使用者輸入密碼,注釋掉前面4行代碼,並且在建立口令檔案語句中加上系統管理員密碼。修改如下:

set verify off
--ACCEPT sysPassword CHAR PROMPT 'Enter new password for SYS: ' HIDE
--ACCEPT systemPassword CHAR PROMPT 'Enter new password for SYSTEM: ' HIDE
--ACCEPT sysmanPassword CHAR PROMPT 'Enter new password for SYSMAN: ' HIDE
--ACCEPT dbsnmpPassword CHAR PROMPT 'Enter new password for DBSNMP: ' HIDE
define sysPassword = 'Vegat1st'
define systemPassword = 'Vegat1st'
define sysmanPassword = 'Vegat1st'
define dbsnmpPassword = 'Vegat1st'

host /oracle/products/11/db/bin/orapwd file=/oracle/products/11/db/dbs/orapwRICM  force=y password=Vegat1st entries=5
@/oracle/RICM/scripts/CloneRmanRestore.sql
@/oracle/RICM/scripts/cloneDBCreation.sql
@/oracle/RICM/scripts/postScripts.sql
@/oracle/RICM/scripts/lockAccount.sql
@/oracle/RICM/scripts/postDBCreation.sql

 再運行RIDW.sh,資料庫開始建立,但執行到postDBCreation.sql時候,又需要提示輸入密碼,對應的語句如下:

SQL> host /oracle/products/11/db/bin/emca -config dbcontrol db -silent -DB_UNIQUE_NAME RICM -PORT 1521                      -EM_HOME /oracle/products/11/db -LISTENER LISTENER -SERVICE_NAME RICM -SID RICM -ORACLE_HOME /oracle/                     products/11/db -HOST vega56.cn.ibm.com -LISTENER_OH /oracle/products/11/db -LOG_FILE /oracle/RICM/scri                     pts/emConfig.log;

這條語句對建立資料庫沒有影響(事實上目前為止資料庫已經建立成功了),因此在postDBCreation.sql中注釋掉上面的語句。

到此為止,先刪除RICM資料庫(見另一篇部落格),然後再執行RIDW.sh來建立資料庫了,整個過程不需要輸入密碼。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.