Oracle数据库双机冷备部署方式
来源:互联网 发布:java 汉字转数字 编辑:程序博客网 时间:2024/05/21 07:02
Oracle数据库如果做集群的话一般只能使用Oracle自带的RAC方式,但是如果由于各种原因不能部署RAC的话,可以采用双机冷备,一台开机的方式,下面使用VMWare虚拟化平台为例介绍一下双机冷备的部署方式。
所需材料
1、两台配置一模一样的主机,主机至少能插两块硬盘
2、找一块大硬盘,专门用来放表空间和备份文件
3、Redhat 6.7安装光盘
4、数据库安装包
首先数据库安装包的版本选为Oracle 12c 12.2.0.1.0,操作系统版本为红帽6.7,rhel源为红帽6.9
选择红帽6.7的原因是Oracle 12c 12.2.0.1.0在这上面安装不会出现依赖问题和任何报错,可以减少很多初学者会碰到的问题,实在是绝配
首先我们只需要在主机上安装一块硬盘用来安装操作系统,装好操作系统之后,再在这块硬盘上安装数据库软件,此时第二块硬盘还不需要挂载上。
数据库软件建立在第一块硬盘的 /u01目录下,
等安装完数据库软件之后,我们把第二块硬盘挂载到 /oradata下面,然后把数据库建立在这个目录之上。
下面开始安装数据库的准备工作,与安装11g基本一样,都是固定的套路
创建Oracle用户
root用户:创建Oracle安装组oinstall,数据库管理员组dba,及oracle用户
# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
# /usr/sbin/useradd -g oinstall -G dba oracle(主组oinstall,其它组:dba)
# passwd oracle
安装相关依赖包
unixODBC-devel unixODBC-devel libstdc++ libgcc libaio-devel elfutils compat-libstdc++-33glibc等
修改内核参数
root用户:修改 /etc/sysctl.conf 文件,加上如下参数
kernel.shmmax = 4294967295
kernel.shmall = 2097152
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
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
fs.aio-max-nr= 4194304
为使上述配置生效而不重启系统,执行如下命令
# /sbin/sysctl -p
修改运行时参数
root用户:修改 /etc/security/limits.conf 文件,加上下面的参数
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
root用户下:修改/etc/pam.d/login文件加上如下参数
session required pam_limits.so
修改用户配置文件
root用户下:修改/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
建立安装目录
root用户:
建立oracle软件安装目录
#mkdir -p /u01/
# chown -R oracle:oinstall /u01/
# chmod -R 775 /u01/
建立oracle安装临时文件目录
[root@oadb ~]# mkdir/oraInventory
[root@oadb ~]# chown -Roracle:oinstall /oraInventory/
[root@oadb~]# chmod -R 775 /oraInventory /
建立数据库存储目录
[root@oadb ~]# mkdir/oradata
[root@oadb ~]# chown -Roracle:oinstall /oradata
[root@oadb~]# chmod -R 775 /oradata/
修改用户环境变量
使用oracle用户操作 su - oracle
$vi .bash_profile
增加如下内容
export ORACLE_BASE=/u01
export ORACLE_HOME=$ORACLE_BASE/oracle
export ORACLE_SID=oracleSid
export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
完成后执行:
#su–oracle
#env| grep ORA查看环境变量是否完成
设置显示
Root用户执行
[root@localhost ~]# exportDISPLAY=:0.0
[root@localhost ~]# xhost +
access control disabled, clientscan connect from any host
安装Oracle软件
安装Oracle软件
使用oracle用户登录,将安装包上传到/home/oracle,然后解压缩Oracle安装文件:
然后使用VNC进入解压后的目录,执行
export LANG=c
注意一定要在oracle用户开启vncserver,不能在root用户或其他用户,并直接登录oracle用户的vnc,否则会报X11或者ClassNotDefined的错误
$ ./runInstaller
进入第一页,什么都不用填
第二页选择“仅安装数据库软件”,否则还会让你安装数据库,这个我们等后面挂载上第二块硬盘再做
第三页问你要不要安装RAC,由于我们是冷备,所以应该安装单机版
第四页问你安装企业版还是标准版,由于两个版本都不要钱,所以安装企业版
第五页选择数据库软件的安装位置,注意这个位置仅仅是软件的位置,和数据库的表空间毛关系都没有,一般安装在和操作系统同一块硬盘中即可,注意使用root用户建立/u01,并且将其所有者修改为oracle。注意下面填的oracle base,要写到环境变量ORACLE_BASE中,下面的software location 要写到环境变量ORACLE_HOME中去
下面是指定oraInventory的目录,就是安装文件的临时目录,默认是/oraInventor,一般放在/u01底下就可以
如果放在/u01下面,会报一个警告
然后选择安装文件的所属组,用默认即可
然后系统会执行一些检测,比如下面就检测出来缺少一些依赖,还有一些内核参数配置的问题,内核参数配置的问题Oracle安装程序能自己给你解决,所以Fixable是yes,对于缺少依赖库可以直接挂载相应的yum源,使用yum install命令直接安装,注意安装时要加上版本号,我这里使用的是红帽6.7的操作系统,使用红帽6.9的光盘做yum源。
下面就是安装相关依赖包的截图
下图中,所有的依赖库都被解决,只剩修改内核参数了,而这些修改只需要点击Fix & Check Agiain就可以解决
点击Fix & Check Agiain之后,会出现一个框,提示你用root权限执行一个脚本,执行完这个脚本之后点OK,基本内核参数的问题就解决了
在红帽6.7+Oracle 12c的组合下,上面检测出来的问题很容易就会被解决了,点击Check Again之后列表就清空了,使用其他版本的数据库或者操作系统很有可能会碰到无法解决的依赖问题。
解决完问题之后,就会出现一个总结框,在这里可以观察相关的安装配置
简单的确认一下之后,尤其是检查安装的目录是否正确,点击“Install”按钮,就会出现安装的进度条,如果使用红帽6.7加Oracle 12c的版本,在安装过程中不会出现任何报错,但是使用其他数据库或者操作系统,可能在安装过程中会弹出对话框报错并终止安装过程,需要对症下药,而这个步骤对于初学者来说是比较难解决的,所以推荐使用红帽6.7加Oracle 12c 12.2.0.1.0的版本。
在安装完毕之后,就会出现如下页面,再次需要使用root用户执行两个脚本
执行完毕就可以回去点击,数据库软件的安装就大功告成了。
插入硬盘后,重新开机,使用fdisk进行分区,也可以划分到LVM中管理,并且在根目录下建立/oradata目录,挂载到这块硬盘上。
然后就可以安装数据库实例,并且把实例的表空间和归档日志还有备份文件都建立到这块硬盘上,可以看我之前写的博客:《Oracle Database 12c 数据库简单实例的创建过程》
下面主要挑重点的也就是数据库表空间和归档日志的安装位置的截图放在下面,其主要操作就是把表空间,归档日志,快速恢复区,备份文件都放到/oradata目录下
下面是快速恢复区,也就是备份文件的存放位置
下面是控制文件的存放位置
下面是设置表空间文件的存放位置
下面是Redo日志的存放位置
在建立好数据库实例之后,我们就可以关闭当前服务器,并把网络配置清空。然后把第一块硬盘,也就是安装操作系统那块硬盘复制一块,物理机可以使用dd命令克隆硬盘,如果是虚拟机,那就把第二块硬盘移除掉之后克隆这块虚拟机,克隆完毕之后再把第二块硬盘插上。
这样我们就有了两台配置一模一样的主机和一块数据硬盘,使用的时候,我们只需保持一台开机,插上数据盘,当这台数据库主机宕机的时候,我们可以把数据盘拆下来装到另一台配置一模一样的主机上继续运行。如果担心数据盘会受损,可以使用硬件底层的同步措施保持一块同步盘,比如使用raid1保持两块数据硬盘完全的一致,防止单块硬盘出问题导致数据库丢失的风险。