-
前言
这是夜说的第一篇学习文章,静默安装Oracle19C单实例数据库,为以后学习提供操作环境。
订阅号:夜说是如何炼成的 -
操作系统信息
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]