暂无图片
暂无图片
6
暂无图片
暂无图片
暂无图片

Oracle19c单机版 for centos7 图形化部署

原创 飞天 2025-06-26
509

最近在centos7主机上部署了Oracle19c单机版,特此记录!

操作系统准备

挂载iso镜像

mount /dev/cdrom /mnt

image.png

配置yum源

cd /etc/yum.repos.d/ mkdir old mv *.repo old/ cat >>/etc/yum.repos.d/local.repo<<EOF [local] name=local baseurl=file:///mnt gpgcheck=0 enabled=1 EOF yum repolist all

安装依赖包

yum install -y bc \ binutils \ compat-libcap1 \ compat-libstdc++-33 \ elfutils-libelf \ elfutils-libelf-devel \ fontconfig-devel \ glibc \ glibc-devel \ ksh \ libaio \ libaio-devel \ libXrender \ libXrender-devel \ libX11 \ libXau \ libXi \ libXtst \ libgcc \ libstdc++ \ libstdc++-devel \ libxcb \ make \ policycoreutils \ policycoreutils-python \ smartmontools \ sysstat \ unzip \ psmisc \ xorg-x11-xauth \ net-tools \ nfs-utils \ gcc \ gcc-c++

系统安装盘里面没有compat-libstdc++-33包,需要提前下载并安装:

rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm

检查依赖包安装情况

rpm -q bc binutils compat-libcap1 compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libXrender libXrender-devel libX11 libXau libXi libXtst libgcc libstdc++ libstdc++-devel libxcb make policycoreutils policycoreutils-python smartmontools sysstat unzip psmisc xorg-x11-xauth net-tools nfs-utils gcc gcc-c++ | grep "not installed"

检查依赖包安装情况

rpm -q bc binutils compat-libcap1 compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libXrender libXrender-devel libX11 libXau libXi libXtst libgcc libstdc++ libstdc++-devel libxcb make policycoreutils policycoreutils-python smartmontools sysstat unzip psmisc xorg-x11-xauth net-tools nfs-utils gcc gcc-c++ | grep "not installed"

/etc/hosts配置

cat >>/etc/hosts<<EOF #Public IP 192.*.*.64 node3

检查目录大小

df -h

image.png

检查内存和SWAP大小

free -h

image.png

关闭透明大页和numa(node1 & node2)

1、查看透明大页是否关闭(always 表示启用,never 表示禁用): cat /sys/kernel/mm/transparent_hugepage/enabled 2、修改 grub 配置文件添加"transparent_hugepage=never numa=off": vi /etc/default/grub 在GRUB_CMDLINE_LINUX…行最后添加transparent_hugepage=never GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet transparent_hugepage=never numa=off" GRUB_DISABLE_RECOVERY="true" 3、重新生成grub文件 当节点使用UEFI安装和启动时,使用如下命令: # grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg 当节点使用传统BIOS安装和启动时,使用如下命令: # grub2-mkconfig -o /boot/grub2/grub.cfg 4、重启节点生效,重启后检查透明大页和numa是否生效,使用如下命令: cat /sys/kernel/mm/transparent_hugepage/enabled lscpu | grep -i numa sysctl -a | grep numa kernel.numa_balancing = 0

关闭防火墙

systemctl stop firewalld.service systemctl disable firewalld.service systemctl status firewalld.service

关闭selinux

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config setenforce 0 getenforce

检查 OS 时区

timedatectl status # 如果时区不正确,使用下面命令修改: # timedatectl set-timezone "Asia/Shanghai"

系统参数配置

memTotal=$(grep MemTotal /proc/meminfo | awk '{print $2}') totalMemory=$((memTotal / 2048)) shmall=$((memTotal / 4)) if [ $shmall -lt 2097152 ]; then shmall=2097152 fi shmmax=$((memTotal * 1024 - 1)) if [ "$shmmax" -lt 4294967295 ]; then shmmax=4294967295 fi 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 = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 net.ipv4.conf.ens33.rp_filter = 1 net.ipv4.conf.ens36.rp_filter = 2 EOF

注意:ens33和ens36要根据实际环境替换。
参数生效:

sysctl -p

系统资源限制配置

配置limits.conf:

cat >>/etc/security/limits.conf<<EOF oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 oracle hard stack 32768 oracle soft nproc 2047 oracle hard nproc 16384 oracle hard memlock 134217728 oracle soft memlock 134217728 grid soft nofile 1024 grid hard nofile 65536 grid soft stack 10240 grid hard stack 32768 grid soft nproc 2047 grid hard nproc 16384 EOF

配置pam.d/login:

cat >>/etc/pam.d/login <<EOF session required pam_limits.so session required /lib64/security/pam_limits.so EOF

用户及组、目录创建

创建安装 Oracle 数据库所需的用户、组以及安装目录。
创建组:

/usr/sbin/groupadd -g 54321 oinstall /usr/sbin/groupadd -g 54322 dba /usr/sbin/groupadd -g 54323 oper /usr/sbin/groupadd -g 54324 backupdba /usr/sbin/groupadd -g 54325 dgdba /usr/sbin/groupadd -g 54326 kmdba /usr/sbin/groupadd -g 54327 asmdba /usr/sbin/groupadd -g 54328 asmoper /usr/sbin/groupadd -g 54329 asmadmin /usr/sbin/groupadd -g 54330 racdba

创建用户:

/usr/sbin/useradd -u 11012 -g oinstall -G asmadmin,asmdba,asmoper,dba,racdba,oper grid /usr/sbin/useradd -u 54321 -g oinstall -G asmdba,dba,backupdba,dgdba,kmdba,racdba,oper oracle ##修改用户密码为oracle echo "******" |passwd oracle --stdin echo "******" |passwd grid --stdin ##查看用户组 id grid id oracle ##重载udev udevadm control --reload-rules udevadm trigger --type=devices ll /dev/asm* ll /dev/dm*

image.png
可以看到,绑盘权限已经变成 grid 了!

创建软件目录:

mkdir -p /data/app/19.3.0/grid mkdir -p /data/app/grid mkdir -p /data/app/oracle/product/19.3.0/db mkdir -p /data/app/oraInventory mkdir -p /backup mkdir -p /home/oracle/scripts chown -R oracle:oinstall /backup chown -R oracle:oinstall /home/oracle/scripts chown -R grid:oinstall /data chown -R grid:oinstall /data/app/grid chown -R grid:oinstall /data/app/19.3.0/grid chown -R grid:oinstall /data/app/oraInventory chown -R oracle:oinstall /data/app/oracle chmod -R 775 /data

cvuqdisk安装

cd /data/app/19.3.0/grid/cv/rpm rpm -ivh cvuqdisk-1.0.10-1.rpm

UDEV绑定磁盘

[root@node3 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 500G 0 disk ├─sda1 8:1 0 20G 0 part /boot └─sda2 8:2 0 385G 0 part ├─centos_node1-root 253:0 0 120G 0 lvm / ├─centos_node1-swap 253:1 0 20G 0 lvm [SWAP] ├─centos_node1-data 253:2 0 300G 0 lvm /data ├─centos_node1-opt 253:3 0 20G 0 lvm /opt ├─centos_node1-var 253:4 0 10G 0 lvm /var ├─centos_node1-tmp 253:5 0 10G 0 lvm /tmp └─centos_node1-home 253:6 0 5G 0 lvm /home sdb 8:16 0 100G 0 disk └─centos_node1-root 253:0 0 120G 0 lvm / sdc 8:32 0 20G 0 disk ##############这块磁盘用于存放数据 sr0 11:0 1 4.4G 0 rom #不使用多路径 for i in c ; do echo "KERNEL==\"sd$i\", SUBSYSTEM==\"block\", PROGRAM==\"/usr/lib/udev/scsi_id -g -u -d /dev/\$name\", RESULT==\"`/usr/lib/udev/scsi_id -g -u -d /dev/sd\$i`\", SYMLINK+=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\"" >> /etc/udev/rules.d/99-oracle-asmdevices.rules done [root@node3 ~]# cat /etc/udev/rules.d/99-oracle-asmdevices.rules KERNEL=="sdc", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id -g -u -d /dev/$name", RESULT=="36000c29f45384e253ca28b7ede649a0f", SYMLINK+="asm-diskc", OWNER="grid", GROUP="asmadmin", MODE="0660"  [root@node3 ~]# udevadm control --reload-rules [root@node3 ~]# udevadm trigger [root@node3 ~]# [root@node3 ~]# ll /dev/asm* /dev/sdc lrwxrwxrwx 1 root root 3 May 13 17:13 /dev/asm-diskc -> sdc brw-rw---- 1 grid asmadmin 8, 32 May 13 17:13 /dev/sdc [root@node3 ~]# [root@node3 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 500G 0 disk ├─sda1 8:1 0 20G 0 part /boot └─sda2 8:2 0 385G 0 part ├─centos_node1-root 253:0 0 120G 0 lvm / ├─centos_node1-swap 253:1 0 20G 0 lvm [SWAP] ├─centos_node1-data 253:2 0 300G 0 lvm /data ├─centos_node1-opt 253:3 0 20G 0 lvm /opt ├─centos_node1-var 253:4 0 10G 0 lvm /var ├─centos_node1-tmp 253:5 0 10G 0 lvm /tmp └─centos_node1-home 253:6 0 5G 0 lvm /home sdb 8:16 0 100G 0 disk └─centos_node1-root 253:0 0 120G 0 lvm / sdc 8:32 0 20G 0 disk sr0 11:0 1 4.4G 0 rom [root@node3 ~]# 参考文章: https://www.cnblogs.com/wfkfytmy/p/16216400.html 在做配置的时候,发现第二个节点配置时需要读取一下磁盘的分区信息才能成功绑定 https://blog.csdn.net/congsong2560/article/details/100422666 https://www.xifenfei.com/2016/08/linux-7-udev.html

grid用户环境变量:

cat >>/home/grid/.bash_profile<<EOF umask 022 export TMP=/tmp export TMPDIR=\$TMP export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 export ORACLE_BASE=/data/app/grid export ORACLE_HOME=/data/app/19.3.0/grid export ORACLE_TERM=xterm export TNS_ADMIN=\$ORACLE_HOME/network/admin export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib export ORACLE_SID=+ASM export PATH=/usr/sbin:\$PATH export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH alias sas='sqlplus / as sysasm' export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$ ' EOF

oracle用户环境变量

cat >>/home/oracle/.bash_profile<<EOF umask 022 export TMP=/tmp export TMPDIR=\$TMP export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 export ORACLE_BASE=/data/app/oracle export ORACLE_HOME=\$ORACLE_BASE/product/19.3.0/db export ORACLE_HOSTNAME=node3 export ORACLE_TERM=xterm #export TNS_ADMIN=\$ORACLE_HOME/network/admin export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib export ORACLE_SID=orcl export PATH=/usr/sbin:\$PATH export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH alias sas='sqlplus / as sysdba' export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$ ' EOF

安装grid软件+RU

su - grid
#检查opatch版本
opatch version
export DISPLAY=192.*.*.15:0.0 #这个根据本地实际情况进行配置
cd $ORACLE_HOME
./gridSetup.sh -applyRU /soft/37257886

选择Configure Oracle Grid Infrastructure for a Standalone Server(Oracle Restart)
image.png
创建asm磁盘组:选择绑定的asm磁盘
image.png
指定ASM密码
image.png
指定管理选项:不使用EM
image.png

image.png
自动选择ORACLE BASE目录
image.png
自动选择inventory目录
image.png
不自动运行配置脚本
image.png

预安装检查
image.png
安装产品
image.png
另外开窗口,使用root用户执行两个脚本:
image.png

netca失败
image.png
经查日志,实际上监听已经启动了,忽略!
image.png

创建磁盘组

asmca
image.png
image.png

安装数据库软件+RU

chown -R oracle:oinstall /soft
#root用户下切换到oracle用户
su - oracle
export DISPLAY=192.*.*.15:0.0 
#进入ORACLE_HOME目录
cd $ORACLE_HOME
#检查opatch版本
opatch version
##执行安装程序开始安装
./runInstaller -applyRU /soft/37257886/

image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png

image.png
image.png

建库

dbca
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
至此,数据库安装完毕!

关于作者:
网名:飞天,墨天轮2024年度优秀原创作者,拥有 Oracle 10g OCM 认证、PGCE认证、MySQL 8.0 OCP认证以及OBCA、KCP、KCSM、ACP、磐维等众多国产数据库认证证书,目前从事Oracle、Mysql、PostgresSQL、磐维数据库管理运维工作,喜欢结交更多志同道合的朋友,热衷于研究、分享数据库技术。
微信公众号:飞天online
墨天轮:https://www.modb.pro/u/15197
如有任何疑问,欢迎大家留言,共同探讨~~~

最后修改时间:2025-06-26 14:46:03
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论