DBCA靜默建庫中的兩個小問題

jeanron100發表於2016-06-12
建立資料庫,主要有手工建庫,DBCA建庫,OMF建庫。手工建庫會重新初始化資料字典,過程相對比較耗時,但是完全定製化;OMF建庫的場景比較特別,一般都是糅合在ASM中使用;DBCA圖形化建庫使用場景受限較大,其實DBCA還有另外一種快捷的方式就是DBCA靜默建庫,整個過程分分鐘即可搞定。
如果說想簡單使用,可以參考下面的例子,比如我們建立資料庫為testdb,字符集為ZHS16GBK,命令如下:
 dbca -silent -createDatabase -templateName $ORACLE_HOME/assistants/dbca/templates/General_Purpose.dbc -gdbname testdb -sid testdb -characterSet ZHS16GBK -nationalCharacterSet AL16UTF16
看起來簡單的命令使用範圍比較有限,其實還可以定製更多的選項,比如下面的一個例子,指定redo為200M,指定安裝EM,指定資料庫型別為OLTP,使用ASM
dbca -silent  -createDatabase \
-templateName $ORACLE_HOME/assistants/dbca/templates/General_Purpose.dbc  -gdbNametestbi \
-sidtestbi -sysPassword oracle -systemPassword oracle \
-emConfiguration ALL \
        -dbsnmpPassword oracle \
        -sysmanPassword oracle \
        -hostUserName oracle -hostUserPassword oracle \
-disableSecurityConfiguration ALL \
-datafileDestination 'DATA01' \
-redoLogFileSize 200  \
-storageType ASM -asmsnmpPassword‘oracle' -diskGroupName 'DATA01' \
         -characterSet UTF8 -nationalCharacterSet AL16UTF16 \
-totalMemory 20000  -memoryPercentage 20 \
-databaseType OLTP
對這個命令使用遊刃有餘,建庫的時候就會很輕鬆。不過今天的重點是兩個小問題。
第一個問題是手工建庫失敗報錯,資訊如下:
[oracle@testdb dbs]$  dbca -silent -createDatabase -templateName $ORACLE_HOME/assistants/dbca/templates/General_Purpose.dbc -gdbname testdb -sid testdb  -characterSet ZHS16GBK -nationalCharacterSet AL16UTF16  -sysPassword oracle -systemPassword oracle -redoLogFileSize 500
Copying database files
100% complete
Look at the log file "/U01/app/oracle/cfgtoollogs/dbca/testdb/testdb2.log" for further details.
日誌資訊如下:
[oracle@testdb dbs]$ less /U01/app/oracle/cfgtoollogs/dbca/testdb/testdb2.log
Copying database files
TNS-04404: no error
  caused by: oracle.net.config.ConfigException: TNS-04414: File error
  caused by: TNS-04612: Null RHS for "testdb"
DBCA_PROGRESS : 100%
看這個日誌似乎也看不出什麼端倪來,其實可以到這個目錄下,看看其它相關的日誌。目錄下有個日誌叫trace.log裡面的資訊非常詳細,可以作為我們分析問題的入口。
可以看到報錯前會這樣的日誌資訊:
[Thread-24] [ 2016-06-12 15:50:30.820 CST ] [NetworkUtils.getLocalListenerAddresses:1310]  listener[4]=LISTENER_1522 address=(ADDRES
S=(PROTOCOL=TCP)(HOST=testdb.oracle.com)(PORT=1522))
[Thread-24] [ 2016-06-12 15:50:30.820 CST ] [NetworkUtils.addLocalListenerEntry:1380]  addLocalListenerEntry addresses[0]=(ADDRESS=(
PROTOCOL=TCP)(HOST=testdb.oracle.com)(PORT=1521))
[Thread-24] [ 2016-06-12 15:50:30.820 CST ] [NetworkUtils.addLocalListenerEntry:1380]  addLocalListenerEntry addresses[1]=(ADDRESS=(
PROTOCOL=TCP)(HOST=testdb.oracle.com)(PORT=1528))
[Thread-24] [ 2016-06-12 15:50:30.820 CST ] [NetworkUtils.addLocalListenerEntry:1380]  addLocalListenerEntry addresses[2]=(ADDRESS=(
PROTOCOL=TCP)(HOST=testdb.oracle.com)(PORT=1525))
[Thread-24] [ 2016-06-12 15:50:30.820 CST ] [NetworkUtils.addLocalListenerEntry:1380]  addLocalListenerEntry addresses[3]=(ADDRESS=(
PROTOCOL=TCP)(HOST=testdb.oracle.com)(PORT=1523))
很明顯這是配置的多埠監聽器。我們暫時把listener.ora改個名字,建庫就很順利了。
透過這個小例子也可以看出,我們在複製一套環境的時候還是需要注意網路的設定,如果預設存在,建庫時還是會參考這些配置,會或多或少產生一些影響。

問題2:我在一臺伺服器上建立資料庫,速度非常快,幾秒鐘就完成了。看日誌沒有任何異常,輸出都很完成,進度顯示也很全。
[oracle@BJ-4-31 ~]$  dbca -silent -createDatabase -templateName $ORACLE_HOME/assistants/dbca/templates/General_Purpose.dbc -gdbname accdb1 -sid accdb1  -characterSet ZHS16GBK -nationalCharacterSet AL16UTF16  -sysPassword oracle -systemPassword oracle -redoLogFileSize 500
Copying database files
1% complete
2% complete
4% complete
37% complete
Creating and starting Oracle instance
38% complete
40% complete
45% complete
50% complete
51% complete
56% complete
57% complete
61% complete
62% complete
Completing Database Creation
66% complete
70% complete
73% complete
74% complete
85% complete
86% complete
98% complete
100% complete
Look at the log file "/U01/app/oracle/cfgtoollogs/dbca/accdb1/accdb1.log" for further details.
使用sqlplus登入的顯示卻有些奇怪,而且檢視資料目錄下,沒有生成任何的檔案。唯一的檔案就是/etc/oratab的記錄了。
[oracle@BJ-4-31 ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Sun Jun 12 16:32:18 2016
Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected.
SQL> exit
所以這個問題看起來真是糾結。
而問題的原因也很明顯,就是/etc/hosts中的記錄不全,只需補充主機IP的資訊即可。
新增一條主機IP和主機名的對映,比如
10.11.1.2    testdb.oracle.com
當然回過頭來,原因都是一些很零散的小問題,但是不重視,在緊急情況下,這就是大問題。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-2119276/,如需轉載,請註明出處,否則將追究法律責任。

相關文章