隨著 Oracle 12c 的推出,一個名為 Oracle Flex ASM 的特性解除了上述限制,它的一個主要特性是故障切換到集群中的其他節(jié)點。本質(zhì)上是一個中心和葉架構(gòu),Oracle Clusterware 通過一個替代 ASM 實例將故障節(jié)點的連接將無縫轉(zhuǎn)移到另一個成員節(jié)點。在給定集群中運行的 ASM 實例數(shù)被稱作 ASM 基數(shù),默認(rèn)值為 3。但此基數(shù)值可以使用 Clusterware 命令修改。
純 12c Flex ASM(相同版本)
Grid Infrasctructure (GI) 和數(shù)據(jù)庫都運行在 Oracle 12c 上
Oracle 12c 之前的混合版本(不同版本)
和平常一樣,ASM 實例將在每個節(jié)點上運行,F(xiàn)lex 配置支持 12c 之前的數(shù)據(jù)庫。使用 ASM 磁盤組的兼容性參數(shù)管理各數(shù)據(jù)庫實例之間的兼容性。這種方法的優(yōu)點是,如果 Oracle 12c 數(shù)據(jù)庫實例與一個 ASM 實例的連接斷開,數(shù)據(jù)庫連接將故障切換至其他服務(wù)器上的另一個 ASM 實例。通過將基數(shù)設(shè)置為 all 即可以實現(xiàn)這種故障切換。
[grid@rac12node1 ~]$ hostname
rac12node1
[grid@rac12node1 ~]$ ps -ef | grep pmon
grid 2038 25582 0 16:37 pts/1 00:00:00 grep pmon
grid 11838 1 0 15:04 ? 00:00:00 asm_pmon_+ASM1
oracle 12830 1 0 15:05 ? 00:00:00 ora_pmon_rac12db1
[grid@rac12node1 ~]$ srvctl status asm
ASM is running on rac12node1,rac12node2
[grid@rac12node1 ~]$ crsctl check cluster
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
[grid@rac12node1 ~]$ asmcmd
ASMCMD> showclustermode
ASM cluster : Flex mode enabled
ASMCMD> showclusterstate
Normal
ASMCMD>
[grid@rac12node1 ~]$ srvctl status asm -detail
ASM is running on rac12node1,rac12node2
ASM is enabled.
ASM instance +ASM1 is running on node rac12node1
Number of connected clients: 2
Client names: rac12db1:rac12db:rac12no-cluster rac12node1:_OCR:rac12no-cluster
ASM instance +ASM2 is running on node rac12node2
Number of connected clients: 3
Client names: -MGMTDB:_mgmtdb:rac12no-cluster rac12db2:rac12db:rac12no-cluster rac12node2:_OCR:rac12no-cluster
[grid@rac12node1 ~]$
[grid@rac12node2 ~]$ asmcmd
ASMCMD> showclustermode
ASM cluster : Flex mode enabled
ASMCMD> showclusterstate
Normal
ASMCMD>
[grid@rac12node2 ~]$ srvctl config asm -detail
ASM home:
Password file: +ocrdg/orapwASM
Backup of Password file:
ASM listener: LISTENER
ASM is enabled.
ASM is individually enabled on nodes:
ASM is individually disabled on nodes:
ASM instance count: 3
Cluster ASM listener: ASMNET1LSNR_ASM
[grid@rac12node2 ~]$
節(jié)點2初始狀態(tài),grid用戶下:
set line 200
col INSTANCE_NAME for a60
select distinct instance_name,db_name,status from v$asm_client;
INSTANCE_NAME DB_NAME STATUS
---------------------------------- ------------------ -----------------------
+ASM2 +ASM CONNECTED
-MGMTDB _mgmtdb CONNECTED
rac12db2 rac12db CONNECTED
rac12node2 _OCR CONNECTED
[grid@rac12node1 ~]$ srvctl stop asm -node rac12node1 -stopoption abort -force
[grid@rac12node1 ~]$ srvctl status asm
ASM is running on rac12node2
[grid@rac12node1 ~]$ crsctl check cluster
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
[grid@rac12node1 ~]$ ps -ef | grep pmon
grid 3339 25582 0 16:42 pts/1 00:00:00 grep pmon
oracle 12830 1 0 15:05 ? 00:00:00 ora_pmon_rac12db1
注:在這里,數(shù)據(jù)庫實例與特定節(jié)點中運行的特定 ASM 實例關(guān)聯(lián)。如果因為某種原因,ASM 實例無法啟動/服務(wù)關(guān)閉,數(shù)據(jù)庫實例仍然可以啟動,因為數(shù)據(jù)庫實例將查找同一集群中運行的 ASM 實例。圖 3 描繪了 Flex ASM 的高可用特性。
[oracle@rac12node1 ~]$ sqlplus / as sysdba
SQL*Plus: Release 12.2.0.1.0 Production on Thu Oct 17 16:45:05 2019
Copyright (c) 1982, 2016, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL> select open_mode from v$database;
OPEN_MODE
--------------------
READ WRITE
---在節(jié)點1上數(shù)據(jù)庫實例并未受到影響
SQL> select instance_name,instance_number from gv$instance;
INSTANCE_NAME INSTANCE_NUMBER
---------------- ---------------
rac12db1 1
rac12db2 2
SQL> select instance_name,instance_number from v$instance;
INSTANCE_NAME INSTANCE_NUMBER
---------------- ---------------
rac12db1 1
SQL>
grid用戶下:
查看節(jié)點2 asm連接信息,查看節(jié)點2上訪問ASM實例的客戶端,有了來自節(jié)點1的客戶端訪問。
SQL> select distinct instance_name,db_name,status from v$asm_client;
INSTANCE_NAME DB_NAME STATUS
---------------------------- ---------------- -----------------------
+ASM2 +ASM CONNECTED
-MGMTDB _mgmtdb CONNECTED
rac12db1 rac12db CONNECTED
rac12db2 rac12db CONNECTED
rac12node2 _OCR CONNECTED
asmcmd連接查看
---強制連接到+ASM1
[grid@rac12node1 ~]$ asmcmd --privilege sysasm --inst +ASM1
Connected to an idle instance.
---強制連接到+ASM2
[grid@rac12node1 ~]$ asmcmd --privilege sysasm --inst +ASM2
ASMCMD> lsct //查看asm實例連接情況
DB_Name Status Software_Version Compatible_version Instance_Name Disk_Group
+ASM CONNECTED 12.2.0.1.0 12.2.0.1.0 +ASM2 DATADG
+ASM CONNECTED 12.2.0.1.0 12.2.0.1.0 +ASM2 MGMTDG
+ASM CONNECTED 12.2.0.1.0 12.2.0.1.0 +ASM2 OCRDG
_mgmtdb CONNECTED 12.2.0.1.0 12.2.0.0.0 -MGMTDB MGMTDG
rac12db CONNECTED 12.2.0.1.0 12.2.0.0.0 rac12db1 DATADG
rac12db CONNECTED 12.2.0.1.0 12.2.0.0.0 rac12db2 DATADG
_OCR CONNECTED - - rac12node2 OCRDG
ASMCMD> lsdg
State Type Rebal Sector Logical_Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name
MOUNTED EXTERN N 512 512 4096 4194304 8192 1824 0 1824 0 N DATADG/
MOUNTED EXTERN N 512 512 4096 4194304 40960 34232 0 34232 0 N MGMTDG/
MOUNTED EXTERN N 512 512 4096 4194304 3072 2736 0 2736 0 Y OCRDG/
ASMCMD>
總結(jié):數(shù)據(jù)庫實例使用一個專用 ASM 實例,我們強制該 ASM 實例被停止工作來模擬故障,因此數(shù)據(jù)庫實例重新連接到另一節(jié)點(在本示例中為節(jié)點 2 (rac2))上的現(xiàn)有 ASM 實例。
節(jié)點2初始狀態(tài):
set line 200
col INSTANCE_NAME for a60
select distinct instance_name,db_name,status from v$asm_client;
INSTANCE_NAME DB_NAME STATUS
----------------------------------------------- ------------------------ --------------------------
+ASM2 +ASM CONNECTED
-MGMTDB _mgmtdb CONNECTED
rac12db2 rac12db CONNECTED
rac12node2 _OCR CONNECTED
手動關(guān)掉節(jié)點1 asm實例:
[grid@rac12node1 ~]$ srvctl stop asm -node rac12node1 -stopoption abort -force
手動關(guān)掉節(jié)點1 asm實例:
[grid@rac12node1 ~]$ srvctl stop asm -node rac12node1 -stopoption abort -force
再次查看節(jié)點2 asm連接信息,查看節(jié)點2上訪問ASM實例的客戶端,有了來自節(jié)點1的客戶端訪問。
SQL> select distinct instance_name,db_name,status from v$asm_client;
INSTANCE_NAME DB_NAME STATUS
-------------------------------------------- ---------------------- -------------------------------
+ASM2 +ASM CONNECTED
-MGMTDB _mgmtdb CONNECTED
rac12db1 rac12db CONNECTED
rac12db2 rac12db CONNECTED
rac12node2 _OCR CONNECTED
1. 登錄 RAC 數(shù)據(jù)庫實例 1 (rac1)
login as: oracle
oracle@192.168.xx.xxs password:
Last login: Fri Sep 27 06:05:44 2013
2. 檢查 ASM 實例和 RAC 數(shù)據(jù)庫實例的狀態(tài):
[oracle@rac1 ~]$ ps -ef | grep pmon
oracle 3053 1 0 05:56 ? 00:00:00 asm_pmon_+ASM1
oracle 3849 1 0 05:57 ? 00:00:00 ora_pmon_flavia1
3. 在 RAC 數(shù)據(jù)庫實例 1 (rac1) 中檢查 ASM 實例的狀態(tài)
[oracle@rac1 ~]$ srvctl status asm
ASM is running on rac2,rac1
4. 在 RAC 數(shù)據(jù)庫實例 1 (rac1) 中檢查集群的狀態(tài)
[oracle@rac1 ~]$ crsctl check cluster
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online
5. 在 RAC 數(shù)據(jù)庫實例 1 (rac1) 中停止 ASM 實例
[oracle@rac1 ~]$ srvctl stop asm -n rac1 -o abort -f
6. 在 RAC 數(shù)據(jù)庫實例 1 (rac1) 中檢查 ASM 實例的狀態(tài)
[oracle@rac1 ~]$ srvctl status asm
ASM is running on rac2
7. 檢查 ASM 實例和 RAC 數(shù)據(jù)庫實例 (rac1) 的狀態(tài)
[oracle@rac1 ~]$ ps -ef | grep pmon
oracle 7885 5795 0 06:20 pts/0 00:00:00 grep pmon
總結(jié):數(shù)據(jù)庫實例與 ASM 實例強關(guān)聯(lián)。如果 ASM 實例發(fā)生故障,同一節(jié)點上的數(shù)據(jù)庫實例也會發(fā)生故障。
支持的最大磁盤組數(shù)為 511。
可以靈活地重命名磁盤組中的 ASM 磁盤。
ASM 實例的補丁級驗證
滾動補丁期間禁用補丁級驗證
復(fù)制物理元數(shù)據(jù)
在早期版本中,集群要求:
一個供客戶端應(yīng)用訪問的公共網(wǎng)絡(luò)
一個或多個用于集群內(nèi)節(jié)點間通信(包括 ASM 通信)的專用網(wǎng)絡(luò)
Flex ASM 增加 ASM 網(wǎng)絡(luò),可用于 ASM 與其客戶端之間的通信,以便隔離和分流 ASM 通信。
更多精彩干貨分享
點擊下方名片關(guān)注
IT那活兒
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/129880.html
摘要:什么是字節(jié)碼程序通過編譯之后生成文件就是字節(jié)碼集合正是有這樣一種中間碼字節(jié)碼,使得等函數(shù)語言只用實現(xiàn)一個編譯器即可運行在上。 什么是字節(jié)碼? java程序通過javac編譯之后生成文件.class就是字節(jié)碼集合,正是有這樣一種中間碼(字節(jié)碼),使得scala/groovy/clojure等函數(shù)語言只用實現(xiàn)一個編譯器即可運行在JVM上??纯匆欢魏唵未a。 public long ...
摘要:全稱應(yīng)用性能管理監(jiān)控后面我會通過一系列的文章來介紹的原理框架設(shè)計與實現(xiàn)等等。在應(yīng)用構(gòu)建期間,通過修改字節(jié)碼的方式來進(jìn)行字節(jié)碼插樁就是實現(xiàn)自動化的方案之一。 showImg(https://segmentfault.com/img/bVbbRX6?w=1995&h=1273); 歡迎關(guān)注微信公眾號:BaronTalk,獲取更多精彩好文! 一. 前言 性能問題是導(dǎo)致 App 用戶流失的罪魁...
摘要:問題九庫控制文件擴展報錯庫的擴展報錯,用的是裸設(shè)備,和還是原來大小,主庫的沒有報錯,并且大小沒有變,求解釋。專家解答從報錯可以看出,控制文件從個塊擴展到個塊時報錯,而裸設(shè)備最大只支持個塊,無法擴展,可以嘗試將參數(shù)改小,避免控制文件報錯。 鏈接描述引言 近期我們在DBASK小程序新關(guān)聯(lián)了運維之美、高端存儲知識、一森咖記、運維咖啡吧等數(shù)據(jù)領(lǐng)域的公眾號,歡迎大家閱讀分享。 問答集萃 接下來,...
每篇一句 胡適:多談些問題,少聊些主義 前言 Spring MVC和MyBatis作為當(dāng)下最為流行的兩個框架,大家平時開發(fā)中都在用。如果你往深了一步去思考,你應(yīng)該會有這樣的疑問: 在使用Spring MVC的時候,你即使不使用注解,只要參數(shù)名和請求參數(shù)的key對應(yīng)上了,就能自動完成數(shù)值的封裝 在使用MyBatis(接口模式)時,接口方法向xml里的SQL語句傳參時,必須(當(dāng)然不是100%的必須,...
摘要:來自于應(yīng)用的一個新領(lǐng)域編譯成的應(yīng)用它是應(yīng)用的一個全新流派,由的項目催生而來。所有外部數(shù)據(jù)在一個稱為堆的對象中存儲并被引用。到目前為止,大部分的使用情況下,代碼性能是至關(guān)重要的比如運行游戲,圖像,處理語言翻譯和庫。 正如許多開發(fā)者一樣,我也為Asm.js的前景而感到興奮不已。最近的新聞——Asm.js正在被Firefox支持——引起了我的興趣。同樣感興趣的還有Mozilla和Epic聲明...
閱讀 1356·2023-01-11 13:20
閱讀 1707·2023-01-11 13:20
閱讀 1215·2023-01-11 13:20
閱讀 1906·2023-01-11 13:20
閱讀 4165·2023-01-11 13:20
閱讀 2757·2023-01-11 13:20
閱讀 1402·2023-01-11 13:20
閱讀 3671·2023-01-11 13:20