AIX (NORAC)下面 ASM的安裝及條帶化和映象的實現

gaopengtttt發表於2011-04-19

原創 轉載請註明:

前期要建立使用者和組,檢視補丁是否都打了
1、建立多個LV 用來準備做RAW。透過SMIT就可以輕鬆的完成。沒有安裝檔案系統的LV就是RAW
我這裡建立了5個RAW AMS1 AMS2 ASM3 ASM4 ASM5(媽媽的前面ping錯了^_^)
2、需要對RAW 裝置進行許可權改變如下:
crw-rw----   1 oracle   dba          10, 12 Apr 19 14:47 rams1
crw-rw----   1 oracle   dba          10, 13 Apr 19 14:47 rams2
crw-rw----   1 oracle   dba          10, 14 Apr 19 14:47 rasm3
crw-rw----   1 oracle   dba          10, 15 Apr 19 14:47 rasm4
crw-rw----   1 oracle   dba          10, 16 Apr 19 14:47 rasm5

3、建立ASM引數檔案
我這裡引數如下:
*.asm_diskgroups='test1','test2'   自動掛載的磁碟組
*.asm_diskstring='/dev/rams1', '/dev/rams2'  裸裝置
*.background_dump_dest='/oracle/+ASM/bdump'  BDUMP位置
*.core_dump_dest='/oracle/+ASM/cdump'  CDUMP位置
*.instance_type='asm'  這裡必須的
*.large_pool_size=12M  LATGER POOL大小至少8M
*.remote_login_passwordfile='SHARED' 資料庫可以使用密碼檔案來進行驗證
*.user_dump_dest='/oracle/+ASM/udump' UDUMP位置
*.ASM_POWER_LIMIT=1 表示新增和刪除磁碟的時候,磁碟自動對資料在新舊磁碟間重新分配的級別,1表示最慢最小效能影響,11表示最快最大效能影響,0表示不做再平衡.預設為1
4、建立ASM密碼檔案
orapwd file='**' password=** entries=10
5、啟動CSS
CSS其實是RAC中的叢集同步服務,但是ASM 也需要CSS。
$ORACLE_HOME/bin/localconfig add
可能會報錯
# ./localconfig add
exec(): 0509-036 Cannot load program crsctl.bin because of the following errors:
        0509-130 Symbol resolution failed for crsctl.bin because:
        0509-136   Symbol _Getctype__FPCc (number 101) is not exported from
                   dependent module /usr/lib/libC.a[ansi_64.o].
        0509-136   Symbol _Getnumpunct__FPCc (number 105) is not exported from
                   dependent module /usr/lib/libC.a[ansi_64.o].
        0509-192 Examine .loader section symbols with the
                 'dump -Tv' command.
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'system'..
Operation successful.
Configuration for local CSS has been initialized

需要下載
xlc.rte.70.aix.tar
xlc.rte.aix50.sep2005.ptf.tar
解壓後透過SMIT來安裝

6、EXPORT ORACLE_SID=+ASM
  啟動AMS INSTANCE
這個時候會提示沒有磁碟組
這裡我們要建立磁碟組了
CREATE DISKGROUP TEST1 EXTERNAL REDUNDANCY DISK '/dev/rams1';
CREATE DISKGROUP TEST2 EXTERNAL REDUNDANCY DISK '/dev/rams2';
這裡可以是外部冗餘EXTERNAL,普通冗餘normal,高冗餘high,外部冗餘至少1個失效組就可以了,普通就是至少2個失效組做映象,high就是至少3個失效組做映象,需要注意的是這裡的映象是對資料庫物件做映象就是分割槽(extend)
建立一個高失效磁碟組如下:
SQL> create diskgroup test3 high redundancy
  2  failgroup fg1 disk '/dev/rasm3' name db3
  3  failgroup fg2 disk '/dev/rasm4' name db4
  4  failgroup fg3 disk '/dev/rasm5' name db5;

Diskgroup created.

7、檢視LSNRCTL看看監聽中是否有ASM的資訊
沒有話要手動註冊
ALTER SYSTEM REGISTER;
8、檢視磁碟組資訊
SQL> select group_number,disk_number,name,failgroup,create_date,path from v$asm_disk;

GROUP_NUMBER DISK_NUMBER NAME                           FAILGROUP                      CREATE_DA PATH
------------ ----------- ------------------------------ ------------------------------ --------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
           1           0 TEST1_0000                     TEST1_0000                     14-APR-11 /dev/rams1
           2           0 TEST2_0000                     TEST2_0000                     14-APR-11 /dev/rams2
           3           0 DB3                            FG1                            19-APR-11 /dev/rasm3
           3           1 DB4                            FG2                            19-APR-11 /dev/rasm4
           3           2 DB5                            FG3                            19-APR-11 /dev/rasm5

 

SQL> select name,group_number,state,type,total_mb,free_mb from  v$asm_diskgroup;

NAME                           GROUP_NUMBER STATE       TYPE     TOTAL_MB    FREE_MB
------------------------------ ------------ ----------- ------ ---------- ----------
TEST1                                     1 MOUNTED     EXTERN        640        583
TEST2                                     2 MOUNTED     EXTERN       2560       1528
TEST3                                     3 MOUNTED     HIGH          480        327

這裡可以看到冗餘方式,其實使用了RAID可以不用ASM的冗餘方式

SQL> select * from v$asm_alias order by name;

NAME                                             GROUP_NUMBER FILE_NUMBER FILE_INCARNATION ALIAS_INDEX ALIAS_INCARNATION PARENT_INDEX REFERENCE_INDEX A S
------------------------------------------------ ------------ ----------- ---------------- ----------- ----------------- ------------ --------------- - -
CONTROLFILE                                                 2  4294967295       4294967295          58                 1     33554485        33554591 Y Y
Current.260.748785235                                       2         260        748785235         159                 1     33554591        50331647 N Y
Current.261.748785237                                       2         261        748785237         160                 1     33554591        50331647 N Y
Current.262.748785237                                       2         262        748785237         161                 1     33554591        50331647 N Y
DATAFILE                                                    1  4294967295       4294967295          53                 1     16777269        16777322 Y Y
DATAFILE                                                    2  4294967295       4294967295          53                 1     33554485        33554538 Y Y
ONLINELOG                                                   2  4294967295       4294967295          62                 1     33554485        33554644 Y Y
PARAMETERFILE                                               2  4294967295       4294967295          68                 1     33554485        33554750 Y Y
PPZHU                                                       1  4294967295       4294967295           0                 1     16777216        16777269 Y Y
SYSAUX.257.748785097                                        2         257        748785097         107                 1     33554538        50331647 N Y
SYSTEM.256.748785097                                        2         256        748785097         106                 1     33554538        50331647 N Y

NAME                                             GROUP_NUMBER FILE_NUMBER FILE_INCARNATION ALIAS_INDEX ALIAS_INCARNATION PARENT_INDEX REFERENCE_INDEX A S
------------------------------------------------ ------------ ----------- ---------------- ----------- ----------------- ------------ --------------- - -
TEMP.266.748785289                                          2         266        748785289         265                 1     33554697        50331647 N Y
TEMPFILE                                                    2  4294967295       4294967295          66                 1     33554485        33554697 Y Y
TEST                                                        2  4294967295       4294967295           0                 1     33554432        33554485 Y Y
TEST.268.748788181                                          2         268        748788181         110                 1     33554538        50331647 N Y
UNDOTBS1.258.748785099                                      2         258        748785099         108                 1     33554538        50331647 N Y
USERS.256.748789567                                         1         256        748789567         106                 1     16777322        33554431 N Y
USERS.259.748785099                                         2         259        748785099         109                 1     33554538        50331647 N Y
control01.ctl                                               2         260        748785235          59                 1     33554485        50331647 N N
control02.ctl                                               2         261        748785237          60                 1     33554485        50331647 N N
control03.ctl                                               2         262        748785237          61                 1     33554485        50331647 N N
group_1.263.748785265                                       2         263        748785265         212                 1     33554644        50331647 N Y

NAME                                             GROUP_NUMBER FILE_NUMBER FILE_INCARNATION ALIAS_INDEX ALIAS_INCARNATION PARENT_INDEX REFERENCE_INDEX A S
------------------------------------------------ ------------ ----------- ---------------- ----------- ----------------- ------------ --------------- - -
group_2.264.748785267                                       2         264        748785267         213                 1     33554644        50331647 N Y
group_3.265.748785271                                       2         265        748785271         214                 1     33554644        50331647 N Y
redo01.log                                                  2         263        748785265          63                 1     33554485        50331647 N N
redo02.log                                                  2         264        748785267          64                 1     33554485        50331647 N N
redo03.log                                                  2         265        748785271          65                 1     33554485        50331647 N N
spfile.267.748785363                                        2         267        748785363         318                 1     33554750        50331647 N Y
spfiletest.ora                                              2         267        748785363          69                 1     33554485        50331647 N N
sysaux01.dbf                                                2         257        748785097          55                 1     33554485        50331647 N N
system01.dbf                                                2         256        748785097          54                 1     33554485        50331647 N N
temp01.dbf                                                  2         266        748785289          67                 1     33554485        50331647 N N
test01.dbf                                                  2         268        748788181           1                 1     33554432        50331647 N N

NAME                                             GROUP_NUMBER FILE_NUMBER FILE_INCARNATION ALIAS_INDEX ALIAS_INCARNATION PARENT_INDEX REFERENCE_INDEX A S
------------------------------------------------ ------------ ----------- ---------------- ----------- ----------------- ------------ --------------- - -
undotbs01.dbf                                               2         258        748785099          56                 1     33554485        50331647 N N
user01.dbf                                                  1         256        748789567           1                 1     16777216        33554431 N N
users01.dbf                                                 2         259        748785099          57                 1     33554485        50331647 N N

36 rows selected.

9、最後就是在建立庫的使用來使用磁碟組了。我這裡已經透過DBCA方式建立了一個。也可以透過RMAN 的CONVERT方式來轉換現有檔案系統的資料檔案到ASM裡面

如下:

1、shutdown database

2、startup mount

3、rman target  /

4、convert datafile ‘/oradata/test01.dbf' format '+test1/test01.dbf'

5、alter databae rename file  ‘/oradata/test01.dbf'  to  '+test1/test01.dbf'

6、alter database open;

10、最後說明一下ASM的條帶化,ASM條帶化分為粗和細,粗條帶1M為單位,細128k。除了CONTROLFILE,LOGFILE,flashlog是使用細條帶化其他都是粗條帶,這樣做是為了提高效能,如果DATAFILE本生一般很大,如果檢視一個大的表,使用細條帶那磁碟磁頭的豈不是要在不同的物理盤上不停的跳動?效能不好。
 
11、
oracle是不管你建立多少個failure group的,你如果沒有顯式指定,oracle就幫你給每個asm disk都建立一個failure group,在這些group之上,你如果指定是external redundancy,那麼oracle就只在隨機(所謂隨機還是有自己的演算法)選擇1個failure group中儲存一份資料;如果是normal,那麼oracle會隨機選擇2個failure group各儲存一份資料;如果是high,那麼就是存3份。


之前我建立一個CREATE DISKGROUP TEST3 high redundancy
DISK '/dev/rasm3','/dev/rasm4','/dev/rasm5';

一看TOTAL_MB 480 我的每塊盤是160M 如果是常規的映象這裡使用應該是160
然後建立了一個
ATE DISKGROUP TEST3 EXTERNAL REDUNDANCY DISK '/dev/rasm3','/dev/rasm4','/dev/rasm5';
一看TOTAL_MB 還是480
原來這裡大小是總的磁碟大小,只是在進行儲存資料的時候HIGH冗餘會映象3份。比如儲存1M的資料 HIGH需要3M。
這裡如果要看這個DISKGROUP實際可用的空間可以檢視v$asm_diskgroup的USABLE_FILE_MB欄位。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-692801/,如需轉載,請註明出處,否則將追究法律責任。

相關文章