--========================
-- 創建 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 級別
??????? SYSTEM 、 UNDO 表空間通常置于 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 實例的后臺進程,如 SMON , PMON , LGWR , DBWR , CKPT 等,還增添了兩個新進程 , 一類是 RBAL , 一類是 ARBn
??????????? RBAL : 用于協調和管理磁盤組之間的動態平衡
??????????? ARBn : 可以為多個,用于完成 AU 的移動
??????? ASM 實例僅僅是定位管理 ASM 磁盤,不能加載或打開數據庫,因此也無法讀取數據字典信息
??????? ASM 實例通常有個參數,只能使用口令文件或操作系統身份驗證作為 sysdba 或 sysoper 來啟動或關閉該實例。
??????????? 關于 sysdba 或 sysoper 區別請參考: system sys ,sysoper sysdba 的 區 別
?
??????? 一個 ASM 實例可以為多個 RDBMS 提供服務,可以在一臺主機上創建多個 ASM 實例,但通常一臺主機上使用一個 ASM 實例
??????? 如果一個實例服務于多個 RDBMS ,建議將 ASM 的 ASM_HOME 與 DB 的 ORACLE_HOME 分開,便于日后的升級與維護
??????? ASM 磁盤組的創建與配置在 ASM 實例啟動之后
???????
使用 ASM 磁盤的 RDBMS 實例與普通的 RDBMS 實例相同,但多出了兩個后臺進程, RBAL , ASMB 。
??????????? 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 包。下載路徑: ASMLib 下 載
??????? 注意下載支持該內核的包,分為兩部分,一是 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 參數文件 ( 使用 VI 或 VIM )
??????? [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 ? --> ?? /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' ; ? -- 創建磁盤組 DG1
?
??????????? SQL > select * from v$fixed_table where name like '%ASM%' ; -- 查看和 asm 相關的視圖
???????????
??????????? 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' ; ?? -- 創建磁盤組 DG2
?
??????????? 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 ????? ?????? 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 主機后
??????????? SQL > startup ??? -- 重新啟動 ASM 實例,收到了磁盤組 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 主機重新啟動之后屬主性質已發生變化
??????????? 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 ????
?
??????????? 原因:原始設備在引導時會重新映射。默認情況下,在引導時原始設備的擁有者將更改為 root 用戶
??????????? 將下面的內容增加到 / etc / rc . local 文件 ( root 帳戶 ) ,重新啟動主機,使得屬主變為 oracle ,則不再出現類似的提示
??????????????? 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 ; ?? -- 將剛才創建的兩個磁盤組刪除
???????????
??????????? SQL > drop diskgroup dg2 ;
???????????
??????????? ??? 使用 root 帳戶清除 /etc/udev/rules.d/60-raw.rules /etc/sysconfig/rawdevices ? 以及 /etc/rc.local 剛剛增加的記錄
??????????????? 便于下面使用 asmlib 來創建 asm 磁盤
???????????
??????? ? c . 使用 root 帳戶配置 ASMLib 驅動及創建 ASM 磁盤, Oracle 建議使用 ASMLIB 驅動來配置 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 ? ] ??????
???????????????
??????????????? -- 注意下面創建磁盤前本人重新對磁盤分過區
??????????????? [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 中設置
??????????????? 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 ???? -- 設置 asm_diskstring 后重新創建磁盤 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. 創建 ASM 數據庫
??????? 使用 dbca 工具根據提示來創建使用 ASM 存儲的數據庫
??????? 創建使用 ASM 存儲的數據庫完畢之后,對于 ASM 數據庫啟動應首先保證 ASM 實例先被啟動,因為 RDBMS 是 ASM 實例服務的一個客戶端
??????? 接下來再來啟動 RDBMS
???????
??????? -- 首先啟動 asm 實例
??????????? export ORACLE_SID =+ ASM
??????????? sqlplus / as sysdba
??????????? startup
??????????? exit
???????????
??????? -- 接下來啟動 rdbms 數據庫
??????????? export ORACLE_SID = orcl
??????????? sqlplus / as sysdba
??????????? startup
???????
三、創建 ASM 實例時的常見故障
?
??? 1. 創建磁盤時出現錯誤可以查看 asm 日志
??????? tail -f /var/log/oracleasm ?????
?
??? 2. 啟動 asm 實例時出現 ORA-29701 錯誤
??????? ORA-29701: unable to connect to Cluster Manager
??????? 首次需要啟用 css 服務,使用 root 帳戶 , 運行 $ORACLE_HOME/bin/localconfig add
???????
??????? 如果下次啟動實例的時候仍然碰到如下報錯:
??????? 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
??????? 如果沒有請添加,如果被注釋了請取消注釋 (root 帳戶 ) 。
?
??????? 也可以使用 root 帳戶執行 /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 創建磁盤后,缺省會在 / dev / oracleasm / disks 目錄下添加剛剛創建的磁盤映射
??????? 修改 asm_diskstring 修改路徑之后再次創建即可
??????????? alter system set asm_diskstring = '/dev/oracleasm/disks/VOL*'
???????????
?
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

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