CentOS6.332位靜默安裝Oracle11gr2詳細教程 一、安裝依賴包 binutils 2.17.50.0.6 compat-libstdc++-33 3.2.3 elfutils-libelf 0.125 elfutils-libelf-devel 0.125 elfutils-libelf-devel-static 0.125 gcc 4.1.2 gcc-c++ 4.1.2 glibc 2.5-24 glibc-common 2
CentOS 6.3 32位靜默安裝Oracle 11g r2詳細教程
一、安裝依賴包
binutils2.17.50.0.6
compat-libstdc++-33 3.2.3
elfutils-libelf0.125
elfutils-libelf-devel0.125
elfutils-libelf-devel-static0.125
gcc4.1.2
gcc-c++4.1.2
glibc2.5-24
glibc-common2.5
glibc-devel2.5
glibc-headers2.5
kernel-headers2.6.18
ksh20060214
libaio0.3.106
libaio-devel0.3.106
libgcc4.1.2
libgomp4.1.2
libstdc++4.1.2
libstdc++-devel4.1.2
make3.81
sysstat7.0.2
unixODBC2.2.11
unixODBC-devel2.2.11
yum install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
二、修改內核參數
1、修改/etc/sysctl.conf文件
(1)、以root身份登錄
(2)、編輯文件 #vim /etc/sysctl.conf,修改以下參數,如果沒有可以自己添加,如果默認值比參考值大,則不需要修改。
kernel.shmall = 2097152 //表示系統一次可以使用的共享內存總量(以頁為單位)。缺省值就是2097152,通常不需要修改
kernel.shmmax = 2147483648 //定義了共享內存段的最大尺寸(以字節為單位)。缺省為32M,對于oracle來說,該缺省值太低了,通常將其設置為2G=2147483648/1024/1024/1024
kernel.shmmni = 4096 //用于設置系統范圍內共享內存段的最大數量。該參數的默認值是 4096 。通常不需要更改
kernel.sem = 250 32000 100 128 //表示設置的信號量
fs.file-max = 65536 //表示文件句柄的最大數量。文件句柄表示在Linux系統中可以打開的文件數量。其實是由"fs.file-max = 512 * PROCESSES"得到的,我們指定PROCESSES的值為128,即為"fs.file-max =512 *128"。
fs.aio-max-nr = 1048576 //同時可以擁有的的異步IO請求數目。
net.ipv4.ip_local_port_range = 1024 65000 //應用程序可使用的Ipv4端口范圍。
net.core.rmem_default = 262144 //默認的接收窗口大小
net.core.rmem_max = 4194304 //接收窗口的最大大小
net.core.wmem_default = 262144 //默認的發送窗口大小
net.core.wmem_max = 1048586 //發送窗口的最大大小
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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
(3)、運行#sysctl -p ,即可馬上生效。
(4)、運行 #sysctl -p 命令報錯
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
解決方法,執行如下命令:
#modprobe bridge
#lsmod|grep bridge
2、為oracle用戶設置Shell限制
(1)、編輯文件 #vim /etc/security/limits.conf ,添加如下行:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
(2)、編輯文件 #vim /etc/pam.d/login ,添加如下行:
session required pam_limits.so
(3)、查看/etc/selinux/config 文件,確保SELINUX 為disabled狀態
SELINUX=disabled
查看SELinux狀態:getenforce
關閉SELinux:
1、臨時關閉(不用重啟機器):
setenforce 0 ##設置SELinux 成為permissive模式
##setenforce 1 設置SELinux 成為enforcing模式
3、編輯/etc/profile,添加如下配置:
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
4、編輯 /etc/csh.login ,添加如下配置:
if ( $USER == "oracle" ) then
limit maxproc 16384
limit descriptors 65536
endif
3、注:內核參數并非必須修改,可以根據自己實際情況而定。
三、創建用戶和組及安裝目錄
1、創建Oracle用戶與組
在這里只討論單主機環境,不考慮RAC環境的配置。
執行以下指令以新增oracle安裝時所需要的使用者與群組。
(1) 建立群組oinstall
# groupadd oinstall
(2) 建立群組dba
# groupadd oradba
(3) 新增使用者oracle并將其加入oinstall和dba群組
# useradd -g oinstall -G oradba oracle
(4) 測試oracle賬號是否建立完成
# id oracle
(5) 建立oracle的新密碼
# passwd oracle
(6)將oracle使用者加入到sudo群組中
# vim /etc/sudoers
找到
root ALL=(ALL) ALL
這行,并且在底下再加入
oracle ALL=(ALL) ALL
輸入wq!或者x!(由于這是一份只讀文檔所以需要再加上!)并且按下Enter
2、創建oracle安裝時的目標目錄
(1) 以root身份登錄
(2) 創建Oracle系統目錄:# mkdir -p /app/oracle
(3) 創建Oracle服務器主目錄:# mkdir /app/oracle/11g
(4) 將該目錄的所有者設置為oracle:# chown -R oracle:oinstall /app/oracle
(5) 編輯 /etc/profile,在后面追加以下內容
export ORACLE_BASE=/app/oracle
export ORACLE_HOME=/app/oracle/11g
export ORACLE_SID=ora11g
export PATH=$PATH:$ORACLE_HOME/bin
運行# source /etc/profile 使其立即生效
(6) 注: 安裝Oracle的目標目錄可以任意指定, 但是安裝和運行Oracle的用戶必須有完全修改該目錄的權限
四、編輯安裝需要的應答文件
(1) 以root身份登錄
(2) 靜默模式(Silent)安裝必須指定一個應答文件db_install.rsp來完成安裝過程所須的各類參數。
(3) 編輯db_install.rsp,修改以下這些項目的值。
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=localhost
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/app/oracle/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/app/oracle/11g
ORACLE_BASE=/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=oradba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=oracle11g
oracle.install.db.config.starterdb.SID=ora11g
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.password.ALL=manager
DECLINE_SECURITY_UPDATES=true
其它項目用默認值即可,也可以根據自己的須要進行修改
(4) 注:如果Oracle從光盤安裝,必須先將應答文件復制到硬盤上,才能修改
五、開始安裝
(1) 用oracle用戶登錄,然后在Oracle安裝目錄里執行
$ ./runInstaller -ignoreSysPrereqs -silent -noconfig -responseFile <應答文件的絕對路徑>
(2) 接下來就是等待安裝結束了。
各安裝參數的含義如下:
-ignoreSysPrereqs 讓Oracle忽略系統檢查,因為Oracle官方聲明只支持Linux服務器產品,所以要在非服務器產品的Linux上安裝就必須指定此參數。
-silent 表示以靜默方式安裝,不會有任何提示
-force 允許安裝到一個非空目錄
-noconfig 表示不運行配置助手netca
-responseFile 表示使用哪個響應文件,必需使用絕對路徑
在這里我輸入:
$ ./runInstaller -ignoreSysPrereqs -silent -noconfig -responseFile /mnt/hgfs/tmp/oracle11g/response/db_install.rsp
當前目錄為安裝目錄系統反應為:
Starting Oracle Universal Installer...
Checking installer requirements...
六、系統初始化
(1) 以root用戶登錄
(2) 運行以下兩個腳本:
$ORACLE_BASE/oraInventory/orainstRoot.sh
$ORACLE_HOME/root.sh
七、安裝網絡監聽器
(1) 以oracle登陸
(2) 沒有網絡監聽器,客戶端就無法通過網絡連接Oralce服務器。要在命令行安裝網絡監聽器,也只能使用靜默模式。
(3) 運行:
$ORACLE_HOME/bin/netca /silent /responseFile <應答文件的絕對路徑>
這里我輸入的命令為:
$ORACLE_HOME/bin/netca /silent /responseFile /mnt/hgfs/tmp/oracle11g/response/netca.rsp
系統反應:
Parsing command line arguments:
Parameter "silent" = true
Parameter "responsefile" = /mnt/hgfs/tmp/oracle11g/response/netca.rsp
Done parsing command line arguments.
Oracle Net Services Configuration:
Profile configuration complete.
Oracle Net Listener Startup:
Running Listener Control:
/app/oracle/11g/bin/lsnrctl start LISTENER
Listener Control complete.
Listener started successfully.
Listener configuration complete.
Oracle Net Services configuration successful. The exit code is 0
(4) 查看監聽器狀態
$ORACLE_HOME/bin/lsnrctl status
八、修改dbstart
(1) 以oracle身份登錄
(2) 打開 $ORACLE_HOME/bin/dbstart,將
ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle
改為
ORACLE_HOME_LISTNER=$ORACLE_HOME
否則網絡監聽器可能無法自動啟動。
九、安裝數據庫實例
(1) 以root身份登錄
(2) 編輯Oracle安裝目錄里response子目錄下的應答文件 dbca.rsp,修改以下項目:
RESPONSEFILE_VERSION = "11.2.0" //不能更改
OPERATION_TYPE = "createDatabase"
GDBNAME="oracle11g" 全局數據庫的名字=SID+主機域名,這里我設置為:oracle11g
SID="ora11g" 數據庫的SID,這個比較重要,我第一次安裝時就是因為這個問題無法使用,這里我修改為:ora11g
TEMPLATENAME = "General_Purpose.dbc" //建庫用的模板文件
SYSPASSWORD="manager" SYS用戶的初始密碼,我設置為manager
SYSTEMPASSWORD="manager" SYSTEM用戶的初始密碼,我設置為manager
DATAFILEDESTINATION = /app/oracle/oradata //數據文件存放目錄
RECOVERYAREADESTINATION=/app/oracle/oradata_back //恢復數據存放目錄
CHARACTERSET="ZHS16GBK" 數據庫字符集,重要!!!! 建庫后一般不能更改(中文為 ZHS16GBK)
TOTALMEMORY = "800" //oracle內存800MB
(3)然后登陸oracle運行
$ORACLE_HOME/bin/dbca -silent -responseFile <應答文件的絕對路徑> -cloneTemplate
這里我輸入的命令為:
$ORACLE_HOME/bin/dbca -silent –responseFile /mnt/hgfs/tmp/oracle11g/response/dbca.rsp -cloneTemplate
(4) 系統反應:
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 "/app/oracle/cfgtoollogs/dbca/oracle11g/oracle11.log" for further details.
十、修改Oracle啟動配置文件:/etc/oratab
(1) 以oracle用戶登錄
(2) 然后編輯 /etc/oratab
將
修改為ora11g:/app/oracle/11g:Y
使數據庫實例能夠自動啟動。
十一、啟動和關閉Oracle
以oracle用戶登錄
(1) 檢查看看監聽器是否有啟動
$ORACLE_HOME/bin/lsnrctl status
如果沒有啟動,可以輸入:
$ORACLE_HOME/bin/lsnrctl start
(2) 啟動Oracle實例
以sysdba身份登入數據庫,輸入:
$ sqlplus sys as sysdba
輸入密碼。(顯示SQL>)
接著請輸入
SQL> startup
就可以正常的啟動數據庫了。
備注:也可以用$ORACLE_HOME/bin/dbstart啟動數據庫實例
(3) 關閉數據庫實例
SQL> shutdown immediate
備注:也可以用 $ORACLE_HOME/bin/dbstart 啟動數據庫實例
(4) 關閉監聽
$ lsnrctl stop
十二、讓Oracle運行為服務
(1) 以root身份登錄
(2) 創建文件 /etc/init.d/oracle,輸入下列內容
#!/bin/sh
# chkconfig: 35 80 10
# description: Oracle auto start-stop script.
#
# Set ORACLE_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORACLE_OWNER to the user id of the owner of the
# Oracle database in ORACLE_HOME.
ORACLE_HOME=/app/oracle/11g
ORACLE_OWNER=oracle
if [ ! -f $ORACLE_HOME/bin/dbstart ]
then
echo "Oracle startup: cannot start"
exit
fi
case "$1" in
'start')
# Start the Oracle databases:
echo "Starting Oracle Databases ... "
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Starting Oracle Databases as part of system up." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart" >>/var/log/oracle
echo "Done"
# Start the Listener:
echo "Starting Oracle Listeners ... "
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Starting Oracle Listeners as part of system up." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl start" >>/var/log/oracle
echo "Done."
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Finished." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
touch /var/lock/subsys/oracle
;;
'stop')
# Stop the Oracle Listener:
echo "Stoping Oracle Listeners ... "
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Stoping Oracle Listener as part of system down." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl stop" >>/var/log/oracle
echo "Done."
rm -f /var/lock/subsys/oracle
# Stop the Oracle Database:
echo "Stoping Oracle Databases ... "
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Stoping Oracle Databases as part of system down." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbshut" >>/var/log/oracle
echo "Done."
echo ""
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Finished." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
;;
'restart')
$0 stop
$0 start
;;
esac
(3) 然后將這個文件賦予可執行的權限,運行
chmod a+x /etc/init.d/oracle
(4) 添加Oracle服務并設置在Linux啟動時自動運行
chkconfig --level 35 oracle on #添加Oracle服務,并設置3、5啟動級別自動啟動oracle
chkconfig --list oracle #查看服務信息
這樣就可以用service oracle start|stop|restart來啟動、停止和重啟Oracle了
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com