国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

數據庫遷移之主備切換及主備ip替換方案

IT那活兒 / 4239人閱讀
數據庫遷移之主備切換及主備ip替換方案


  背 景  


原數據庫主機維保到期,需要做數據庫遷移,制定的最終遷移方案是新搭建一套rac成為原庫的ADG備庫,割接當晚做主備切換,為了讓業務側改動最小化,切換完以后做主備IP替換操作,按照生產環境db_unique_name添加注冊service_names,確保業務側幾乎零改動。


 變更過程 


一、主備切換

1、確保adg節點只啟動一個節點

檢查兩節點啟動情況

srvctl status instance -d TESTDB -i TESTDB1,TESTDB2

停止二節點實例

srvctl stop instance -d TESTDB -i TESTDB2

2、主庫切換

(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

3、查詢switchover目標RAC備庫

(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;

4、新備庫一節點啟動日志應用

(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;


5、檢查備庫日志應用

(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替換

基礎環境


主庫

備庫

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

1、基礎環境準備

主備環境處理私有IP不替換意外,公網ip,虛ip,scan_ip都需要替換

1:提前準備好需要替換的hosts->hosts_bak(替換后的新hosts 信息)

2:提前準備好tnsnames.ora->qiehuan_tnsnames.ora(ip互換以后新的tnsnames信息)

3:提前申請兩個IP

4:由于私網IP不做替換,所以沒有停集群的必要

2、備庫停止日志應用

停止日志應用:

alter database recover managed standby database cancel;

3、原rac數據庫停止數據庫和集群相關服務

(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

4、原數據庫修改IP重啟整個網絡

(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 &

5、新rac節點開始IP替換

(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

6、新主庫替換IP

(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

8、替換tnsnames.ora

操作主機: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

9、啟動主備同步修改服務名

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:

默認注冊的服務名是db_unique_name,而ADG搭建db_unique_name必須是唯一的,所以在做主備切換和IP替換以后需要在新的數據庫實例中多注冊一個服務名,這樣才能做到業務側零修改。
END



文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129975.html

相關文章

  • OceanBase遷移服務:向分布式架構升級的直接路徑

    摘要:年月日,遷移服務解決方案在城市峰會中正式發布。遷移服務向分布式架構升級的直接路徑基于上述問題和挑戰,同時經過螞蟻十年數據庫架構升級的先進經驗,螞蟻金服為客戶打造了這款一站式數據遷移解決方案遷移服務,簡稱。 2019年1月4日,OceanBase遷移服務解決方案在ATEC城市峰會中正式發布。螞蟻金服資深技術專家師文匯和技術專家韓谷悅共同分享了OceanBase遷移服務的重要特性和業務實踐...

    KaltZK 評論0 收藏0
  • OceanBase遷移服務:向分布式架構升級的直接路徑

    摘要:年月日,遷移服務解決方案在城市峰會中正式發布。遷移服務向分布式架構升級的直接路徑基于上述問題和挑戰,同時經過螞蟻十年數據庫架構升級的先進經驗,螞蟻金服為客戶打造了這款一站式數據遷移解決方案遷移服務,簡稱。 2019年1月4日,OceanBase遷移服務解決方案在ATEC城市峰會中正式發布。螞蟻金服資深技術專家師文匯和技術專家韓谷悅共同分享了OceanBase遷移服務的重要特性和業務實踐...

    gnehc 評論0 收藏0

發表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<