1. 程式人生 > 其它 >ASM基本配置問題(r5筆記第89天)

ASM基本配置問題(r5筆記第89天)

ASM自10g開始作為Grid的一部分,對於儲存管理層的一個重大變革。重要性和豐富的功能就不多說了,主要的一點,是完全免費的。所以對於高階儲存望而卻步,而且不希望投入很多的投入在儲存上,可以考慮ASM來很實惠的完成儲存管理。 10g,11g的asm還是存在一定的差別,在10g中通過dbca可以直接在裡面配置asm,到了11g,把asm的功能從dbca裡分離開來,單獨有一個asmca來配置ASM,而且需要在安裝grid包的場景下才可以使用。 問題1: 啟用ASM出錯。 ASM的配置,如果希望啟用,首先需要使用root執行一個指令碼,來完成CSS的註冊。這個過程和rac中配置CRS的有些類似。

但是使用 localconfig add來註冊的時候,日誌內容如下:

[root@oel1 bin]# ./localconfig add
Successfully accumulated necessary OCR  keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation  successful.
Configuration for local CSS has been initialized

Adding to inittab 
Startup will be queued to init within 30  seconds.
Checking the status of new Oracle init process...
Expecting the  CRS daemons to be up within 600 seconds.
Giving up: Oracle CSS stack appears NOT to be  running.
Oracle CSS service would not start as installed
Automatic  Storage Management(ASM) cannot be used until Oracle CSS service is  started

可以看到CSS服務最終沒有起來,如果這個時候還是在dbca裡面嘗試建立ASM例項,就會丟擲錯誤 ORA-29701: unable to connect to Cluster Manager 這個時候分析這個問題,還是需要從CSS相關的配置來考慮,可能是某些檔案丟失或者出現了不一致之類的問題。 可以嘗試使用localconfig delete刪除註冊資訊,然後使用localconfig reset來重新配置。

 ./localconfig delete
Stopping CSSD.
Unable to communicate with the CSS  daemon.
Shutdown has begun. The daemons should exit  soon.

在重新配置的時候,就會很i清楚的看到,其實是有一些檔案找不到了,在這套機器上,之前安裝過rac的crs軟體,可能是有一些檔案可能產生衝突。比如/etc/oracle/ocr.loc這個檔案,這個檔案是在最近使用dbca開啟圖形介面的時候報出了錯誤,最後發現是因為ocr.loc這個檔案影響的,把這個檔案刪了之後就沒有問題了。沒想到在配置ASM的時候也會有一定的影響,不過最終重新配置CSS的時候,會重新去建立ocr.loc這個檔案

[root@oel1  bin]# ./localconfig reset
./localconfig: line 529: /etc/oracle/ocr.loc:  No such file or directory
./localconfig: line 551: [: too many  arguments
Successfully accumulated necessary OCR keys.
Creating OCR keys  for user 'root', privgrp 'root'..
Operation successful.
Configuration for  local CSS has been initialized

Adding to inittab 
Startup will be queued to init within 30  seconds.
Checking the status of new Oracle init process...
Expecting the  CRS daemons to be up within 600 seconds.
CSS is active on these  nodes.
        oel1
CSS is active on all nodes.
Oracle CSS service is  installed and running under init(1M)

重新配置成功後,我們檢視CSS的服務,可以看到已經起來了

[root@oel1 bin]# ps -ef|grep css
oracle    26370     1  0 21:30 ?        00:00:00  /u01/app/oracle/product/10.2.0/db_1/bin/ocssd.bin
root     26637 24953  0  21:30 pts/1    00:00:00 grep css

問題2:配置裸裝置/取消裸裝置配置 接下來,我們需要配置一些裸裝置在ASM中使用。 配置裸裝置,可以使用如下的指令碼,會批量生成多個裸裝置 基本思路就是使用dd創建出模擬的檔案,然後使用losetup來將檔案虛擬為塊裝置。 然後使用raw來繫結即可。 比如我們建立6個裸裝置,指令碼如下:

for  i in {1..6}
do
dd if=/dev/zero of=asm_disk$i bs=1M count=500
chmod 777  asm_disk$i
losetup /dev/loop$i asm_disk$i
raw /dev/raw/raw$i  /dev/loop$i
chown oracle:dba /dev/raw/raw$i
done

執行指令碼的時候會發現

[root@oel1 asmdisks]# ksh create_asmdisk.sh
500+0 records in
500+0  records out
524288000 bytes (524 MB) copied, 1.41319 seconds, 371  MB/s
/dev/raw/raw1:  bound to major 7, minor 1
500+0 records in
500+0  records out
524288000 bytes (524 MB) copied, 1.85704 seconds, 282  MB/s
/dev/raw/raw2:  bound to major 7, minor 2
500+0 records in
500+0  records out
524288000 bytes (524 MB) copied, 4.13632 seconds, 127  MB/s
/dev/raw/raw3:  bound to major 7, minor 3
500+0 records in
500+0  records out
524288000 bytes (524 MB) copied, 2.29498 seconds, 228  MB/s
/dev/raw/raw4:  bound to major 7, minor 4
500+0 records in
500+0  records out
524288000 bytes (524 MB) copied, 1.36017 seconds, 385  MB/s
/dev/raw/raw5:  bound to major 7, minor 5
500+0 records in
500+0  records out
524288000 bytes (524 MB) copied, 2.30878 seconds, 227  MB/s
/dev/raw/raw6:  bound to major 7, minor 6
[root@oel1  asmdisks]#

執行完成之後檢視裸裝置的情況,可以看到6個裸裝置都建立好了。

[root@oel1 asmdisks]# raw -qa
/dev/raw/raw1:  bound to major 7, minor  1
/dev/raw/raw2:  bound to major 7, minor 2
/dev/raw/raw3:  bound to major  7, minor 3
/dev/raw/raw4:  bound to major 7, minor 4
/dev/raw/raw5:  bound  to major 7, minor 5
/dev/raw/raw6:  bound to major 7, minor 6
[root@oel1  asmdisks]#

當然我們能夠建立裸裝置,繫結,也可以撤銷繫結,刪除這些裸裝置, 可以使用如下的指令碼來完成回滾的操作

>cat rollback*.sh
for i in {1..6}
do
dd if=/dev/zero  of=asm_disk$i bs=1M count=200
raw /dev/raw/raw$i 0 0  
losetup  -d  /dev/loop$i
rm asm_disk$i
done

執行指令碼的日誌如下:

[root@oel1 asmdisks]# ksh rollback.sh
200+0 records in
200+0 records  out
209715200 bytes (210 MB) copied, 0.464948 seconds, 451  MB/s
/dev/raw/raw1:  bound to major 0, minor 0
200+0 records in
200+0  records out
209715200 bytes (210 MB) copied, 0.423312 seconds, 495  MB/s
/dev/raw/raw2:  bound to major 0, minor 0
200+0 records in
200+0  records out
209715200 bytes (210 MB) copied, 0.39266 seconds, 534  MB/s
/dev/raw/raw3:  bound to major 0, minor 0
200+0 records in
200+0  records out
209715200 bytes (210 MB) copied, 0.419405 seconds, 500  MB/s
/dev/raw/raw4:  bound to major 0, minor 0
200+0 records in
200+0  records out
209715200 bytes (210 MB) copied, 0.552266 seconds, 380  MB/s
/dev/raw/raw5:  bound to major 0, minor 0
200+0 records in
200+0  records out
209715200 bytes (210 MB) copied, 0.568867 seconds, 369  MB/s
/dev/raw/raw6:  bound to major 0, minor  0

再次檢視裸裝置的情況,可以看到裸裝置都不存在了。

[root@oel1 asmdisks]# raw -qa
[root@oel1  asmdisks]#

問題3:建立磁碟組錯誤 基本條件都準備好了,我們來嘗試建立對應的磁碟組,把這些裸裝置都加進來。但是建立磁碟組的時候報出了下面的錯誤。

對於ORA-15018的問題,其實還是和之前安裝過rac有一定的影響。 這個時候檢視ASM的例項情況,會發現啟動了一個+ASM1的例項,而且屬主是orarac這個使用者,

[root@oel1  asmdisks]# ps -ef|grep smon
oracle    5848     1  0 20:16 ?        00:00:00  ora_smon_TEST10G
oracle   27195     1  0 21:40 ?        00:00:00  asm_smon_+ASM
orarac   29473     1  0  22:11 ?        00:00:00 asm_smon_+ASM1
root     29608 27674  0 22:14  pts/1    00:00:00 grep  smon

因為這套rac已經完全不用了,也沒有做解除安裝,所以有些配置資訊還是會有一定的影響,對於這個問題,最後發現是在/etc/oratab的地方已經配置了+ASM1,所以使用dbca的時候會把之前的這個ASM例項啟用,但是新增磁碟組的時候又用不了了。 對於這個問題的處理,就是刪除/etc/oratab中不需要的ASM配置資訊,因為這些配置是之前建立的時候生成的記錄,因為一些配置的原因,現在已經完全不使用這個環境,甚至可以完全刪除這個使用者。 [root@oel1 etc] cat /etc/oratab

+ASM1:/u02/rac/db:N 刪除這個配置資訊之後,重新執行dbca建立就誒有問題了。一會就把磁碟組建立好了。如下圖所示。

然後我們嘗試重啟一下ASM例項,可以看到都沒有問題。

SQL> shutdown immediate
ASM diskgroups dismounted
ASM instance  shutdown
SQL> startup
ASM instance started


Total System Global Area   83886080 bytes
Fixed Size                   1260216 bytes
Variable Size              57460040 bytes
ASM  Cache                  25165824 bytes
ASM diskgroups  mounted

ASM的簡單配置就告一段落。