使用文件模拟ASM磁盘
尽管Oracle缺省都是使用裸设备来创建ASM磁盘,但其实Oracle也允许使用普通文件来创建ASM磁盘,
当然这种方法最好只用在测试环境下或者学习环境下,不能用在生产环境下。之所以必须要用裸设备,
是因为有一个隐含参数_asm_allow_only_raw_disks在起作用。
通过SQL查看ASM参数:
- set lines
- col name for a30
- col value for a10
- col DESCRIPTION for a50
- SQL> select x.ksppinm name,y.ksppstvl value,x.ksppdesc description
- from x$ksppi x,x$ksppcv y
- where x.inst_id=userenv('Instance')
- and y.inst_id=userenv('Instance')
- and x.indx=y.indx
- and x.ksppinm like '_asm_allow_only_raw_disks%'
- order by name;
- NAME VALUE DESCRIPTION
- ------------------------------ ---------- --------------------------------------------------
- _asm_allow_only_raw_disks TRUE Discovery only raw devices
只要把这个参数改成FALSE,我们就可以使用文件来创建ASM了。试验如下:
1.使用dd命令创建几个文件
- [oracle@std u02]$ mkdir asmfile
- [oracle@std u02]$ cd asmfile/
- [oracle@std asmfile]$ dd if=/dev/zero of=cp1 bs=1M count=
- + records in
- + records out
- bytes ( MB) copied, 5.50622 seconds, 95.2 MB/s
- [oracle@std asmfile]$ dd if=/dev/zero of=cp2 bs=1M count=
- + records in
- + records out
- bytes ( MB) copied, 7.13052 seconds, 73.5 MB/s
- [oracle@std asmfile]$ dd if=/dev/zero of=cp3 bs=1M count=
- + records in
- + records out
- bytes ( MB) copied, 6.60984 seconds, 79.3 MB/s
- [oracle@std asmfile]$ dd if=/dev/zero of=cp4 bs=1M count=
- + records in
- + records out
- bytes ( MB) copied, 5.31099 seconds, 98.7 MB/s
- [oracle@std asmfile]$ ls -l
- total
- -rw-r--r-- oracle oinstall Feb : cp1
- -rw-r--r-- oracle oinstall Feb : cp2
- -rw-r--r-- oracle oinstall Feb : cp3
- -rw-r--r-- oracle oinstall Feb : cp4
2.创建asm参数文件并修改asm_diskstring
--注意asm_diskstrint参数设置
- [oracle@std dbs]$ cp init+ASM.ora init+ASM2.ora
- [oracle@std dbs]$ vi init+ASM2.ora
- [oracle@std dbs]$ cat init+ASM2.ora
- *.asm_diskstring='/u02/asmfile/cp*'
- *.instance_type='asm'
- *.large_pool_size=24M
- *.remote_login_passwordfile='SHARED'
- *.background_dump_dest='/u02/app/admin/+ASM2/bdump'
- *.core_dump_dest='/u02/app/admin/+ASM2/cdump'
- *.user_dump_dest='/u02/app/admin/+ASM2/bdump'
3.启动ASM实例
- [oracle@std dbs]$ export ORACLE_SID=+ASM2
- [oracle@std dbs]$ sqlplus '/as sysdba'
- SQL*Plus: Release 10.2.0.4. - Production on Mon Feb ::
- Copyright (c) , , Oracle. All Rights Reserved.
- Connected to an idle instance.
- SQL> startup
- ASM instance started
- Total System Global Area bytes
- Fixed Size bytes
- Variable Size bytes
- ASM Cache bytes
- ORA-: no diskgroups mounted
- SQL> select path from v$asm_disk;
- no rows selected
启动ASM实例后还看不到我们asm_diskstring参数指定的设置!!!
4.修改隐含参数,重启ASM实例
- [oracle@std dbs]$ vi init+ASM2.ora
- [oracle@std dbs]$ cat init+ASM2.ora
- *.asm_diskstring='/u02/asmfile/cp*'
- *.instance_type='asm'
- *.large_pool_size=24M
- *.remote_login_passwordfile='SHARED'
- *.background_dump_dest='/u02/app/admin/+ASM2/bdump'
- *.core_dump_dest='/u02/app/admin/+ASM2/cdump'
- *.user_dump_dest='/u02/app/admin/+ASM2/bdump'
- _asm_allow_only_raw_disks= FALSE
- [oracle@std dbs]$ export ORACLE_SID=+ASM2
- [oracle@std dbs]$ sqlplus '/as sysdba'
- SQL*Plus: Release 10.2.0.4. - Production on Mon Feb ::
- Copyright (c) , , Oracle. All Rights Reserved.
- Connected to an idle instance.
- SQL> startup
- ASM instance started
- Total System Global Area bytes
- Fixed Size bytes
- Variable Size bytes
- ASM Cache bytes
- ORA-: no diskgroups mounted
- SQL> select path from v$asm_disk;
- PATH
- --------------------------------------------------------------------------------
- /u02/asmfile/cp4
- /u02/asmfile/cp1
- /u02/asmfile/cp2
- /u02/asmfile/cp3
现在可以看到修改参数后可以看到asm_diskstring参数指定的磁盘了,现在看一下是否能够创建磁盘组
5.创建磁盘组
--注意这些创建的磁盘组不会写入init+ASM2.ora,因为我们当前使用的是pfile,重启实例会丢失。
- SQL> create diskgroup dg normal redundancy disk
- '/u02/asmfile/cp1','/u02/asmfile/cp2' name dg_data;
- Diskgroup created.
- SQL> create diskgroup back normal redundancy
- disk '/u02/asmfile/cp3','/u02/asmfile/cp4' name backup_data;
- Diskgroup created.
--每个磁盘都分配了名字
- SQL> select name,path from v$asm_disk;
- NAME PATH
- -------------------- --------------------------------------------------
- BACKUP_DATA /u02/asmfile/cp4
- BACK_0000 /u02/asmfile/cp3
- DG_DATA /u02/asmfile/cp2
- DG_0000 /u02/asmfile/cp1
6.查看磁盘组的属性
- SQL> select name,block_size,allocation_unit_size from v$asm_diskgroup;
- NAME BLOCK_SIZE ALLOCATION_UNIT_SIZE
- -------------------- ---------- --------------------
- DG
- BACK
上面的SQL查询了磁盘组的数据块大小及分配单元,其实这两个属性也是由隐含参数控制的,
--查询ASM的隐含参数,这些参数没有十足的把握尽量不要修改
- SQL> set lines
- SQL> col name for a30
- SQL> col value for a10
- SQL> col DESCRIPTION for a50
- SQL> select x.ksppinm name,y.ksppstvl value,x.ksppdesc description
- from x$ksppi x,x$ksppcv y
- where x.inst_id=userenv('Instance')
- and y.inst_id=userenv('Instance')
- and x.indx=y.indx
- and x.ksppinm like '_asm%'
- order by name;
- NAME VALUE DESCRIPTION
- ------------------------------ ---------- --------------------------------------------------
- _asm_acd_chunks initial ACD chunks created
- _asm_allow_only_raw_disks FALSE Discovery only raw devices
- _asm_allow_resilver_corruption FALSE Enable disk resilvering for external redundancy
- _asm_ausize allocation unit size --指定了分配单元
- _asm_blksize metadata block size --指定了数据块大小
- _asm_disk_repair_time seconds to wait before dropping a failing disk
- _asm_droptimeout timeout before offlined disks get dropped (in 3s t
- icks)
- _asm_emulmax max number of concurrent disks to emulate I/O erro
- rs
- NAME VALUE DESCRIPTION
- ------------------------------ ---------- --------------------------------------------------
- _asm_emultimeout timeout before emulation begins (in 3s ticks)
- _asm_kfdpevent KFDP event
- _asm_libraries ufs library search order for discovery
- _asm_maxio Maximum size of individual I/O request
- _asm_skip_resize_check FALSE skip the checking of the clients for s/w compatibi
- lity for resize
- _asm_stripesize ASM file stripe size
- _asm_stripewidth ASM file stripe width
- _asm_wait_time Max/imum time to wait before asmb exits
- NAME VALUE DESCRIPTION
- ------------------------------ ---------- --------------------------------------------------
- _asmlib_test Osmlib test event
- _asmsid asm ASM instance id
- rows selected.
- SQL>
致谢:本文章参考了张晓明<<大话Oracle RAC 集群 高可用性 备份与恢复>>
使用文件模拟ASM磁盘的更多相关文章
- 【翻译自mos文章】将expdp的dmp文件从asm磁盘组里边放到本地文件系统里边
将expdp的dmp文件从asm磁盘组里边放到本地文件系统里边 參考原文: How To Extract Datapump File From ASM Diskgroup To Local Files ...
- 普通文件迁移ASM
1.ASM Access Through FTP and HTML Using XDB Configuration 2.rman 3.dbms_file_transfer 4.11g asmcmd 利 ...
- 单机静默安装GI软件并创建ASM实例和ASM磁盘组
环境:RHEL 6.4 + Oracle 11.2.0.4 需求:单机静默安装GI软件并创建ASM实例和ASM磁盘组,为后续迁移数据库文件到ASM做准备 1. 安装配置GI软件 2. 创建ASM实例 ...
- 99-oracle-asmdevices.rules(udev方式创建asm磁盘)
一.创建asm磁盘的几种方式 创建asm方式很多主要有以下几种 1.Faking方式 2.裸设备方式 3.udev方式(它下面有两种方式) 3.1 uuid方式. 3.2 raw方式(裸设备方式) 4 ...
- ORACLE误删除ASM磁盘修复
在数据库运维中,总会遇到一些粗心大意的DBA,一不小心删除一些东西,这里举例讲解在误删除ASM磁盘之后,如果用KFED工具进行恢复: [grid@RAC1 ~]$ sqlplus / as sysas ...
- 使用asmcmdcp命令把datafile从文件系统移动(move)到asm磁盘组中 针对11gR2
使用asmcmd cp命令 把datafile从文件系统移动(move)到asm磁盘组中--针对11gR2 参考原文:How to Move a Datafile from Filesystem to ...
- 11G ORACLE RAC DBCA 无法识别asm磁盘组
ASM磁盘无法识别几种现象: 1) gi家目录或者其子目录权限错误 2)asm磁盘的权限错误 3)asm实例未启动或者asm磁盘组没有mount上 4)asm磁盘组资源没有在线 5)oracle用户的 ...
- 【翻译自mos文章】回收 asm磁盘空间的方法
回收 asm磁盘空间的方法 參考原文: How To Reclaim Asm Disk Space? (Doc ID 351866.1) 适用于: Oracle Database - Enterpri ...
- 案例:Oracle报错ASM磁盘组不存在或没有mount
案例:Oracle报错ASM磁盘组不存在或没有mount 环境:RHEL 6.5 + Oracle Standby RAC 11.2.0.4 我做Standby RAC实验时,在恢复控制文件时,报错无 ...
随机推荐
- KMP模式匹配算法
KMP模式匹配算法 相信很多人对于这个还有点不了解,或者说是不懂,下面,通过一道题,来解决软考中的这个问题! 正题: aaabaaa,其next函数值为多少? 对于这个问题,我们应该怎么做呢? 1.整 ...
- Servlet部分细节介绍
1 Servlet与线程安全 因为一个类型的Servlet只有一个实例对象,那么就有可能会出现一个Servlet同时处理多个请求,那么Servlet是否为线程安全的呢?答案是:"不是线 ...
- 【POI word】使用POI实现对Word的读取以及生成
项目结构如下: 那第一部分:先是读取Word文档 package com.it.WordTest; import java.io.FileInputStream; import java.io.Fil ...
- Adobe Flash Media Server安装
Flash Media Server(FMS)是一个流媒体服务器 使用 实时消息传送协议(RTMP),RTMP是一种未加密的TCP/IP协议,专门设计用来高速传送音频.视频和数据信息. 3.5版32位 ...
- PHP 二分查找(详细)
<?php // PHP 二分查找 function search($arr, $sea){ $low = 0; // 确定数组的开始的下标 $len ...
- HDU4067 Random Maze(最小费用最大流)
题目大概说,给一张图,删除其中一些单向边,使起点s出度比入度多1,终点t入度比出度多1,其他点出度等于入度.其中删除边的费用是bi,保留边的费用是ai,问完成要求最小的费用是多少. 一开始我想到和混合 ...
- ReSharper 配置及用法(一)
ReSharper是一个JetBrains公司出品的著名的代码生成工具,其能帮助Microsoft Visual Studio成为一个更佳的IDE.它包括一系列丰富的能大大增加C#和Visual Ba ...
- iOSDay27之界面通信
1. 属性传值(前面的界面给后面传值) 第一步: 在 SecondViewController.h 文件里定义一个存放传过来值的变量 contents #import <UIKit/UIKit. ...
- (转)Ubuntu samba配置服务文件包
转:http://os.51cto.com/art/201001/176366.htm Ubuntu samba服务配置是很不错的文件应用很有学习价值,这里我主要讲解Ubuntu samba服务配置的 ...
- 【转】crontab定时任务中文乱码问题
转载:http://blog.163.com/rettar@126/blog/static/1216503422012135511740/ 手动执行都很正常的的脚步,添加到定时任务中一直执行失败,日志 ...