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實現自動切換。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29785807/viewspace-2912050/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle DataGuard 主備切換 (switchover) oracle11gOracle
- DataGuard切換(主庫為Rac+備庫為Rac)
- 主備切換(failover)AI
- 主備切換的準備工作
- Oracle 11g 一主多備切換方案Oracle
- Oracle Data Guard主庫備庫角色切換(Switchovers)Oracle
- mysql主從複製+主備切換MySql
- Data Guard主備庫切換
- 備庫的切換狀態為SWITCHOVER PENDING時進行dataguard主備庫角色切換
- 主備切換的準備工作(二)
- DataGuard主備庫切換步驟
- MySQL 主備庫切換記錄MySql
- docker Redis單機主從哨兵模式切換失敗DockerRedis模式
- 【DG】Data Guard主備庫Switchover切換
- Mysql 5.6 Master和Slave 主備切換MySqlAST
- Oracle 10g DataGuard物理主備切換-switchover與failoverOracle 10gAI
- failover切換後恢復原來主庫為新備庫AI
- DG中備庫為SWITCHOVER PENDING時是否能進行主備切換
- Oracle 12c Data guard 物理主備庫正常切換(switchover)流程Oracle
- Oracle 11g Data guard 物理主備庫正常切換(switchover)流程Oracle
- 【DG】Data Guard主備庫Failove切換AI
- 再次使用DGbroker做switchover主備切換
- Oracle10G Dataguard 多個備庫 - 主庫和物理備庫的切換Oracle
- oracle 11g datagurd主從切換Oracle
- 利用RMAN搭建DATAGARD進行主備切換
- openGauss主備切換之switchover與failoverAI
- 執行主備庫切換以解決主庫儲存不足
- 主備庫切換以解決主庫儲存空間不足
- 【PG流複製】Postgresql流複製主備切換SQL
- mysql主備切換canal出現的問題解析MySql
- Redis+Keepalived主從熱備秒級切換Redis
- MySQL雙機互備熱備自動切換KVMySql
- mongodb將備機提升為主機MongoDB
- Redis主從切換Redis
- (九)主題切換
- MySQL主從切換MySql
- oracle 12c主機徹底掛機用failover把備機設定為主機OracleAI
- 手工切換MySQL主從MySql