asm自动存储管理
1. ASM是什么意思
ASM指的是汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。
(1)asm自动存储管理扩展阅读
汇编语言比机器语言的可读性要好,但跟高级语言比较而言,可读性还是较差。不过采用它编写的程序具有存储空间占用少、执行速度快的特点,这些是高级语言所无法取代的。在实际应用中,是否使用汇编语言,取决于具体应用要求、软件开发时间和质量等方面作权衡。
汇编语言作为机器语言之上的第二代编程语言,它也有很多优点:
1、可以轻松的读取存储器状态以及硬件I/O接口情况
2、编写的代码因为少了很多编译的环节,可以能够准备的被执行
3、作为一种低级语言,可扩展性很高
参考资料来源:网络-汇编语言
2. oracle 11g中asm是什么意思
自动存储管理 (ASM) 是 Oracle Database 的一个特性,它为数据库管理员提供了一个在所有服务器和存储平台上均一致的简单存储管理接口。作为专门为 Oracle 数据库文件创建的垂直集成文件系统和卷管理器,ASM 提供了直接异步 I/O 的性能以及文件系统的易管理性。ASM 提供了可节省 DBA 时间的功能,以及管理动态数据库环境的灵活性,并且提高了效率。ASM 的主要优点有:
简化和自动化了存储管理
提高了存储利用率和敏捷性
提供可预测的性能、可用性和可伸缩性
3. 如何将ASM中的数据文件复制到操作系统中
您好,如果你的Oracle数据库系统使用正使用ASM自动存储管理,你可曾想过要窥视一下ASM中的数据文件,ASM是个黑匣子,通过操作系统无法看到里面的数据文件,也不能通过操作系统命令对它们进行复制、删除等操作。下面给大家介绍一个可以复制出ASM中数据文件的小方法,简单适用。工具大家都很熟悉,那就是:Rman !
大家都知道在进行跨平台移植数据的时候会碰到操作系统字节存储次序的问题,通常都会利用Rman的convert的命令来转换表空间或者数据文件的字节序。同样,下面也通过Rman的convert来给大家介绍一下如何从ASM中复制出数据文件;
如下:在asmcmd中查看数据文件,我要复制出名为SEVEN.320.822828439的数据文件(注意路径):
ASMCMD> pwd
+seven/prod/datafile
ASMCMD> ls
EXAMPLE.267.819799305
SEVEN.320.822828439
SYSAUX.257.819799141
SYSTEM.256.819799141
UNDOTBS1.258.819799143
UNDOTBS2.268.819799499
USERS.259.819799143
ASMCMD>
通过一下命令在Rman下进行转换:
convert datafile
'+seven/prod/datafile/SEVEN.320.822828439'
db_file_name_convert
'+seven/prod/datafile','/home/oracle';
命令很简单,单数据的转换,需要db_file_name_convert关键字来指定转换之前和转换之后数据文件所在的路径,此实验中是将名为SEVEN.320.822828439的数据文件,从原始路径+seven/prod/datafile 中,转换到之后的/home/oracle目录中,同时文件名不变;
输出内容如下,显示完成转换:
Starting backup at 07-AUG-13
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile conversion
input filename=+SEVEN/prod/datafile/seven.320.822828439
converted datafile=/home/oracle/seven.320.822828439
channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:05
Finished backup at 07-AUG-13
OK!转换结束,可以去/home/oracle 目录下查看是否有此数据文件了;
[oracle@ora1 ~]$ ls -al seven.320.822828439
-rw-r----- 1 oracle oinstall 52436992 Aug 7 16:41 seven.320.822828439
[oracle@ora1 ~]$
如上:数据文件SEVEN.320.822828439已经在/home/oracle目录中,现在可以对数据文件做些你想做的事了。
4. ASM是什么
德国ASM所生产的位移传感器广泛被用于需要自动控制,检测,监测距离、位置或长度的测量,用户遍布全球。加速模拟工况法 AccelerationSimulation Mode 我们在享受汽车工业蓬勃发展带来便利的同时也深受其害,大量汽车尾气造成了城市环境污染,主要排放物HC、CO和NOx会形成光化学雾,严重危害城市居民生命财产安全。传统的怠速法检测汽车尾气,识别率低,人为因素多,很难将高污染车"绳之于法",也无法将这些车修理到真正尾气达标的状态。 早在60年代人们已经意识到了负荷试验法的优势,发展了一系列检测方法,如YTEST239、IM240等.到了80年代中期,从多种负荷试验方法中明确了加速模拟工况法(AccelerationSimulation Mode,缩写为ASM)是最佳的方法之一,美国国家环保局(缩写为EPA)于90年代确认了ASM为I/M中的一种检验方法,并被广泛采用。汇编语言 ASM也是汇编语言源程序的扩展名,汇编程序员也称汇编为ASM 汇编语言(Assembly Language)是面向机器的程序设计语言.汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。 在汇编语言中,用助记符(Memoni)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。因此汇编语言亦称为符号语言。 使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,汇编程序是系统软件中语言处理系统软件。汇编语言把汇编程序翻译成机器语言的过程称为汇编。 汇编语言比机器语言易于读写、调试和修改,同时具有机器语言全部优点。但在编写复杂程序时,相对高级语言代码量较大,而且汇编语言依赖于具体的处理器体系结构,不能通用,因此不能直接在不同处理器体系结构之间移植。 汇编语言的特点: 1.面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。 2.保持了机器语言的优点,具有直接和简捷的特点。 3.可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。 4.目标代码简短,占用内存少,执行速度快,是高效的程序设计语言。 5.经常与高级语言配合使用,应用十分广泛。 汇编语言的应用: 1.70%以上的系统软件是用汇编语言编写的。 2.某些快速处理、位处理、访问硬件设备等高效程序是用汇编语言编写的。 3.某些高级绘图程序、视频游戏程序是用汇编语言编写的。 汇编语言(Assembly Language)的源程序的扩展名是.ASM(Assembly的缩写),所以汇编程序员也称汇编为ASM自动存储管理 Automatic Storage Management 自动存储管理 (ASM) ASM 是 Oracle 数据库 10g 中一个非常出色的新特性,它以平台无关的方式提供了文件系统、逻辑卷管理器以及软件 RAID 等服务。ASM 可以条带化和镜像磁盘,从而实现了在数据库被加载的情况下添加或移除磁盘以及自动平衡 I/O 以删除"热点"。它还支持直接和异步的 I/O 并使用 Oracle9i 中引入的 Oracle 数据管理器 API(简化的 I/O 系统调用接口)。 ASM 不是一个通用的文件系统,并只能用于 Oracle 数据文件、重做日志以及控制文件。ASM 中的文件既可以由数据库自动创建和命名(通过使用 Oracle 管理文件特性),也可以由 DBA 手动创建和命名。由于操作系统无法访问 ASM 中存储的文件,因此对使用 ASM 文件的数据库执行备份和恢复操作的唯一途径就是通过恢复管理器 (RMAN)。 ASM 作为单独的 Oracle 实例实施,只有它在运行时其他数据库才能访问它。在 Linux 上,只有运行 OCSSD 服务(由 Oracle 通用安装程序默认安装)才能使用 ASM。ASM 需要的内存不多:对大多数系统,只需 64 MB。 安装ASM 在Linux 平台上,ASM 可以使用原始设备,或通过 ASMLib 接口管理的设备。出于易于使用和性能方面的原因,Oracle 建议在原始设备上使用 ASMLib。ASMLib 现在可以从 OTN 免费下载。本部分逐步讲解使用 ASMLib 配置一个简单 ASM 实例和构建一个使用 ASM 进行磁盘存储的数据库的全过程。 确定所需的 ASMLib 版本 ASMLib 以三个 Linux 程序包组成的程序包集提供: oracleasmlib - ASM 库 oracleasm-support - 用于管理 ASMLib 的实用程序 oracleasm - ASM 库的内核模块 每个Linux 发行套件都有其自己的 ASMLib 程序包集。
5. asm是什么意思
ASM
解释:
abbr. 空对地导弹(air-to-surface missile);美国金属协会(American Society for Metals);辅助存贮管理程序(auxiliary storage manager);
大区销售经理(area sale manager);舞台监督助理(assistant stage manager)
用法:
angio asm血管痉挛
idio asm局部痉挛
mobile asm手足徐动症
(5)asm自动存储管理扩展阅读:
近义词:
missile
读法:英[ˈmɪsaɪl]美[ˈmɪsl]
解释:
导弹;投射物
导弹的;可投掷的;用以发射导弹的
用法:
cruise missile[航][军]巡航导弹 ; 经营机制
ballistic missile[航][军]弹道导弹 ; 弹道飞弹 ; 弹道式导弹 ; 弹道飞弹潜艇
anti-ship missile反舰导弹 ; 反舰飞弹 ; 舰飞弹
6. ASM是什么⊙∀⊙
自动存储管理(ASM,Automatic Storage Management)
ASM 是 Oracle 数据库 10g 中一个非常出色的新特性,它以平台无关的方式提供了文件系统、逻辑卷管理器以及软件 RAID(磁盘阵列) 等服务。ASM 可以条带化和镜像磁盘,从而实现了在数据库被加载的情况下添加或移除磁盘以及自动平衡 I/O 以删除“热点”。它还支持直接和异步的 I/O 并使用 Oracle9i 中引入的 Oracle 数据管理器 API(简化的 I/O 系统调用接口)。
7. 什么是asm
假设您要在数据库中使用 10 个磁盘。利用 ASM,您不需要在 OS 端创建任何东西,该特性将把一组物理磁盘集合成一个逻辑实体(称为磁盘组)。
磁盘组类似于一个分段(和可选镜像)文件系统,但具有重要的差异:它不是一个用于存储用户文件的通用文件系统,并且它不进行缓冲。由于后面的原因,磁盘组提供了直接作为原始设备来访问这个空间,并仍提供文件系统的便利性和灵活性的好处。
ASM它提供了以平台无关的文件系统、逻辑卷管理以及软RAID服务。ASM可以支持条带化和磁盘镜像,从而实现了在数据库被加载的情况下添加或移除磁盘以及自动平衡I/O以删除“热点”。它还支持直接和异步的I/O并使用Oracle9i中引入的Oracle数据管理器API(简化的I/O系统调用接口)。
(7)asm自动存储管理扩展阅读:
ASM使用独特的镜像算法:不镜像磁盘,而是镜像盘区。作为结果,为了在产生故障时提供连续的保护,只需要磁盘组中的空间容量,而不需要预备一个热备(hot spare)磁盘。
不建议用户创建不同尺寸的故障组,因为这将会导致在分配辅助盘区时产生问题。ASM将文件的主盘区分配给磁盘组中的一个磁盘时,它会将该盘区的镜像副本分配给磁盘组中的另一个磁盘。给定磁盘上的主盘区将在磁盘组中的某个伙伴磁盘上具有各自的镜像盘区。
ASM确保主盘区和其镜像副本不会驻留在相同的故障组中。磁盘组的冗余可以有如下的形式:双向镜像文件(至少需要两个故障组)的普通冗余(默认冗余)和使用三向镜像(至少需要3个故障组)提供较高保护程度的高冗余。
8. 请问使用oracle asm自动存储管理,今天突然一个asm diskgroup无法mount了
一般当ASM元数据块(metadata block)被检验存在严重问题时才会触发本文所介绍的ORA-15196错误。
该ORA-15196报错的一般格式是:
ORA-15196:invalid ASM block header [1st] [2nd] [3rd] [4th] [5th != 6th]
相关的变量的含义为:
1st, 触发该意外报错的Oracle内核函数的名字以及其在代码中的行数
2nd, 验证发现问题的区域名字
3rd, 存放在该块中的ASM对象号 http://www.parnassusdata.com/
4th,存放在该块中的ASM的块号
5th, 2nd指定的区域中实际存放的值
6th, 2nd指定的区域中应当存放的值 诗檀软件专业修复Oracle数据库
例如:
ORA-15196:invalid ASM block header [kfc.c:7997] [endian_kfbh] [1] [93] [211 != 0]
其中kfc.c:7997,说明触发本次ORA-15196错误的代码是kfc.c 内核源代码的7997行的代码
endian_kfbh:验证发现问题的区域名字,这个endian_kfbh是用来描述endian属性的
存放在该块中的ASM对象号:1
存放在该块中的ASM的块号:93
2nd指定的区域中实际存放的值:211
2nd指定的区域中应当存放的值:0
进一步解析上面的参数
l 验证发现问题的区域名字
ASM metadata元数据由多种多样的结构组成,例如FILE directory文件目录,Disk Directory磁盘目录,Active ChangeDirectory(ACDC),这些信息都存放在ASM的第1号文件到第255文件之间。每一个文件又由ASM Extent组成,Extent又由大小为4096 bytes的ASM block组成(仅仅对于Metadata File是这样的,对于Oracle Datafile数据文件则仍是由DB_BLOCK_SIZE大小的数据块组成)。这里每一个ASM BLOCK均有一个必备的块头KFBH,如下面的例子:
kfbh.endian: 1 ; 0x000: 0x01
kfbh.hard: 130 ; 0x001: 0x82
kfbh.type: 4 ; 0x002:KFBTYP_FILEDIR
kfbh.datfmt: 1 ; 0x003: 0x01
kfbh.block.blk: 1 ; 0x004: blk=1
kfbh.block.obj: 1 ; 0x008: file=1
kfbh.check: 325804796 ; 0x00c:0x136b62fc
kfbh.fcn.base: 0 ; 0x010: 0x00000000
kfbh.fcn.wrap: 0 ; 0x014: 0x00000000
kfbh.spare1: 0 ; 0x018: 0x00000000
kfbh.spare2: 0 ; 0x01c: 0x00000000
KFBH说到底是一个C语言头文件中定义的Structure,其定义大致如下:
endian_kfbh /* endianness of writer */
hard_kfbh /* H.A.R.D. magic # and blocksize */
type_kfbh /* metadata block type */
datfmt_kfbh /* metadata block data format */
block_kfbh /* block location of this block */
check_kfbh /* check value to verify consistency */
fcn_kfbh /* change number of last change */
spare1_kfbh /* zero pad out to 32 bytes */
spare2_kfbh /* zero pad out to 32 bytes */
以上的每一个区域实际均可能是 “验证发现问题的区域”,例如:
ORA-15196:invalid ASM block header [kfc.c:7997] [endian_kfbh] [1] [93] [211 != 0]
ORA-15196INVALID ASM BLOCK HEADER [KFC.C 8064] [CHECK_KFBH] [2147483827] [2]
l 存放在ASM Block中的ASM对象号object_number
这里每一个ASMmetadata block都对应于特定的ASM结构元文件。kfbh.block.obj即块头的对象号信息,实际也是ASM的文件号。例如下面的例子 即是1号文件KFBTYP_FILEDIR File Directory
[oracle@mlab2~]$ kfed read /oracleasm/asm-disk01aun=2 blkn=1 aus=4194304|less
kfbh.endian: 1 ; 0x000: 0x01
kfbh.hard: 130 ; 0x001: 0x82
kfbh.type: 4 ; 0x002:KFBTYP_FILEDIR
kfbh.datfmt: 1 ; 0x003: 0x01
kfbh.block.blk: 1 ; 0x004: blk=1
kfbh.block.obj: 1 ; 0x008: file=1
kfbh.check: 325804796 ; 0x00c: 0x136b62fc
kfbh.fcn.base: 0 ; 0x010: 0x00000000
kfbh.fcn.wrap: 0 ; 0x014: 0x00000000
kfbh.spare1: 0 ; 0x018: 0x00000000
kfbh.spare2: 0 ; 0x01c: 0x00000000
ASMFile number: ASM Metadata: kfbh.type 的对应关系
ASM File number
ASM Metadata
kfbh.type
1
File Directory
KFBTYP_FILEDIR
2
Disk Directory
KFBTYP_DISKDIR
3
Active Change Directory (ACD)
KFBTYP_CHNGDIR
4
Continous Operations Directory (COD)
KFBTYP_COD_DATA
5
Template Directory
KFBTYP_TMPLTDIR
6
Alias Directory
KFBTYP_ALIASDIR
9
Attributes Directory
KFBTYP_ATTRDIR
12
Staleness Directory
KFBTYP_STALEDIR
对于其他的metadata结构如PST、KFBTYP_DISKHEAD等其kfbh.block.obj总是2147483648,即16进制 0x 80000000,如:
[oracle@mlab2~]$ kfed read /oracleasm/asm-disk01aun=0 blkn=0 aus=4194304|less
kfbh.endian: 1 ; 0x000: 0x01
kfbh.hard: 130 ; 0x001: 0x82
kfbh.type: 1 ; 0x002:KFBTYP_DISKHEAD
kfbh.datfmt: 1 ; 0x003: 0x01
kfbh.block.blk: 0 ; 0x004: blk=0
kfbh.block.obj: 2147483648 ; 0x008: disk=0
kfbh.check: 852050979 ; 0x00c:0x32c94423
kfbh.fcn.base: 106569 ; 0x010: 0x0001a049
kfbh.fcn.wrap: 0 ; 0x014: 0x00000000
kfbh.spare1: 0 ; 0x018: 0x00000000
kfbh.spare2: 0 ; 0x01c: 0x00000000
l 存放在ASM block中的块号 block number
一个ASMFile往往由多个Extent组成,一个Extent可以是一个Allocation Unit,也可以使多个allocation Units(VariableExtent Size)。 一个Extent又由多个ASM metadata block(一般为4096 bytes大小)组成。默认1MB AU下,一个extent对应256个ASM metadata block。
kfbh.block.blk代表某个文件中的块号。例如kfbh.block.blk=93,那么一般存放在某个文件的第一个extent里。而这个extent可以由Disk group上任意ASM disk上的任意AU组成。
l 2nd指定的区域中实际存放的值
即第二个变量中现在实际存放的数值
l 2nd指定的区域中应当存放的值
即第二个变量中理论上应当存放的数值
我们来看一个例子:
ORA-15196:invalid ASM block header [kfc.c:7997] [endian_kfbh] [1] [93] [211 != 0]
可以解释为1号文件的93块 中的endian_kfbh区域在kfc.c的7997代码做检测时发现,其实际存放的值为211,而实际上endian_kfbh 一般只有2个值 0x01 或者 0x00,0x01代表Little Endian,0x00代表Big Endian。 211这个实际存放值是非法的,说明这个重要的1号文件的93号块出现了损坏。
ORA-15196相关的一些BUG Note如下:
Bug 14545129 - ORA-15196_ INVALID ASM BLOCK HEADER [KXDAM
Bug 14740185 - ASM REPORTED CORRUPTED AT BLOCKS _ ORA-15196_ INVALID ASM BLOCK HEADER [KFC
Bug 5554692 - Error ORA-15196 reporting ASM block header invalid ora-15196 after ORA-.pdf
ORA-15196 and ORA-600 [kfgpn lclenq] Resizing Datafile or Dropping User (Doc ID 759379.1)
ORA-15196 WITH ASM DISKS LARGER THAN 2TB (Doc ID 736891.1)
Querying V$ASM_FILE Gives ORA-15196 After ASM Was Upgraded From 10gR2 To 11gR2 with an AU size 1M (Doc ID 1145365.1)
Bug 11801536 ORA-15196 INVALID ASM BLOCK HEADER [KFC.C 8064] [CHECK_KFBH] [2147483827]
Bug 13605059 - ORA-15196_ INVALID ASM BLOCK HEADER [KFC
但主要引起ORA-15196错误的原因并不是ORACLE自身的BUG,而是ORACLE之外的一些因素:
1. ASM使用的磁盘被从OS级别做了某种格式化,或者头部被覆盖,例如AIX下chdev设置了pv头
2. ASM使用的磁盘被分配为文件系统,这个一般是误操作导致的,例如SA系统管理员看到一块ASM磁盘被有被操作系统使用,就认为这是浪费,而在上面mkfs
3. 由于IO链路或者存储故障,如丢失写等
4. 由于第三方应用引起
l 建议收集的数据
对于该ORA-15196诗檀建议收集如下的数据:
Oracle告警日志alert.log和相关的trace文件
发生问题的ASMDisk的前300MB数据的DD
首先通过alert.log的内容确定损坏发生的ASM Disk号:
WARNING:cache failed to read fn=1 blk=80 from disk(s): 0
ORA-15196:invalid ASM block header [kfc.c:7997] [endian_kfbh] [1] [93] [211 != 0]
这里disk(s):0,指DISK_NUMBER=0的ASM DISK,之后通过dd命令复制300MB数据:
$ddif=<device path> of=/tmp/disk.dd bs= 1048576 count=300
如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!
9. oracle 数据库使用了asm自动存储管理来放数据文件,请问要怎么给asm diskgroup磁
【日常管理】Asm Diskgroup增加磁盘add disk
sql">showparameterpower
altersystemsetasm_power_limit=0;'/asmdisks/asmdiskA28';
'/asmdisks/asmdiskA27';
'/asmdisks/asmdiskA26';
'/asmdisks/asmdiskA25';
'/asmdisks/asmdiskA24';
'/asmdisks/asmdiskA23';
'/asmdisks/asmdiskA22';
'/asmdisks/asmdiskB50';
'/asmdisks/asmdiskB49';
'/asmdisks/asmdiskB48';
'/asmdisks/asmdiskB45';
'/asmdisks/asmdiskB44';
'/asmdisks/asmdiskB43';
'/asmdisks/asmdiskB42';
;
select*fromv$asm_operation;