--========================
-- 創(chuàng)建 ASM 實(shí)例及ASM數(shù)據(jù)庫
--========================
?
一、 ASM 相關(guān)概念
??? 1. 什么是 ASM(Auto Storage Management)
??????? 簡稱自動存儲管理,是一種用于管理磁盤的工具
??????? 能夠在多個物理設(shè)備之間實(shí)現(xiàn)條帶化、鏡像數(shù)據(jù)文件、恢復(fù)文件等
??????? 文件按分配單元 AUs ( allocation units ) 平衡分布在磁盤組的所有磁盤中, ASM 使用索引技術(shù)來跟蹤每個 AUs 的位置
??????? 支持聯(lián)機(jī)磁盤的動態(tài)增加和減少,當(dāng)磁盤發(fā)生變化后, AUs 會自動重新實(shí)現(xiàn)動態(tài)分布
??????? 支持 RAC 集群技術(shù),每一節(jié)點(diǎn)上運(yùn)行一個 ASM 實(shí)例,各 ASM 實(shí)例間能實(shí)現(xiàn)點(diǎn)對點(diǎn)通訊
??????? 是一個純軟件級別的實(shí)現(xiàn)方式,第三方 RAID 工作在卷層次上,使用統(tǒng)一條帶大小, ASM 可以工作在文件層次級別,不同文件可以使用
??????????? 不同的條帶大小
???????
??? 2.ASM 的優(yōu)點(diǎn)
??????? 磁盤增加:增加磁盤變得非常容易。無需停機(jī)時間,并且文件區(qū)域自動重新分配。
??????? I / O 分配: I / O 自動分布在所有可用的磁盤上,無需人工干預(yù),從而減少了熱點(diǎn)出現(xiàn)的可能性。 ?
??????? 帶區(qū)寬度:在重做日志文件中分段可以細(xì)分( K ,以獲得更快的傳輸速率),對于數(shù)據(jù)文件,帶區(qū)則略大一些( MB ,以一次性
??????????? 傳輸大量的數(shù)據(jù)塊)。
??????? 緩沖: ASM 文件系統(tǒng)不進(jìn)行緩沖,直接進(jìn)行輸入 / 輸出。
??????? 鏡像:如果硬件鏡像不可用,則可以容易地建立軟件鏡像。 ??
??????? 核心化的異步 I / O :實(shí)現(xiàn)核心化的異步 I / O 無需特殊的設(shè)置,并且無需使用原始或第三方的文件系統(tǒng)(如 Veritas Quick I / O )
???????????????????
??? 3.Oracle 常用數(shù)據(jù)文件的 RAID 級別
??????? SYSTEM 、 UNDO 表空間通常置于 RAID 1 卷上
??????? 聯(lián)機(jī)重做日志通常置于 RAID 0 卷上
??????? 控制文件通常置于 RAID 0 + 1 卷上
??????? 數(shù)據(jù)文件通常置于 RAID 5 卷上
???????
??? 4.ASM 體系結(jié)構(gòu) ( 主要由 ASM 實(shí)例及 ASM 磁盤組組成 )
??????? ASM 的使用需要創(chuàng)建一個 ASM 實(shí)例,用于管理 ASM 磁盤組
??????? ASM 磁盤組由 ASM 磁盤組成,可以包含一個或多個 ASM 磁盤
??????? ASM 磁盤可以是實(shí)際的磁盤,也可以是磁盤的某個分區(qū),或 LVM 管理的邏輯卷,但必須是未格式化的原始設(shè)備
??????? ASM 磁盤組的大小為該組內(nèi) ASM 磁盤大小的總和,可使用的容量則根據(jù)容錯級別而有不同的可用大小
???????
??? 5.ASM 實(shí)例及 RDBMS 實(shí)例
??????? ASM 實(shí)例類似于普通的數(shù)據(jù)庫實(shí)例 ( RDBMS ) ,同樣由 SGA 和一堆后臺進(jìn)程組成 , 對大多數(shù)系統(tǒng)而言, SGA 只需 64 MB 即可
??????? ASM 實(shí)例中的 LargePool 用于存放 Extent Map , 可以根據(jù)數(shù)據(jù)庫的大小來計(jì)算 LargePool 的大小 , 通常 100GB 大小需要 1MB 存放 Extent Map
??????? 普通的 RDBMS 實(shí)例會定位數(shù)據(jù)文件并打開其數(shù)據(jù)文件,而在使用 ASM 存儲的數(shù)據(jù)庫中,該工作由 ASM 實(shí)例接管,即 ASM 實(shí)例用于定位和
??????????? 管理 ASM 磁盤,磁盤組。
??????? ASM 實(shí)例擁有類似于普通 RDBMS 實(shí)例的后臺進(jìn)程,如 SMON , PMON , LGWR , DBWR , CKPT 等,還增添了兩個新進(jìn)程 , 一類是 RBAL , 一類是 ARBn
??????????? RBAL : 用于協(xié)調(diào)和管理磁盤組之間的動態(tài)平衡
??????????? ARBn : 可以為多個,用于完成 AU 的移動
??????? ASM 實(shí)例僅僅是定位管理 ASM 磁盤,不能加載或打開數(shù)據(jù)庫,因此也無法讀取數(shù)據(jù)字典信息
??????? ASM 實(shí)例通常有個參數(shù),只能使用口令文件或操作系統(tǒng)身份驗(yàn)證作為 sysdba 或 sysoper 來啟動或關(guān)閉該實(shí)例。
??????????? 關(guān)于 sysdba 或 sysoper 區(qū)別請參考: system sys ,sysoper sysdba 的 區(qū) 別
?
??????? 一個 ASM 實(shí)例可以為多個 RDBMS 提供服務(wù),可以在一臺主機(jī)上創(chuàng)建多個 ASM 實(shí)例,但通常一臺主機(jī)上使用一個 ASM 實(shí)例
??????? 如果一個實(shí)例服務(wù)于多個 RDBMS ,建議將 ASM 的 ASM_HOME 與 DB 的 ORACLE_HOME 分開,便于日后的升級與維護(hù)
??????? ASM 磁盤組的創(chuàng)建與配置在 ASM 實(shí)例啟動之后
???????
使用 ASM 磁盤的 RDBMS 實(shí)例與普通的 RDBMS 實(shí)例相同,但多出了兩個后臺進(jìn)程, RBAL , ASMB 。
??????????? ASMB 借助某個服務(wù)器進(jìn)程如 oracle + ASM1 建立普通 RDBMS 實(shí)例到 ASM 實(shí)例的會話,并傳遞磁盤文件的相關(guān)信息
??????????? RBAL 打開通過 ASM 實(shí)例定位的 ASM 磁盤
??????? 注意: ASM 實(shí)例并不代替 RDBMS 實(shí)例來讀取或?qū)懭霐?shù)據(jù)文件,數(shù)據(jù)是直接在 ASM 磁盤和 RDBMS 實(shí)例傳遞, ASM 實(shí)例僅用于定位數(shù)據(jù)文件
??????????? 所在的 asm 磁盤,盤區(qū)以及所需的相關(guān)信息。假定新增加數(shù)據(jù)文件,則 RDBMS 告知 ASM 實(shí)例要創(chuàng)建數(shù)據(jù)文件, ASM 實(shí)例則分配盤區(qū)
??????????? ( extent ) ,并創(chuàng)建盤區(qū)映射地址返回給 RDBMS 實(shí)例, RDBMS 則將數(shù)據(jù)直接寫入到磁盤組。
???????????????
??? 6.ASM 實(shí)例中存儲的文件類型
??????? 控制文件 ??????? 參數(shù)文件 ??????? 聯(lián)機(jī)日志文件 ??????? 歸檔日志文件 ??????? 數(shù)據(jù)文件 ??????? 臨時文件
??????? RMAN 備份集、映像副本 ??????? 控制文件備份集 ????? datapump 轉(zhuǎn)儲文件、 Change Tracing file
???????
二、創(chuàng)建 ASM 實(shí)例 ( 下面基于 VMware + RHEL 5.4 + Oracle 10g R2 演示 )
??? 1. 安裝 ASM 包
??????? 使用 ASM 實(shí)例,需要到 Oracle 官方網(wǎng)站下載所需的 ASM 包。下載路徑: ASMLib 下 載
??????? 注意下載支持該內(nèi)核的包,分為兩部分,一是 Library and Tools ,二是 Drivers for kernel
??????? 如本人的 Linux 的內(nèi)核為:
??????????? [root@oradb ~]# uname - rm
??????????? ? 2.6.18 - 164.el5 i686
??????? 則下載對應(yīng)的包為:
??????????? 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
??????? 使用下面類似的方式來安裝這些包,關(guān)于 RPM 的使用請參考: RPM 使用簡介
??????????? [root@oradb asm]# rpm - Uvh oracleasm - support - 2.1.3 - 1.el5 . i386 . rpm
??????? 驗(yàn)證安裝的包
??????????? [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 服務(wù) ( Cluster Synchronization Services )
??????? 用于同步 ASM 實(shí)例與 RDBMS 實(shí)例
??????????? 使用 root 帳戶進(jìn)行配置 , 配置程序位于 $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. 創(chuàng)建 ASM 參數(shù)文件 ( 使用 VI 或 VIM )
??????? [oracle@oradb dbs]$ cat / u01 / oracle / 10g / dbs / init + ASM . ora
??????? *. asm_diskstring = '' ????????????????????????????????????? # 為空表示可以搜索任意的 ASM 磁盤
??????? *. background_dump_dest = '/u01/oracle/admin/+ASM/bdump' ??? # 后臺進(jìn)程存放位置
??????? *. core_dump_dest = '/u01/oracle/admin/+ASM/cdump' ????????? # 核心進(jìn)程存放位置
??????? *. user_dump_dest = '/u01/oracle/admin/+ASM/udump' ????????? # 用戶進(jìn)程存放位置
??????? *. instance_type = 'ASM' ??????????????????????????????????? # 實(shí)例類型,普通實(shí)例默認(rèn)則為 RDBMS
??????? *. instance_name = '+ASM' ?????????????????????????????????? # 實(shí)例名字
??????? *. large_pool_size = 12M ??????????????????????????????????? # 為實(shí)例分配 large_pool 的大小
??????? *. remote_login_passwordfile = 'SHARED' ??? ???????????????? # 登陸認(rèn)證方式
??????? *. asm_power_limit = 1 ????????????????????????????????????? # 控制均衡操作的資源,缺省為
???????????????
??? 4. 創(chuàng)建 ASM 后臺進(jìn)程目錄,參照參數(shù)文件中的配置來創(chuàng)建 ??
??????? [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. 創(chuàng)建密碼文件及 spfile 參數(shù)文件
??????? [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. 創(chuàng)建 ASM 磁盤及配置 ASMlib 驅(qū)動
??????? 在 Vmware 分配幾個空閑的磁盤用于創(chuàng)建 ASM 磁盤,建議使用不同的磁盤控制器
??????? 下面使用個磁盤來組建 ASM 磁盤組 , 分別為 sdd , sde , sdf , sdg
??????? 分別對個磁盤進(jìn)行分區(qū) , 列出 sdd 的分區(qū)樣例,其余如法炮制
??????????? [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. ?????
???????
??????? 創(chuàng)建 ASM 磁盤 ( 三種方法 )
??? ??? ?? a. 配置裸設(shè)備映射,修改 /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 ?????? -- 查看添加的內(nèi)容
??????????? 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 服務(wù)
??????????? 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] ? -- 修改屬主,否則創(chuàng)建磁盤組時提示權(quán)限不夠
?
??????? ? b . 也可以采用下面的方式來增加磁盤,即直接修改 / etc / sysconfig / rawdevices ? ( root 帳戶 )
??????????? [root@oradb ~]# vim / etc / sysconfig / rawdevices
??????????? [root@oradb ~]# cat / etc / sysconfig / rawdevices ? -- 查看增加的內(nèi)容為 raw3,raw4
??????????? / dev / raw / raw3 / dev / sdf1
??????????? / dev / raw / raw4 / dev / sdg1
???????????
??????????? [root@oradb ~]# chown oracle : dba / dev / raw / raw [3-4] ? -- 修改屬主,否則創(chuàng)建磁盤組時提示權(quán)限不夠
??????????? [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
???????????
??????????? 重啟裸設(shè)備服務(wù)
??????????? [root@oradb ~]# / sbin / service rawdevices restart
??????????? Assigning devices :
??????????????????? ?? / dev / raw / raw3 ? --> ?? /dev/sdf1
??????????? / dev / raw / raw3 : ? bound to major 8 , minor 81
??????????????????? ?? / dev / raw / raw4 ? --> ?? /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/raw/raw1' , '/dev/raw/raw2' ; ? -- 創(chuàng)建磁盤組 DG1
?
??????????? SQL > select * from v$fixed_table where name like '%ASM%' ; -- 查看和 asm 相關(guān)的視圖
???????????
??????????? SQL > select name , allocation_unit_size , state , type ,
??????????? ? 2 ? free_mb , required_mirror_free_mb req_mi_fr_mb , usable_file_mb
??????????? ? 3 ? from v$asm_diskgroup ;
?
??????????? NAME ??????????? ALLOCATION_UNIT_SIZE STATE ?????? TYPE ????? FREE_MB REQ_MI_FR_MB USABLE_FILE_MB
??????????? --------------- -------------------- ----------- ------ ---------- ------------ --------------
??????????? DG1 ????????????????????????? 1048576 MOUNTED ???? NORMAL ??????? 296 ??????????? 0 ??????????? 148
?
??????????? SQL > create diskgroup DG2 normal redundancy disk '/dev/raw/raw3' , '/dev/raw/raw4' ; ?? -- 創(chuàng)建磁盤組 DG2
?
??????????? SQL > select name , state , free_mb , required_mirror_free_mb , usable_file_mb ?? -- 查看磁盤組的狀態(tài)及信息
??????????? ? 2 ? from v$asm_diskgroup ;
?
??????????? NAME ??????????? STATE ????????? FREE_MB REQUIRED_MIRROR_FREE_MB USABLE_FILE_MB
??????????? --------------- ----------- ---------- ----------------------- --------------
??????????? DG1 ???????????? MOUNTED ????? ?????? 296 ?????????????????????? 0 ??????????? 148
??????????? DG2 ???????????? MOUNTED ??????????? 296 ?????????????????????? 0 ??????????? 148
???????????
??????????? SQL > select disk_number , total_mb , free_mb from v$asm_disk ;
?
??????????? DISK_NUMBER ?? TOTAL_MB ??? FREE_MB
??????????? ----------- ---------- ----------
??????????????????? ? 1 ??????? 199 ??????? 148
??????????????????? ? 0 ??????? 199 ??????? 148
??????????????????? ? 1 ??????? 199 ??????? 148
??????????????????? ? 0 ??????? 199 ??????? 148 ??
???????????
??????????? 重新啟動 Linux 主機(jī)后
??????????? SQL > startup ??? -- 重新啟動 ASM 實(shí)例,收到了磁盤組 insufficient 信息
??????????? ASM instance started
??????????? ORA - 15032 : not all alterations performed
??????????? ORA - 15063 : ASM discovered an insufficient number of disks for diskgroup "DG2"
??????????? ORA - 15063 : ASM discovered an insufficient number of disks for diskgroup "DG1" ??????????
???????????????????????
??????????? SQL > ho ls - hlt / dev / raw ??????? # LINUX 主機(jī)重新啟動之后屬主性質(zhì)已發(fā)生變化
??????????? total 0
??????????? crw ------- 1 root root 162, 4 Nov 10 20:28 raw4
??????????? crw ------- 1 root root 162, 3 Nov 10 20:28 raw3
??????????? crw ------- 1 root root 162, 2 Nov 10 20:28 raw2
??????????? crw ------- 1 root root 162, 1 Nov 10 20:28 raw1 ????
?
??????????? 原因:原始設(shè)備在引導(dǎo)時會重新映射。默認(rèn)情況下,在引導(dǎo)時原始設(shè)備的擁有者將更改為 root 用戶
??????????? 將下面的內(nèi)容增加到 / etc / rc . local 文件 ( root 帳戶 ) ,重新啟動主機(jī),使得屬主變?yōu)? oracle ,則不再出現(xiàn)類似的提示
??????????????? chown oracle : dba / dev / raw / raw1
??????????????? chown oracle : dba / dev / raw / raw2
??????????????? chown oracle : dba / dev / raw / raw3
??????????????? chown oracle : dba / dev / raw / raw4
??????????????? chmod 660 / dev / raw / raw1
??????????????? chmod 660 / dev / raw / raw2
??????????????? chmod 660 / dev / raw / raw3
??????????????? chmod 660 / dev / raw / raw4 ????????
???????????
??????????? SQL > drop diskgroup dg1 ; ?? -- 將剛才創(chuàng)建的兩個磁盤組刪除
???????????
??????????? SQL > drop diskgroup dg2 ;
???????????
??????????? ??? 使用 root 帳戶清除 /etc/udev/rules.d/60-raw.rules /etc/sysconfig/rawdevices ? 以及 /etc/rc.local 剛剛增加的記錄
??????????????? 便于下面使用 asmlib 來創(chuàng)建 asm 磁盤
???????????
??????? ? c . 使用 root 帳戶配置 ASMLib 驅(qū)動及創(chuàng)建 ASM 磁盤, Oracle 建議使用 ASMLIB 驅(qū)動來配置 ASM 磁盤
??????????????? [root@oradb ~]# / 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 ? ] ??????
???????????????
??????????????? -- 注意下面創(chuàng)建磁盤前本人重新對磁盤分過區(qū)
??????????????? [root@oradb ~]# ls / dev / oracleasm / disks
??????????????? [root@oradb ~]# / etc / init . d / oracleasm createdisk VOL1 / dev / sdd1
??????????????? Marking disk "VOL1" as an ASM disk : [ ? OK ? ]
??????????????? [root@oradb ~]# / etc / init . d / oracleasm createdisk VOL2 / dev / sdd2
??????????????? Marking disk "VOL2" as an ASM disk : [ ? OK ? ]
??????????????? [root@oradb ~]# / etc / init . d / oracleasm createdisk VOL3 / dev / sde1
??????????????? Marking disk "VOL3" as an ASM disk : [ ? OK ? ]
??????????????? [root@oradb ~]# / etc / init . d / oracleasm createdisk VOL4 / dev / sde2
??????????????? Marking disk "VOL4" as an ASM disk : [ ? OK ? ]
??????????????? [root@oradb ~]# / etc / init . d / oracleasm listdisks
??????????????? VOL1
??????????????? VOL2
??????????????? VOL3
??????????????? VOL4
??????????????? [root@oradb ~]# su - oracle
??????????????? [oracle@oradb ~]$ export ORACLE_SID =+ ASM
??????????????? [oracle@oradb ~]$ sqlplus / nolog
??????????????? SQL > conn / as sysdba
???????????
??????????????? SQL > startup
??????????????? ASM instance started
?
??????????????? ORA - 15110 : no diskgroups mounted
?
??????????????? SQL > create diskgroup DG1 normal redundancy
??????????????? ? 2 ? failgroup FG1 disk '/dev/oracleasm/disks/VOL1' name VOL1
??????????????? ? 3 ? failgroup FG2 disk '/dev/oracleasm/disks/VOL2' name VOL2 ;
??????????????? create diskgroup DG1 normal redundancy
??????????????? *
??????????????? ERROR at line 1 :
??????????????? ORA - 15018 : diskgroup cannot be created ??? -- 下面提示磁盤路徑未在 discovery set 中設(shè)置
??????????????? ORA - 15031 : disk specification '/dev/oracleasm/disks/VOL2' matches no disks ?
??????????????? ORA - 15014 : location '/dev/oracleasm/disks/VOL2' is not in the discovery set
??????????????? ORA - 15031 : disk specification '/dev/oracleasm/disks/VOL1' matches no disks
??????????????? ORA - 15014 : location '/dev/oracleasm/disks/VOL1' is not in the discovery set
?
??????????????? SQL > show parameter asm_diskstring
?
??????????????? NAME ???????????????????????????????? TYPE ??????? VALUE
??????????????? ------------------------------------ ----------- ------------------------------
??????????????? asm_diskstring ?????????????????????? string
???????????????
??????????????? SQL > alter system set asm_diskstring = '/dev/oracleasm/disks/VOL*' ;
?
??????????????? SQL > create diskgroup DG1 normal redundancy ???? -- 設(shè)置 asm_diskstring 后重新創(chuàng)建磁盤 DG1 成功
??????????????? ? 2 ? failgroup FG1 disk '/dev/oracleasm/disks/VOL1' name VOL1
??????????????? ? 3 ? failgroup FG2 disk '/dev/oracleasm/disks/VOL2' name VOL2 ;
???????????????????
??????????????? SQL > select name , state , free_mb , required_mirror_free_mb , usable_file_mb
??????????????? ? 2 ? from v$asm_diskgroup ;
?
??????????????? NAME ??????????? STATE ????????? FREE_MB REQUIRED_MIRROR_FREE_MB USABLE_FILE_MB
??????????????? --------------- ----------- ---------- ----------------------- --------------
??????????????? DG1 ????? ??????? MOUNTED ?????????? 2964 ?????????????????????? 0 ?????????? 1482 ??????????
???????????
??? 8. 創(chuàng)建 ASM 數(shù)據(jù)庫
??????? 使用 dbca 工具根據(jù)提示來創(chuàng)建使用 ASM 存儲的數(shù)據(jù)庫
??????? 創(chuàng)建使用 ASM 存儲的數(shù)據(jù)庫完畢之后,對于 ASM 數(shù)據(jù)庫啟動應(yīng)首先保證 ASM 實(shí)例先被啟動,因?yàn)? RDBMS 是 ASM 實(shí)例服務(wù)的一個客戶端
??????? 接下來再來啟動 RDBMS
???????
??????? -- 首先啟動 asm 實(shí)例
??????????? export ORACLE_SID =+ ASM
??????????? sqlplus / as sysdba
??????????? startup
??????????? exit
???????????
??????? -- 接下來啟動 rdbms 數(shù)據(jù)庫
??????????? export ORACLE_SID = orcl
??????????? sqlplus / as sysdba
??????????? startup
???????
三、創(chuàng)建 ASM 實(shí)例時的常見故障
?
??? 1. 創(chuàng)建磁盤時出現(xiàn)錯誤可以查看 asm 日志
??????? tail -f /var/log/oracleasm ?????
?
??? 2. 啟動 asm 實(shí)例時出現(xiàn) ORA-29701 錯誤
??????? ORA-29701: unable to connect to Cluster Manager
??????? 首次需要啟用 css 服務(wù),使用 root 帳戶 , 運(yùn)行 $ORACLE_HOME/bin/localconfig add
???????
??????? 如果下次啟動實(shí)例的時候仍然碰到如下報(bào)錯:
??????? ORA-29701: unable to connect to Cluster Manager
??????? 那么檢查 /etc/inittab 文件,看看是否有下面這行
??????? h1:35:respawn:/etc/init.d/init.cssd run >/dev/null 2>&1 </dev/null
??????? 如果沒有請?zhí)砑樱绻蛔⑨屃苏埲∠⑨? (root 帳戶 ) 。
?
??????? 也可以使用 root 帳戶執(zhí)行 /u01/oracle/10g/bin/localconfig reset 來解決
???????
??? 3. 磁盤搜索路徑問題 ?
??????? SQL > create diskgroup DG1 normal redundancy disk 'ORCL:VOL1' , 'ORCL:VOL2' ;
??????? create diskgroup DG1 normal redundancy disk 'ORCL:VOL1' , 'ORCL:VOL2'
??????? *
??????? ERROR at line 1 :
??????? ORA - 15018 : diskgroup cannot be created
??????? ORA - 15031 : disk specification 'ORCL:VOL2' matches no disks
??????? ORA - 15031 : disk specification 'ORCL:VOL1' matches no disks
???????
??????? 使用 oraclasm 創(chuàng)建磁盤后,缺省會在 / dev / oracleasm / disks 目錄下添加剛剛創(chuàng)建的磁盤映射
??????? 修改 asm_diskstring 修改路徑之后再次創(chuàng)建即可
??????????? alter system set asm_diskstring = '/dev/oracleasm/disks/VOL*'
???????????
?
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
