Oracle 单机切换为主备

来源:这里教程网 时间:2026-03-03 17:48:51 作者:

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实现自动切换。

相关推荐