主机执行脚本前的配置
首先配置IP和主机
挂载11.2数据库iso文件到/mnt/oracledvd,
配置yum源,这些一定要设置
(可以在机器上挂载两个光盘,一个yum源,一个oracle安装镜像)
这些一定要设置
这些一定要设置
重要的事情说三遍
系统里不要有这些组oinstall, dba,oper,和用户oracle
#!/bin/bash
#oracle安装脚本
#一定把orcle安装镜像挂载到/mnt/oracledvd
echo "--------------------------------------装包"
yum install -y compat-libcap1 binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc glibc-devel libgomp glibc-headers kernel-headers gcc-c++ libstdc++-devel glibc glibc-common ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
yum install -y unzip
echo "--------------------------------------解压"
unzip /mnt/oracledvd/p13390677_112040_Linux-x86-64_1of7.zip -d /usr/local/src/
unzip /mnt/oracledvd/p13390677_112040_Linux-x86-64_2of7.zip -d /usr/local/src/
echo "--------------------------------------创建用户"
groupadd oinstall
groupadd dba
groupadd oper
useradd -g oinstall -G dba,oper oracle
echo 123456 | passwd --stdin oracle
echo "------------------------------------修改系统参数和环境变量"
sed -i '$a oracle soft nproc 2047' /etc/security/limits.conf
sed -i '$a oracle hard nproc 16384' /etc/security/limits.conf
sed -i '$a oracle soft nofile 1024' /etc/security/limits.conf
sed -i '$a oracle hard nofile 65536' /etc/security/limits.conf
sed -i '$a export ORACLE_BASE=/u01/app/oracle' /home/oracle/.bash_profile
sed -i '$a export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_home1' /home/oracle/.bash_profile
sed -i '$a export TMP=/tmp' /home/oracle/.bash_profile
sed -i '$a export TMPDIR=/tmp' /home/oracle/.bash_profile
read -p "设置你指定的SID,这里设置的包括变量和默认创建的SID:" SID
cat << EOF >> /home/oracle/.bash_profile
export ORACLE_SID=$SID
EOF
sed -i '$a export PATH=$ORACLE_HOME/bin:$PATH' /home/oracle/.bash_profile
grep kernel.shmmax /etc/sysctl.conf
if [ $? -eq 0 ]
then
echo "kernel.shmmax = 68719476736"
echo "1"
else
sed -i '$a kernel.shmmax = 68719476736' /etc/sysctl.conf
echo "1"
fi
grep kernel.shmall /etc/sysctl.conf
if [ $? -eq 0 ]
then
echo "kernel.shmall = 4294967296"
echo "2"
else
sed -i '$a kernel.shmall = 4294967296' /etc/sysctl.conf
echo "2"
fi
grep kernel.shmmni /etc/sysctl.conf
if [ $? -eq 0 ]
then
echo "kernel.shmmni = 4096"
echo "3"
else
sed -i '$a kernel.shmmni = 4096' /etc/sysctl.conf
echo "3"
fi
grep kernel.sem /etc/sysctl.conf
if [ $? -eq 0 ]
then
echo "kernel.sem = 250 32000 100 128"
echo "4"
else
sed -i '$a kernel.sem = 250 32000 100 128' /etc/sysctl.conf
echo "4"
fi
grep fs.aio-max-nr /etc/sysctl.conf
if [ $? -eq 0 ]
then
echo "fs.aio-max-nr = 1048576"
echo "5"
else
sed -i '$a fs.aio-max-nr = 1048576' /etc/sysctl.conf
echo "5"
fi
grep fs.file-max /etc/sysctl.conf
if [ $? -eq 0 ]
then
echo "fs.file-max = 6815744"
echo "6"
else
sed -i '$a fs.file-max = 6815744' /etc/sysctl.conf
echo "6"
fi
grep net.ipv4.ip_local_port_range /etc/sysctl.conf
if [ $? -eq 0 ]
then
echo "net.ipv4.ip_local_port_range = 9000 65500"
echo "7"
else
sed -i '$a net.ipv4.ip_local_port_range = 9000 65500' /etc/sysctl.conf
echo "7"
fi
grep net.core.rmem_default /etc/sysctl.conf
if [ $? -eq 0 ]
then
echo "net.core.rmem_default = 262144"
echo "8"
else
sed -i '$a net.core.rmem_default = 262144' /etc/sysctl.conf
echo "8"
fi
grep net.core.rmem_max /etc/sysctl.conf
if [ $? -eq 0 ]
then
echo "net.core.rmem_max = 4194304"
echo "9"
else
sed -i '$a net.core.rmem_max = 4194304' /etc/sysctl.conf
echo "9"
fi
grep net.core.wmem_default /etc/sysctl.conf
if [ $? -eq 0 ]
then
echo "net.core.wmem_default = 262144"
echo "10"
else
sed -i '$a net.core.wmem_default = 262144' /etc/sysctl.conf
echo "10"
fi
grep net.core.wmem_max /etc/sysctl.conf
if [ $? -eq 0 ]
then
echo "net.core.wmem_max = 1048576"
echo "11"
else
sed -i '$a net.core.wmem_max = 1048576' /etc/sysctl.conf
echo "11"
fi
echo "------------------------------创建目录"
mkdir /u01/app/oracle -pv
chown oracle.oinstall /u01 -R
cat << EOF > /home/oracle/db.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
EOF
host=$(hostname)
cat << EOF >> /home/oracle/db.rsp
ORACLE_HOSTNAME=$host
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_home1
ORACLE_BASE=/u01/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,oracle.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=oper
oracle.install.db.CLUSTER_NODES=
oracle.install.db.isRACOneInstall=false
oracle.install.db.racOneServiceName=
oracle.install.db.config.starterdb.type=
oracle.install.db.config.starterdb.globalDBName=
EOF
cat << EOF >> /home/oracle/db.rsp
oracle.install.db.config.starterdb.SID=$SID
EOF
cat << EOF >> /home/oracle/db.rsp
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=123456
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=
EOF
#su - oracle
#sh /usr/local/src/database/runInstaller -silent -noconfig -ignoreSysPrereqs -responseFile /home/oracle/db.rsp
#su - root
#sh /u01/app/oraInventory/orainstRoot.sh
#sh /u01/app/oracle/product/11.2.0/db_home1/root.sh
cat << EOF > /home/oracle/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"}
EOF
cat << EOF > /home/oracle/dbca.rsp
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "$SID.$host"
SID = "$SID"
TEMPLATENAME = "General_Purpose.dbc"
[createTemplateFromDB]
SOURCEDB = "$host:1521:$SID"
SYSDBAUSERNAME = "system"
TEMPLATENAME = "My Copy TEMPLATE"
[createCloneTemplate]
SOURCEDB = "$SID"
TEMPLATENAME = "My Clone TEMPLATE"
[DELETEDATABASE]
SOURCEDB = "$SID"
[generateScripts]
TEMPLATENAME = "New Database"
GDBNAME = "$SID.$host"
[CONFIGUREDATABASE]
[ADDINSTANCE]
DB_UNIQUE_NAME = "$SID.$host"
NODELIST=
SYSDBAUSERNAME = "sys"
[DELETEINSTANCE]
DB_UNIQUE_NAME = "$SID.$host"
INSTANCENAME = "$SID"
SYSDBAUSERNAME = "sys"
EOF
脚本执行过程中会让你指定SID名字,所有的用户密码都是123456
用root执行完后会在/home/oracle/下生成所有的安装应答文件(db.rsp netca.rsp dbca.rsp)
然后切换成oracle用户
执行
sh /usr/local/src/database/runInstaller -silent -noconfig -ignoreSysPrereqs -responseFile /home/oracle/db.rsp
执行后屏幕会提示你用root用户执行两个文件
屏幕会出现成功,但是不要高兴的太早
一定等屏幕提示,出现成功后再进行往下的操作
创建个新的窗口是root用户
sh /u01/app/oraInventory/orainstRoot.sh
sh /u01/app/oracle/product/11.2.0/db_home1/root.sh
然后切换成原来的窗口,提示执行两个文件的那个窗口,点回车
继续完成安装
然后用oracle用户
netca -silent -responsefile /home/oracle/netca.rsp
dbca -silent -responseFile /home/oracle/dbca.rsp
执行完后
就可以查看监听状态了
netstat -anp | grep :1521
lsnrctl status
然后进入数据库
sqlplus / as sysdba
查看数据库状态
select instance_name,status from v$instance
INSTANCE_NAME STATUS
---------------- ------------
这里会显示你指定的SID OPEN