热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Oracle数据库双机冷备部署方式

Oracle数据库如果做集群的话一般只能使用Oracle自带的RAC方式,但是如果由于各种原因不能部署RAC的话,可以采用双机冷备,一台开机的方式,下面使用VMWare虚拟化平台为例介绍一下双机冷备的

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保持两块数据硬盘完全的一致,防止单块硬盘出问题导致数据库丢失的风险。





推荐阅读
author-avatar
手机用户2502873393
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有