CentOS7.2 使用Shell安装Oracle12c

时间:2024-12-16 18:05:32

一.操作系统说明

1.操作系统 版本

CentOS7.2 使用Shell安装Oracle12c

2.磁盘分区用量

CentOS7.2 使用Shell安装Oracle12c

二.安装必要的软件包

for pkg in 'binutils' 'compat-libcap1' 'compat-libstdc++-33' 'gcc' 'gcc-c++' 'glibc' 'glibc-devel' 'ksh' 'libaio' 'libaio-devel' 'libgcc' 'libstdc++' 'libstdc++-devel' 'libXi' 'libXtst' 'make' 'sysstat'
do
 rpm -qa | grep $pkg
 if [ $? -ne ] ; then
  sudo yum install $pkg -y
 else
  echo $pkg \t >>"已安装"
 fi
done

三、创建用户组 及 用户

groupadd -g  oinstall;
groupadd -g dba;
groupadd -g oper;
groupadd -g backupdba;
groupadd -g dgdba;
groupadd -g kmdba;
groupadd -g asmdba;
groupadd -g asmoper;
groupadd -g asmadmin;
useradd -u -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba -s /bin/bash -d /home/oracle oracle
echo "" | sudo passwd --stdin oracle

四、修改权限及变量

1.修改 oracle安装目录 和 数据目录的权限

chown -R oracle:oinstall /oracle /oradata
chmod /oracle /oradata

2. 配置环境变量 ORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH

grep ORACLE_BASE /home/oracle/.bash_profile && echo -e "ORACLE_BASE=/oracle\nORACLE_HOME=\$ORACLE_BASE/product/12.1.0/db_1\n\
ORACLE_SID=zheng\nPATH=\$PATH:\$ORACLE_HOME/bin\n\
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib\n
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH" >>/home/oracle/.bash_profile

五、配置系统参数

1.关闭内存透明大页

echo "transparent_hugepage=never">> sudo /etc/grub2.cfg

2.修改操作系统参数和 用户资源限制参数

cat >/etc/sysctl.d/-sysctl.conf <<EOF
fs.aio-max-nr =
fs.file-max =
kernel.shmall =
kernel.shmmax =
kernel.shmmni =
kernel.sem =
net.ipv4.ip_local_port_range =
net.core.rmem_default =
net.core.rmem_max =
net.core.wmem_default =
net.core.wmem_max =
EOF
# 同步系统参数
sysctl -p
cat >>/etc/security/limit.conf<<EOF
oracle soft nproc
oracle hard nproc oracle soft nofile
oracle hard nofile oracle soft stack
oracle hard stack EOF

六、启动安装

unzip oracle12c.zip -d /tmp
chmod -R +x /tmp/database /tmp/database/runInstaller
# 获得当前操作系统的工作模式
systemctl get-default
# 安装完成,切换到多用户模式以节省内存
systemctl set-default multi-user.target

七、后续问题解决

########## 实例启动时问题 #############
# .MEMORY_TARGET 大于 /dev/shm 时 实例无法启动
# 配置 /dev/shm 大于 MEMORY_TARGET
# 在 /etc/fstab 中指定 /dev/shm 挂载时的大小
tmpfs /dev/shm tmpfs defaults,size=4G
# 并在命令行手动重新挂在 /dev/shm
mount -o remount,size=4G /dev/shm # .重新安装数据库,init<SID>.ora 文件名中SID与 当前SID不一致
# 你的ORACLE_SID参数有问题,有三个地方的SID可以查看一下是否一致:
# $ORACLE_BASE/admin/SID_NAME/pfile文件夹下的init文件中的SID;
# /etc/oratab中的最后一行第一个“:”前,如“oracl:/u01/app/oracle/product/11.2./dbhome_1:N”中的“oracl”;
# ~/.bash_profile中的SID;
# 改好后重启linux系统
cp /oracle/admin/honor9/pfile/init.ora. /oracle/product/12.1./db_1/dbs/inithonor9.ora
#上述的三个一致的话,应该就可以了。 ####### 登陆 SQL*plus 字符问题 ##########
# SQL*plus字符乱码 需要配置 NLS_LANG
# 如果操作系统变量 LANG的值是 zh_CN.UTF-
# 则在 .bash_profile 配置 NLS_LANG='SIMPLIFIED CHINESE_CHINA.AL32UTF8' ########## 远程登陆问题 ##############
# 配置网络 使用 netca 命令
# ORA-: No Matching authentication protocol : $ORACLE_HOME/NETWORK/ADMIN/sqlnet.ora 增加一行 SQLNET.ALLOWED_LOGIN_VERSION=