CentOS7.4 静默安装 Oracle11g
文章目录
环境
- CentOS7.4 最小安装
- 数据库软件
- linux.x64_11gR2_database_1of2.zip
- linux.x64_11gR2_database_2of2.zip
操作系统配置
-
关闭 SELinux
1
sed -i '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config
-
关闭防火墙,或者放行 tcp 1521 端口
1 2
systemctl disable firewalld systemctl stop firewalld
-
检查交换内存(swap)大小,建议内存一半以上,如果没有设置虚拟内存,可参考如下操作
1 2 3 4
dd if=/dev/zero bs=1024 count=1048576 of=/SWAP # 1GB chmod 0600 /SWAP echo '/SWAP swap swap defaults 0 0' >> /etc/fstab swapon /SWAP
-
调整 /etc/fstab,调整共享内存分区的大小
1 2
tmpfs /dev/shm tmpfs defaults,size=5120M 0 0 # 这里的 5120M 是要调整的共享内存分区的大小,建议大小为内存一半以上
-
重启操作系统
1
reboot
安装依赖
-
安装可能用到的工具
1 2 3 4
yum install epel-release yum clean all yum makecache fast yum install vim unzip rlwrap
-
安装 oracle 需要的包
1 2 3 4 5 6
yum install binutils compat-libcap1 compat-libstdc++-33 \ compat-libstdc++-33*i686 gcc gcc-c++ glibc glibc*.i686 \ glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel \ libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel \ libXi libXi*.i686 libXtst libXtst*.i686 make sysstat unixODBC \ unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686
配置安装环境
-
创建 oracle 用户
1 2 3
groupadd oinstall groupadd dba useradd -g oinstall -G dba oracle
-
创建 oracle 安装目录
1 2 3 4 5 6
mkdir -p /opt/oracle/app/product/11.2.0 mkdir -p /opt/oracle/app/oradata mkdir -p /opt/oracle/app/fast_recovery_area mkdir -p /opt/oracle/inventory chown -R oracle:oinstall /opt/oracle chmod -R 775 /opt/oracle
-
修改 sysctl.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
cat << EOF >> /etc/sysctl.conf fs.aio-max-nr = 1048576 fs.file-max = 6815744 #物理内存一半和4G中的较大者 kernel.shmmax = 4294967296 #shmmax / 4k (getconf PAGESIZE) kernel.shmall = 1048576 kernel.shmmni = 4096 kernel.sem = 250 32000 200 200 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.wmem_default = 262144 net.core.wmem_max = 1048586 net.core.rmem_max = 4194304 EOF sysctl -p
-
修改 limits.conf
1 2 3 4 5 6
cat << EOF >> /etc/security/limits.conf oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 EOF
-
修改 login
1 2 3 4
cat << EOF >> /etc/pam.d/login session required /lib64/security/pam_limits.so session required pam_limits.so EOF
-
修改 profile
1 2 3 4 5 6 7 8 9 10 11
cat << EOF >> /etc/profile if [ \$USER = "oracle" ] ; then if [ \$SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi umask 022 fi EOF
-
修改 oracle 用户的 .bash_profile
1 2 3 4 5 6 7 8
cat << EOF >> /home/oracle/.bash_profile export ORACLE_BASE=/opt/oracle/app export ORACLE_HOME=\$ORACLE_BASE/product/11.2.0 export ORACLE_SID=orcl export PATH=\$PATH:\$ORACLE_HOME/bin #export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8" #export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" EOF
安装数据库
-
上传数据库软件到 /root 下,解压
1 2 3
unzip linux.x64_11gR2_database_1of2.zip -d /home/oracle/ unzip linux.x64_11gR2_database_2of2.zip -d /home/oracle/ chown -R oracle.oinstall /home/oracle/database
-
切换到 oracle 用户,后续操作都在该 oracle 用户下执行
1
su - oracle
-
创建 response 文件
1 2
cd /home/oracle cp database/response/*.rsp ./
-
修改 db_install.rsp
1 2 3 4 5 6 7 8 9 10 11 12 13
sed -i \ -e '/^oracle.install.option=/s#=.*$#=INSTALL_DB_SWONLY#' \ -e '/^UNIX_GROUP_NAME=/s#=.*$#=oinstall#' \ -e '/^INVENTORY_LOCATION=/s#=.*$#=/opt/oracle/inventory#' \ -e '/^SELECTED_LANGUAGES=/s#=.*$#=en,zh_CN#' \ -e '/^ORACLE_HOME=/s#=.*$#=/opt/oracle/app/product/11.2.0#' \ -e '/^ORACLE_BASE=/s#=.*$#=/opt/oracle/app#' \ -e '/^oracle.install.db.InstallEdition=/s#=.*$#=EE#' \ -e '/^oracle.install.db.DBA_GROUP=/s#=.*$#=dba#' \ -e '/^oracle.install.db.OPER_GROUP=/s#=.*$#=dba#' \ -e '/^oracle.install.db.config.starterdb.type=/s#=.*$#=GENERAL_PURPOSE#' \ -e '/^DECLINE_SECURITY_UPDATES=/s#=.*$#=true#' \ /home/oracle/db_install.rsp
-
无需修改 netca.rsp
-
修改 dbca.rsp
1 2 3 4 5 6 7
sed -i \ -e '/^GDBNAME=/s#=.*$#=orcl#' \ -e '/^SID=/s#=.*$#=orcl#' \ -e '/^SYSPASSWORD=/s#=.*$#=111111#' \ -e '/^SYSTEMPASSWORD=/s#=.*$#=111111#' \ -e '/^CHARACTERSET=/s#=.*$#=ZHS16GBK#' \ /home/oracle/dbca.rsp
-
安装 oracle 软件
1 2 3 4 5
cd /home/oracle/database ./runInstaller -silent -responseFile /home/oracle/db_install.rsp -ignorePrereq #安装成功后,系统提示需要在 root 下执行两个脚本 /opt/oracle/invertory/orainstRoot.sh /opt/oracle/app/product/11.2.0/root.sh
-
配置监听
1 2 3
netca /silent /responseFile /home/oracle/netca.rsp #配置成功后,监听启动,查看监听状态 lsnrctl status
-
创建数据库
1 2
dbca -silent -responseFile /home/oracle/dbca.rsp #查看屏幕输出的创建进度
启动数据库
- 登陆 sysdba,启动数据库
1 2 3 4 5 6 7
[oracle@localhost ~]$ rlwrap sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on 星期一 6月 25 14:46:58 2018 Copyright (c) 1982, 2009, Oracle. All rights reserved. 连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> startup
启动报错 LRM-00109
-
详细报错信息如下:
1 2
ORA-01078: failure in processing system parameters LRM-00109: could not open parameter file 'cd /opt/oracle/app/product/11.2.0/dbs/initorcl.ora'
-
创建 initorcl.ora 文件
1 2
cd /opt/oracle/app cp admin/orcl11g/pfile/init.ora.* product/11.2.0/dbs/initorcl.ora
启动报错 ORA-00845
-
详细报错信息如下:
1
ORA-00845: MEMORY_TARGET not supported on this system
-
调整 /etc/fstab,增加如下配置
1 2
tmpfs /dev/shm tmpfs defaults,size=5120M 0 0 # 这里的 5120M 是要调整的共享内存分区的大小
-
重启服务器
文章作者 Colben
上次更新 2022-04-19