20220825-Oracle 单机切换为主备

在这里插入图片描述

前言

Oracle 高可用、容灾架构有很多,官方架构主要有RAC、DG等,借助第三方高可用软件有Rose、VCS等。
类似Rose、VCS等第三方高可用软件,在进行主备切换时,通常是检测到数据库端口或进程不存在时,自动进行VIP转移、数据库存储转移、数据库实例停止和启动等步骤,从而实现数据库切换。
本次实验,通过NFS模拟共享存储,切换方式为手动切换VIP、手动切换共享存储、手动重启实例,后期可以考虑通过keepalived实现自动切换。

一:配置NFS服务
二:准备数据库服务器
三:挂载共享存储
四:添加VIP
五:启动主库数据库
六:配置从库
七:主从切换

服务器信息如下:

NFS服务器      192.168.8.41
Oracle服务器1  192.16.8.100
Oracle服务器2  192.168.8.42
VIP            192.168.8.200

一:配置NFS服务

NFS服务器 192.168.8.41

1.检查是否安装nfs服务

[root@mysql02 /]# rpm -qa|grep nfs
nfs4-acl-tools-0.3.3-17.el7.x86_64
libnfsidmap-0.25-19.el7.x86_64
nfs-utils-1.3.0-0.54.0.1.el7.x86_64

如果没有,需要安装

yum install nfs-utils
yum install libnfsidmap

2.创建共享目录,并赋予读写权限。

设置共享目录,并赋予读写权限

mkdir /oradata
chmod -R 777 /oradata

3.修改配置文件/etc/exports

vi /etc/exports
###/oradata 192.168.8.41(rw,insecure)
/oradata *(rw,insecure)

不限制访问IP

4.启动NFS服务

[root@mysql02 /]# systemctl start nfs-server.service 
[root@mysql02 /]# systemctl status nfs-server.service 
● nfs-server.service - NFS server and services
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled; vendor preset: disabled)
   Active: active (exited) since Wed 2022-08-24 18:42:17 CST; 5s ago
  Process: 4815 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
  Process: 4810 ExecStartPre=/bin/sh -c /bin/kill -HUP `cat /run/gssproxy.pid` (code=exited, status=0/SUCCESS)
  Process: 4809 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
 Main PID: 4815 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/nfs-server.service
Aug 24 18:42:17 mysql02 systemd[1]: Starting NFS server and services...
Aug 24 18:42:17 mysql02 systemd[1]: Started NFS server and services.

设置开机自启动

[root@mysql02 ~]# systemctl list-unit-files |grep nfs-server
nfs-server.service                            disabled

[root@mysql02 ~]# systemctl enable nfs-server.service 
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.

[root@mysql02 ~]# systemctl list-unit-files |grep nfs-server
nfs-server.service                            enabled

二:准备数据库服务器

Oracle服务器1 192.16.8.100

配置NFS客户端

1.创建挂载目录

在客户端创建一个目录用来挂载共享目录,设置挂载目录,并赋予读写权限

mkdir /oranfs
chmod -R 777  /oranfs

2.验证NFS信息

showmount -e 192.168.8.41

3.停库,拷贝数据文件

192.16.8.100服务器上目前已经存在一个oracle单实例数据库,需要将数据文件等拷贝到NFS共享存储上。
分别检查数据文件、控制文件、日志文件是否均在统一目录下

SQL> select name from v$dbfile;
NAME
--------------------------------------------------------------------------------
/oradata/cjc/users01.dbf
/oradata/cjc/undotbs01.dbf
/oradata/cjc/sysaux01.dbf
/oradata/cjc/system01.dbf
/oradata/cjc/cjctbs01.dbf
/oradata/cjc/chentbs01.dbf
6 rows selected.

控制文件没有在同一个目录下,需要将control02.ctl迁移到/oradata/cjc目录下

SQL> select name from v$controlfile;
NAME
--------------------------------------------------------------------------------
/oradata/cjc/control01.ctl
/oracle/app/oracle/fast_recovery_area/cjc/control02.ctl

SQL> select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
/oradata/cjc/redo03.log
/oradata/cjc/redo02.log
/oradata/cjc/redo01.log

停止当前数据库实例

SQL> shutdown immediate

将/oradata/cjc目录打包上传到NFS服务器上

tar -zcvf cjc.tar.gz cjc/
scp cjc.tar.gz 192.168.8.41:/oradata

登录到NFS服务器上,解压

cd /oradata
tar -zxvf cjc.tar.gz

将原/oradata目录重命名

mv /oradata /oradata_20220825bak

4.启动数据库实例

startup

5.修改监听文件

修改IP地址为VIP地址

三:挂载共享存储

mount -t nfs -o rw,bg,hard,nointr,nolock,rsize=65536,wsize=65536,tcp,vers=3,timeo=600 192.168.8.41:/oradata /oradata
df -h
...
192.168.8.41:/oradata   47G   33G   15G  70% /oradata
mount|grep oradata
192.168.8.41:/oradata on /oradata type nfs (rw,relatime,vers=3,rsize=65536,wsize=65536,namlen=255,hard,nolock,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.8.41,mountvers=3,mountport=20048,mountproto=tcp,local_lock=all,addr=192.168.8.41)

四:添加VIP

添加VIP

ip addr add 192.168.8.200/24 dev enp0s3
###ifup 192.168.8.200/24 enp0s3

#主库移除VIP地址

###ip addr del 192.168.8.200/24 dev enp0s3

更新arp信息

arping -c 1 -I enp0s3 -U 192.168.8.200

启动监听

lsnrctl start

五:启动主库数据库

sqlplus / as sysdba
startup

六:配置从库

Oracle服务器2 192.168.8.42
安装Oracle软件11.2.0.4.0,不创建实例
检查参数文件内容,创建对应目录。

七:主从切换

主库:192.168.8.100

1.停监听

lsnrctl start

2.停库

shutdown immediate

3.卸载vip

ip addr del 192.168.8.200/24 dev enp0s3

4.umount共享存储

umount /oradata

从库:192.168.8.42

5.挂载共享存储

mount -t nfs -o rw,bg,hard,nointr,nolock,rsize=65536,wsize=65536,tcp,vers=3,timeo=600 192.168.8.41:/oradata /oradata

6.添加VIP

ip addr add 192.168.8.200/24 dev enp0s3

更新arp信息

arping -c 1 -I enp0s3 -U 192.168.8.200

7.启动监听

lsnrctl start

8.启动数据库

startup
alter system register;

后期可以考虑通过keepalived实现自动切换。
欢迎关注我的公众号《IT小Chen

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值