静默安装Oracle19C单实例

本文详细介绍了静默安装Oracle19C单实例数据库的全过程,包括操作系统准备、用户与目录创建、环境变量配置、系统调整、RPM包安装、软件解压及数据库创建等关键步骤,旨在为后续学习提供操作环境。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 前言
    这是夜说的第一篇学习文章,静默安装Oracle19C单实例数据库,为以后学习提供操作环境。
    订阅号:夜说是如何炼成的

  2. 操作系统信息

1.系统版本(最小化安装)
[root@yeshuo ~]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.5 (Maipo)
2.内核信息
[root@yeshuo ~]# uname -r
3.10.0-862.el7.x86_64
3.磁盘规划
[root@yeshuo ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root   58G 1000M   57G   2% /
devtmpfs               3.9G     0  3.9G   0% /dev
tmpfs                  3.9G     0  3.9G   0% /dev/shm
tmpfs                  3.9G  8.6M  3.9G   1% /run
tmpfs                  3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sda1             1014M  130M  885M  13% /boot
tmpfs                  799M     0  799M   0% /run/user/0
4.内存信息
[root@yeshuo ~]# free -g
              total        used        free      shared  buff/cache   available
Mem:              7           0           7           0           0           7
Swap:             4           0           4
5.CPU信息
[root@yeshuo ~]# lscpu |grep CPU
CPU op-mode(s):        32-bit, 64-bit
CPU(s):                1
On-line CPU(s) list:   0
CPU family:            6
Model name:            Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
CPU MHz:               1799.998
NUMA node0 CPU(s):     0

3.创建用户和用户组

[root@yeshuo ~]# /usr/sbin/groupadd -g 54321 oinstall
[root@yeshuo ~]# /usr/sbin/groupadd -g 54322 dba
[root@yeshuo ~]# /usr/sbin/groupadd -g 54323 oper
[root@yeshuo ~]# /usr/sbin/groupadd -g 54324 backupdba
[root@yeshuo ~]# /usr/sbin/groupadd -g 54325 dgdba
[root@yeshuo ~]# /usr/sbin/groupadd -g 54326 kmdba
[root@yeshuo ~]# /usr/sbin/groupadd -g 54327 asmdba
[root@yeshuo ~]# /usr/sbin/groupadd -g 54328 asmoper
[root@yeshuo ~]# /usr/sbin/groupadd -g 54329 asmadmin
[root@yeshuo ~]# /usr/sbin/groupadd -g 54330 racdba
[root@yeshuo ~]# /usr/sbin/useradd -u 54321 -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba,racdba,oper oracle
[root@yeshuo ~]# /usr/sbin/useradd -u 54322 -g oinstall -G asmadmin,asmdba,racdba,asmoper grid
[root@yeshuo ~]# echo oracle | passwd --stdin oracle
Changing password for user oracle.
passwd: all authentication tokens updated successfully.
[root@yeshuo ~]# echo oracle | passwd --stdin grid
Changing password for user grid.
passwd: all authentication tokens updated successfully.

4.创建操作系统目录

[root@yeshuo ~]# mkdir -p /oracle/app/grid
[root@yeshuo ~]# mkdir -p /oracle/app/19.3.0/grid
[root@yeshuo ~]# chown -R grid:oinstall /oracle
[root@yeshuo ~]# chmod -R 775 /oracle
[root@yeshuo ~]# mkdir -p /oracle/app/oracle/product/19.3.0/db_1
[root@yeshuo ~]# chown -R oracle:oinstall /oracle/app/oracle

5.GRID和ORACLE用户添加环境变量

1.GRID用户添加环境变量如下:
[grid@yeshuo ~]$ vi .bash_profile
[grid@yeshuo ~]$ cat .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH

######add by oracle######
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_SID=+ASM
export ORACLE_BASE=/oracle/app/grid
export ORACLE_HOME=/oracle/app/19.3.0/grid
export ORACLE_TERM=xterm
export NLS_DATE_FORMAT='yyyy/mm/dd hh24:mi:ss'
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=$ORACLE_HOME/bin:$PATH:/usr/sbin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export EDITOR=vi
export LANG=en_US
export NLS_LANG=american_america.ZHS16GBK
umask 022
######add by oracle######
[grid@yeshuo ~]$ source .bash_profile
[grid@yeshuo ~]$ echo $ORACLE_SID
+ASM
[grid@yeshuo ~]$ echo $ORACLE_HOME
/oracle/app/19.3.0/grid


2.ORACLE用户添加环境变量如下:
[oracle@yeshuo ~]$ vi .bash_profile
[oracle@yeshuo ~]$ cat .bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH

######add by oracle######
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=yeshuo
export ORACLE_SID=yeshuo
export ORACLE_BASE=/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/db_1
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:$PATH:/usr/sbin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export EDITOR=vi
export LANG=en_US
export NLS_LANG=american_america.ZHS16GBK
export NLS_DATE_FORMAT='yyyy/mm/dd hh24:mi:ss'
umask 022
######add by oracle######
[oracle@yeshuo ~]$ source .bash_profile
[oracle@yeshuo ~]$ echo $ORACLE_SID
yeshuo
[oracle@yeshuo ~]$ echo $ORACLE_HOME
/oracle/app/oracle/product/19.3.0/db_1

6.禁用NUMA和透明大页

说明:在GRUB_CMDLINE_LINUX行添加:numa=off和transparent_hugepage=never
[root@yeshuo ~]# vi /etc/default/grub
[root@yeshuo ~]# cat /etc/default/grub
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 numa=off transparent_hugepage=never"
GRUB_DISABLE_RECOVERY="true"

重新生成grub配置文件
[root@yeshuo ~]# grub2-mkconfig -o /etc/grub2.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-862.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-862.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-b73300e2fcb08b43b69abca893877604
Found initrd image: /boot/initramfs-0-rescue-b73300e2fcb08b43b69abca893877604.img
done

重启生效(安装过程中还会有其他需要重启需求的话,可以最后一起重启,避免多次重启)
[root@yeshuo ~]# reboot

检查是否禁用NUMA和透明大页
[root@yeshuo ~]# dmesg | grep -i numa
[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-3.10.0-862.el7.x86_64 root=/dev/mapper/rhel-root ro rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet numa=off transparent_hugepage=never
[    0.000000] NUMA turned off
[    0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz-3.10.0-862.el7.x86_64 root=/dev/mapper/rhel-root ro rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet numa=off transparent_hugepage=never
[root@yeshuo ~]# grep AnonHugePages /proc/meminfo
AnonHugePages:         0 kB

7.禁用SELINUX和关闭防火墙

1.需要重启生效
[root@yeshuo ~]# cat /etc/selinux/config |grep -v '#'
SELINUX=disabled
SELINUXTYPE=targeted

2.不重启生效(临时生效,重启后不再生效)
[root@yeshuo ~]# setenforce 0

3.关闭防火墙
[root@yeshuo ~]# systemctl stop firewalld
[root@yeshuo ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@yeshuo ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

Sep 19 14:33:21 yeshuo systemd[1]: Starting firewalld - dynamic firewall daemon...
Sep 19 14:33:22 yeshuo systemd[1]: Started firewalld - dynamic firewall daemon.
Sep 19 14:49:52 yeshuo systemd[1]: Stopping firewalld - dynamic firewall daemon...
Sep 19 14:49:53 yeshuo systemd[1]: Stopped firewalld - dynamic firewall daemon.

8.修改内核参数

[root@yeshuo ~]# cat >>/etc/sysctl.conf << EOF
> fs.aio-max-nr = 1048576
> fs.file-max = 6815744
> kernel.shmall = 2684354560
> kernel.shmmax = 549755813760
> kernel.shmmni = 4096
> kernel.sem = 250 32000 100 128
> kernel.panic_on_oops = 1
> 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.all.rp_filter = 2
> net.ipv4.conf.default.rp_filter = 2
> EOF

sysctl -p使内核参数生效
[root@yeshuo ~]# sysctl -p
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2684354560
kernel.shmmax = 549755813760
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
kernel.panic_on_oops = 1
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.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2

9.修改GRID和ORACLE用户资源限制

[root@yeshuo ~]# cat >>/etc/security/limits.conf <<EOF
> oracle soft nproc 2047
> oracle hard nproc 16384
> oracle soft nofile 1024
> oracle hard nofile 65536
> oracle soft stack 10240
> oracle hard stack 32768
> grid soft nproc 2047
> grid hard nproc 16384
> grid soft nofile 1024
> grid hard nofile 65536
> grid soft stack 10240
> grid hard stack 32768
> EOF
[root@yeshuo ~]#

10.修改HOST文件

[root@yeshuo ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

######DB host######
192.168.171.10 yeshuo

11.修改FSTAB文件

[root@yeshuo ~]# cat >>/etc/fstab <<EOF
> tmpfs    /dev/shm       tmpfs        defaults,size=10G  0  0
> EOF
[root@yeshuo ~]# mount -a
[root@yeshuo ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root   58G 1001M   57G   2% /
devtmpfs               3.9G     0  3.9G   0% /dev
tmpfs                  3.9G     0  3.9G   0% /dev/shm
tmpfs                  3.9G  8.6M  3.9G   1% /run
tmpfs                  3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sda1             1014M  130M  885M  13% /boot
tmpfs                  799M     0  799M   0% /run/user/0
[root@yeshuo ~]# umount /dev/shm
[root@yeshuo ~]# mount -a
[root@yeshuo ~]# df -h
Filesystem             Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root   58G 1001M   57G   2% /
devtmpfs               3.9G     0  3.9G   0% /dev
tmpfs                  3.9G  8.6M  3.9G   1% /run
tmpfs                  3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sda1             1014M  130M  885M  13% /boot
tmpfs                  799M     0  799M   0% /run/user/0
tmpfs                   10G     0   10G   0% /dev/shm

12.修改NETWORK文件

[root@yeshuo ~]# cat >>/etc/sysconfig/network <<EOF
> NOZEROCONF=yes
> EOF
[root@yeshuo ~]# cat /etc/sysconfig/network
# Created by anaconda
NOZEROCONF=yes

13.修改LOGIN文件

[root@yeshuo ~]# cat >>/etc/pam.d/login <<EOF
> session required pam_limits.so
> EOF
[root@yeshuo ~]# cat /etc/pam.d/login |grep pam_limits
session required pam_limits.so

14.配置YUM源

[root@yeshuo yum.repos.d]# cat >>/etc/yum.repos.d/oracle.repo <<EOF
> [rhel]
> name=rhel
> baseurl=file:///mnt/cdrom
> gpgcheck=0
> enabled=1
> EOF
[root@yeshuo yum.repos.d]
### 实现Oracle 19c在EulerOS上的静默安装 #### 准备工作 为了确保Oracle 19c能够在EulerOS上顺利进行静默安装,前期准备工作至关重要。这包括但不限于确认硬件资源满足最低需求、准备必要的软件包以及调整操作系统的内核参数等。 对于操作系统环境而言,需保证已正确设置主机名解析,并关闭SELinux以减少不必要的权限冲突[^3]。此外,还需创建用于运行Oracle服务的操作系统用户及其所属组,通常命名为`oracle`和`oinstall`,并赋予其适当目录下的读写执行权限。 #### 安装依赖库 由于EulerOS并非官方支持列表中的Linux发行版之一,因此可能需要手动安装一些额外的支持库来弥补兼容性的缺失。这些库可以参照Red Hat Enterprise Linux的相关说明获取,因为两者基于相似的技术栈构建而成。具体命令如下所示: ```bash yum install -y binutils compat-libcap1 gcc glibc ksh libaio \ libgcc make sysstat smartmontools unixODBC elfutils-libelf-devel \ numactl-devel bzip2 ``` #### 下载与解压介质 前往甲骨文官方网站下载适用于Linux x86_64架构的Oracle Database 19c压缩包文件(如`LINUX.X64_19C_DATABASE.ZIP`),将其放置于指定路径下并通过以下指令完成解压缩过程: ```bash unzip LINUX.X64_19C_DATABASE.zip -d /opt/oracle/database/ ``` #### 编辑响应文件 静默模式的核心在于利用预定义好的`.rsp`格式的回答文件指导整个安装流程自动推进而不需要任何人为干涉。针对本次场景可参考提供的模板修改相应字段值,比如选择组件类型(`INSTALL_TYPE`)设为"SERVER"表示仅部署数据库服务器端部分;设定ORACLE_HOME位置(`/u01/app/oracle/product/19.0.0/dbhome_1`);指明全局数据库名称(`GLOBAL_DBNAME`)及SID标识符(`SID`)等等。 一份典型的响应文件示例如下: ```properties # responseFile.rsp [GENERAL] RESPONSEFILE_VERSION="19.0" SHOW_WELCOME_PAGE=false DECLINE_SECURITY_UPDATES=true SECURITY_UPDATES_VIA_MYORACLESUPPORT=false SKIP_SOFTWARE_UPDATES=true SPECIFY_HOME_NAME=false INVENTORY_LOCATION=/u01/app/oraInventory UNIX_GROUP_NAME=oinstall SELECTED_LANGUAGES=en,zh_CN FROM_LOCATION=/opt/oracle/database/response/db_inst.rsp MY_ORACLE_SUPPORT_USERNAME= MY_ORACLE_SUPPORT_PASSWORD= [INSTALLATION OPTION] INSTALL_OPTION=SOFTWARE_ONLY [GRID_INSTALL_OPTIONS] CLUSTER_NODES={} [DATABASE_FILELOCATION] DATAFILE_DESTINATION=/u02/oradata RECOVERY_AREADESTINATION=/u02/fast_recovery_area CREATE_AS_CONTAINER_DATABASE=false SAMPLE_SCHEMA=false [CONFIGURATION MIGRATION OPTIONS] [PREREQUISITES CHECKING] IGNORE_PREREQ_FAILURES=true [END_OF_INPUT] ``` #### 执行静默安装 当一切就绪之后便可以通过调用`runInstaller`工具携带上述定制化的应答表作为输入参数从而触发后台无人值守式的部署动作。考虑到日志记录的重要性建议重定向输出流至特定的日志文件以便后续排查可能出现的问题所在之处。 ```bash cd /opt/oracle/database ./runInstaller -silent -responseFile /path/to/responseFile.rsp -ignorePrereq -waitForCompletion &> oracle_install.log & ``` #### 后续配置 待安装程序结束返回提示信息后并不代表全部工作已完成,还需要登录新建立起来的服务实例进一步完善诸如网络监听器注册、初始化参数优化等一系列收尾措施才能使这套平台真正投入使用当中去。 通过以上步骤可以在EulerOS环境中成功实施Oracle 19c产品的自动化安装方案,极大提高了工作效率的同时也降低了误操作的风险概率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值