久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

oracle中如何解決asm磁盤添加失敗問題

148次閱讀
沒有評論

共計 5957 個字符,預計需要花費 15 分鐘才能閱讀完成。

這篇文章將為大家詳細講解有關 oracle 中如何解決 asm 磁盤添加失敗問題,丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

生產環境存儲劃盤并做了多路徑聚合,由于經驗生疏忘記需要配置 udev。
在添加磁盤到 diskgroup 時,數據庫報錯權限不足,簡單以為只是對應的字符設備的權限是 root:disk 導致無法添加到 diskgroup。
所以嘗試使用 chown 命令在兩個節點將該字符設備修改權限為 grid:oinstall 后,由于 suse 系統 udev 內部機制問題,在添加該字符設備到 diskgroup 過程中,字符設備的權限自動由 grid:oinstall 變為 root:disk,導致添加磁盤失敗。此時該磁盤盤頭已寫入部分信息,HEADER_STATUS 為 NUMBER,導致無法重新添加到 diskgroup,也無法從磁盤組踢出,進退兩難。
由于是生產環境,不敢隨意操作,故在測試環境模擬問題并解決。

問題重現:
1 確認 /dev/raw/raw6 的 HEADER_STATUS 是 CANDIDATE 狀態,說明可以添加到 asm 磁盤組。
SQL select PATH,NAME,DISK_NUMBER,GROUP_NUMBER,STATE,MOUNT_STATUS,HEADER_STATUS,MODE_STATUS from v$asm_disk;
PATH        NAME      DISK_NUMBER GROUP_NUMBER STATE    MOUNT_STATUS  HEADER_STATUS    MODE_STATUS
—————————— ——————– ———– ———— —————- ————– ———————— ————–
/dev/raw/raw6              0     0 NORMAL    CLOSED    CANDIDATE      ONLINE
/dev/raw/raw1      DATA_0000      0     2 NORMAL    CACHED    MEMBER      ONLINE
/dev/raw/raw3      DATA_0002      2     2 NORMAL    CACHED    MEMBER      ONLINE
/dev/raw/raw4      DATA1_0000      0     1 NORMAL    CACHED    MEMBER      ONLINE
/dev/raw/raw5      DATA1_0001      1     1 NORMAL    CACHED    MEMBER      ONLINE
/dev/raw/raw2      DATA_0001      1     2 NORMAL    CACHED    MEMBER      ONLINE
2 查看磁盤組,模擬將 /dev/raw/raw6 加進磁盤組 DATA。
SQL select GROUP_NUMBER,NAME from v$asm_diskgroup;

GROUP_NUMBER NAME
———— ——————–
    1 DATA1
    2 DATA
3 將 /dev/raw/raw6 加入磁盤組 DATA 的過程中(約等待 3s),另開窗口,將 /dev/raw/raw6 的權限由 grid:asmadmin 改為 root:disk,此時報錯如下:
SQL alter diskgroup DATA add disk /dev/raw/raw6
alter diskgroup DATA add disk /dev/raw/raw6
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15075: disk(s) are not visible cluster-wide
4 重啟 udev(即:將 /dev/raw/raw6 權限重新改為 grid:asmadmin)并重新查詢。
SQL   select PATH,NAME,DISK_NUMBER,GROUP_NUMBER,STATE,MOUNT_STATUS,HEADER_STATUS,MODE_STATUS from v$asm_disk;
PATH        NAME      DISK_NUMBER GROUP_NUMBER STATE    MOUNT_STATUS  HEADER_STATUS    MODE_STATUS
—————————— ——————– ———– ———— —————- ————– ———————— ————–
/dev/raw/raw6              0     0 NORMAL    CLOSED    MEMBER      ONLINE
/dev/raw/raw1      DATA_0000      0     2 NORMAL    CACHED    MEMBER      ONLINE
/dev/raw/raw3      DATA_0002      2     2 NORMAL    CACHED    MEMBER      ONLINE
/dev/raw/raw4      DATA1_0000      0     1 NORMAL    CACHED    MEMBER      ONLINE
/dev/raw/raw5      DATA1_0001      1     1 NORMAL    CACHED    MEMBER      ONLINE
/dev/raw/raw2      DATA_0001      1     2 NORMAL    CACHED    MEMBER      ONLINE
5 此時嘗試再次將 /dev/raw/raw6 加入 DATA 中,出現報錯,模擬故障成功。
SQL alter diskgroup DATA add disk /dev/raw/raw6
alter diskgroup DATA add disk /dev/raw/raw6
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15033: disk /dev/raw/raw6 belongs to diskgroup DATA

解決方法:
查了 oracle 官方文檔,提供了如下三種解決方法(1453285.1):
方法一:
  1 備份問題磁盤
 dd if=/dev/oracleasm/disks/EMCORA43 of=/tmp/EMCORA43.txt bs=1M count=10
  2 修改磁盤權限
 chmod 000 /dev/oracleasm/disks/EMCORA47
  3 重新掛載 diskgroup,確認 diskgroup 可以正常掛載,則可以使用 dd 命令清除盤頭信息,并重新添加該磁盤。
 dd if=/dev/zero of=/dev/oracleasm/disks/EMCORA43 bs=1M count=1
方法二:
  使用 oracleasm 刪除磁盤
 /etc/init.d/oracleasm deletedisk EMCORA43
方法三:
  使用 force 選項強制重新掛載該磁盤。
  alter diskgroup XXXX add disk /dev/oracleasm/disks/EMCORA43 force;

本次實驗采用第三種方法:
具體如下:
SQL   select NAME, TOTAL_MB, FREE_MB, (TOTAL_MB – FREE_MB)
USED_MB, to_char((TOTAL_MB – FREE_MB) * 100 / TOTAL_MB, 99.99 ) || %
USED_PRECENT from v$asm_diskgroup;

NAME      TOTAL_MB  FREE_MB  USED_MB USED_PRECENT
——————– ———- ———- ———- ————–
DATA1        1998  1901    97   4.85%
DATA        2997  630    2367  78.98%

SQL select PATH,NAME,DISK_NUMBER,GROUP_NUMBER,STATE,MOUNT_STATUS,HEADER_STATUS,MODE_STATUS from v$asm_disk;

PATH        NAME      DISK_NUMBER GROUP_NUMBER STATE    MOUNT_STATUS  HEADER_STATUS    MODE_STATUS
—————————— ——————– ———– ———— —————- ————– ———————— ————–
/dev/raw/raw6              0     0 NORMAL    CLOSED    MEMBER      ONLINE
/dev/raw/raw1      DATA_0000      0     2 NORMAL    CACHED    MEMBER      ONLINE
/dev/raw/raw3      DATA_0002      2     2 NORMAL    CACHED    MEMBER      ONLINE
/dev/raw/raw4      DATA1_0000      0     1 NORMAL    CACHED    MEMBER      ONLINE
/dev/raw/raw5      DATA1_0001      1     1 NORMAL    CACHED    MEMBER      ONLINE
/dev/raw/raw2      DATA_0001      1     2 NORMAL    CACHED    MEMBER      ONLINE

6 rows selected.

SQL alter diskgroup DATA add disk /dev/raw/raw6
alter diskgroup DATA add disk /dev/raw/raw6
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15033: disk /dev/raw/raw6 belongs to diskgroup DATA

SQL alter diskgroup DATA add disk /dev/raw/raw6 force;

Diskgroup altered.

SQL   select PATH,NAME,DISK_NUMBER,GROUP_NUMBER,STATE,MOUNT_STATUS,HEADER_STATUS,MODE_STATUS from v$asm_disk;

PATH        NAME      DISK_NUMBER GROUP_NUMBER STATE    MOUNT_STATUS  HEADER_STATUS    MODE_STATUS
—————————— ——————– ———– ———— —————- ————– ———————— ————–
/dev/raw/raw1      DATA_0000      0     2 NORMAL    CACHED    MEMBER      ONLINE
/dev/raw/raw3      DATA_0002      2     2 NORMAL    CACHED    MEMBER      ONLINE
/dev/raw/raw4      DATA1_0000      0     1 NORMAL    CACHED    MEMBER      ONLINE
/dev/raw/raw5      DATA1_0001      1     1 NORMAL    CACHED    MEMBER      ONLINE
/dev/raw/raw2      DATA_0001      1     2 NORMAL    CACHED    MEMBER      ONLINE
/dev/raw/raw6      DATA_0005      5     2 NORMAL    CACHED    MEMBER      ONLINE

6 rows selected.

SQL   select NAME, TOTAL_MB, FREE_MB, (TOTAL_MB – FREE_MB) USED_MB, to_char((TOTAL_MB – FREE_MB) * 100 / TOTAL_MB, 99.99 ) || % USED_PRECENT from v$asm_diskgroup;

NAME      TOTAL_MB  FREE_MB  USED_MB USED_PRECENT
——————– ———- ———- ———- ————–
DATA1        1998  1901    97   4.85%
DATA        3497  1128    2369  67.74%

實際測試中,第一和第三種方法都可行(因本測試環境未使用 oracleasm,故不測試第二種)。
因第一種方法較為穩妥,故選擇第一種方法在生產環境修復問題。

后續:
1、幾天后在生產環境 pboss2-rdb1/2 江蘇庫使用第一種方法修復成功。但是引出一個問題:suse 系統和 rhel 系統在 udev 上有一些差異,rhel 修改完  /etc/udev/rules.d/ 下的  rules 文件,通過命令 start_udev 啟動 udev 即可。但是 suse 則需要如下操作 /etc/init.d/boot.udev restart  重啟 udev 配置,然后模擬拔插 udevadm test /sys/block/xxx 才能使設置生效。當時沒發現這個差異,只能通過重啟系統生效。
2、在 asmdisk 加進 diskgroup 后,正在做 rebalance 過程中,使用兩種方法改變 asmdisk 權限。一種是直接操作系統 chown 命令改變兩個節點的 asmdisk,結果發現 rebalance 正常進行,diskgroup 不受影響。另一種是使用 udev 改變 asmdisk 屬性,重啟 udev 使之生效,結果發現 diskgroup 異常,直接 unmount,數據庫實例 down,把 asmdisk 權限修改回來后,重新 alter diskgroup  xxx mount 后,發現 rebalance 繼續進行,數據庫重啟后正常。

關于“oracle 中如何解決 asm 磁盤添加失敗問題”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-17發表,共計5957字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 兴安县| 永清县| 浑源县| 南川市| 台东县| 南宁市| 台中县| 玛曲县| 德昌县| 太湖县| 平度市| 石家庄市| 五台县| 广南县| 建阳市| 洛扎县| 曲水县| 奉新县| 石棉县| 明水县| 亚东县| 保德县| 万年县| 蒙山县| 宝鸡市| 澄城县| 江西省| 保定市| 营山县| 凤翔县| 涿鹿县| 汉沽区| 涟源市| 会理县| 叙永县| 开封县| 中牟县| 神池县| 儋州市| 云南省| 松滋市|