建立ASM例項及ASM資料庫

dawn009發表於2014-09-12

--========================

-- 建立ASM例項及ASM資料庫

--========================

 

一、ASM相關概念

    1.什麼是ASM(Auto Storage Management)

        簡稱自動儲存管理,是一種用於管理磁碟的工具

        能夠在多個物理裝置之間實現條帶化、映象資料檔案、恢復檔案等

        檔案按分配單元AUs(allocation units)平衡分佈在磁碟組的所有磁碟中,ASM使用索引技術來跟蹤每個AUs的位置

        支援聯機磁碟的動態增加和減少,當磁碟發生變化後,AUs會自動重新實現動態分佈

        支援RAC叢集技術,每一節點上執行一個ASM例項,各ASM例項間能實現點對點通訊

        是一個純軟體級別的實現方式,第三方RAID工作在卷層次上,使用統一條帶大小,ASM可以工作在檔案層次級別,不同檔案可以使用

            不同的條帶大小

       

    2.ASM的優點

        磁碟增加:增加磁碟變得非常容易。無需停機時間,並且檔案區域自動重新分配。

        I/O 分配:I/O 自動分佈在所有可用的磁碟上,無需人工干預,從而減少了熱點出現的可能性。 

        帶區寬度:在重做日誌檔案中分段可以細分(K,以獲得更快的傳輸速率),對於資料檔案,帶區則略大一些(MB,以一次性

            傳輸大量的資料塊)。

        緩衝:ASM 檔案系統不進行緩衝,直接進行輸入/輸出。

        映象:如果硬體映象不可用,則可以容易地建立軟體映象。   

        核心化的非同步I/O :實現核心化的非同步I/O 無需特殊的設定,並且無需使用原始或第三方的檔案系統(如 Veritas Quick I/O

                   

    3.Oracle 常用資料檔案的RAID級別

        SYSTEMUNDO表空間通常置於RAID 1捲上

        聯機重做日誌通常置於RAID 0捲上

        控制檔案通常置於RAID 0+1 捲上

        資料檔案通常置於RAID 5捲上

       

    4.ASM體系結構(主要由ASM例項及ASM磁碟組組成)

        ASM的使用需要建立一個ASM例項,用於管理ASM磁碟組

        ASM磁碟組由ASM磁碟組成,可以包含一個或多個ASM磁碟

        ASM磁碟可以是實際的磁碟,也可以是磁碟的某個分割槽,或LVM管理的邏輯卷,但必須是未格式化的原始裝置

        ASM磁碟組的大小為該組內ASM磁碟大小的總和,可使用的容量則根據容錯級別而有不同的可用大小

       

    5.ASM例項及RDBMS例項

        ASM例項類似於普通的資料庫例項(RDBMS),同樣由SGA和一堆後臺程式組成,對大多數系統而言,SGA只需64 MB即可

        ASM例項中的LargePool 用於存放Extent Map,可以根據資料庫的大小來計算LargePool的大小,通常100GB大小需要1MB存放Extent Map

        普通的RDBMS例項會定位資料檔案並開啟其資料檔案,而在使用ASM儲存的資料庫中,該工作由ASM例項接管,即ASM例項用於定位和

            管理ASM磁碟,磁碟組。

        ASM例項擁有類似於普通RDBMS例項的後臺程式,如SMONPMONLGWRDBWRCKPT等,還增添了兩個新程式,一類是RBAL,一類是ARBn

            RBAL:用於協調和管理磁碟組之間的動態平衡

            ARBn:可以為多個,用於完成AU的移動

        ASM例項僅僅是定位管理ASM磁碟,不能載入或開啟資料庫,因此也無法讀取資料字典資訊

        ASM例項通常有個引數,只能使用口令檔案或作業系統身份驗證作為sysdbasysoper來啟動或關閉該例項。

            關於sysdbasysoper區別請參考:system sys,sysoper sysdba

 

        一個ASM例項可以為多個RDBMS提供服務,可以在一臺主機上建立多個ASM例項,但通常一臺主機上使用一個ASM例項

        如果一個例項服務於多個RDBMS,建議將ASMASM_HOMEDBORACLE_HOME分開,便於日後的升級與維護

        ASM磁碟組的建立與配置在ASM例項啟動之後

       

使用ASM磁碟的RDBMS例項與普通的RDBMS例項相同,但多出了兩個後臺程式,RBALASMB

            ASMB藉助某個伺服器程式如oracle+ASM1建立普通RDBMS例項到ASM例項的會話,並傳遞磁碟檔案的相關資訊

            RBAL開啟透過ASM例項定位的ASM磁碟

        注意:ASM 例項並不代替RDBMS例項來讀取或寫入資料檔案,資料是直接在ASM磁碟和RDBMS例項傳遞,ASM例項僅用於定位資料檔案

            所在的asm磁碟,盤區以及所需的相關資訊。假定新增加資料檔案,則RDBMS告知ASM例項要建立資料檔案,ASM例項則分配盤區

            (extent),並建立盤區對映地址返回給RDBMS例項,RDBMS則將資料直接寫入到磁碟組。

               

    6.ASM例項中儲存的檔案型別

        控制檔案        引數檔案        聯機日誌檔案        歸檔日誌檔案        資料檔案        臨時檔案

        RMAN備份集、映像副本        控制檔案備份集      datapump 轉儲檔案、Change Tracing file

       

二、建立ASM例項(下面基於VMware + RHEL 5.4 + Oracle 10g R2演示)

    1.安裝ASM

        使用ASM例項,需要到Oracle官方網站下載所需的ASM包。下載路徑:

        注意下載支援該核心的包,分為兩部分,一是Library and Tools,二是Drivers for kernel

        如本人的Linux的核心為:

            [root@oradb ~]# uname -rm

             2.6.18-164.el5 i686

        則下載對應的包為:

            Library and Tools

                oracleasmlib-2.0.4-1.el5.x86_64.rpm

                oracleasm-support-2.1.3-1.el5.i386.rpm

            Drivers for kernel 2.6.18-164.el5

                oracleasm-2.6.18-164.el5xen-2.0.5-1.el5.i686.rpm

                oracleasm-2.6.18-164.el5debug-2.0.5-1.el5.i686.rpm

                oracleasm-2.6.18-164.el5PAE-2.0.5-1.el5.i686.rpm

                oracleasm-2.6.18-164.el5-debuginfo-2.0.5-1.el5.i686.rpm

                oracleasm-2.6.18-164.el5-2.0.5-1.el5.i686.rpm

        使用下面類似的方式來安裝這些包,關於RPM 的使用請參考:RPM 使用簡介

            [root@oradb asm]# rpm -Uvh oracleasm-support-2.1.3-1.el5.i386.rpm

        驗證安裝的包

            [root@oradb asm]# rpm -qa | grep asm

            oracleasm-support-2.1.3-1.el5

            oracleasm-2.6.18-164.el5-debuginfo-2.0.5-1.el5

            oracleasm-2.6.18-164.el5-2.0.5-1.el5           

   

    2.啟用css服務(Cluster Synchronization Services )

        用於同步ASM例項與RDBMS例項

            使用root帳戶進行配置,配置程式位於$ORACLE_HOME/bin

            [root@oradb ~]# /u01/oracle/10g/bin/localconfig add

            /etc/oracle does not exist. Creating it now.

            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 90 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.

                    oradb

            CSS is active on all nodes.

            Oracle CSS service is installed and running under init(1M)

           

    3.建立ASM引數檔案(使用VIVIM)

        [oracle@oradb dbs]$ cat /u01/oracle/10g/dbs/init+ASM.ora

        *.asm_diskstring=''                                      #為空表示可以搜尋任意的ASM磁碟

        *.background_dump_dest='/u01/oracle/admin/+ASM/bdump'    #後臺程式存放位置

        *.core_dump_dest='/u01/oracle/admin/+ASM/cdump'          #核心程式存放位置

        *.user_dump_dest='/u01/oracle/admin/+ASM/udump'          #使用者程式存放位置

        *.instance_type='ASM'                                    #例項型別,普通例項預設則為RDBMS

        *.instance_name='+ASM'                                   #例項名字

        *.large_pool_size=12M                                    #為例項分配large_pool的大小

        *.remote_login_passwordfile='SHARED'                     #登陸認證方式

        *.asm_power_limit=1                                      #控制均衡操作的資源,預設為

               

    4.建立ASM後臺程式目錄,參照引數檔案中的配置來建立  

        [oracle@oradb ~]$ echo $ORACLE_BASE

        /u01/oracle/10g

        [oracle@oradb ~]$ mkdir -p $ORACLE_BASE/admin/+ASM/bdump

        [oracle@oradb ~]$ mkdir -p $ORACLE_BASE/admin/+ASM/udump

        [oracle@oradb ~]$ mkdir -p $ORACLE_BASE/admin/+ASM/cdump   

       

    5.建立密碼檔案及spfile引數檔案

        [oracle@oradb ~]$ orapwd file=$ORACLE_HOME/dbs/orapw+ASM password=redhat entries=8

        [oracle@oradb ~]$ export ORACLE_SID=+ASM

        SQL> conn / as sysdba

        Connected to an idle instance.

        SQL> startup    

        ASM instance started

        ORA-15110: no diskgroups mounted       

        SQL> create spfile from pfile;

 

        SQL> select * from v$asm_diskgroup;

 

        no rows selected

   

    7.建立ASM磁碟及配置ASMlib驅動

        Vmware分配幾個空閒的磁碟用於建立ASM磁碟,建議使用不同的磁碟控制器

        下面使用個磁碟來組建ASM磁碟組,分別為sdd,sde,sdf,sdg

        分別對個磁碟進行分割槽,列出sdd的分割槽樣例,其餘如法炮製

            [root@oradb ~]# fdisk /dev/sdd

 

            Command (m for help): n

            Command action

               e   extended

               p   primary partition (1-4)

            p

            Partition number (1-4): 1

            First cylinder (1-261, default 1):

            Using default value 1

            Last cylinder or +size or +sizeM or +sizeK (1-261, default 261):

            Using default value 261

 

            Command (m for help): w

            The partition table has been altered!

 

            Calling ioctl() to re-read partition table.

            Syncing disks.     

       

        建立ASM磁碟(三種方法)

           a.配置裸裝置對映,修改/etc/udev/rules.d/60-raw.rules檔案

            使用root帳戶修改/etc/udev/rules.d/60-raw.rules 按如下方式新增磁碟

            [root@oradb ~]# cat /etc/udev/rules.d/60-raw.rules       --檢視新增的內容

            ACTION=="add", KERNEL=="sdd1", RUN+="/bin/raw /dev/raw/raw1 %N"

            ACTION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="1", RUN+="/bin/raw /dev/raw/raw1 %M %m"

 

            ACTION=="add", KERNEL=="sde1", RUN+="/bin/raw /dev/raw/raw2 %N"

            ACTION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="17", RUN+="/bin/raw /dev/raw/raw2 %M %m"  

           

            [root@oradb ~]# start_udev    #重啟udev服務

            Starting udev: [  OK  ]

           

            [root@oradb ~]# ll /dev/raw  

            total 0

            crw------- 1 root root 162, 1 Nov 10 18:50 raw1

            crw------- 1 root root 162, 2 Nov 10 18:50 raw2

       

            [root@oradb ~]# chown oracle:dba /dev/raw/raw[1-2]  --修改屬主,否則建立磁碟組時提示許可權不夠

 

          b.也可以採用下面的方式來增加磁碟,即直接修改/etc/sysconfig/rawdevices  (root帳戶)

            [root@oradb ~]# vim /etc/sysconfig/rawdevices

            [root@oradb ~]# cat /etc/sysconfig/rawdevices  --檢視增加的內容為raw3,raw4

            /dev/raw/raw3 /dev/sdf1

            /dev/raw/raw4 /dev/sdg1

           

            [root@oradb ~]# chown oracle:dba /dev/raw/raw[3-4]  --修改屬主,否則建立磁碟組時提示許可權不夠

            [root@oradb ~]# ll /dev/raw/

            total 0

            crw------- 1 oracle dba 162, 1 Nov 10 20:12 raw1

            crw------- 1 oracle dba 162, 2 Nov 10 20:12 raw2

            crw------- 1 oracle dba 162, 3 Nov 10 20:12 raw3

            crw------- 1 oracle dba 162, 4 Nov 10 20:12 raw4

           

            重啟裸裝置服務

            [root@oradb ~]# /sbin/service rawdevices restart

            Assigning devices:

                       /dev/raw/raw3  --&gt   /dev/sdf1

            /dev/raw/raw3:  bound to major 8, minor 81

                       /dev/raw/raw4  --&gt   /dev/sdg1

            /dev/raw/raw4:  bound to major 8, minor 97

            done

 

            SQL> select instance_name,status from v$instance;

 

            INSTANCE_NAME    STATUS

            ---------------- ------------

            +ASM             STARTED

           

            SQL> create diskgroup DG1 normal redundancy disk '/dev/

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

相關文章