Oracle 11g静默安装
1.配置主机名
echo "IP地址 主机名" >> /etc/hosts
cat /etc/hosts
echo "export LANG=en_US" >> ~/.bash_profile
source ~/.bash_profile
2.创建用户、组、目录
/usr/sbin/groupadd -g 60001 oinstall
/usr/sbin/groupadd -g 60002 dba
/usr/sbin/groupadd -g 60003 oper
useradd -u 61001 -g oinstall -G dba,oper oracle
passwd oracle
mkdir -p /u01
mkdir -p /u01/app/oracle/product/11.2.0
mkdir -p /u01/app/oraInventory
chown -R oracle:oinstall /u01
3.配置yum源
mount 镜像文件 /mnt
# 清除yum缓存 :yum clean all
# 缓存本地yum源:yum makecache
# 测试yum本地源:yum list
# 配置yum源
cd /etc/yum.repos.d
mkdir bk
mv *.repo bk/
echo "[EL]" >> /etc/yum.repos.d/yum.repo
echo "name =Linux 7.x DVD" >> /etc/yum.repos.d/yum.repo
echo "baseurl=file:///mnt" >> /etc/yum.repos.d/yum.repo
echo "gpgcheck=0" >> /etc/yum.repos.d/yum.repo
echo "enabled=1" >> /etc/yum.repos.d/yum.repo
cat /etc/yum.repos.d/yum.repo
#CentOS系统
[base]
name=CentOS-$releasever - Base
baseurl=file:///mnt
gpgcheck=0
enabled=1
# 安装软件
yum -y install bc gcc gcc-c++ binutils make gdb cmake glibc ksh elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc-devel libaio libaio-devel libXrender libXrender-devel libX11 libXau sysstat libXi libXtst libgcc librdmacm-devel libstdc++ libstdc+±devel libxcb net-tools nfs-utils compat-libcap1 compat-libstdc++ smartmontools targetcli python python-configshell python-rtslib python-six unixODBC unixODBC-devel iscsi-initiator-utils device-mapper device-mapper-multipath unbound bind-utils
4.修改内核参数
SHMMAX=$(grep 'MemTotal' /proc/meminfo |awk '{printf ("%d\n",$2*1024*0.8)}')
SHMALL=$(grep 'MemTotal' /proc/meminfo |awk '{printf ("%d\n",$2*1024/4096*0.8)}')
sed -i "s/kernel.shmmax/#kernel.shmmax/g" /etc/sysctl.conf
sed -i "s/kernel.shmall/#kernel.shmall/g" /etc/sysctl.conf
cat >> /etc/sysctl.conf << EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = $SHMALL
kernel.shmmax = $SHMMAX
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 1048576
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
EOF
sysctl -p
5.修改系统资源限制参数
SMEMLOCK=$(grep 'MemTotal' /proc/meminfo |awk '{printf ("%d\n",$2*0.9)}')
HMEMLOCK=$(grep 'MemTotal' /proc/meminfo |awk '{printf ("%d\n",$2*0.9)}')
cat >> /etc/security/limits.conf << EOF
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 2048
grid hard nofile 65536
grid soft stack 10240
grid hard stack 32768
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 2048
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle soft memlock $SMEMLOCK
oracle hard memlock $HMEMLOCK
EOF
sysctl -p
6.关闭透明页:默认启用
cat /sys/kernel/mm/transparent_hugepage/defrag
[always] madvise never
cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
vi /etc/rc.d/rc.local
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
chmod +x /etc/rc.d/rc.local
7.关闭numa功能
vi /etc/default/grub
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet numa=off"
grub2-mkconfig -o /etc/grub2.cfg
numastat
numactl --show
numactl --hardware
8.修改时区
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock
9.配置安全
#禁用SELINUX
echo "SELINUX=disabled" > /etc/selinux/config
echo "#SELINUXTYPE=targeted " >> /etc/selinux/config
cat /etc/selinux/config
setenforce 0
#关闭防火墙
systemctl status firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service
6.配置环境变量
su – oracle
vi ~/.bash_profile
PS1="[`whoami`@`hostname`:"'$PWD]$'
export PS1
export TMP=/tmp
export LANG=en_US
export TMPDIR=$TMP
export ORACLE_UNQNAME=testdb
ORACLE_SID=testdb; export ORACLE_SID
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export ORACLE_HOME
ORACLE_TERM=xterm; export ORACLE_TERM
NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export NLS_DATE_FORMAT
NLS_LANG=AMERICAN_AMERICA.UTF8;export NLS_LANG
PATH=.:$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_BASE/product/11.2.0/db_1/bin:$ORACLE_HOME/bin; export PATH
THREADS_FLAG=native; export THREADS_FLAG
umask=022
source .bash_profile
env |grep ORACLE
7.安装数据库软件并创建数据库
# 上传软件并解压,解压生成database目录
su – oracle
mkdir software
cd /software
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
# 在database的子目录response目录:
db_install.rsp(安装数据库软件)、netca.rsp(创建监听)及dbca.rsp(创建数据库)
# 可以手工编辑上述3个创建脚本或自行创建db_install.rsp、netca.rsp、dbca.rsp
# db_install.rsp脚本参数如下:
oracle.install.responseFileVersion=oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=xcldbsvr06----根据实际主机名修改
UNIX_GROUP_NAME=oinstall-----根据实际组名修改
INVENTORY_LOCATION=/u01/app/oraInventory
SELECTED_LANGUAGES=en,zh_CN----软件字符集
ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1----根据.base_profile中的修改
ORACLE_BASE=/u01/app/oracle----根据.base_profile中的修改
oracle.install.db.InstallEdition=EE
oracle.install.db.EEOptionsSelection=false
oracle.install.db.DBA_GROUP=dba-----根据实际组名修改
oracle.install.db.OPER_GROUP=oinstall-----根据实际组名修改
DECLINE_SECURITY_UPDATES=true
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
oracle.installer.autoupdates.option=SKIP_UPDATES
# dbca.rsp脚本参数如下:
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "testdb"-----数据库名
SID = "testdb"
TEMPLATENAME = "General_Purpose.dbc"
STORAGETYPE=FS
DATAFILEDESTINATION =/u01/data
#RECOVERYAREADESTINATION=/u01/app/oracle/flash_recovery_area
CHARACTERSET = "UTF8"
NATIONALCHARACTERSET= "AL16UTF16"
TOTALMEMORY = "8192"
SYSPASSWORD = "oracle"
SYSTEMPASSWORD = "oracle"
# 创建对应的目录
mkdir -p /u01/app/oracle/product/11.2.0/db_1
mkdir -p /u01/data
mkdir -p /u01/app/oracle/flash_recovery_area
# 在path/database下可以创建db_install.rsp、dbca.rsp
# 执行安装数据库软件脚本
./runInstaller -silent -ignorePrereq -responseFile /software/database/db_install.rsp
# 数据库软件静默安装完成后会提示2个脚本,需要在root用户下执行
# 执行创建监听脚本(直接执行/software/database/response下的netca.rsp即可)
netca -silent -responseFile /software/database/response/netca.rsp
# 执行创建数据库脚本
dbca -silent -responseFile /software/database/dbca.rsp
8.安装完成后进行测试
# 监听测试
lsnrctl status
# 数据库测试
sqlplus / as sysdba
select instance_name,status from v$instance;




