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

深入探索 Oracle 单实例的静默安装与实践

IT那活儿 2023-11-14
367
点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!

当涉及到数据库管理和部署,Oracle数据库一直是企业级应用的首选之一。然而,在将Oracle数据库引入组织中时,通常需要面对许多挑战,其中之一是安装过程的复杂性。本文将探讨如何通过静默安装的方式,轻松高效地部署单实例Oracle数据库,供大家参考。


创建组和用户

1.1 创建组

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

1.2 创建用户

useradd -u 54331 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,asmdba,racdba oracle

1.3 设置Oracle用户密码

echo ‘$password’ | passwd –stdin oracle

其中$password为设置的密码。


准备Oracle安装环境

2.1 创建Oracle安装目录

1)该命令用于创建存储Oracle安装程序的清单和安装信息
mkdir -p /u01/app/oralnventory
2)该命令创建安装Oracle数据库软件的目录
mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1

2.2 设置目录的所有权

  • chown -R oracle:oinstall u01/app/oracle
    chown -R oracle:oinstall u01/app/oraInventory
    这两个命令将这些目录的所有权分配给用户和组‘oracle:oinstall’。这是为了确保在安装Oracle数据库时,这些目录中的文件和子目录都受到正确的权限管理,以便Oracle数据库软件和安装程序都能够正常运行。
  • chmod -R 775 /u01
    这个命令设置了‘/01’目录及子目录的权限,以确保Oracle数据库软件和安装程序有足够的权限来读取、写入和执行所需的文件和目录。775权限表示拥有者和组具有读、写和执行权限,其他用户只有读和执行权限。
  • mkdir /orabak
    创建用来存放Oracle安装包的目录。
  • chown oracle:oinstall /orabak
    chmod 775 /orabak
    这两个命令分配了‘/orabak’目录的所有权给用户和组‘oracle:oinstall’,并设置了相应的权限,以便Oracle数据库备份操作可以顺利进行。
综上所述,这些操作是为了Oracle数据库的顺利安装和运行创建必要的目录结构、分配适当的文件权限,并准备好存放安装包的目录。

2.3 设置默认权限

  • set -o vi
    这个命令设置当前的shell以支持Vi编辑模式。一旦执行此命令,可以在命令行中使用Vi编辑器的键绑定和编辑功能来编译已输入的命令行文本。能更灵活地编辑和修改之前输入的命令。
  • umask 022

    这条命令设置文件创建的默认权限掩码。在这种情况下,‘umask’命令将默认掩码设置为022,这意味着文件创建时去掉写权限以确保文件具有相对严格的权限,即所有者有读写权限,而组和其他用户只有读权限。这有助于确保文件默认情况下不会过于开放,以提高系统的安全性。


设置系统变量

在Oracle用户下进行操作:
su – oracle
vi .bash_profile

export ORACLE_SID=MASTER1
export DB_UNIQUE_NAME=MASTER
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/oui/bin:$ORACLE_HOME/OPatch:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/rdbms/lib:/lib:/usr/lib
export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"

source .bash_profile

配置系统内核参数

vi /etc/sysctl.conf
fs.aio-max-nr = 3145728
fs.file-max = 6815744
kernel.shmall = 131072000
kernel.shmmax = 536870912000
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
vm.dirty_background_ratio = 5
vm.dirty_ratio = 10
vm.nr_hugepages = 122882


设置限制配置

5.1 设置limits参数

vi /etc/security/limits.conf
oracle soft nofile 10240
oracle hard nofile 65536
oracle soft nproc 8192
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 10240
oracle hard memlock 524288000
oracle soft memlock 524288000

5.2 配置zeroconf

vi /etc/sysconfig/network
NOZEROCONF=yes


安装Oracle

6.1 检查依赖包

yum -y install bc binutils compat-libcap1 compat-
libstdc++ elfutils-libelf elfutils-libelf-devel
fontconfig-devel glibc glibc-devel ksh libaio libaio-
devel ibXrender libXrender-devel libX11 libXau libXi
libXtst libXrender libgcc libstdc++ libstdc++-devel
libxcb make  net-tools targetcli smartmontools sysstat
gcc gcc-c++ gcc-info gcc-locale gcc48 gcc48-info
gcc48-locale gcc48-c++ ipmiutil nfs-utils python  
python-configshell python-rtslib python-six

6.2 安装compat-libstdc++

将compat-libstdc++放入orabak文件中进行解压。
rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm

6.3 配置pam_limits.so

vi /etc/pam.d/login
session required pam_limits.so

6.4 修改profile文件
vi /etc/profile
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi

6.5 关闭防火墙

systemctl stop firewalld

6.6 禁用SElinux

vi /etc/selinux/config
将SELINUX的内容改为disabled。

6.7 禁用Transparent HugePages

禁用Transparent HugePages,重启生效。
cat /sys/kernel/mm/transparent_hugepage/enabled
vi /etc/default/grub
GRUB_CMDLINE_LINUX="...... transparent_hugepage=never"

根据启动引导执行:
grub2-mkconfig -o /boot/grub2/grub.cfg
或:
grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

6.8 解压数据库软件

unzip LINUX.X64_193000_db_home.zip

6.9 配置/u01文件所属组

chown -R oracle:oinstall /u01

6.10 更改db_install.rsp文件

对db_install.rsp文件进行更改,以下内容找到相匹配的进行更改:
su - oracle
vi /u01/app/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper
oracle.install.db.OSBACKUPDBA_GROUP=backupdba
oracle.install.db.OSDGDBA_GROUP=dgdba
oracle.install.db.OSKMDBA_GROUP=kmdba
oracle.install.db.OSRACDBA_GROUP=racdba
oracle.install.db.rootconfig.executeRootScript=false

6.11 开始安装

$ORACLE_HOME/runInstaller -silent -responseFile /u01/app/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
注意:该命令中的路径可能不一样,需要先检查之后再使用该命令。
以下是成功安装的截图:

6.12 执行脚本

su – root
在root用户下执行该脚本
sh /u01/app/oraInventory/orainstRoot.sh
sh /u01/app/oracle/product/19.0.0/dbhome_1/root.sh

6.13 登录Oracle

su – oracle
sqlplus / as sysdba

能成功登录就代表安装成功。

END



本文作者:佘镕晶(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论