主頁(yè) > 知識(shí)庫(kù) > 探索ORACLE之ASM概念(完整版)

探索ORACLE之ASM概念(完整版)

熱門標(biāo)簽:征服者火車站地圖標(biāo)注 百度地圖標(biāo)注素材 word地圖標(biāo)注方向 美圖秀秀地圖標(biāo)注 人工智能地圖標(biāo)注自己能做嗎 開(kāi)封智能外呼系統(tǒng)廠家 阿爾巴尼亞地圖標(biāo)注app 外呼線路外顯本地號(hào)碼 征服眼公司地圖標(biāo)注

一、     ASM(自動(dòng)存儲(chǔ)管理)的來(lái)由:

ASM是Oracle 10g R2中為了簡(jiǎn)化Oracle數(shù)據(jù)庫(kù)的管理而推出來(lái)的一項(xiàng)新功能,這是Oracle自己提供的卷管理器,主要用于替代操作系統(tǒng)所提供的LVM,它不僅支持單實(shí)例,同時(shí)對(duì)RAC的支持也是非常好。ASM可以自動(dòng)管理磁盤組并提供有效的數(shù)據(jù)冗余功能。使用ASM(自動(dòng)存儲(chǔ)管理)后,數(shù)據(jù)庫(kù)管理員不再需要對(duì)ORACLE中成千上萬(wàn)的數(shù)據(jù)文件進(jìn)行管理和分類,從而簡(jiǎn)化了DBA的工作量,可以使得工作效率大大提高。

二、     什么是ASM

ASM它提供了以平臺(tái)無(wú)關(guān)的文件系統(tǒng)、邏輯卷管理以及軟RAID服務(wù)。ASM可以支持條帶化和磁盤鏡像,從而實(shí)現(xiàn)了在數(shù)據(jù)庫(kù)被加載的情況下添加或移除磁盤以及自動(dòng)平衡I/O以刪除“熱點(diǎn)”。它還支持直接和異步的I/O并使用Oracle9i中引入的Oracle數(shù)據(jù)管理器API(簡(jiǎn)化的I/O系統(tǒng)調(diào)用接口)。

ASM是做為單獨(dú)的Oracle實(shí)例實(shí)施和部署,并且它只需要有參數(shù)文件,不需要其它的任何物理文件,就可以啟動(dòng)ASM實(shí)例,只有它在運(yùn)行的時(shí)候,才能被其它數(shù)據(jù)訪問(wèn)。在Linux平臺(tái)上,只有運(yùn)行了OCSSD服務(wù)(Oracle安裝程序默認(rèn)安裝)了才能和訪問(wèn)ASM。

三、     使用ASM的好處:

1、 將I/O平均分部到所有可用磁盤驅(qū)動(dòng)器上以防止產(chǎn)生熱點(diǎn),并且最大化性能。

2、 配置更簡(jiǎn)單,并且最大化推動(dòng)數(shù)據(jù)庫(kù)合并的存儲(chǔ)資源利用。

3、 內(nèi)在的支持大文件

4、 在增量增加或刪除存儲(chǔ)容量后執(zhí)行自動(dòng)聯(lián)系重分配

5、 維護(hù)數(shù)據(jù)的冗余副本以提高可用性。

6、 支持10g,11g的數(shù)據(jù)存儲(chǔ)及RAC的共享存儲(chǔ)管理

7、 支持第三方的多路徑軟件

8、 使用OMF方式來(lái)管理文件

四、     ASM冗余:

ASM使用獨(dú)特的鏡像算法:不鏡像磁盤,而是鏡像盤區(qū)。作為結(jié)果,為了在產(chǎn)生故障時(shí)提供連續(xù)的保護(hù),只需要磁盤組中的空間容量,而不需要預(yù)備一個(gè)熱備(hot spare)磁盤。不建議用戶創(chuàng)建不同尺寸的故障組,因?yàn)檫@將會(huì)導(dǎo)致在分配輔助盤區(qū)時(shí)產(chǎn)生問(wèn)題。ASM將文件的主盤區(qū)分配給磁盤組中的一個(gè)磁盤時(shí),它會(huì)將該盤區(qū)的鏡像副本分配給磁盤組中的另一個(gè)磁盤。給定磁盤上的主盤區(qū)將在磁盤組中的某個(gè)伙伴磁盤上具有各自的鏡像盤區(qū)。ASM確保主盤區(qū)和其鏡像副本不會(huì)駐留在相同的故障組中。磁盤組的冗余可以有如下的形式:雙向鏡像文件(至少需要兩個(gè)故障組)的普通冗余(默認(rèn)冗余)和使用三向鏡像(至少需要3個(gè)故障組)提供較高保護(hù)程度的高冗余。一旦創(chuàng)建磁盤組,就不可以改變它的冗余級(jí)別。為了改變磁盤組的冗余,必須創(chuàng)建具有適當(dāng)冗余的另一個(gè)磁盤組,然后必須使用RMAN還原或DBMS_FILE_TRANSFER將數(shù)據(jù)文件移動(dòng)到這個(gè)新創(chuàng)建的磁盤組。

三種不同的冗余方式如下:

1、 外部冗余(external redundancy):表示Oracle不幫你管理鏡像,功能由外部存儲(chǔ)系統(tǒng)實(shí)現(xiàn),比如通過(guò)RAID技術(shù);有效磁盤空間是所有磁盤設(shè)備空間的大小之和。

2、 默認(rèn)冗余(normal redundancy):表示Oracle提供2份鏡像來(lái)保護(hù)數(shù)據(jù),有效磁盤空間是所有磁盤設(shè)備大小之和的1/2 (使用最多)

3、 高度冗余(high redundancy):表示Oracle提供3份鏡像來(lái)保護(hù)數(shù)據(jù),以提高性能和數(shù)據(jù)的安全,最少需要三塊磁盤(三個(gè)failure group);有效磁盤空間是所有磁盤設(shè)備大小之和的1/3,雖然冗余級(jí)別高了,但是硬件的代價(jià)也最高。

五、     ASM進(jìn)程

ASM實(shí)例除了傳統(tǒng)的DBWR,LGWR,CKPT,SMON,PMON等進(jìn)程還包含如下四個(gè)新后臺(tái)進(jìn)程:

RBAL:負(fù)責(zé)協(xié)調(diào)磁盤組的重新平衡活動(dòng)(負(fù)責(zé)磁盤組均衡)

ARB0-ARBn:在同一時(shí)刻可以存在許多此類進(jìn)程,它們分別名為ARB0、ARB1,以此類推,執(zhí)行實(shí)際的重新平衡分配單元移動(dòng)進(jìn)程。

GMON:用于ASM磁盤組監(jiān)控

O0nn 01-10:這組進(jìn)程建立到ASM實(shí)例的連接,某些長(zhǎng)時(shí)間操作比如創(chuàng)建數(shù)據(jù)文件,RDBMS會(huì)通過(guò)這些進(jìn)程向ASM發(fā)送信息

ASMB與ASM 實(shí)例的前臺(tái)進(jìn)程連接,周期性的檢查兩個(gè)instance的健康狀況。每個(gè)數(shù)據(jù)庫(kù)實(shí)例同時(shí)只能與一個(gè)ASM實(shí)例連接,因此數(shù)據(jù)庫(kù)只會(huì)有一個(gè)ASMB后臺(tái)進(jìn)程。如一個(gè)節(jié)點(diǎn)上有多個(gè)數(shù)據(jù)庫(kù)實(shí)例,它們只能共享一個(gè)ASM實(shí)例。

RBAL用來(lái)進(jìn)行全局調(diào)用,以打開(kāi)某個(gè)磁盤組內(nèi)的磁盤。ASMB進(jìn)程與該節(jié)點(diǎn)的CSS守護(hù)進(jìn)程進(jìn)行通信,并接收來(lái)自ASM實(shí)例的文件區(qū)間映射信息。ASMB還負(fù)責(zé)為ASM實(shí)例提供I/O統(tǒng)計(jì)數(shù)據(jù)

CSS集群同步服務(wù)。要使用ASM,必須確保已經(jīng)運(yùn)行了CSS集群同步服務(wù),CSS負(fù)責(zé)ASM實(shí)例和數(shù)據(jù)庫(kù)實(shí)例之間的同步。

注意:ASM實(shí)例必須要先于數(shù)據(jù)庫(kù)實(shí)例啟動(dòng),和數(shù)據(jù)庫(kù)實(shí)例同步運(yùn)行,遲于數(shù)據(jù)庫(kù)實(shí)例關(guān)閉。ASM 實(shí)例和數(shù)據(jù)庫(kù)實(shí)例的關(guān)系可以是1:1,也可以是1:n。如果是1:n,最好為ASM 安裝單獨(dú)的ASM_HOME。

六、   ASM支持datafile,logfiles,control files,archivelogs,RMAN backup sets等自動(dòng)的數(shù)據(jù)庫(kù)文件管理

七、     ASM實(shí)例和數(shù)據(jù)庫(kù)實(shí)例對(duì)應(yīng)關(guān)系

八、     Cluster ASM 架構(gòu)

 

如需了解更詳細(xì)信息請(qǐng)參見(jiàn)Oracle數(shù)據(jù)庫(kù)管理員指南(Oracle首次放出)

http://docs.oracle.com/cd/B28359_01/server.111/b31107/toc.htm

好了,現(xiàn)在開(kāi)始談?wù)動(dòng)嘘P(guān)于ASM安裝的相關(guān)內(nèi)容,ASM的安裝必須建立在操作系統(tǒng)和數(shù)據(jù)庫(kù)軟件已經(jīng)安裝完成的及實(shí)例未創(chuàng)建之前來(lái)進(jìn)行安裝,之后再進(jìn)行選擇ASM方式建庫(kù)。ASM不僅可以應(yīng)用于單實(shí)例的數(shù)據(jù)庫(kù),同時(shí)更適用于RAC集群方式的數(shù)據(jù)庫(kù),并且ASM只被Oracle所認(rèn),同時(shí)也是ORACLE最佳的存儲(chǔ)解決方案,可以有效的替代RAID技術(shù)和卷管理技術(shù),比裸設(shè)備的管理更加方便;所以現(xiàn)在大部分企業(yè)都在迅速的向ASM技術(shù)遷移。

在上面我們已經(jīng)探討過(guò)了ASM的三種模式,及其的一些應(yīng)用,在這里我們就不對(duì)其進(jìn)行過(guò)多的累述。正式進(jìn)入這篇的主題,如何安裝ASM軟件,安裝ASM需要具備哪些條件。

ASM安裝步驟:

一、基礎(chǔ)環(huán)境準(zhǔn)備

1、  檢查操作系統(tǒng)和數(shù)據(jù)庫(kù)軟件是否安裝完成:

Installation in progress (Mon Apr 09 19:12:44 CST 2012)

...............................................................  18% Done.

...............................................................  36% Done.

...............................................................  54% Done.

...............................................................  73% Done.

............                                                     76% Done.

Install successful

Linking in progress (Mon Apr 09 19:19:34 CST 2012)

Link successful

Setup in progress (Mon Apr 09 19:23:13 CST 2012)

..............                                                  100% Done.

Setup successful

End of install phases.(Mon Apr 09 19:23:26 CST 2012)

WARNING:A new inventory has been created in this session. However, it has not yet been registered as the central inventory of this system.

To register the new inventory please run the script '/oracle/oraInventory/orainstRoot.sh' with root privileges.

If you do not register the inventory, you may not be able to update or patch the products you installed.

The following configuration scripts

/oracle/orahome/10.2.0/db_1/root.sh

need to be executed as root for configuring the system. If you skip the execution of the configuration tools, the configuration will not be complete and the product wont function properly. In order to get the product to function properly, you will be required to execute the scripts and the configuration tools after exiting the OUI.

The installation of Oracle Database 10g was successful.

從如上信息我們可以看到數(shù)據(jù)庫(kù)已經(jīng)安裝完成,操作系統(tǒng)肯定也是沒(méi)有問(wèn)題的。

2、  檢查數(shù)據(jù)庫(kù)和操作系統(tǒng)版本:

[oracle@ jb51.net db_1]$ lsb_release -a

LSB Version:    :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch

Distributor ID: EnterpriseEnterpriseServer

Description:    Enterprise Linux Enterprise Linux Server release 5.4 (Carthage)

Release:        5.4

Codename:       Carthage

[oracle@ jb51.net db_1]$

[oracle@ jb51.net db_1]$ uname -a

Linux wwl 2.6.18-164.el5 #1 SMP Thu Sep 3 02:16:47 EDT 2009 i686 i686 i386 GNU/Linux

操作系統(tǒng)版本為5.4 X86,內(nèi)核版本為2.6.18-164.el5,后面下載ASM包必須要對(duì)應(yīng)

[oracle@ jb51.net db_1]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Mon Apr 9 19:41:54 2012

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected to an idle instance.

SQL>

數(shù)據(jù)庫(kù)版本是10.2.0.1.

3、  我們已經(jīng)知道了這些信息后,我們就可以有針對(duì)性的下載ASM了:

ASM下載地址,版本不一樣,用的ASM包也不一樣:

http://www.oracle.com/technetwork/server-storage/linux/downloads/rhel5-084877.html

找到Intel IA32 (x86) Architecture系列中的這個(gè)包下載下來(lái):

Drivers for kernel 2.6.18-164.el5

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

·         以及如下兩個(gè)包下載下來(lái)就可以了:

Library and Tools

·         oracleasm-support-2.1.7-1.el5.i386.rpm

·         oracleasmlib-2.0.4-1.el5.i386.rpm

·          

4、  下載完了之后開(kāi)始安裝asm的rpm包,用root用戶安裝,注意安裝順序,如下:

[root@wwl asmpark]# ls

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

oracleasmlib-2.0.4-1.el5.i386.rpm

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

[root@wwl asmpark]# rpm -ivh oracleasm-support-2.1.7-1.el5.i386.rpm

warning: oracleasm-support-2.1.7-1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159

Preparing...                ########################################### [100%]

   1:oracleasm-support      ########################################### [100%]

[root@wwl asmpark]# rpm -ivh oracleasm-2.6.18-164.el5-2.0.5-1.el5.i686.rpm

warning: oracleasm-2.6.18-164.el5-2.0.5-1.el5.i686.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159

Preparing...                ########################################### [100%]

   1:oracleasm-2.6.18-164.el########################################### [100%]

[root@wwl asmpark]# rpm -ivh oracleasmlib-2.0.4-1.el5.i386.rpm

warning: oracleasmlib-2.0.4-1.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159

Preparing...                ########################################### [100%]

   1:oracleasmlib           ########################################### [100%]

[root@wwl asmpark]#

5、  好了,現(xiàn)在ASM相關(guān)包已經(jīng)安裝完成,現(xiàn)在來(lái)開(kāi)始創(chuàng)建用于ASM的磁盤分區(qū)(不是一定要做,裸盤也可以做ASM)

[root@wwl asmpark]# fdisk -l

Disk /dev/sda: 16.1 GB, 16106127360 bytes

255 heads, 63 sectors/track, 1958 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1          13      104391   83  Linux

/dev/sda2              14        1958    15623212+  8e  Linux LVM

Disk /dev/sdb: 10.7 GB, 10737418240 bytes

255 heads, 63 sectors/track, 1305 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdb doesn't contain a valid partition table

Disk /dev/sdc: 10.7 GB, 10737418240 bytes

255 heads, 63 sectors/track, 1305 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdc doesn't contain a valid partition table

[root@wwl asmpark]#

我們從上圖可以看出系統(tǒng)中有兩塊空閑的磁盤沒(méi)有使用,我們首先需要對(duì)磁盤創(chuàng)建分區(qū),但不能格式化,命令如下:

fdisk /dev/sdb /n/p/1/回車/回車/w

fdisk /dev/sdc /n/p/1/回車/回車/w

如下就已經(jīng)創(chuàng)建好了分區(qū):

[root@wwl asmpark]# fdisk -l

Disk /dev/sda: 16.1 GB, 16106127360 bytes

255 heads, 63 sectors/track, 1958 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1          13      104391   83  Linux

/dev/sda2              14        1958    15623212+  8e  Linux LVM

Disk /dev/sdb: 10.7 GB, 10737418240 bytes

255 heads, 63 sectors/track, 1305 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1        1305    10482381   83  Linux

Disk /dev/sdc: 10.7 GB, 10737418240 bytes

255 heads, 63 sectors/track, 1305 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sdc1               1        1305    10482381   83  Linux

二、ASM配置

以上已將準(zhǔn)備環(huán)境準(zhǔn)備好,下一步驟就是開(kāi)始配置了,這里面配置包括如下幾個(gè)步驟

開(kāi)始創(chuàng)建ASM實(shí)例,創(chuàng)建ASM實(shí)例的方式有兩種,一種是通過(guò)命令行,還有一種是通過(guò)圖形界面,執(zhí)行DBCA后有一步是創(chuàng)建ASM實(shí)例,圖形界面實(shí)在太簡(jiǎn)單了,跟創(chuàng)建DB是一樣的,在這里就不累贅了。

在使用ASM之前首先要配置ASMLib驅(qū)動(dòng)程序,如下:

我們首先可以看下asm的配置工具 oracleasm的語(yǔ)法和功能,如下:

 [root@wwl asmpark]# /etc/init.d/oracleasm --help

Usage: /etc/init.d/oracleasm {start|stop|restart|enable|disable|configure|createdisk|deletedisk|querydisk|listdisks|scandisks|status}

[root@wwl asmpark]#

1、開(kāi)始配置ASMLib:

 [root@wwl asmpark]# /etc/init.d/oracleasm configure

Configuring the Oracle ASM library driver.

This will configure the on-boot properties of the Oracle ASM library

driver.  The following questions will determine whether the driver is

loaded on boot and what permissions it will have.  The current values

will be shown in brackets ('[]').  Hitting ENTER> without typing an

answer will keep that current value.  Ctrl-C will abort.

Default user to own the driver interface []: oracle

Default group to own the driver interface []: dba

Start Oracle ASM library driver on boot (y/n) [n]: y

Scan for Oracle ASM disks on boot (y/n) [y]: y

Writing Oracle ASM library driver configuration: done

Initializing the Oracle ASMLib driver: [  OK  ]

Scanning the system for Oracle ASMLib disks: [  OK  ]

2、啟用ASMLib驅(qū)動(dòng)程序:

[root@wwl asmpark]# /etc/init.d/oracleasm enable

Writing Oracle ASM library driver configuration: done

Initializing the Oracle ASMLib driver: [  OK  ]

Scanning the system for Oracle ASMLib disks: [  OK  ]

3、通過(guò)以root用戶身份運(yùn)行以下命令來(lái)標(biāo)記由 ASMLib 使用的磁盤:

[root@wwl asmpark]# /etc/init.d/oracleasm createdisk VOL1 /dev/sdb1

Marking disk "VOL1" as an ASM disk: [  OK  ]

[root@wwl asmpark]# /etc/init.d/oracleasm createdisk VOL2 /dev/sdc1

Marking disk "VOL2" as an ASM disk: [  OK  ]

[root@wwl asmpark]#

4、通過(guò)如下命令查看ASM所能使用的磁盤及狀態(tài),一切顯示都是正常的。

[root@wwl asmpark]# oracleasm querydisk VOL1

Disk "VOL1" is a valid ASM disk

[root@wwl asmpark]# oracleasm querydisk /dev/sdb1

Device "/dev/sdb1" is marked an ASM disk with the label "VOL1"

[root@wwl asmpark]# oracleasm querydisk VOL2

Disk "VOL2" is a valid ASM disk

[root@wwl ~]# oracleasm querydisk /dev/sdc1

Device "/dev/sdc1" is marked an ASM disk with the label "VOL2"

[root@wwl asmpark]# oracleasm listdisks

VOL1

VOL2

[root@wwl asmpark]# ls -l /dev/oracleasm/disks/*

brw-rw---- 1 oracle dba 8, 17 Apr 10 00:25 /dev/oracleasm/disks/VOL1

brw-rw---- 1 oracle dba 8, 33 Apr 10 00:25 /dev/oracleasm/disks/VOL2

[root@wwl asmpark]# oracleasm status

Checking if ASM is loaded: yes

Checking if /dev/oracleasm is mounted: yes

5、如上ASMLib已經(jīng)安裝完成,并且也將磁盤標(biāo)記為可用,接下來(lái)要做的就是創(chuàng)建ASM實(shí)例,并構(gòu)建一個(gè)使用ASM磁盤來(lái)存儲(chǔ)數(shù)據(jù)的數(shù)據(jù)庫(kù),可以使用DBCA,當(dāng)然也可以使用手工的方式來(lái)創(chuàng),在這里,我就采用手工方式創(chuàng)建ASM實(shí)例,步驟如下:

6、創(chuàng)建初始化參數(shù)文件,信息如下:

[oracle@ jb51.net dbs]$ vi $ORACLE_HOME/dbs/init$ORACLE_SID.ora

asm_diskstring='WWL:VOL*'

background_dump_dest='/oracle/admin/+ASM/bdump'

core_dump_dest='/oracle/admin/+ASM/cdump'

user_dump_dest='/oracle/admin/+ASM/udump'

instance_type='asm'

large_pool_size=12M

remote_login_passwordfile='SHARED'

7、增加實(shí)例信息到/etc/oratab

$ vi /etc/oratab

+ASM:/u01/app/oracle/product/10.2.0/db_1:Y

8、創(chuàng)建ASM實(shí)例密碼文件:

[oracle@ jb51.net dbs]$ $ORACLE_HOME/bin/orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password='oracle' force=y;

[oracle@ jb51.net dbs]$

9、創(chuàng)建ASM實(shí)例相應(yīng)的目錄:

[oracle@ jb51.net dbs]$  mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/bdump

[oracle@ jb51.net dbs]$ mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/cdump

[oracle@ jb51.net dbs]$ mkdir -p $ORACLE_BASE/admin/$ORACLE_SID/udump

[oracle@ jb51.net dbs]$

10、開(kāi)啟CSS服務(wù)

$ su - root

[root@wwl ~]# /oracle/orahome/10.2.0/db_1/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.

        wwl

CSS is active on all nodes.

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

11、啟動(dòng)ASM實(shí)例,并創(chuàng)建ASM磁盤組:

[oracle@ jb51.net dbs]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Tue Apr 10 01:23:44 2012

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

SQL> startup nomount;

ASM instance started

Total System Global Area   83886080 bytes

Fixed Size                  1217836 bytes

Variable Size              57502420 bytes

ASM Cache                  25165824 bytes

SQL> select instance_name,status from v$instance;

INSTANCE_NAME    STATUS

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

+ASM             STARTED

SQL>

現(xiàn)在實(shí)例我已經(jīng)將其啟動(dòng)到nomount狀態(tài),下一步開(kāi)始創(chuàng)建ASM磁盤組。

12、創(chuàng)建ASM組并將其啟動(dòng)到MOUNT狀態(tài),

SQL> create diskgroup ASMGROUP1 normal redundancy disk '/dev/oracleasm/disks/VOL1','/dev/oracleasm/disks/VOL2';

Diskgroup created.

好了,磁盤組已經(jīng)創(chuàng)建好了,并且也已經(jīng)掛載了

SQL> select name,state from v$asm_diskgroup;

NAME                           STATE

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

ASMGROUP1                      MOUNTED

SQL>

可以看到如下,參數(shù)文件也隨著更新了:

SQL> show parameter asm_diskgroups;

NAME                                 TYPE        VALUE

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

asm_diskgroups                       string      ASMGROUP1

13、檢查ASM進(jìn)程是否都正常啟動(dòng)了,我們之前提到的幾個(gè)進(jìn)程名稱,這里面都有了,說(shuō)明現(xiàn)在ASM已經(jīng)是正常運(yùn)行狀態(tài)。

[oracle@ jb51.net ~]$ ps -ef | grep asm

oracle    3887     1  0 02:58 ?        00:00:00 asm_pmon_+ASM

oracle    3889     1  0 02:58 ?        00:00:00 asm_psp0_+ASM

oracle    3891     1  0 02:58 ?        00:00:00 asm_mman_+ASM

oracle    3893     1  0 02:58 ?        00:00:00 asm_dbw0_+ASM

oracle    3895     1  0 02:58 ?        00:00:00 asm_lgwr_+ASM

oracle    3897     1  0 02:58 ?        00:00:00 asm_ckpt_+ASM

oracle    3899     1  0 02:58 ?        00:00:00 asm_smon_+ASM

oracle    3901     1  0 02:58 ?        00:00:00 asm_rbal_+ASM

oracle    3903     1  0 02:58 ?        00:00:00 asm_gmon_+ASM

一、通過(guò)ASM方式建立單實(shí)例庫(kù)

 

二、檢查通過(guò)ASM建庫(kù)后,文件存儲(chǔ)的狀態(tài):

SQL>select file_name,tablespace_name from dba_data_files;

FILE_NAME                                         TABLESPACE_NAME

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

+ASMGROUP1/wwl/datafile/users.259.780215953        USERS

+ASMGROUP1/wwl/datafile/sysaux.257.780215951       SYSAUX

+ASMGROUP1/wwl/datafile/undotbs1.258.780215953     UNDOTBS1

+ASMGROUP1/wwl/datafile/system.256.780215951       SYSTEM

SQL>

我們由如上可以看出,現(xiàn)在數(shù)據(jù)都是存儲(chǔ)在ASM新建的+ASMGROUP1的組里面,并且文件名后面跟了一大串的數(shù)字,這是因?yàn)槲覀冊(cè)谛陆ū砜臻g的時(shí)候直接采用就是Oracle OMF規(guī)范來(lái)進(jìn)行創(chuàng)建的(OMF實(shí)際上是9i里面就已經(jīng)推出來(lái)的功能了),在ASM中創(chuàng)建表空間和添加數(shù)據(jù)文件我們就沒(méi)有必要指定數(shù)據(jù)文件的存放路徑了,當(dāng)然他跟db_create_file_dest這個(gè)參數(shù)是相關(guān)聯(lián)的。

如下通過(guò)OMF方式創(chuàng)建表空間和添加數(shù)據(jù)文件的方式,可以看到很方便,默認(rèn)大小就是100M,會(huì)自動(dòng)擴(kuò)展:

1、我們通過(guò)查看db_create_file_dest參數(shù),發(fā)現(xiàn)了數(shù)據(jù)文件默認(rèn)創(chuàng)建路徑是在+ASMGROUP1

SQL> show parameter db_create_file_dest

NAME                                 TYPE        VALUE

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

db_create_file_dest                  string      +ASMGROUP1

2、使用OMF特性來(lái)進(jìn)行表空間的創(chuàng)建

SQL> create tablespace asm;

Tablespace created.

SQL> alter tablespace asm add datafile;

Tablespace altered.

3、檢查表空間是否已創(chuàng)建好

通過(guò)如下,我們可以看到,表空間已經(jīng)創(chuàng)建成功,并且已經(jīng)開(kāi)啟了數(shù)據(jù)文件自動(dòng)擴(kuò)展功能。

SQL> selectFILE_NAME,tablespace_name,bytes/1024/1024,AUTOEXTENSIBLE,MAXBYTES/1024/1024from dba_data_files where TABLESPACE_NAME='ASM';

FILE_NAME                                          TABLESPACE_NAMEBYTES/1024/1024 AUT MAXBYTES/1024/1024

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

+ASMGROUP1/wwl/datafile/asm.270.780300769          ASM                         100 YES         32767.9844

+ASMGROUP1/wwl/datafile/asm.271.780300809          ASM                         100 YES         32767.9844

4、可以動(dòng)態(tài)的修改數(shù)據(jù)庫(kù)創(chuàng)建文件的位置

SQL> alter system set db_create_file_dest='/oracle/oradata/wwl';

System altered.

一、  ASM實(shí)例相關(guān)操作:

ASM實(shí)例的管理,啟動(dòng),關(guān)閉

ASM實(shí)例的啟動(dòng)和數(shù)據(jù)庫(kù)實(shí)例的啟動(dòng)有嚴(yán)格的先后關(guān)系,ASM啟動(dòng)一定早于數(shù)據(jù)庫(kù)實(shí)例,關(guān)閉一定晚于ASM實(shí)例,因?yàn)樗菙?shù)據(jù)庫(kù)數(shù)據(jù)文件存儲(chǔ)位置。如果ASM沒(méi)有起來(lái),起數(shù)據(jù)庫(kù)將會(huì)報(bào)ORA-17503;ORA-15077的錯(cuò)誤,錯(cuò)誤信息如下:

SQL>startup

ORA-01078:failure in processing system parameters

ORA-01565:error in identifying file '+ASMGROUP1/WWL/spfileWWL.ora'

ORA-17503:ksfdopn:2 Failed to open file +ASMGROUP1/WWL/spfileWWL.ora

ORA-15077:could not locate ASM instance serving a required diskgroup

SQL>

1.1  ASM啟動(dòng)的方法:

SQL>startup

ASMinstance started

TotalSystem Global Area   83886080 bytes

FixedSize                  1217836 bytes

VariableSize              57502420 bytes

ASMCache                  25165824 bytes

ASMdiskgroups mounted

SQL>select instance_name,status from v$instance;

INSTANCE_NAME    STATUS

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

+ASM             STARTED

SQL>

1.2  ASM關(guān)閉的方法  (必須先關(guān)閉數(shù)據(jù)庫(kù))

沒(méi)有關(guān)閉RDBMS實(shí)例關(guān)閉ASM將報(bào)錯(cuò)ORA-15097,提示已連接RDBMS實(shí)例,無(wú)法關(guān)閉ASM實(shí)例,

$ export Oracle_SID=+ASM

$ sqlplus / as sysdba

SQL> shutdown immediate

ORA-15097: cannot SHUTDOWNASM instance with connected RDBMS instance

關(guān)閉RDBMS實(shí)例狀態(tài)ASM是可以正常關(guān)閉的。

$export ORACLE_SID=WWL    ---先關(guān)閉在ASM上運(yùn)行的RDBMS實(shí)例

$sqlplus / as sysdba

SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL>

$export ORACLE_SID=+ASM   ---再關(guān)閉ASM實(shí)例

$ sqlplus / as sysdba

SQL> shutdown immediate

ASM diskgroups dismounted

ASM instance shutdown

SQL>

 

二、  ASM三種磁盤組及磁盤的添加和維護(hù)

1、ASM磁盤的添加及刪除

1.1   添加這個(gè)步驟所需的磁盤(/dev/sdd -- /dev/sdm  共10塊10G的盤)

1.2   通過(guò)root用戶查看下當(dāng)前有幾個(gè)ASM磁盤,磁盤狀態(tài),實(shí)例狀態(tài)

# oracleasm listdisks

VOL1

VOL2

# oracleasm querydisk VOL1

Disk"VOL1" is a valid ASM disk

# oracleasm querydisk VOL2

Disk"VOL2" is a valid ASM disk

# ls -l /dev/oracleasm/disks/*

brw-rw---- 1oracle dba 8, 17 Apr 12 05:30 /dev/oracleasm/disks/VOL1

brw-rw---- 1oracle dba 8, 33 Apr 12 05:30 /dev/oracleasm/disks/VOL2

# oracleasm status

Checking if ASMis loaded: yes

Checking if /dev/oracleasm is mounted: yes

     我們已知數(shù)據(jù)庫(kù)當(dāng)有兩塊通過(guò)ASMLiB已經(jīng)標(biāo)記了的磁盤,并且狀態(tài)是正常的

1.3   開(kāi)始通過(guò)ASMLib來(lái)標(biāo)記新的磁盤,用于后面的實(shí)驗(yàn):

l  報(bào)錯(cuò)了,很經(jīng)典,是由于沒(méi)有創(chuàng)建分區(qū)導(dǎo)致:

# /etc/init.d/oracleasm createdisk VOL3 /dev/sdd

Marking disk"VOL3" as an ASM disk: [FAILED]

l  先創(chuàng)建分區(qū)方法:fdisk /dev/sdd /n/p/1/回車/回車/w,將所有磁盤都創(chuàng)建分區(qū)。

# /etc/init.d/oracleasmcreatedisk VOL3 /dev/sdd1

Marking disk "VOL3" as anASM disk: [  OK  ]   ---可以看到,能正常創(chuàng)建

           # sh oracleasm   通過(guò)執(zhí)行腳本命令,新建10個(gè)磁盤已全部完成標(biāo)記

Marking disk "VOL4" as an ASM disk: [  OK  ]

Marking disk "VOL5" as an ASM disk: [  OK  ]

Marking disk "VOL6" as an ASM disk: [  OK  ]

Marking disk "VOL7" as an ASM disk: [  OK  ]

Marking disk "VOL8" as an ASM disk: [  OK  ]

Marking disk "VOL9" as an ASM disk: [  OK  ]

Marking disk "VOL10" as an ASM disk: [  OK  ]

Marking disk "VOL11" as an ASM disk: [  OK  ]

Marking disk "VOL12" as an ASM disk: [  OK  ]

1.4   為ASMGROUP1磁盤組添加刪除磁盤

l  查看磁盤組的狀態(tài)

SQL> selectGROUP_NUMBER,NAME,STATE,TYPE from v$asm_diskgroup;

GROUP_NUMBER   NAME      STATE       TYPE

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

1  ASMGROUP1  CONNECTED  NORMAL

           SQL> SELECT a.name GRPNAME,b.group_number GR_NUMBER,b.disk_numberDK_NUMBER,b.name ASMFILE,b.path,b.mount_status,b.state FROM v$asm_diskgroupa,v$asm_disk b;

GRPNAME    GR_NUMBER  DK_NUMBER ASMFILE                        PATH                      MOUNT_S STATE

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

ASMGROUP1  1    0ASMGROUP1_0000    /dev/oracleasm/disks/VOL1OPENED  NORMAL

ASMGROUP1 1   1ASMGROUP1_0001     /dev/oracleasm/disks/VOL2 OPENED  NORMAL

l  查看磁盤組ASMGROUP1中的成員

SQL> selectgroup_number,disk_number, failgroup,name,path from v$asm_disk where FAILGROUPlike 'ASMGROUP1%';

GROUP_NUMBERDISK_NUMBER FAILGROUP                     NAME                          PATH

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

          2           1 ASMGROUP1_0001                 ASMGROUP1_0001                 /dev/oracleasm/disks/VOL2

           2           0 ASMGROUP1_0000                 ASMGROUP1_0000                 /dev/oracleasm/disks/VOL1

SQL>

l  添加為ASMGROUP1添加磁盤

SQL> alterdiskgroup ASMGROUP1 add disk '/dev/oracleasm/disks/VOL10';

Diskgroupaltered.

l  我們可以看到已經(jīng)添加成功了

SQL>  select group_number,disk_number,failgroup,name,path from v$asm_disk where FAILGROUP like 'ASMGROUP1%';

GROUP_NUMBERDISK_NUMBER FAILGROUP                      NAME                           PATH

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

           2           2 ASMGROUP1_0002                 ASMGROUP1_0002                 /dev/oracleasm/disks/VOL10

           2           1 ASMGROUP1_0001                 ASMGROUP1_0001                 /dev/oracleasm/disks/VOL2

           2           0 ASMGROUP1_0000                 ASMGROUP1_0000                 /dev/oracleasm/disks/VOL1

2、ASM三種磁盤組的創(chuàng)建及刪除(High  Normal Extermal

2.1  創(chuàng)建High級(jí)別的ASM磁盤組,最少需要三塊磁盤來(lái)創(chuàng)建。

SQL> create diskgroup asmhigh high redundancy disk'/dev/oracleasm/disks/VOL3','/dev/oracleasm/disks/VOL4','/dev/oracleasm/disks/VOL5';

Diskgroupcreated.

2.2  創(chuàng)建Normal級(jí)別的ASM磁盤,最少需要兩個(gè)磁盤來(lái)創(chuàng)建。

SQL> creatediskgroup asmnormal normal redundancy disk'/dev/oracleasm/disks/VOL6','/dev/oracleasm/disks/VOL7';

Diskgroupcreated.

2.3  創(chuàng)建Extermal級(jí)別的ASM磁盤,最少需要一個(gè)磁盤來(lái)創(chuàng)建。

SQL> creatediskgroup asmexternal external redundancy disk '/dev/oracleasm/disks/VOL8';

Diskgroupcreated.

                                                                       

2.4  查看剛才創(chuàng)建的磁盤狀態(tài)

SQL> select name,state,type fromv$asm_diskgroup;

NAME            STATE       TYPE

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

ASMGROUP1       MOUNTED    NORMAL

ASMHIGH         MOUNTED     HIGH

ASMNORMAL      MOUNTED    NORMAL

ASMEXTERNAL     MOUNTED    EXTERN

2.5         為ASM磁盤組添加成員,在這里我們就以Normal磁盤組來(lái)進(jìn)行成員添加的例子:

SQL> alter diskgroup ASMNORMAL add disk'/dev/oracleasm/disks/VOL9';

Diskgroup altered.

SQL> select group_number,disk_number,failgroup,name,path from v$asm_disk where FAILGROUP like 'ASMNORMAL%';

GROUP_NUMBER DISK_NUMBER FAILGROUP                      NAME                           PATH

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

          4           2 ASMNORMAL_0002                 ASMNORMAL_0002                 /dev/oracleasm/disks/VOL9

          4           1 ASMNORMAL_0001                 ASMNORMAL_0001                 /dev/oracleasm/disks/VOL7

           4           0 ASMNORMAL_0000                 ASMNORMAL_0000                 /dev/oracleasm/disks/VOL6

SQL>

2.6         刪除磁盤組成員,在這里我們同樣以NORMAL磁盤組來(lái)進(jìn)行成員刪除的例子:

SQL> alter diskgroup ASMNORMAL drop disk ASMNORMAL_0002;

Diskgroup altered.

SQL> select group_number,disk_number, failgroup,name,path fromv$asm_disk where FAILGROUP like 'ASMNORMAL%';

GROUP_NUMBER DISK_NUMBER FAILGROUP                      NAME                           PATH

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

           4           1 ASMNORMAL_0001                 ASMNORMAL_0001                 /dev/oracleasm/disks/VOL7

           4           0 ASMNORMAL_0000                 ASMNORMAL_0000                 /dev/oracleasm/disks/VOL6

SQL>

三、  模擬磁盤故障

3.1      在AMSGROUP1(NORMAL類型)磁盤組中寫數(shù)據(jù)

SQL> selecttablespace_name,file_name,bytes/1024/1024 M from dba_data_files;

TABLESPACE_NAMEFILE_NAME                                              M

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

USERS          +ASMGROUP1/wwl/datafile/users.259.780215953            5

SYSAUX         +ASMGROUP1/wwl/datafile/sysaux.257.780215951         230

UNDOTBS1        +ASMGROUP1/wwl/datafile/undotbs1.258.78021595         25

                3

SYSTEM         +ASMGROUP1/wwl/datafile/system.256.780215951         480

ASM            +ASMGROUP1/wwl/datafile/asm.270.780300769            100

ASM             +ASMGROUP1/wwl/datafile/asm.271.780300809            100

6 rowsselected.

如上我們可以看到,我們所有的表空間均是放在ASMGROUP1中的,一會(huì)兒我們將對(duì)表空間寫如數(shù)據(jù),并刪除一磁盤。

3.2     我們查看下該表空間的默認(rèn)用戶

SQL> selectusername,default_tablespace from dba_users where DEFAULT_TABLESPACE='ASM';

USERNAME                       DEFAULT_TABLESPACE

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

WWL                            ASM

3.3     在ASM表空間寫入數(shù)據(jù)。

通過(guò)WWL用戶登錄到系統(tǒng)創(chuàng)建一張表,用來(lái)測(cè)試.

SQL> connwwl/wwl

Connected.

SQL> createtable wwl (id varchar(5),name varchar(10));

Table created.

SQL>  begin

  2  fori in 1..1000 loop

  3 insert into wwl values (15,'wwl15');

  4  endloop;

  5  end;

  6  /

PL/SQLprocedure successfully completed.

我們創(chuàng)建了一張wwl的表,并且插入了1000行數(shù)據(jù)

SQL> selectcount(*) from wwl;

  COUNT(*)

----------

      1000

3.4     模擬磁盤突然損壞

[root@wwl ~]#oracleasm deletedisk VOL2;

Clearing diskheader: done

Dropping disk:done

[root@wwl ~]#

仔細(xì)看下面,我們通過(guò)如上的命令刪除了VOL2后,現(xiàn)在只認(rèn)到一個(gè)磁盤了。

SQL> selectgroup_number,disk_number, failgroup,name,path from v$asm_disk where FAILGROUPlike 'ASMGROUP%';

GROUP_NUMBERDISK_NUMBER FAILGROUP                     NAME                          PATH

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

           2           0 ASMGROUP1_0000                 ASMGROUP1_0000                 /dev/oracleasm/disks/VOL1

SQL>

但是我們的實(shí)例和我們剛才創(chuàng)建的表數(shù)據(jù)都沒(méi)有丟失,這就是冗余的好處,NORMAL模式它是用犧牲一塊磁盤的空間來(lái)保障數(shù)據(jù)的安全性的,hight模式是至少犧牲一塊硬盤來(lái)保障數(shù)據(jù)的安全性。

SQL> selectcount(*) from wwl;

  COUNT(*)

----------

      1000

3.5      而且業(yè)務(wù)是不會(huì)中斷的,但是在日志和硬盤指示燈上會(huì)有告警:

ASM日志信息如下:

WARNING:offlining disk 2.3916240783 (ASMGROUP1_0002) with mask 0x1

NOTE: PSTupdate: grp = 2, dsk = 2, mode = 0x6

NOTE: cacheclosing disk 2 of grp 2: ASMGROUP1_0002

NOTE: PSTupdate: grp = 2

NOTE: erasingheader on grp 2 disk ASMGROUP1_0002

3.6     這個(gè)時(shí)候我們需要盡快更換新的硬盤,因?yàn)榘l(fā)生這問(wèn)題之后如果另外一個(gè)磁盤再損壞的話那將是不可彌補(bǔ)的數(shù)據(jù)丟失,更換新硬盤后,數(shù)據(jù)將會(huì)再次進(jìn)行同步。

3.7      

四、  ASM別名管理

別名就是外號(hào),比如說(shuō)當(dāng)系統(tǒng)自動(dòng)產(chǎn)生的名稱太過(guò)復(fù)雜不怎么好記,DBA可以通過(guò)別名,為它創(chuàng)建一個(gè)簡(jiǎn)單化的名稱,而又不會(huì)對(duì)其現(xiàn)有名稱造成任何影響。ASM中創(chuàng)建別名是通過(guò)alter diskgroup的alias子句實(shí)現(xiàn),支持增加/修改/刪除等多項(xiàng)操作。V$ASM_ALIAS視圖中可以查詢到當(dāng)前實(shí)例中創(chuàng)建的別名。

4.1    添加別名

SQL> alter diskgroup ASMGROUP1 add alias'+ASMGROUP1/wwl/datafile/asm01.dbf' for'+ASMGROUP1/wwl/datafile/asm.270.780300769';

Diskgroup altered.

4.2    修改別名

SQL> alter diskgroup ASMGROUP1 renamealias '+ASMGROUP1/wwl/datafile/asm01.dbf' for'+ASMGROUP1/wwl/datafile/asm.270.780300769';

Diskgroup altered.

4.3    刪除別名

SQL> alter diskgroup ASMGROUP1 dropalias '+ASMGROUP1/wwl/datafile/asm01.dbf' for'+ASMGROUP1/wwl/datafile/asm.270.780300769';

Diskgroup altered.

   無(wú)論是添加、刪除或是修改別名,對(duì)原文件路徑均不會(huì)有影響。

五、  目錄及目錄文件管理

5.1   創(chuàng)建目錄

SQL> alter diskgroup ASMGROUP1 add directory '+ASMGROUP1/WWL1';

Diskgroupaltered.

5.2   修改目錄

SQL> alterdiskgroup ASMGROUP1 rename directory '+ASMGROUP1/WWL1' to '+ASMGROUP1/WWL2';

Diskgroupaltered.

5.3   刪除目錄

SQL> alter diskgroup ASMGROUP1 drop directory '+ASMGROUP1/WWL2';

Diskgroupaltered.

六、  手動(dòng)平衡磁盤組

一般情況下ASM都會(huì)自動(dòng)對(duì)其下的磁盤組進(jìn)行平衡,不過(guò)ORACLE也提供了手動(dòng)平衡磁盤組的方式,通過(guò)alter diskgroup ... power 語(yǔ)句。前面提到過(guò)磁盤組的平衡度有0到11多個(gè)級(jí)別,默認(rèn)是按照ASM_POWER_LIMIT初始化參數(shù)中設(shè)置的值,手動(dòng)平衡的話,設(shè)置的平衡度可以與初始化參數(shù)中并不相同,例如,設(shè)置磁盤組平衡度為5,語(yǔ)句如下:

     SQL>alter diskgroup asmgroup1 rebalance power 5;

Diskgroup altered.

七、  通過(guò)ASMCMD工具管理ASM

[oracle@wwl ~]$ which asmcmd

/oracle/orahome/10.2.0/db_1/bin/asmcmd

[oracle@wwl ~]$ cd/oracle/orahome/10.2.0/db_1/bin/

ASMCMD> ls 

ASMEXTERNAL/

ASMGROUP1/

ASMHIGH/

ASMNORMAL/

ASMCMD>

ASMCMD> help

       asmcmd [-p] [command]

       The environment variables ORACLE_HOME and ORACLE_SID determine the

       instance to which the program connects, and ASMCMD establishes a

       bequeath connection to it, in the same manner as a SQLPLUS / AS

       SYSDBA.  The user must be a memberof the SYSDBA group.

       Specifying the -p option allows the current directory to be displayed

       in the command prompt, like so:

       ASMCMD [+DATAFILE/ORCL/CONTROLFILE] >

       [command] specifies one of the following commands, along with its

       parameters.

       Type "help [command]" to get help on a specific ASMCMDcommand.

       commands:

       --------

cd:------------------------------------------進(jìn)入下級(jí)目錄或進(jìn)入所需要的目錄

du:------------------------------------------顯示指定的ASM目錄下ASM文件占用的所有磁盤空間

find:-----------------------------------------查找所需的文件

help:-----------------------------------------顯示幫助信息

ls:---------------------------------------------列出ASM目錄下的內(nèi)容及其屬性

lsct:-------------------------------------------列出當(dāng)前ASM客戶端的信息

lsdg:-------------------------------------------列出所有磁盤組及其屬性

mkalias:--------------------------------------為系統(tǒng)生成的文件名創(chuàng)建別名

mkdir:----------------------------------------創(chuàng)建新目錄

pwd:------------------------------------------顯示當(dāng)前目錄路徑

rm:--------------------------------------------刪除ASM目錄下的某個(gè)文件或文件夾

rmalias:--------------------------------------刪除別名

ASMCMD>

要查看某個(gè)命令的相信通過(guò)在命令前添加help來(lái)查看,如下:

ASMCMD> help cd

       cd dir>

       Change the current directory to dir>.

ASMCMD> help du

       du [-H] [dir]

       Display total space used for files located recursively under [dir],

       similar to "du -s" under UNIX; default is the currentdirectory.  Two

       values are returned, both in units of megabytes.  The first value does

       not take into account mirroring of the diskgroup while the second does.

       For instance, if a file occupies 100 MB of space, then it actually

       takes up 200 MB of space on a normal redundancy diskgroup and 300 MB

       of space on a high redundancy diskgroup. 

       [dir] can also contain wildcards.

       The -H flag suppresses the column headers from the output.

ASMCMD> help find

       find [-t type>] dir> pattern>

       Find the absolute paths of all occurrences of pattern> underdir>.

       pattern> can be a directory and may include wildcards.  dir> may also

       include wildcards.  Note thatdirectory names in the results have the

       "/" suffix to clarify their identity.

       The -t option allows searching by file type.  For instance, one can

       search for all the control files at once.  type> must be one of the

       valid values in V$ASM_FILE.TYPE.

ASMCMD>

 

八、  oracleasm工具的使用和語(yǔ)法介紹

[root@wwl ~]# oracleasm --help

Usage: oracleasm[--exec-path=exec_path>] command> [ args> ]

      oracleasm --exec-path

      oracleasm -h

      oracleasm -V

The basic oracleasm commands are:

   configure        Configure the OracleLinux ASMLib driver

   init             Load andinitialize the ASMLib driver

   exit             Stop the ASMLibdriver

   scandisks        Scan the systemfor Oracle ASMLib disks

   status           Display thestatus of the Oracle ASMLib driver

   listdisks        List known OracleASMLib disks

   querydisk        Determine if adisk belongs to Oracle ASMlib

   createdisk       Allocate a devicefor Oracle ASMLib use

   deletedisk       Return a deviceto the operating system

   renamedisk       Change the labelof an Oracle ASMlib disk

   update-driver    Download thelatest ASMLib driver

[root@wwl ~]#

九、  ASM相關(guān)視圖(V$)和數(shù)據(jù)字典(X$)

ASM由于其高度的封裝性,使得我們很難知道窺探其內(nèi)部的原理??梢酝ㄟ^(guò)一下視圖和數(shù)據(jù)字典來(lái)來(lái)查看ASM 的信息。

相關(guān)視圖和數(shù)據(jù)字典

View Name

X$ Table name

Description

V$ASM_DISKGROUP

X$KFGRP

performs  disk discovery and lists diskgroups

V$ASM_DISKGROUP_STAT

X$KFGRP_STAT

diskgroup  stats without disk discovery

V$ASM_DISK

X$KFDSK,  X$KFKID

performs  disk discovery, lists disks and their usage metrics

V$ASM_DISK_STAT

X$KFDSK_STAT,  X$KFKID

lists  disks and their usage metrics

V$ASM_FILE

X$KFFIL

lists  ASM files, including metadata/asmdisk files

V$ASM_ALIAS

X$KFALS

lists  ASM aliases, files and directories

V$ASM_TEMPLATE

X$KFTMTA

lists  the available templates and their properties

V$ASM_CLIENT

X$KFNCL

lists  DB instances connected to ASM

V$ASM_OPERATION

X$KFGMG

lists  rebalancing operations

N.A.

X$KFKLIB

available  libraries, includes asmlib path

N.A.

X$KFDPARTNER

lists  disk-to-partner relationships

N.A.

X$KFFXP

extent  map table for all ASM files

N.A.

X$KFDAT

extent  list for all ASM disks

N.A.

X$KFBH

describes  the ASM cache (buffer cache of ASM in blocks of 4K (_asm_blksize)

N.A.

X$KFCCE

a  linked list of ASM blocks. to be further investigated

This list isobtained querying v$fixed_view_definitionwhere view_name like '%ASM%' whichexposes all the v$ and gv$ views with theirdefinition. Fixed tables are exposedby querying v$fixed_table where name like'x$kf%' (ASM fixed tables use the'X$KF' prefix).

SQL>select* fromv$fixed_view_definition whereview_name like '%ASM%';

SQL>select* from sys.v$fixed_tablewhere name like 'X$KF%' ;

十、  ASM常見(jiàn)的錯(cuò)誤處理

錯(cuò)誤一、

ORA-15097:cannotSHUTDOWN ASM instance with connected RDBMS instance

解決辦法:

發(fā)生這個(gè)問(wèn)題,唯一的一個(gè)原因就是Oracle實(shí)例沒(méi)有關(guān)閉,或ORACLE實(shí)例正在關(guān)閉或處于掛起狀態(tài),導(dǎo)致ASM實(shí)例無(wú)法關(guān)閉,解決辦法,關(guān)閉RDBMS實(shí)例后再關(guān)閉ASM實(shí)例。

錯(cuò)誤二、

[root@wwl ~]# /etc/init.d/oracleasm createdisk VOL3 /dev/sdd

Marking disk "VOL3" as an ASM disk: [FAILED]

   報(bào)這個(gè)錯(cuò)的原因在于磁盤為分區(qū)導(dǎo)致。在創(chuàng)建ASM的之前必須線將磁盤分區(qū),但不能格式化,后執(zhí)行創(chuàng)建就不會(huì)有問(wèn)題了。

十一、       ASM 擴(kuò)展性

最多支持63個(gè)磁盤組;     最多支持10000個(gè)磁盤;     最大支持4pb/磁盤;     最大支持40     exabyte/ASM存儲(chǔ); 最大支持1百W個(gè)文件/磁盤組; 外部冗余時(shí)單個(gè)文件最大35tb,標(biāo)準(zhǔn)冗余時(shí)單個(gè)文件最大5.8tb,高冗余度時(shí)單個(gè)文件最大3.9tb

十二、       ASM其它信息請(qǐng)參考如下連接:

http://docs.oracle.com/cd/E11882_01/server.112/e16102/asmfiles.htm

您可能感興趣的文章:
  • Oracle ASM數(shù)據(jù)庫(kù)故障數(shù)據(jù)恢復(fù)解決方案
  • oracle中fdisk導(dǎo)致的ASM磁盤數(shù)據(jù)丟失的解決方法
  • Oracle ASM故障數(shù)據(jù)恢復(fù)解決方案

標(biāo)簽:宜春 六安 淮南 孝感 海北 泰安 酒泉 葫蘆島

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《探索ORACLE之ASM概念(完整版)》,本文關(guān)鍵詞  探索,ORACLE,之,ASM,概念,完,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《探索ORACLE之ASM概念(完整版)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于探索ORACLE之ASM概念(完整版)的相關(guān)信息資訊供網(wǎng)民參考!
  • 企业400电话

    智能AI客服机器人
    15000

    在线订购

    合计11份范本:公司章程+合伙协议+出资协议+合作协议+股权转让协议+增资扩股协议+股权激励+股东会决议+董事会决议

    推薦文章