来公司几个星期了,因为之前在学校学的是开发,所以运维对于我来说上手比较难,在安装oracle19c时,与之前安装数据库完全不是一个概念,之前安装一个软件步骤特别简单,然而现在每一步都涉及到很多知识,在此过程中遇到了各种各样的错误,N次百度,N次请求导师帮助,下面是我在本次安装的步骤及遇到的错误。 希望能让大家在安装过程中少犯错误。
网上都有下载链接,很简单。
在安装完oracle vm virtualbox 并且创建节点以后,我们进入centos7 core 查看环境是否搭建好。
[root@rac19c1 ~]# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)
因为后面我们需要使用到xshell,所以我们可以先配置静态ip,后面的操作在xshell上完成会比较方便。
1.更改ifcfg-enp0s3名为ifcfg-eth0
[root@rac19c1 ~]#cd /etc/sysconfig/network-scripts/
[root@rac19c1 ~]# mv ifcfg-enp0s3 ifcfg-eth0
注意: 尽量修改为ifcfg-eth0,规范规范规范。
2.开始配置静态Ip
用vim或者vi 打开eth0的文件 修改内容如下
vim /etc/sysconfig/network-scripts/
BOOTPROTO=static #启用静态IP地址
IPADDR=192.168.197.138 #设置IP地址
NETMASK=255.255.255.0 #设置子网掩码
ONBOOT="yes" #设置网卡自启动
编辑/etc/default/grub
在变量GRUB_CMDLINE_LINUX后面加入“net.ifnames=0 biosdevname=0 ”来实现的。参数间以空格来间隔
重启之前运行命令grub2-mkconfig -o /boot/grub2/grub.cfg 来重新生成GRUB配置并更新内核参数。
打开xshell 通过ssh + 你配置的Ip连接。
修改一下信息。
心跳ip的配置是我的网卡2(内部网络)上配置的
[root@rac19c1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
注意1:心跳ip一定要在安装grid之前配置完成,可以Ping 连接上,不然会出错。
如图:
注意2:配置完两个节点的public IP 和心跳ip以后 ,需要能够在节点一 通过ssh +节点二的ip 输入密码后切换到节点二(节点二也一样)
如 :
ssh rac19c2
[root@rac19c1 ~]# vim /etc/hosts
进入配置文件以后,需要配置public IP 、 private IP 、vip 、 scan IP 两个节点都需要配置。
#public
192.168.56.103 rac19c1
192.168.56.105 rac19c2
#vip
192.168.56.106 rac19c1-vip
192.168.56.107 rac19c2-vip
#private ip
10.0.3.10 rac19c1-prv
10.0.3.11 rac19c2-prv
#scan ip
192.168.56.100 scan
通过 hostnamectl set-hostname 新名字
Transparent HugePages是在运行时动态分配内存的,而标准的HugePages是在系统启动时预先分配内存,并在系统运行时不再改变。
因为Transparent HugePages是在运行时动态分配内存的,所以会带来在运行时内存分配延误。所以ORACLE是建议不使用Transparent HugePages功能的,如果需要大页内存管理功能来加强性能,建议使用标准的大页内存管理。
root@rac19c1 network-scripts# cat /sys/kernel/mm/transparent_hugepage/defrag
[always] madvise never
root@rac19c1 network-scripts# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
这个状态就说明都是启用的。
编辑rc.local文件:
root@rac19c1 ~# *vi /etc/rc.d/rc.local*
增加下列内容:
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
修改权限
root@rac19c1 rc.d# chmod 775 rc.local
尽量大一些用于Oracle Grid Infrastructure安装的至少8 GB RAM。
[root@rac19c1 ~]# grep MemTotal /proc/meminfo
MemTotal: 6109652 kB
在4G到16G之间,可以oracle vm virtualbox 创建节点的时候把swap空间分配了。
[root@rac19c1 ~]# grep SwapTotal /proc/meminfo
SwapTotal: 12582908 kB
也可以通过命令的方式创建swap空间
free -m
dd if=/dev/zero of=/swapfile bs=2M count=2048
bs × count=你需要扩大的空间
/dev/zero of 路径
mkswap /swapfile
swapon /swapfile
注意:这个命令可能会提示*swapon: /swapfile: insecure permissions 0644, 0600 suggested.”*意思是建议把swap设置成644或600权限。
/swapfile swap swap defaults 0 0
在 Linux 系统中,可以通过查看 /proc/sys/vm/swappiness 内容的值来确定系统对 SWAP 分区的使用原则。当 swappiness 内容的值为 0 时,表示最大限度地使用物理内存,物理内存使用完毕后,才会使用 SWAP 分区。当 swappiness 内容的值为 100 时,表示积极地使用 SWAP 分区,并且把内存中的数据及时地置换到 SWAP 分区。
查看修改前为 0,需要在物理内存使用完毕后才会使用 SWAP 分区。
可以使用下述方法临时修改此参数,假设我们配置为空闲内存少于 10% 时才使用 SWAP 分区:
echo 10 >/proc/sys/vm/swappiness
若需要永久修改此配置,在系统重启之后也生效的话,可以修改 /etc/sysctl.conf 文件,并增加以下内容:
vm.swappiness=10
当系统出现内存不足的时候,一致开启SWAP可能会因频繁换页操作,导致IO性能下降,如果要关闭SWAP,可以采用如下方法
1、free -m 查询SWAP分区设置
2、使用命令swapoff关闭SWAP,比如:
swapoff /mnt/swap
3、修改 /etc/fstab 文件,删除或注释相关配置,取消 SWAP 的自动挂载:
4、 通过 free -m 确认 SWAP 已经关闭。
5、 swappiness 参数调整:
可以使用下述方法临时修改此参数,这里配置为 0%:
echo 0 >/proc/sys/vm/swappiness
若需要永久修改此配置,在系统重启之后也生效的话,可以修改 /etc/sysctl.conf文件,并增加以下内容:
vm.swappiness=0
临时空间/tmp 可以在创建节点的时候进行分配 建议60G左右
df -h /tmp
[root@rac19c1 ~]# df -h /tmp
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 60G 21G 40G 35% /
共享内存段:在配置节点的时候对/boot 进行空间分配 建议2G
df -h /dev/shm/
[root@rac19c1 ~]# df -h /dev/shm/
Filesystem Size Used Avail Use% Mounted on
tmpfs 2.0G 897M 1.2G 44% /dev/shm
如果需要永久修改/dev/shm的值,需要修改/etc/fstab
tmpfs /dev/shm tmpfs defaults,size=2G 0 0
[root@raca /]# mount -o remount /dev/shm
禁用开机自启防火墙
[root@rac19c1 /]# 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@raca /]# systemctl is-enabled firewalld
Disabled
停止防火墙
[root@rac19c1 /]# systemctl stop firewalld
[root@rac19c1 /]# 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)
9月 26 17:14:59 raca systemd[1]: Starting firewalld - dynamic firewall daemon...
9月 26 17:14:59 raca systemd[1]: Started firewalld - dynamic firewall daemon.
9月 26 17:55:32 raca systemd[1]: Stopping firewalld - dynamic firewall daemon...
9月 26 17:55:35 raca systemd[1]: Stopped firewalld - dynamic firewall daemon.
在后面创建ASM共享磁盘的时候也需要关闭selinux 所以现在关闭。
1.编辑 /etc/selinux/config 文件把SELINUX=enforcing改成disabled
2.或者直接使用命令
[root@rac19c1 ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
查看当前selinux状态
[root@rac19c1 ~]# getenforce
Enforcing
1、创建iso挂载路径
[root@rac19c1 ~]# mkdir /mnt/cdrom
2、挂载iso
[root@rac19c1 ~]# mount /root/ CentOS-7-x86_64-DVD-2009.iso /mnt/cdrom
3、创建server.repo
[root@rac19c1 cdrom]# cd /etc/yum.repos.d/
[root@rac19c1 yum.repos.d]# vi server.repo
[server]
name=Red Hat Enterprise Linux
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0
vi /etc/yum.repos.d/CentOS-Base.repo
修改为以下内容
[base]
name= yum repo
baseurl=http://mirrors.aliyun.com/centos/7/os/$basearch/
enabled=1
gpgcheck=0
注意: 清理yum 可以使用yum clean命令。
注意:上传本地文件到虚拟机中有几种方法
第一种:rz 命令
1.安装rz和sz
yum install -y lrzsz
2.使用rz进行文件上传
3.下载命令sz
sz + 文件名
第二种:
直接在xshell 软件找到新建文件传输进行上传 相比来说第二种要快一些。
第三种
如果安装中文,由于oracle安装向导无法识别中文字体,终端临时设置语言环境变量
export LANG=en_US
export LC_ALL=en_US
安装X窗口系统
[root@rac19c1 ~]# yum groupinstall "X Window System"
检查一下我们已经安装的软件以及可以安装的软件
[root@rac19c1 ~]# yum grouplist
安装图形界面软件 GNOME
[root@rac19c1 ~]# yum groupinstall "GNOME Desktop" "Graphical Administration Tools"
如果想要使系统启动即为图形化窗口,需要执行下面的命令
[root@rac19c1 ~]# ln -sf /lib/systemd/system/runlevel5.target /etc/systemd/system/default.target
重启
注意: 建议在用oracle vm virtualbox 安装节点的时候选择GUI安装,因为一般不会出现错误。
下载连接:https://www.oracle.com/linux/downloads/linux-asmlib-rhel7-downloads.html
打开节点一或者节点二虚拟机都可以,用xshell工具连接虚拟机,如下图sda1-sda3为安装操作系统时所建立的分区。sdb-sdf为虚拟机创建的共享磁盘组
我的这个是已经配置好的,所以多出了/sdb1 /sdc1 sdd1 /sde1 /sdf1
[root@rac19c1 ~]# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdb1 /dev/sdc /dev/sdc1 /dev/sdd /dev/sdd1 /dev/sde /dev/sde1 /dev/sdf /dev/sdf1
为所创建的每一个共享磁盘组创建一个主分区。(每一磁盘都应该遵照如下命令操作)
[root@rac19c1-priv ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table,nor Sun,SGI or OSF disk label Building a new DOS label.Change will remain in memory only,util you decide to write them...
Command (m for help):n
Command action
e extended
p primary partition(1-4)
p
Partition number(1-4):1
First cylinder (1-1305,default 1):
…
Last cylinder or +size or +sizeM or +sizeK(1-1305,default 1305):
…
Command(m for help):p
…
Command (m for help):w
The partition table has been altered!
…
Syncing disks.
[root@rac19c1 ~]# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdb1 /dev/sdc /dev/sdc1 /dev/sdd /dev/sdd1 /dev/sde /dev/sde1 /dev/sdf /dev/sdf1
[root@rac19c1~]# oracleasm configure -i
Configuring the Oracle ASM library driver.
This will configure the on-boot properties of the Oracle ASM library
driver. The following questions will determine whether the driver is
loaded on boot and what permissions it will have. The current values
will be shown in brackets ('[]'). Hitting <ENTER> without typing an
answer will keep that current value. Ctrl-C will abort.
Default user to own the driver interface [grid]: grid //本名字跟后面安装grid的名字一样,否则会执行不了roo.sh脚本。
Default group to own the driver interface [dba]: dba
Start Oracle ASM library driver on boot (y/n) [y]: y
Scan for Oracle ASM disks on boot (y/n) [y]:
Writing Oracle ASM library driver configuration: done
[root@rac19c1 ~]# /usr/sbin/oracleasm init
Loading module “oracleasm”:oracleasm
Mounting ASMlib driver filesystem:/dev/oracleasm
[root@rac119c1 ~]# /usr/sbin/oracleasm createdisk diskb /dev/sdb1
Writing disk header: done
Instantiating disk: done
[root@rac119c1 ~]# /usr/sbin/oracleasm createdisk diskc /dev/sdc1
Writing disk header: done
Instantiating disk: done
[root@rac119c1 ~]# /usr/sbin/oracleasm createdisk diskd /dev/sdd1
Writing disk header: done
Instantiating disk: done
[root@rac119c1 ~]# /usr/sbin/oracleasm createdisk diske /dev/sde1
Writing disk header: done
Instantiating disk: done
[root@rac119c1 ~]# /usr/sbin/oracleasm createdisk diskf /dev/sde1
Writing disk header: done
Instantiating disk: done
[root@rac119c1 ~]# /usr/sbin/oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
[root@rac19c1 ~]# /usr/sbin/oracleasm listdisks
DISKB
DISKC
DISKD
DISKE
DISKF
在节点1和节点2,固定设备名称并且赋予grid属性,执行如下命令,用来生成udev规则
1 取得DM_UUID
for i in b c d e
do
echo "KERNEL==\"sd*\",SUBSYSTEM==\"block\",ENV{ID_SERIAL}==\"`/usr/lib/udev/scsi_id -g -u -d /dev/sd$i`\",SYMLINK+=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\""
done
得出以下信息
KERNEL=="sd*",SUBSYSTEM=="block",ENV{ID_SERIAL}=="14f504e46494c455267414f436e6e2d76384d312d316b7558",SYMLINK+="asm-diskb", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",ENV{ID_SERIAL}=="14f504e46494c4552657957564f782d624d55642d48354474",SYMLINK+="asm-diskc", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",ENV{ID_SERIAL}=="14f504e46494c4552594e4677496c2d413156592d6d6c5536",SYMLINK+="asm-diskd", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",ENV{ID_SERIAL}=="14f504e46494c4552485a617444642d446536762d4141304e",SYMLINK+="asm-diske", OWNER="grid", GROUP="asmadmin", MODE="0660"
执行
[root@rac19c1 ~]# /usr/bin/udevadm control --reload
[root@rac19c1 ~]# /usr/bin/udevadm trigger --type=devices --action=change
[root@rac19c1 ~]# ls -l /dev/asm*
1. rpm-qa |greb bc
2. yum install compat-libcap1 bc binutils compat-libcap1 compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libX11
libXau libXi libXtst libXrender libXrender-devel libgcc libstdc++ libstdc++-devel libxcb make smartmontools sysstat net- tools nfs-utils openssh
在安装的时候有可能这两个包 gcc-c+±4.8.5-44.el7.x86_64.rpm libstdc+±devel-4.8.5-44.el7.x86_64.rpm安装不上,需要到网上下载。自己安装。
/usr/sbin/groupadd -g 1001 oinstall
/usr/sbin/groupadd -g 1002 dba
/usr/sbin/groupadd -g 1003 oper
/usr/sbin/groupadd -g 1004 asmdba
/usr/sbin/groupadd -g 1005 asmoper
/usr/sbin/groupadd -g 1006 backupdba
/usr/sbin/groupadd -g 1007 dgdba
/usr/sbin/groupadd -g 1008 kmdba
/usr/sbin/groupadd -g 1009 racdba
/usr/sbin/groupadd –g 1010 asmadmin
添加GRID和oracle的用户
useradd -u 1001 -g oinstall -G asmdba,dba,oper,backupdba,dgdba,kmdba,racdba -d /home/oracle oracle
useradd -u 1002 -g oinstall -G dba,asmdba,asmadmin,racdba,asmoper -d /home/grid grid
修改密码
将oracle用户密码修改为oracle,将grid用户密码修改为grid
[root@rac1 ~] echo "oracle" | passwd --stdin oracle
[root@rac1 ~] echo "oracle" | passwd --stdin grid
mkdir -p /u01/app/19.0.0/grid
mkdir -p /u01/app/oraInventory
chown -R grid:oinstall /u01/app/oraInventory
chmod -R 775 /u01/app/oraInventory
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle
chown -R grid:oinstall /u01
chown oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/
[root@rac19C1 home]# mkdir -p /u01/app/oracle/product/19.0.0/db_1
[root@rac19C1 home]# chown oracle:oinstall /u01/app/oracle/product/19.0.0/db_1
节点1 grid
[oracle@rac19c1:/home/oracle]$su - grid
Password:
Last login: Mon Sep 13 15:41:05 CST 2021
Last failed login: Mon Sep 13 15:46:54 CST 2021 on pts/1
There was 1 failed login attempt since the last successful login.
[grid@rac19c1:/home/grid]$vi ~/.bash_profile
添加下面内容
PS1="[`whoami`@`hostname`:"'$PWD]$'
export PS1
umask 022
export TMP=/tmp
export LANG=en_US
export TMPDIR=$TMP
ORACLE_SID=+ASM1; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
ORACLE_BASE=/u01/app/grid; export ORACLE_BASE
ORACLE_HOME=/u01/app/19.0.0/grid; export ORACLE_HOME
NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export NLS_DATE_FORMAT
PATH=.:$PATH:$HOME/bin:$ORACLE_HOME/bin; export PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
THREADS_FLAG=native; export THREADS_FLAG
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
节点2 grid
[oracle@rac19c2:/home/oracle]$su - grid
Password:
Last login: Mon Sep 13 17:24:45 CST 2021
Last failed login: Mon Sep 13 17:25:44 CST 2021 on pts/0
There was 1 failed login attempt since the last successful login.
[grid@rac19c2:/home/grid]$ vi ~/.bash_profile
添加下面内容
PS1="[`whoami`@`hostname`:"'$PWD]$'
export PS1
umask 022
export TMP=/tmp
export LANG=en_US
export TMPDIR=$TMP
ORACLE_SID=+ASM2; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
ORACLE_BASE=/u01/app/grid; export ORACLE_BASE
ORACLE_HOME=/u01/app/19.0.0/grid; export ORACLE_HOME
NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export NLS_DATE_FORMAT
PATH=.:$PATH:$HOME/bin:$ORACLE_HOME/bin; export PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
THREADS_FLAG=native; export THREADS_FLAG
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
节点1 oracle
[root@rac19c1 ~]# su - oracle
Last login: Mon Sep 13 10:52:07 CST 2021
[oracle@rac19c1:/home/oracle]$vi ~/.bash_profile
添加下面内容
PS1="[`whoami`@`hostname`:"'$PWD]$'
export PS1
export TMP=/tmp
export LANG=en_US
export TMPDIR=$TMP
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/19.0.0/db_1; export ORACLE_HOME
ORACLE_SID=orcl1; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export NLS_DATE_FORMAT
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;export NLS_LANG
PATH=.:$PATH:$HOME/bin:$ORACLE_BASE/product/19.0.0/db_1/bin:$ORACLE_HOME/bin; export PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
THREADS_FLAG=native; export THREADS_FLAG
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
节点2 oracle
[root@rac19c2 ~]# su - oracle
Last login: Mon Sep 13 01:49:50 CST 2021 on pts/0
[oracle@rac19c2:/home/oracle]$vi ~/.bash_profile
添加下面内容
PS1="[`whoami`@`hostname`:"'$PWD]$'
export PS1
export TMP=/tmp
export LANG=en_US
export TMPDIR=$TMP
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/19.0.0/db_1; export ORACLE_HOME
ORACLE_SID=orcl2; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export NLS_DATE_FORMAT
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;export NLS_LANG
PATH=.:$PATH:$HOME/bin:$ORACLE_BASE/product/19.0.0/db_1/bin:$ORACLE_HOME/bin; export PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
THREADS_FLAG=native; export THREADS_FLAG
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
修改root环境变量
加入grid用户$ORACLE_HOME
[root@rac19c1 ~]# vi ~/.bash_profile
PATH=$PATH:/u01/app/19.0.0/grid/bin:$HOME/bin
4、修改sysctl.conf参数
解释:/etc/sysctl.conf是一个允许改变正在运行中的Linux系统的接口,它包含一些TCP/IP堆栈和虚拟内存系统的高级选项,修改内核参数永久生效。也就是说/proc/sys下内核文件与配置文件sysctl.conf中变量存在着对应关系。
[grid@rac19c1:/home/grid]$su - root
Password:
Last login: Mon Sep 13 15:39:20 CST 2021 on pts/1
Last failed login: Mon Sep 13 15:51:20 CST 2021 on pts/1
There was 1 failed login attempt since the last successful login.
[root@rac19c1 ~]# vi /etc/sysctl.conf
添加以下参数
fs.aio-max-nr = 1048576
fs.file-max = 6815744 #这个参数表示进程可以同时打开的最大句柄数,这个参数直接限制最大并发连接数。
kernel.shmmax = 15461882265
kernel.shmall = 3774873
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 #rmem_max:这个参数表示内核套接字接收缓存区默认的最大大小。
net.core.wmem_default = 262144 #wmem_default:这个参数表示内核套接字发送缓存区默认的大小。
net.core.wmem_max = 1048586 #wmem_max:这个参数表示内核套接字发送缓存区默认的最大大小。
解释:查看修改Linux最大进程数和最大文件数的方法
修改/etc/security/limits.d/20-nproc.conf
[root@rac19c1 ~]vi /etc/security/limits.d/20-nproc.conf
# Change this
#注释这行* soft nproc 1024
# To this增加下面一行
* - nproc 16384
解释:limits.conf用于实现对用户资源进行限制,如进程数/文件数等等。
文件存放在目录:/etc/security/limits.conf
[root@rac19c1 ~]vi /etc/security/limits.conf
#ORACLE SETTING
grid soft nproc 16384
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
grid hard stack 32768
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle hard memlock 3145728
oracle soft memlock 3145728
解释:etc目录下包括pam.d目录,在pam.d目录下还有个login子目录。etc指的系统配置文件目录,pam.d指的是验证登陆配置,login是登陆配置文件。
简单说就是linux操作系统的登陆配置文件。
[root@rac19c1 ~]vi /etc/pam.d/login
#ORACLE SETTING
session required pam_limits.so
解释:avahi-daemon是一种Linux操作系统上运行在客户机上实施查找基于网络的Zeroconf service的服务守护进程。 该服务可以为Zeroconf网络实现DNS服务发现及DNS组播规范。 用户程序通过Linux D-Bus信息传递接收发现到网络服务和资源的通知。 该守护进程配合缓存用户程序的答复,以帮助减少因答复而产生的网络流量。
两个节点分别操作
查看进程 ps –ef |grep avahi-daemon
停止服务 systemct stop avahi-daemon
systemctl disable avahi-daemon.socket
systemctl disable avahi-daemon.service
解释: Zero Configuration Network (ZEROCONF)。ZEROCONF又被叫做 IPv4 Link-Local (IPv4LL)和 Automatic Private IP Addressing (APIPA)。它是一个动态配置协议,系统可以通过它来连接到网络。 那有没有办法禁用ZEROCONF呢?
可以通过在 “/etc/sysconfig/network” 文件中增加一行“NOZEROCONF=yes”来达到这个目的。
其实,给 NOZEROCONF 赋任意值都是同样的效果,从上面的代码就可以看出,它只检测 NOZEROCONF 是否为空。
当然,修改完 “/etc/sysconfig/network” 之后,必须重启网络才能生效:/etc/init.d/network restart
[root@rac19c1]# vi /etc/sysconfig/network
NOZEROCONF=yes
在节点1上传grid, oracle安装包
cd /home/gg
解压搭配grid 配置环境变量时指定的路径
unzip LINUX.X64_193000_db_home.zip -d /u01/app/19.0.0/grid/
grid 用户配置
[grid@rac19c1 scripts]# /home/gg/oui/prov/resources/scripts/sshUserSetup.sh -user grid -hosts "rac19c1 rac19c2" -advanced –noPromptPassphrase
oracle 用户配置
[oracle@rac19c1 scripts]# /home/gg/oui/prov/resources/scripts/sshUserSetup.sh -user oracle -hosts "rac19c1 rac19c2" -advanced –noPromptPassphrase
进入到/u01/app/19.0.0/grid/执行脚本 ./gridSetup.sh
注意:第一次执行一般会出现两个错误,一个是需要我们在grid 用户下执行脚本,第二个是需要我们配置图形显示 环境变量设置 。
如:export DISPLAY=10.54.18.202:0.0 查看电脑的ip地址 加上:0.0
如果解压的时候是在root用户上进行解压的话,可以通过命令chown -R grid:oinstall /u01/app/19.0.0/grid/ 更改权限。
4、开始安装grid
2.配置集群名称以及scan名称
注意:scan name必须和 /etc/hosts里面scan的名字一样,cluster name 可以默认不改
配置节点互信的时候,要保证心跳ip能互相ping得通,否则后期安装很容易出现异常。
除了默认节点一的pubic 和vip 的名字外 需要把节点一的也添加上去。
注意:
常见错误:
点击test /setup 不成功
解决方法:
按住ctrl 选中两个节点测试或者 /setup ,或者是因为密码输入不正确,输入正确密码即可。
一定要和grid的配置文件里面的路径相同
当提示框弹出来的时候,我们先在节点一上使用root用户执行脚本,执行完成执行节点二的脚本。
执行过程中,会遇到各种各样的问题,1。ASM磁盘的名字不对 2.和节点二的互信不同
解决: 重新配置ASM将宿主名字改为grid,即可完成;重新配置心跳IP
执行脚本如下;
[root@raca home]# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.
[root@raca home]# /u01/app/19.0.0/grid/root.sh
Performing root user operation.
The following environment variables are set as:
ORACLE_OWNER= grid
ORACLE_HOME= /u01/app/19.0.0/grid
Enter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...
Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Relinking oracle with rac_on option
Using configuration parameter file: /u01/app/19.0.0/grid/crs/install/crsconfig_params
The log of current session can be found at:
/u01/app/grid/crsdata/raca/crsconfig/rootcrs_raca_2020-10-01_05-20-45AM.log
2020/10/01 05:20:56 CLSRSC-594: Executing installation step 1 of 19: 'SetupTFA'.
2020/10/01 05:20:57 CLSRSC-594: Executing installation step 2 of 19: 'ValidateEnv'.
2020/10/01 05:20:57 CLSRSC-363: User ignored prerequisites during installation
2020/10/01 05:20:57 CLSRSC-594: Executing installation step 3 of 19: 'CheckFirstNode'.
2020/10/01 05:20:59 CLSRSC-594: Executing installation step 4 of 19: 'GenSiteGUIDs'.
2020/10/01 05:21:00 CLSRSC-594: Executing installation step 5 of 19: 'SetupOSD'.
2020/10/01 05:21:00 CLSRSC-594: Executing installation step 6 of 19: 'CheckCRSConfig'.
2020/10/01 05:21:00 CLSRSC-594: Executing installation step 7 of 19: 'SetupLocalGPNP'.
2020/10/01 05:21:29 CLSRSC-594: Executing installation step 8 of 19: 'CreateRootCert'.
2020/10/01 05:21:35 CLSRSC-594: Executing installation step 9 of 19: 'ConfigOLR'.
2020/10/01 05:21:37 CLSRSC-4002: Successfully installed Oracle Trace File Analyzer (TFA) Collector.
2020/10/01 05:21:46 CLSRSC-594: Executing installation step 10 of 19: 'ConfigCHMOS'.
2020/10/01 05:21:46 CLSRSC-594: Executing installation step 11 of 19: 'CreateOHASD'.
2020/10/01 05:21:51 CLSRSC-594: Executing installation step 12 of 19: 'ConfigOHASD'.
2020/10/01 05:21:51 CLSRSC-330: Adding Clusterware entries to file 'oracle-ohasd.service'
2020/10/01 05:22:14 CLSRSC-594: Executing installation step 13 of 19: 'InstallAFD'.
2020/10/01 05:22:19 CLSRSC-594: Executing installation step 14 of 19: 'InstallACFS'.
2020/10/01 05:22:24 CLSRSC-594: Executing installation step 15 of 19: 'InstallKA'.
2020/10/01 05:22:28 CLSRSC-594: Executing installation step 16 of 19: 'InitConfig'.
已成功创建并启动 ASM。
[DBT-30001] 已成功创建磁盘组。有关详细信息, 请查看 /u01/app/grid/cfgtoollogs/asmca/asmca-201001上午052301.log。
2020/10/01 05:24:15 CLSRSC-482: Running command: '/u01/app/19.0.0/grid/bin/ocrconfig -upgrade grid oinstall'
CRS-4256: Updating the profile
Successful addition of voting disk c48689c860fd4fa2bfe4fcfcbdae0c38.
Successful addition of voting disk bbdd94ae3dd14f26bf0d1abfa2767f1d.
Successful addition of voting disk 5a17bd17e9dd4f73bf0e78f7fb28d71c.
Successfully replaced voting disk group with +crs_gimr.
CRS-4256: Updating the profile
CRS-4266: Voting file(s) successfully replaced
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE c48689c860fd4fa2bfe4fcfcbdae0c38 (/dev/asm-diskb) [CRS_GIMR]
2. ONLINE bbdd94ae3dd14f26bf0d1abfa2767f1d (/dev/asm-diskc) [CRS_GIMR]
3. ONLINE 5a17bd17e9dd4f73bf0e78f7fb28d71c (/dev/asm-diskd) [CRS_GIMR]
Located 3 voting disk(s).
2020/10/01 05:25:47 CLSRSC-594: Executing installation step 17 of 19: 'StartCluster'.
2020/10/01 05:27:18 CLSRSC-343: Successfully started Oracle Clusterware stack
2020/10/01 05:27:18 CLSRSC-594: Executing installation step 18 of 19: 'ConfigNode'.
2020/10/01 05:28:50 CLSRSC-594: Executing installation step 19 of 19: 'PostConfig'.
2020/10/01 05:29:22 CLSRSC-325: Configure Oracle Grid Infrastructure for a Cluster ... succeeded
unzip LINUX.X64_193000_db_home.zip -d /u01/app/oracle/product/19.0.0/db_1
解压完成,进入
cd /u01/app/oracle/product/19.0.0/db_1
目录执行 ./runInstaller
注意:第一次执行一般会出现两个错误,一个是需要我们在grid 用户下执行脚本,第二个是需要我们配置图形显示 环境变量设置 。
如:export DISPLAY=10.54.18.202:0.0 查看电脑的ip地址 加上:0.0
如果解压的时候是在root用户上进行解压的话,
可以通过命令
chown -R grid:oinstall /u01/app/oracle/product/19.0.0/db_1 更改权限。
这里根据提示来进行具体是哪一个节点来执行脚本。
1、asm创建+data
执行之前同上一样,需要配置图像化界面变量,以及赋予权限。
[grid@rac19c1:/home/grid]$ asmca
2、点击Create
点击Create ,找到ASM共享磁盘的路径,完成创建。
[oracle@rac19c1 db_1]$ dbca
创建数据库
这里的名字必须跟oracle vim ~/.bash_profile 一样
配置写内存:尽量选择默认的 不要自己去调整。调整可能会使后面的安装不成功。
集群验证
配置数据库密码
校验时也是之前的dns和scan ip错误,可以忽略,进行下一步安装
安装数据库需要一般20多分钟,我的用了半小时。跟据自己的电脑性能有关系
[grid@rac19c1:/u01/app/19.0.0/grid/bin]$crsctl stat res -t
查看数据库是否创建成功
Dbca删库
所有的安装已经完成。现在可以通过sqlplus /as sysdba
查看数据库的版本。