文章目录
1. 前言
Oracle Data Guard可确保企业数据的高可用性,数据保护和灾难恢复。
Oracle Data Guard提供了一套全面的服务,可以创建,维护,管理和监视一个或多个备用数据库,以使生产Oracle数据库能够在灾难和数据损坏中幸免。Oracle Data Guard将这些备用数据库维护为生产数据库的副本,然后,如果生产数据库由于计划内或计划外的停机而变得不可用,则Oracle Data Guard可以将任何备用数据库切换为生产角色,从而最大程度地减少与停机相关的停机时间。Oracle Data Guard可以与传统的备份,还原和集群技术一起使用,以提供高水平的数据保护和数据可用性。
借助Oracle Data Guard,管理员可以选择通过将资源密集型备份卸载并向备用系统报告操作来提高生产数据库的性能。(来源网络)
本次测试环境的一主两备规划如下:根据dataguard的搭建方案,在Primary库上安装数据库软件,并建监听和实例,在Standby库上安装数据库软件,并建监听,但不建实例。
2. Master服务器Oracle数据库安装与配置说明
本节说明master服务器(192.183.3.112)Oracle 18c数据库服务器的安装与配置情况,以便日后开发与管理参考。
2.1 安装前准备
2.1.1 数据库下载
说明:目标服务器(192.183.3.112)安装的是非图形界面系统,需静默方式安装数据库,系统版本与内核情况查询如下:
[root@master ~]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
[root@master ~]# cat /proc/version
Linux version 3.10.0-1062.1.2.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) ) #1 SMP Mon Sep 30 14:19:46 UTC 2019
2.1.2 操作系统软硬件检查
- 物理内存要求
[root@master ~]# grep MemTotal /proc/meminfo
MemTotal: 7966904 kB
- 虚拟内存要求
对应上表可知虚拟内存要求,查看虚拟内存命令(约62G):
[root@master ~]# grep SwapTotal /proc/meminfo
SwapTotal: 8257532 kB
- /tmp空间要求
/tmp磁盘空间至少1GB,如果不足1G需设置oracle用户的TMP和TMPDIR环境变量。
查询命令:# df -h /tmp
[root@master ~]# df -h /tmp
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 50G 6.7G 44G 14% /
- 安装目录要求
对数据库安装目录,需至少7.5G空间,本次安装目录为/home/app/oracle下。
[root@master ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 50G 6.7G 44G 14% /
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.8G 0 3.8G 0% /dev/shm
tmpfs 3.8G 8.6M 3.8G 1% /run
tmpfs 3.8G 0 3.8G 0% /sys/fs/cgroup
/dev/sda1 494M 125M 369M 26% /boot
/dev/mapper/centos-home 408G 21G 387G 6% /home
tmpfs 779M 0 779M 0% /run/user/0
- RPM包要求
binutils-2.23.52.0.1-12.el7.x86_64
compat-libcap1-1.10-3.el7.x86_64
compat-libstdc++-33-3.2.3-71.el7.i686
compat-libstdc++-33-3.2.3-71.el7.x86_64
gcc-4.8.2-3.el7.x86_64
gcc-c++-4.8.2-3.el7.x86_64
glibc-2.17-36.el7.i686
glibc-2.17-36.el7.x86_64
glibc-devel-2.17-36.el7.i686
glibc-devel-2.17-36.el7.x86_64
ksh
libaio-0.3.109-9.el7.i686
libaio-0.3.109-9.el7.x86_64
libaio-devel-0.3.109-9.el7.i686
libaio-devel-0.3.109-9.el7.x86_64
libgcc-4.8.2-3.el7.i686
libgcc-4.8.2-3.el7.x86_64
libstdc++-4.8.2-3.el7.i686
libstdc++-4.8.2-3.el7.x86_64
libstdc++-devel-4.8.2-3.el7.i686
libstdc++-devel-4.8.2-3.el7.x86_64
libXi-1.7.2-1.el7.i686
libXi-1.7.2-1.el7.x86_64
libXtst-1.2.2-1.el7.i686
libXtst-1.2.2-1.el7.x86_64
make-3.82-19.el7.x86_64
sysstat-10.1.5-1.el7.x86_64
unixODBC-2.3.1-6.el7.x86_64 or later
unixODBC-2.3.1-6.el7.i686 or later
unixODBC-devel-2.3.1-6.el7.x86_64 or later
unixODBC-devel-2.3.1-6.el7.i686 or later
安装前查看需要的RPM包安装情况,安装缺失的RPM包,这里就不赘述。
[root@master ~]# rpm -q binutils compat-libcap1 compat-libstdc++-33.i686 compat-libstdc++-33.x86_64 gcc gcc-c++ glibc.i686 glibc.x86_64 glibc-devel.i686 glibc-devel.x86_64 libaio.i686 libaio.x86_64 libaio-devel.i686 libaio-devel.x86_64 ksh libgcc.i686 libgcc.x86_64 libstdc++.i686 libstdc++.x86_64 libstdc++-devel.i686 libstdc++-devel.x86_64 libXi.i686 libXi.x86_64 libXtst.i686 libXtst.x86_64 make sysstat unixODBC.i686 unixODBC.x86_64 unixODBC-devel.i686 unixODBC-devel.x86_64
[root@master ~]# yum -y install compat-libcap1 compat-libstdc++-33.i686 compat-libstdc++-33.x86_64 glibc.i686 glibc-devel.i686 libaio.i686 libaio-devel.i686 ksh libgcc.i686 libstdc++.i686 libstdc++-devel.i686 libXi.i686 libXi.x86_64 libXtst.i686 libXtst.x86_64 unixODBC.i686 unixODBC-devel.i686 sysstat unixODBC.x86_64 unixODBC-devel.x86_64
- 关闭SELinux
[root@master ~]# vim /etc/sysconfig/selinux
- 创建用户、用户组以及安装目录
[root@master ~]# groupadd -g 54321 oinstall
[root@master ~]# /usr/sbin/groupadd -g 54322 dba
[root@master ~]# groupadd -g 54323 oper
[root@master ~]# /usr/sbin/groupadd -g 54324 backupdba
[root@master ~]# /usr/sbin/groupadd -g 54325 dgdba
[root@master ~]# useradd -g oinstall -G dba oracle oper
[root@master ~]# usermod -a -G backupdba,dgdba,oper oracle
[root@master ~]# mkdir -p /home/app/oracle
[root@master ~]# mkdir -p /home/app/oraInventory
[root@master ~]# mkdir -p /home/app/oracle/product/18.3.0/dbhome_1
[root@master ~]# chown -R oracle:oinstall /home/app
[root@master ~]# chmod -R 775 /home/app
[oracle@master ~]$ cd /home/app/oracle/product/18.3.0/dbhome_1
注意:将安装文件解压到Oracle Home下,这里和Oracle 18c之前的版本不同,之前的版本解压的安装文件可以在任何位置,Oracle解压的安装文件必须在Oracle Home下,因为仅从Oracle home运行runInstaller命令,不要从任何其他位置运行runInstaller。
[oracle@master dbhome_1]$ unzip -q /home/softwares/oracle/LINUX.X64_180000_db_home.zip
- 配置Oracle用户shell limit
[root@master ~]# vim /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle soft memlock 3145728
oracle hard memlock 3145728
- 修改系统内核参数
建议参考值:
参数详解如下:
1)fs.aio-max-nr = 1048576:同时可以拥有的的异步IO请求数目,1048576 即 1024*1024 也就是1024K个。
2)fs.file-max = 6553600:系统允许打开的文件数。
3)kernel.shmall = 2097152:指定任意时刻,系统中可以分配的所有共享内存段的总和的最大值,也可以保留默认值,这个值太小有可能导致数据库启动报错,这个是8G的值,如果大于8G需要调整,计算公式为:内存(G)10241024*1024/4096,4096为getconf PAGE_SIZE得到分页大小。
4)kernel.shmmax = 536870912:Linux进程可以分配的单独共享内存段的最大值,最小值536870912,最大值为比物理内存小1byte,一般推荐设置为内存总大小的一半,这个值的设置应该大于SGA_MAX_TARGET或MEMORY_MAX_TARGET的值,因此对于安装Oracle数据库的系统,shmmax的值应该比内存的二分之一大一些。
5)kernel.shmmni = 4096:设置系统级最大共享内存段数量,推荐最小值为4096。
6)kernel.sem = 2010 285420 100 142:从左到右分别为SEMMSL、SEMMNS、SEMOPM和SEMMNI。
SEMMSL:设置每个信号灯组中信号灯最大数量,推荐的最小值是250,对于系统中存在大量并发连接的系统,推荐将这个值设置为PROCESSES初始化参数加10。
SEMMNS:设置系统中信号灯的最大数量,操作系统在分配信号灯时不会超过LEAST(SEMMNS,SEMMSLSEMMNI),事实上,如果SEMMNS的值超过了SEMMSLSEMMNI是非法的,因此推荐SEMMNS的值就设置为SEMMSL*SEMMNI,Oracle推荐SEMMNS的设置不小于32000,假如数据库的PROCESSES参数设置为2000,则SEMMNS的设置应为:
SQL> select (2000+10)*142 from dual;
SEMOPM:设置每次系统调用可以同时执行的最大信号灯操作的数量,由于一个信号灯组最多拥有SEMMSL个信号灯,因此有推荐将SEMOPM设置为SEMMSL的值,Oracle验证的10.2和11.1的SEMOPM的配置为100。
SEMMNI:设置系统中信号灯组的最大数量,Oracle10g和11g的推荐值为142。
编辑内核参数:
[root@master ~]# vim /etc/sysctl.conf
# For oracle
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 2010 285420 100 142
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
[root@master ~]# sysctl -p
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 2010 285420 100 142
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
- 编辑登录配置文件
在文本最后添加:session required pam_limits.so或者session required /lib/security/pam_limits.so使shell limit生效。
[root@master ~]# vim /etc/pam.d/login
- 配置/etc/hosts文件
在/etc/hosts文件中添加IP地址和域名的映射关系,进入hosts文件,在文件末尾加上本机实际IP和主机用户名。
[root@master ~]# vim /etc/hosts
192.183.3.112 master
192.183.3.194 slave1
192.183.3.145 slave2
- 配置/etc/profile
[root@master ~]# vim /etc/profile
- 设置环境变量
[root@master ~]# su - oracle
[oracle@master ~]$ vim ~/.bash_profile
添加ORACLE_BASE和ORACLE_SID到bash_profile文件中,如下:
# For Oracle
export ORACLE_BASE=/home/app/oracle
export ORACLE_SID=primdb
export ORACLE_HOME=$ORACLE_BASE/product/18.3.0/dbhome_1
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
注意:除了ORACLE_BASE和ORACLE_SID,(/etc/profile和.bash_profile中)不设置任何oracle相关环境变量(ORACLE_HOME、PATH、LD_LIBRARY_PATH等)。
生效修改后的bash_profile:
[oracle@master ~]$ source /home/oracle/.bash_profile
2.2 安装Oracle 18c数据库
2.2.1 创建oraInst.loc
[root@master ~]# vim /etc/oraInst.loc
inventory_loc=/home/app/oraInventory
inst_group=oinstall
[root@master ~]# chown oracle:oinstall /etc/oraInst.loc
[root@master ~]# chmod 664 /etc/oraInst.loc
2.2.2 创建响应文件
- 创建Oracle数据库安装的响应文件
默认情况下,Oracle响应文件的模板在/home/app/oracle/product/18.3.0/dbhome_1/install/response/目录中,Oracle数据库安装的响应文件为db_install.rsp,这里只需根据实际的安装需求对该文件的参数进行相应的修改,即可用于安装数据库。
更改文件权限保护响应文件:[root@master ~]# chmod 600 /home/app/oracle/product/18.3.0/dbhome_1/install/response/db_install.rsp
本次安装修改的参数主要如下:
[root@master response]# egrep -v “#|$” db_install.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v18.0.0
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/home/app/oraInventory
ORACLE_HOME=/home/app/oracle/product/18.3.0/dbhome_1
ORACLE_BASE=/home/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


1910

被折叠的 条评论
为什么被折叠?



