Oracle 11g Database靜默安裝

luashin發表於2016-03-29
環境:RHEL 6.5 + Oracle 11.2.0.4

1.初步處理應答檔案
2.靜默安裝軟體
3.靜默安裝監聽
4.靜默dbca建庫

說明:
本文預設安裝軟體前的步驟已經設定完畢
如果沒有設定,可參考 《Linux平臺Oracle 11g單例項 安裝部署配置 快速參考》1,2,3,4,5步進行設定。
1)、重建主機的Oracle使用者組統一規範uid gid以保證共享儲存掛接或其他需求的許可權規範
userdel -r oracle
groupadd -g 500 oinstall
groupadd -g 501 dba
useradd -g oinstall -G dba -u 500 oracle
#id oracle
uid=500(oracle) gid=500(oinstall) 組=500(oinstall),501(dba)

2)、安裝好Oracle 需要的rpm包。安裝rpm依賴包
rpm -qa |grep binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel gcc- gcc-c++ libaio-devel libaio libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel pdksh ksh
yum -y install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel gcc- gcc-c++ libaio-devel libaio libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel pdksh ksh
注:pdksh沒有安裝,可以忽略。安裝了ksh。

3)、修改配置檔案 /etc/security/limits.conf
oracle              soft    nproc    2047
oracle              hard    nproc    16384
oracle              soft    nofile  1024
oracle              hard    nofile  65536
oracle              soft    stack    10240

4)、修改配置檔案 /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = XXXXXXXXXX //共享記憶體位元組數(一般75%實體記憶體)
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
注:重啟主機或者輸入命令 sysctl -p 生效當前配置

5)、解壓oracle軟體安裝包
# unzip p10404530_112030_Linux-x86-64_1of7.zip && unzip p10404530_112030_Linux-x86-64_2of7.zip
# chown -R oracle:oinstall database

靜默安裝只是不呼叫圖形介面安裝,靜默安裝資料庫依然是呼叫的dbca,並不是手工建庫。
手工建庫可參考:
本次演示安裝的規劃目錄
本次規劃資料庫軟體安裝目錄:/u02/app/oracle
本次規劃資料庫儲存目錄:/u02/oradata


1. 初步處理應答檔案
1.1 先備份原應答檔案
cd database/response
mkdir rspbak
cp *.rsp ./rspbak

1.2 刪除應答檔案中的註釋行(以#開頭)
#vi編輯替換或者直接使用sed命令快速替換
$ sed -i 's/^#.*$//g' *.rsp

1.3 刪除沒有內容的空行(^$)
#vim編輯替換或者直接使用sed命令快速替換
$ sed -i '/^$/d' *.rsp

2. 靜默安裝軟體
2.1 編輯db_install.rsp檔案
$ more /u02/soft/database/response/db_install.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=JY-DB01
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u02/app/oracle/oraInventory
SELECTED_LANGUAGES=en
ORACLE_HOME=/u02/app/oracle/product/11.2.0/dbhome_1
ORACLE_BASE=/u02/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.EEOptionsSelection=false
oracle.install.db.optionalComponents=oracle.rdbms.partitioning:11.2.0.4.0,oracle.oraolap:11.2.0.4.0,oracle.rdbms.dm:11.2.0.4.0,oracle.rdbms.dv:11.2.0.4.0,or
acle.rdbms.lbac:11.2.0.4.0,oracle.rdbms.rat:11.2.0.4.0
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=
oracle.install.db.CLUSTER_NODES=
oracle.install.db.isRACOneInstall=
oracle.install.db.racOneServiceName=
oracle.install.db.config.starterdb.type=
oracle.install.db.config.starterdb.globalDBName=
oracle.install.db.config.starterdb.SID=
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.memoryLimit=
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=
oracle.install.db.config.starterdb.password.SYS=
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.SYSMAN=
oracle.install.db.config.starterdb.password.DBSNMP=
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
oracle.install.db.config.starterdb.automatedBackup.enable=false
oracle.install.db.config.starterdb.automatedBackup.osuid=
oracle.install.db.config.starterdb.automatedBackup.ospwd=
oracle.install.db.config.starterdb.storageType=
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
oracle.install.db.config.asm.diskGroup=
oracle.install.db.config.asm.ASMSNMPPassword=
MYORACLESUPPORT_USERNAME=
MYORACLESUPPORT_PASSWORD=
SECURITY_UPDATES_VIA_MYORACLESUPPORT=
DECLINE_SECURITY_UPDATES=true
PROXY_HOST=
PROXY_PORT=
PROXY_USER=
PROXY_PWD=
PROXY_REALM=
COLLECTOR_SUPPORTHUB_URL=
oracle.installer.autoupdates.option=
oracle.installer.autoupdates.downloadUpdatesLoc=
AUTOUPDATES_MYORACLESUPPORT_USERNAME=
AUTOUPDATES_MYORACLESUPPORT_PASSWORD=

2.2 靜默安裝軟體
$ cd /u02/soft/database/
$ ./runInstaller -silent -force -noconfig -responseFile /u02/soft/database/response/db_install.rsp
安裝成功應有的輸出提示:
Starting Oracle Universal Installer...
Checking Temp space: must be greater than 120 MB.   Actual 21313 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 4015 MB    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2015-11-30_11-40-10AM. Please wait ...[oracle@JY-DB01 database]$ [WARNING] [INS-13014] Target environment do not meet some optional requirements.
   CAUSE: Some of the optional prerequisites are not met. See logs for details. /u01/app/oraInventory/logs/installActions2015-11-30_11-40-10AM.log
   ACTION: Identify the list of failed prerequisite checks from the log: /u01/app/oraInventory/logs/installActions2015-11-30_11-40-10AM.log. Then either from the log file or from installation manual find the appropriate configuration to meet the prerequisites and fix it manually.
You can find the log of this install session at:
 /u01/app/oraInventory/logs/installActions2015-11-30_11-40-10AM.log
The installation of Oracle Database 11g was successful.
Please check '/u01/app/oraInventory/logs/silentInstall2015-11-30_11-40-10AM.log' for more details.

As a root user, execute the following script(s):
        1. /u02/app/oracle/product/11.2.0/dbhome_1/root.sh

Successfully Setup Software.

2.3 按提示root使用者執行指令碼
# /u02/app/oracle/product/11.2.0/dbhome_1/root.sh
Check /u02/app/oracle/product/11.2.0/dbhome_1/install/root_JY-DB01_2015-11-30_11-48-22.log for the output of root script
注意:如果機器之前沒有安裝其他資料庫,這裡就應該是提示執行兩個指令碼,按具體提示執行即可。

2.4 配置環境變數
# vim /home/oracle/jingyu
export ORACLE_SID=jingyu
export ORACLE_BASE=/u02/app/oracle
export ORACLE_HOME=/u02/app/oracle/product/11.2.0/dbhome_1
export NLS_LANG="american_america.ZHS16GBK"
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:Mi:SS"
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export PATH=$ORACLE_HOME/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oracle/bin
echo "--------------------------"
echo "ORACLE_BASE"=$ORACLE_BASE
echo "ORACLE_HOME"=$ORACLE_HOME
echo "ORACLE_SID"=$ORACLE_SID
echo "--------------------------"
echo "NLS_LANG"=$NLS_LANG
echo "NLS_DATE_FORMAT"=$NLS_DATE_FORMAT 
echo "LD_LIBRARY_PATH"=$LD_LIBRARY_PATH 
echo "PATH"=$PATH
echo "--------------------------"

執行source jingyu即可切換到新資料庫環境變數
$ source jingyu 
--------------------------
ORACLE_BASE=/u02/app/oracle
ORACLE_HOME=/u02/app/oracle/product/11.2.0/dbhome_1
ORACLE_SID=jingyu
--------------------------
NLS_LANG=american_america.ZHS16GBK
NLS_DATE_FORMAT=YYYY-MM-DD HH24:Mi:SS
LD_LIBRARY_PATH=/u02/app/oracle/product/11.2.0/dbhome_1/lib
PATH=/u02/app/oracle/product/11.2.0/dbhome_1/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/oracle/bin
--------------------------
注意:如果需要預設使用者變數,則oracle使用者配置~/.bash_profile檔案。

3. 靜默安裝監聽
3.1 編輯netca.rsp檔案
$ more /u02/soft/database/response/netca.rsp
[GENERAL]
RESPONSEFILE_VERSION="11.2"
CREATE_TYPE="CUSTOM"
[oracle.net.ca]
INSTALLED_COMPONENTS={"server","net8","javavm"}
INSTALL_TYPE=""typical""
LISTENER_NUMBER=1
LISTENER_NAMES={"LISTENER"}
LISTENER_PROTOCOLS={"TCP;1521"}
LISTENER_START=""LISTENER""
NAMING_METHODS={"TNSNAMES","ONAMES","HOSTNAME"}
NSN_NUMBER=1
NSN_NAMES={"EXTPROC_CONNECTION_DATA"}
NSN_SERVICE={"PLSExtProc"}
NSN_PROTOCOLS={"TCP;HOSTNAME;1521"}

3.2 靜默建立監聽
$ORACLE_HOME/bin/netca /silent /responsefile /u02/soft/database/response/netca.rsp

Parsing command line arguments:
    Parameter "silent" = true
    Parameter "responsefile" = /u02/soft/database/response/netca.rsp
Done parsing command line arguments.
Oracle Net Services Configuration:
Profile configuration complete.
Oracle Net Listener Startup:
    Running Listener Control: 
      /u02/app/oracle/product/11.2.0/dbhome_1/bin/lsnrctl start LISTENER
    Listener Control complete.
    Listener started successfully.
Listener configuration complete.
Oracle Net Services configuration successful. The exit code is 0

4. 靜默dbca建庫
4.1 編輯dbca.rsp檔案
$ more /u02/soft/database/response/dbca.rsp
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "jingyu"
SID = "jingyu"
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"
上面就可以成功建庫,但絕大多數情況[CREATEDATABASE]下還需要指定一些其他引數,
因為預設的可能不符合實際要求,尤其是你建立的資料庫字符集必須要按你的設計需求顯示指定:

[CREATEDATABASE]
gdbName = "jingyu"
sid = "jingyu"
templateName = "General_Purpose.dbc"
characterSet = "ZHS16GBK" 
memoryPercentage = "60"
emConfiguration = "LOCAL"
sysPassword = "oracle"
systemPassword = "oracle"
dbsnmpPassword = "oracle"
sysmanPassword = "oracle"

修改引用的通用模板General_Purpose.dbc
--本次規劃資料庫儲存目錄:/u02/oradata
# mkdir -p /u02/oradata && chown oracle:oinstall /u02/oradata
--修改模板
$ cd $ORACLE_HOME/assistants/dbca/templates/
$ cp General_Purpose.dbc General_Purpose.dbc.bak
--vim替換{ORACLE_BASE}/oradata為新的儲存路徑/u02/oradata
$ vim General_Purpose.dbc
:%s#{ORACLE_BASE}/oradata#/u02/oradata#g   
--或者sed直接快速替換
$ sed -i 's#{ORACLE_BASE}/oradata#/u02/oradata#g' General_Purpose.dbc

4.2 靜默建立資料庫
$ORACLE_HOME/bin/dbca -silent -responseFile /u02/soft/database/response/dbca.rsp
Enter SYS user password: 
Enter SYSTEM user password: 
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
60% complete
62% complete
Completing Database Creation
66% complete
70% complete
73% complete
85% complete
96% complete
100% complete
Look at the log file "/u02/app/oracle/cfgtoollogs/dbca/jingyu/jingyu.log" for further details.
注意:如果已經在響應檔案中配置sys和system密碼,上面就不會提示你輸入密碼了。

4.3 靜默刪除資料庫
$ dbca -silent -deleteDatabase -sourceDB jingyu -sysDBAUserName sys -sysDBAPassword oracle
Connecting to database
4% complete
9% complete
14% complete
19% complete
23% complete
28% complete
47% complete
Updating network configuration files
48% complete
52% complete
Deleting instance and datafiles
76% complete
100% complete
Look at the log file "/u02/app/oracle/cfgtoollogs/dbca/jingyu.log" for further details.
至此,Oracle資料庫靜默安裝相關內容已經完成。

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

相關文章