1. 程式人生 > >CentOS 6.10 上靜默安裝oracle10g(64位)

CentOS 6.10 上靜默安裝oracle10g(64位)

作業系統:CentOS release 6.10 (Final) 64位
oracle版本:ORA10g_Linux_64.ISO
一、下載必須安裝包:
# yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat
# yum install libXp
# yum -y install libXp.i686
# yum -y install libXt.i686
# yum -y install libXtst.i686

二、 修改 sysctl.conf 配置檔案:
# vi /etc/sysctl.conf

#kernel.shmall = 2097152
#kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144
立即執行修改:
# sysctl -p

三、 修改 limits.conf 配置檔案
# vi /etc/security/limits.conf

oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

四、 建立相應的使用者名稱和使用者組,複製安裝檔案:

複製安裝檔案到/home/oracle目錄下
mount -o loop ORA10g_Linux_64.ISO /media/cdrom/
# mkdir /home/oracle/inst
# cp -R /media/cdrom/* /home/oracle/inst/
# umount /media/cdrom
#修改oracle目錄的屬主
# chown -R oracle:dba /home/oracle

五、 修改 /etc/profile 限制其他使用者使用:

# vim /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

六、修改Linux 發行版本.
# vim /etc/redhat-release
註釋第一行,增加
redhat-4

七、 配置Oracle使用者環境變數:
su - oracle

#vi .bash_profile
新增以下內容:
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
 
export ORACLE_BASE=/home/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORACLE_SID=YKSJ
export ORACLE_TERM=xterm
export PATH=$PATH:$ORACLE_HOME/bin
 
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

#export NLS_LANG=american_america.ZHS16GBK
#export LANGUAGE=zh_CN.GN2312:zh_CN
#export LANG=zh_CN.GB18030


八、 使配置生效
# source /home/oracle/.bash_profile


九、編輯安裝需要的應答檔案
vi  enterprise.rsp

修改以下這些專案的值

ORACLE_HOME=/home/oracle/product/10.2.0/db_1
#用於描述 ORACLE_HOME 的名字
ORACLE_HOME_NAME="XXXXHome"
COMPONENT_LANGUAGES={"zh_CN"}
#安裝型別,企業版
INSTALL_TYPE="EE"
#dba的使用者組
s_nameForDBAGrp=dba
#operator 的使用者組
s_nameForOPERGrp=dba
#安裝型別配置,3為只安裝伺服器軟體
n_configurationOption=3


開始安裝
./runInstaller -ignoreSysPrereqs -silent -responseFile .../enterprise.rsp


Oracle Database 10g 的 安裝 已成功。
請檢視 '/home/oracle/oraInventory/logs/silentInstall2018-09-27_11-16-11AM.log' 以獲取詳細資料。

Oracle系統初始化
root  使用者登陸,執行$ORACLE_HOME/root.sh (/home/oracle/product/10.2.0/db_1/root.sh)

十、安裝監聽
防火牆配置
iptables -I INPUT 1 -p tcp -i lo  --dport 1521 -j ACCEPT
iptables -I OUTPUT 1 -p tcp -o lo  --sport 1521 -j ACCEPT

iptables -I INPUT 1 -p tcp -i lo  --sport 1521 -j ACCEPT
iptables -I OUTPUT 1 -p tcp -o lo  --dport 1521 -j ACCEPT
service iptables save

root 使用者修改  /etc/hosts  檔案,新增 

127.0.0.1 localhost

x.x.x.x    主機名

vi  netca.rsp
SHOW_GUI=false
修改 LOG_FILE=

執行
$ORACLE_HOME/bin/netca  /silent  /responseFile <netca.rsp>

監聽程式控制完成。
監聽程式已成功啟動。
監聽程式配置完成。
預設本地命名配置完成。
成功完成 Oracle Net Services 配置。退出程式碼是0 ,安裝需要好幾分鐘。


修改dbstart
vi $ORACLE_HOME/bin/dbstart
ORACLE_HOME_LISTNER=$ORACLE_HOME #(/home/oracle/product/10.2.0/db_1)

十一、安裝資料庫例項
#cat /etc/group |grep dba
dba:x:501:
#vi /etc/sysctl.conf
新增 vm.hugetlb_shm_group = 501
sysctl -p

編輯Oracle安裝目錄裡response子目錄下的dbca.rsp檔案
GDBNAME="SID"
SID="SID"
SYSPASSWORD="password"
SYSTEMPASSWORD="password"
CHARACTERSET="ZHS16GBK"
NATIONLCHARACTERSET="UTF8"
TEMPLATENAME = "General_Purpose.dbc"
MEMORYPERCENTAGE = "40"  

$ORACLE_HOME/bin/dbca -silent -responseFile <dbca.rsp>
100% 已完成
有關詳細資訊, 請參閱日誌檔案 "/home/oracle/product/10.2.0/db_1/cfgtoollogs/dbca/xxxx/xxxx1.log"。

切換root執行
# $ORACLE_BASE/oraInventory/orainstRoot.sh
如果檔案不存在的話,自己建立一個
#vi $ORACLE_BASE/oraInventory/orainstRoot.sh
#!/bin/sh
if [ -d "/etc" ]; then
chmod 755 /etc;
fi
if [ -f "/home/oracle/oraInventory/oraInst.loc" ]; then
cp /home/oracle/oraInventory/oraInst.loc /etc/oraInst.loc;
else
INVPTR=/etc/oraInst.loc
INVLOC=/home/oracle/oraInventory
GRP=dba
PTRDIR="`dirname $INVPTR`";
# 建立軟體產品清單位置指標檔案
if [ ! -d "$PTRDIR" ]; then
 mkdir -p $PTRDIR;
fi
echo "建立 Oracle 產品清單指標檔案($INVPTR)";
echo    inventory_loc=$INVLOC > $INVPTR
echo    inst_group=$GRP >> $INVPTR
chmod 644 $INVPTR
# 如果產品清單目錄不存在, 建立產品清單目錄
if [ ! -d "$INVLOC" ];then
 echo "建立 Oracle 產品清單目錄($INVLOC)";
 mkdir -p $INVLOC;
fi
fi
echo "更改許可權/home/oracle/oraInventory 到 770.";
chmod -R 770 /home/oracle/oraInventory;
if [ $? != 0 ]; then
 echo "OUI-35086: 警告: chmod/home/oracle/oraInventory 到 770 失敗!";
fi
echo "更改組名/home/oracle/oraInventory 到 dba.";
chgrp dba /home/oracle/oraInventory;
if [ $? != 0 ]; then
 echo "OUI-10057: 警告: chgrp of/home/oracle/oraInventory 到 dba 失敗!";
fi
echo "指令碼的執行已完成"


使資料庫例項能夠自動啟動

十二、開機自動執行
vi /etc/oratab
SID:/home/oracle/product/10.2.0/db_1:Y

vi /etc/rc.d/rc.local
su - oracle -c "/home/oracle/product/10.2.0/db_1/bin/dbstart start"
su - oracle -c "/home/oracle/product/10.2.0/db_1/bin/lsnrctl start"

十三、重啟伺服器,檢視啟動結果

tail  /home/oracle/product/10.2.0/db_1/startup.log