隨著 Oracle 12c 的推出,一個名為 Oracle Flex ASM 的特性解除了上述限制,它的一個主要特性是故障切換到集群中的其他節點。本質上是一個中心和葉架構,Oracle Clusterware 通過一個替代 ASM 實例將故障節點的連接將無縫轉移到另一個成員節點。在給定集群中運行的 ASM 實例數被稱作 ASM 基數,默認值為 3。但此基數值可以使用 Clusterware 命令修改。
純 12c Flex ASM(相同版本)
Grid Infrasctructure (GI) 和數據庫都運行在 Oracle 12c 上
Oracle 12c 之前的混合版本(不同版本)
和平常一樣,ASM 實例將在每個節點上運行,Flex 配置支持 12c 之前的數據庫。使用 ASM 磁盤組的兼容性參數管理各數據庫實例之間的兼容性。這種方法的優點是,如果 Oracle 12c 數據庫實例與一個 ASM 實例的連接斷開,數據庫連接將故障切換至其他服務器上的另一個 ASM 實例。通過將基數設置為 all 即可以實現這種故障切換。
[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 ~]$
節點2初始狀態,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
注:在這里,數據庫實例與特定節點中運行的特定 ASM 實例關聯。如果因為某種原因,ASM 實例無法啟動/服務關閉,數據庫實例仍然可以啟動,因為數據庫實例將查找同一集群中運行的 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
---在節點1上數據庫實例并未受到影響
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用戶下:
查看節點2 asm連接信息,查看節點2上訪問ASM實例的客戶端,有了來自節點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>
總結:數據庫實例使用一個專用 ASM 實例,我們強制該 ASM 實例被停止工作來模擬故障,因此數據庫實例重新連接到另一節點(在本示例中為節點 2 (rac2))上的現有 ASM 實例。
節點2初始狀態:
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
手動關掉節點1 asm實例:
[grid@rac12node1 ~]$ srvctl stop asm -node rac12node1 -stopoption abort -force
手動關掉節點1 asm實例:
[grid@rac12node1 ~]$ srvctl stop asm -node rac12node1 -stopoption abort -force
再次查看節點2 asm連接信息,查看節點2上訪問ASM實例的客戶端,有了來自節點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 數據庫實例 1 (rac1)
login as: oracle
oracle@192.168.xx.xxs password:
Last login: Fri Sep 27 06:05:44 2013
2. 檢查 ASM 實例和 RAC 數據庫實例的狀態:
[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 數據庫實例 1 (rac1) 中檢查 ASM 實例的狀態
[oracle@rac1 ~]$ srvctl status asm
ASM is running on rac2,rac1
4. 在 RAC 數據庫實例 1 (rac1) 中檢查集群的狀態
[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 數據庫實例 1 (rac1) 中停止 ASM 實例
[oracle@rac1 ~]$ srvctl stop asm -n rac1 -o abort -f
6. 在 RAC 數據庫實例 1 (rac1) 中檢查 ASM 實例的狀態
[oracle@rac1 ~]$ srvctl status asm
ASM is running on rac2
7. 檢查 ASM 實例和 RAC 數據庫實例 (rac1) 的狀態
[oracle@rac1 ~]$ ps -ef | grep pmon
oracle 7885 5795 0 06:20 pts/0 00:00:00 grep pmon
總結:數據庫實例與 ASM 實例強關聯。如果 ASM 實例發生故障,同一節點上的數據庫實例也會發生故障。
支持的最大磁盤組數為 511。
可以靈活地重命名磁盤組中的 ASM 磁盤。
ASM 實例的補丁級驗證
滾動補丁期間禁用補丁級驗證
復制物理元數據
在早期版本中,集群要求:
一個供客戶端應用訪問的公共網絡
一個或多個用于集群內節點間通信(包括 ASM 通信)的專用網絡
Flex ASM 增加 ASM 網絡,可用于 ASM 與其客戶端之間的通信,以便隔離和分流 ASM 通信。
更多精彩干貨分享
點擊下方名片關注
IT那活兒
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/129880.html
摘要:什么是字節碼程序通過編譯之后生成文件就是字節碼集合正是有這樣一種中間碼字節碼,使得等函數語言只用實現一個編譯器即可運行在上。 什么是字節碼? java程序通過javac編譯之后生成文件.class就是字節碼集合,正是有這樣一種中間碼(字節碼),使得scala/groovy/clojure等函數語言只用實現一個編譯器即可運行在JVM上。看看一段簡單代碼。 public long ...
摘要:全稱應用性能管理監控后面我會通過一系列的文章來介紹的原理框架設計與實現等等。在應用構建期間,通過修改字節碼的方式來進行字節碼插樁就是實現自動化的方案之一。 showImg(https://segmentfault.com/img/bVbbRX6?w=1995&h=1273); 歡迎關注微信公眾號:BaronTalk,獲取更多精彩好文! 一. 前言 性能問題是導致 App 用戶流失的罪魁...
摘要:問題九庫控制文件擴展報錯庫的擴展報錯,用的是裸設備,和還是原來大小,主庫的沒有報錯,并且大小沒有變,求解釋。專家解答從報錯可以看出,控制文件從個塊擴展到個塊時報錯,而裸設備最大只支持個塊,無法擴展,可以嘗試將參數改小,避免控制文件報錯。 鏈接描述引言 近期我們在DBASK小程序新關聯了運維之美、高端存儲知識、一森咖記、運維咖啡吧等數據領域的公眾號,歡迎大家閱讀分享。 問答集萃 接下來,...
每篇一句 胡適:多談些問題,少聊些主義 前言 Spring MVC和MyBatis作為當下最為流行的兩個框架,大家平時開發中都在用。如果你往深了一步去思考,你應該會有這樣的疑問: 在使用Spring MVC的時候,你即使不使用注解,只要參數名和請求參數的key對應上了,就能自動完成數值的封裝 在使用MyBatis(接口模式)時,接口方法向xml里的SQL語句傳參時,必須(當然不是100%的必須,...
摘要:來自于應用的一個新領域編譯成的應用它是應用的一個全新流派,由的項目催生而來。所有外部數據在一個稱為堆的對象中存儲并被引用。到目前為止,大部分的使用情況下,代碼性能是至關重要的比如運行游戲,圖像,處理語言翻譯和庫。 正如許多開發者一樣,我也為Asm.js的前景而感到興奮不已。最近的新聞——Asm.js正在被Firefox支持——引起了我的興趣。同樣感興趣的還有Mozilla和Epic聲明...
閱讀 1353·2023-01-11 13:20
閱讀 1699·2023-01-11 13:20
閱讀 1211·2023-01-11 13:20
閱讀 1902·2023-01-11 13:20
閱讀 4161·2023-01-11 13:20
閱讀 2751·2023-01-11 13:20
閱讀 1397·2023-01-11 13:20
閱讀 3664·2023-01-11 13:20