优秀的编程知识分享平台

网站首页 > 技术文章 正文

Oracle Linux 7 上静默安装 Oracle 11g

nanyue 2024-07-23 13:20:49 技术文章 10 ℃

一直以来安装oracle数据库都是用的图形化界面, 也一直知道可以用命令行安装。 大概知道步骤,没亲自尝试, 这次有空试了一般。 还是很方便的。

ps. 由于bug问题,其实有一步还是不得不用图形界面,是操作系统太新的原因。如果是旧一点的,例如linux 6就没这个问题。

本文适合没有图形界面的机器或者不能远程图形访问的时候,使用ssh安装oracle 数据库。

以下是详细步骤, 供参考。

操作系统

Oracle Linux 7.9

数据库

11.2.0.4

详细步骤

准备安装环境

最小化安装 oracle linux 7.9

关闭selinux

sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config  ;  sed -i "s/SELINUX=permissive/SELINUX=disabled/g" /etc/selinux/config
setenforce 0

防火墙设置

firewall-cmd --zone=public --add-port=1521/tcp --permanent && firewall-cmd --reload

重启

#否则 id oracle 出现 uid=54321(oracle) ... context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
reboot

软件包和操作系统配置

参考 yum install https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm

yum -y install  GeoIP bind-libs bind-libs-lite bind-license bind-utils compat-libcap1 compat-libstdc++-33 geoipupdate glibc-devel glibc-headers gssproxy kernel-headers keyutils ksh libICE libSM libX11 libX11-common libXau libXext libXi libXinerama libXmu libXrandr libXrender libXt libXtst libXv libXxf86dga libXxf86misc libXxf86vm libaio-devel libbasicobjects libcollection libdmx libevent libini_config libnfsidmap libpath_utils libref_array libstdc++-devel libtirpc libverto-libevent libxcb lm_sensors-libs mailx net-tools nfs-utils psmisc quota quota-nls rpcbind smartmontools sysstat tcp_wrappers unzip xorg-x11-utils xorg-x11-xauth
yum -y install unzip xclock gcc gcc-c++ elfutils-libelf-devel
yum -y remove ksh
yum -y localinstall /software/pdksh-5.2.14-37.el5.x86_64.rpm

配置操作系统参数

cat >> /etc/sysctl.conf<<EOF
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
EOF
sysctl -p
cat >>/etc/security/limits.conf<<EOF
oracle      hard    nofile          65536
EOF

创建安装账号和安装目录

groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
useradd -u 54321 -g oinstall -G dba,oper oracle
echo Oracle_123|passwd --stdin oracle

mkdir -p /u01/app/
chown -R oracle:oinstall /u01/app/
chmod -R 775 /u01/app/

cat >> /home/oracle/.bash_profile <<EOF
export ORACLE_SID=orcl
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/11.2.0/dbhome_1
export PATH=\${PATH}:\$ORACLE_HOME/bin
EOF

准备开始安装

安装前确保 swap >= 8G 可以临时加

dd if=/dev/zero of=/tmp/swap bs=1M count=8192
mkswap /tmp/swap && chmod 600 /tmp/swap && swapon /tmp/swap

以oracle账户运行 先解压

cd /tmp/;  unzip /software/p13390677_112040_Linux-x86-64_1of7.zip ; unzip /software/p13390677_112040_Linux-x86-64_2of7.zip

注意事项, 因为oracle 11.2.0.4 出现的 oracle linux 7 晚, 这儿有一个bug, 所以安装的时候并不能完全无图形界面, 如果是 linux 6 就可以完全没有图形界面安装。

很遗憾, 这儿需要图形界面,如果有人知道怎么避免,可以留言。

/tmp/database/runInstaller

中间安装到 86%的时候会报错, 报错内容和解决方法如下

Error in invoking target 'agent nmhs' of makefile '/u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk'. 
See '/u01/app/oraInventory/logs/installActions.....log' for details

解决方案: 保留安装过程,另外开启一个终端窗口,修改 $ORACLE_HOME/sysman/lib/ins_emagent.mk 将 176行 $(MK_EMAGENT_NMECTL)修改为:$(MK_EMAGENT_NMECTL) -lnnz11

安装快结束时根据提示以root账号运行

/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/11.2.0/dbhome_1/root.sh


接下来创建监听器和数据库就可以不用图形界面了

以oracle账户 配置 oracle监听服务

netca -silent -responseFile ${ORACLE_HOME}/assistants/netca/netca.rsp

以oracle账户 使用图形界面保存的脚本,执行静默创建数据库 根据提示输入 SYS/SYSTEM 密码 例如 Oracle_1qaz

cd scripts ; ./orcl.sh

orch.sh和其他用到的脚本是图形界面安装的时候保存的, 太长了,贴不出来 。 需要的话, 可以留言找我要。

cloneDBCreation.sql  CloneRmanRestore.sql  init.ora  initorclTemp.ora  lockAccount.sql  orcl.sh  orcl.sql  postDBCreation.sql  postScripts.sql  rmanRestoreDatafiles.sql
最近发表
标签列表