原數據庫主機維保到期,需要做數據庫遷移,制定的最終遷移方案是新搭建一套rac成為原庫的ADG備庫,割接當晚做主備切換,為了讓業務側改動最小化,切換完以后做主備IP替換操作,按照生產環境db_unique_name添加注冊service_names,確保業務側幾乎零改動。
檢查兩節點啟動情況 srvctl status instance -d TESTDB -i TESTDB1,TESTDB2 停止二節點實例 srvctl stop instance -d TESTDB -i TESTDB2 |
(1)主庫查詢: SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE; SWITCHOVER_STATUS -------------------- SESSIONS ACTIVE (2)TO STANDBY或者SESSIONS ACTIVE狀態下,主庫可以切換成備庫角色 ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN; srvctl stop database -d TESTDB srvctl start database -d TESTDB -o mount |
(1)TO PRIMARY或者SESSIONS ACTIVE 狀態說明備庫已經準備好切換成主庫角色 SELECT SWITCHOVER_STATUS FROM V$DATABASE; SWITCHOVER_STATUS -------------------- TO PRIMARY 切換目標RAC物理備庫成為主庫 ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN; 節點一執行: 查看數據庫狀態是否是mount select open_mode from v$database; ALTER DATABASE OPEN; 節點二執行: 查看數據庫狀態是否是mount select open_mode from v$database; ALTER DATABASE OPEN; |
(1)啟動日志應用被激活備庫: ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION; (2)啟動新備庫到open alter database recover managed standby database cancel; alter database open; alter database recover managed standby database using current logfile disconnect from session; |
(1)alter日志檢查: Tail -100f $ORACLE_BASE/rdbms/TEST/TESTDB1/alert/log.xml (2) 查看主備應用狀態 set linesize 200 column name format a22 column value format a16 column unit format a28 column time_computed format a25 select * from v$dataguard_stats; |
基礎環境
主庫 | 備庫 | |
IP地址規劃 cat /etc/hosts | 192.168.0.21 testdb1 testdb1.com 192.168.0.23 testdb1-vip 192.168.0.22 testdb2 testdb2.com 192.168.0.24 testdb2-vip 192.168.0.25 testdb-cluster testdb-cluster-scan 192.168.0.121 testdb1-priv 192.168.0.122 testdb2-priv | 192.168.0.245 testdb1 testdb1.com 192.168.0.247 testdb1-vip 192.168.0.246 testdb2 testdb2.com 192.168.0.248 testdb2-vip 192.168.0.251 testdb-cluster testdb-cluster-scan 192.168.99.121 testdb1-priv 192.168.99.122 testdb2-priv |
替換后IP地址規劃 | 192.168.0.245 testdb1 testdb1.com 192.168.0.247 testdb1-vip 192.168.0.246 testdb2 testdb2.com 192.168.0.248 testdb2-vip 192.168.0.251 testdb-cluster testdb-cluster-scan 192.168.0.121 testdb1-priv 192.168.0.122 testdb2-priv | 192.168.0.21 testdb1 testdb1.com 192.168.0.23 testdb1-vip 192.168.0.22 testdb2 testdb2.com 192.168.0.24 testdb2-vip 192.168.0.25 testdb-cluster testdb-cluster-scan 192.168.99.121 testdb1-priv 192.168.99.122 testdb2-priv |
db_name | TESTDB | TESTDB |
db_unique_name | TESTDB | TESTDB _NEW |
Instance_name | TESTDB1 TESTDB2 | TESTDB1 TESTDB2 |
主備環境處理私有IP不替換意外,公網ip,虛ip,scan_ip都需要替換 1:提前準備好需要替換的hosts->hosts_bak(替換后的新hosts 信息) 2:提前準備好tnsnames.ora->qiehuan_tnsnames.ora(ip互換以后新的tnsnames信息) 3:提前申請兩個IP 4:由于私網IP不做替換,所以沒有停集群的必要 |
停止日志應用: alter database recover managed standby database cancel; |
(1)root下執行 cd $GRID_HOME/bin ./srvctl stop database -d testdb ./srvctl disable database -d testdb (2) 禁用和停止listener: ./srvctl disable listener ./srvctl stop listener (3) 禁用和停止vip ./srvctl disable vip -i "test1-vip" ./srvctl disable vip -i "test2-vip" ./srvctl stop vip -n test1 ./srvctl stop vip -n test2 (4) 禁用和停止scan及scan_listener ./srvctl disable scan_listener ./srvctl stop scan_listener ./srvctl disable scan ./srvctl stop scan (5)停crs 兩節點執行(因為此種變更肯定有停機窗口,建議停止集群) ./crsctl stop crs |
(1)修改網卡ip成備用ip#192.168.0.232 《=》 21 #192.168.0.233 《=》22 192.168.0.21: vi /etc/sysconfig/network-scripts/ifcfg-bond0 IPADDR=192.168.0.21->IPADDR=192.168.0.232 192.168.0.22: vi /etc/sysconfig/network-scripts/ifcfg-bond0 IPADDR=192.168.0.22->IPADDR=192.168.0.233 (2):重啟網卡重啟整個網絡:192.168.0.21 192.168.0.22 兩節點執行 nohup /etc/init.d/network restart & |
(1)停止備庫兩節點實例并禁止自啟動 cd $GRID_HOME/bin ./srvctl stop database -d testdb ./srvctl disable database -d testdb (2)禁用和停止listener ./srvctl disable listener ./srvctl stop listener (3)禁用和停止vip ./srvctl disable vip -i "test1-vip" ./srvctl disable vip -i "test2-vip" ./srvctl stop vip -n test1 ./srvctl stop vip -n test2 (4)禁用和停止scan及scan_listener ./srvctl disable scan_listener ./srvctl stop scan_listener ./srvctl disable scan ./srvctl stop scan (5)在所有節點停止CRS服務 ./crsctl stop crs (6) 修改網卡ip重啟整個網絡 192.168.0.245: vi /etc/sysconfig/network-scripts/ifcfg-bond0 IPADDR=192.168.0.245 -> IPADDR=192.168.0.21 192.168.0.246: vi /etc/sysconfig/network-scripts/ifcfg-bond0 IPADDR=192.168.0.246 -> IPADDR=192.168.0.22 nohup /etc/init.d/network restart & 重啟網絡后登陸ip將不再是 245,246 ,需要登陸新的ip 245-21 246-22 3.8 修改/etc/hosts 登陸新的兩節點:21 22 (可以通過test1-priv網判斷192.168.99.121,192.168.99.122為待修改主庫ip) cd /etc/ cp hosts hosts_bak mv zzj_hosts hosts |
(1)重啟crs服務(同網段IP修改,public是設置網段,所以不需要處理,只需要處理VIP,scanIP) #兩節點執行: cd /g01/11ggrid/app/11.2.0/grid/bin ./crsctl start crs #啟動時可以查看啟動進度,一般五分鐘可以啟動完 #ps -ef | grep d.bin (2)查看并重新配置vip ./srvctl config vip -n test1 ./srvctl config vip -n test2 ./srvctl modify nodeapps -A 192.168.0.23/255.255.255.0/bond0 -n test1 ./srvctl modify nodeapps -A 192.168.0.24/255.255.255.0/bond0 -n test2 ./srvctl config vip -n test1 ./srvctl config vip -n test2 (3)查看并重新配置SCAN ./srvctl config scan ./srvctl modify scan -n test-cluster-scan ./srvctl config scan (4)配置完成,啟動相關的服務和resource ./srvctl enable listener ./srvctl enable vip -i "test1-vip" ./srvctl enable vip -i "test2-vip" ./srvctl enable scan_listener ./srvctl enable scan ./srvctl enable database -d testdb ./srvctl start listener ./srvctl start vip -n test1 ./srvctl start vip -n test2 ./srvctl start scan_listener ./srvctl start scan ./srvctl start database -d testdb (5) 檢查集群狀態 ./crsctl status res -t |
7、替換老racIP信息
1)修改ifcfg-bond0重啟網絡 #192.168.0.232 vi /etc/sysconfig/network-scripts/ifcfg-bond0 IPADDR=192.168.0.232->IPADDR=192.168.0.245 #192.168.0.233 vi /etc/sysconfig/network-scripts/ifcfg-bond0 IPADDR=192.168.0.233->IPADDR=192.168.0.246 nohup /etc/init.d/network restart & 2) 重新登陸192.168.0.245,192.168.0.246(通過私有ip 192.168.0.121,192.168.0.122判斷為原來的21,22) cd /etc/ cp hosts hosts_bak mv zzj_hosts hosts 3)重啟crs服務兩節點root操作 cd #兩節點執行: cd $GRID_HOME/bin ./crsctl start crs #啟動時可以查看啟動進度,一般五分鐘可以啟動完 #ps -ef | grep d.bin 4) 通過oifcfg 工具修改ip #在不調整ip網段的情況下此步驟可忽略 查看配置信息 ./oifcfg iflist ./oifcfg iflist -p ./oifcfg iflist -p -n ./oifcfg getif -global 刪除原來的網卡ip 配置信息 ./oifcfg delif -global bond0 ./oifcfg getif ./oifcfg getif -global 重新配置網卡ip信息 ./oifcfg setif -global bond0/192.168.0.0:public ./oifcfg getif ./oifcfg iflist ./oifcfg iflist -p -n 5)查看并重新配置vip ./srvctl config vip -n test1 ./srvctl config vip -n test2 ./srvctl modify nodeapps -A 192.168.0.247/255.255.255.0/bond0 -n test1 ./srvctl modify nodeapps -A 192.168.0.248/255.255.255.0/bond0 –n test2 ./srvctl config vip -n test1 ./srvctl config vip -n test2 6)查看并重新配置SCAN ./srvctl config scan ./srvctl modify scan -n test-cluster-scan ./srvctl config scan 7)配置完成,啟動相關的服務和resource ./srvctl enable listener ./srvctl enable vip -i "test1-vip" ./srvctl enable vip -i "test2-vip" ./srvctl enable scan_listener ./srvctl enable scan ./srvctl enable database -d testdb ./srvctl start listener ./srvctl start vip -n test1 ./srvctl start vip -n test2 ./srvctl start scan_listener ./srvctl start scan ./srvctl start database -d testdb 8)檢查集群狀態 ./crsctl status res -t |
操作主機:192.168.0.21,22,192.168.0.245,246,另一個備庫目前就沒有tnsnames,此次切換先不替換 su - oracle (四臺主機上執行) cd $ORACLE_HOME/network/admin cp tnsnames.ora tnsnames.ora20210122 mv qiehuan_tnsnames.ora tnsnames.ora |
alter database recover managed standby database using current logfile disconnect from session; 新增服務名: alter system set db_unique_name=’testdb,testdb_new’; 手工注冊: Alter system register; |
1:監聽正常
2:歸檔地址指定的tns正常
3:LOG_ARCHIVE_DEST_STATE_n是enable狀態
4:log_archive_configDG參數設置沒問題
5:核實主庫alter日志,發現有連接報錯,經核實主庫傳輸日志會多次嘗試目的地連通性問題,多次嘗試不通以后會停止日志傳輸,此時只需要重新設置一些dg參數,即可再次激活日志傳輸。
解決方案:altersystem set LOG_ARCHIVE_DEST_STATE_3=defer;
altersystem set LOG_ARCHIVE_DEST_STATE_3=enable;
重新設置一下即可激活日志傳輸,問題解決。
lsnrctl status:
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129975.html
摘要:年月日,遷移服務解決方案在城市峰會中正式發布。遷移服務向分布式架構升級的直接路徑基于上述問題和挑戰,同時經過螞蟻十年數據庫架構升級的先進經驗,螞蟻金服為客戶打造了這款一站式數據遷移解決方案遷移服務,簡稱。 2019年1月4日,OceanBase遷移服務解決方案在ATEC城市峰會中正式發布。螞蟻金服資深技術專家師文匯和技術專家韓谷悅共同分享了OceanBase遷移服務的重要特性和業務實踐...
摘要:年月日,遷移服務解決方案在城市峰會中正式發布。遷移服務向分布式架構升級的直接路徑基于上述問題和挑戰,同時經過螞蟻十年數據庫架構升級的先進經驗,螞蟻金服為客戶打造了這款一站式數據遷移解決方案遷移服務,簡稱。 2019年1月4日,OceanBase遷移服務解決方案在ATEC城市峰會中正式發布。螞蟻金服資深技術專家師文匯和技術專家韓谷悅共同分享了OceanBase遷移服務的重要特性和業務實踐...
閱讀 1346·2023-01-11 13:20
閱讀 1684·2023-01-11 13:20
閱讀 1132·2023-01-11 13:20
閱讀 1858·2023-01-11 13:20
閱讀 4100·2023-01-11 13:20
閱讀 2704·2023-01-11 13:20
閱讀 1385·2023-01-11 13:20
閱讀 3597·2023-01-11 13:20