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
- Oracle 11g 一主多備切換方案Oracle
- oracle 11g datagurd主從切換Oracle
- openGauss主備切換之switchover與failoverAI
- 【DG】Data Guard主備庫Failove切換AI
- 【DG】Data Guard主備庫Switchover切換
- Mysql 5.6 Master和Slave 主備切換MySqlAST
- docker Redis單機主從哨兵模式切換失敗DockerRedis模式
- oracle 12c主機徹底掛機用failover把備機設定為主機OracleAI
- 【PG流複製】Postgresql流複製主備切換SQL
- mysql主備切換canal出現的問題解析MySql
- 【DATAGUARD】Oracle Dataguard物理備庫切換最佳實踐(sqlplus)OracleSQL
- MySQL雙機互備熱備自動切換KVMySql
- (九)主題切換
- Redis主從切換Redis
- ORACLE 12C DATAGUARD環境搭建和主從切換Oracle
- 基於單機的DataGuard切換文件
- 12c data guard 使用 sqlplus 主備切換最佳實踐SQL
- 手工切換MySQL主從MySql
- Redis sentinel主從切換Redis
- oracle dg切換操作示例Oracle
- Spring Boot中自定義註解+AOP實現主備庫切換Spring Boot
- SQLServer2012映象主庫掛掉如何切換到映象備庫SQLServer
- oracle rman備份歸檔日誌需要先切換日誌嗎Oracle
- keepalived配置redis主從切換Redis
- 小程式切換主題配色
- ostgreSQL主從切換-手動SQL
- echarts 主題動態切換Echarts
- Oracle Temp 表空間切換Oracle
- oracle11g dataguard切換Oracle
- Oracle RAC DG手動切換Oracle
- MySQL 複製 - 效能與擴充套件性的基石 4:主備切換MySql套件
- Flutter主題切換之flutter reduxFlutterRedux
- StoneDB 主從切換實踐方案
- 09.redis 哨兵主備切換時資料丟失的解決方案Redis
- 生產環境中mysql資料庫由主從關係切換為主主關係MySql資料庫
- Oracle DG異構主備支援Oracle
- MySQL 5.7 主庫崩潰切備庫MySql