ORACLE中文教程—ASM管理

上传人:yx****d 文档编号:243095104 上传时间:2024-09-15 格式:PPT 页数:53 大小:859.50KB
返回 下载 相关 举报
ORACLE中文教程—ASM管理_第1页
第1页 / 共53页
ORACLE中文教程—ASM管理_第2页
第2页 / 共53页
ORACLE中文教程—ASM管理_第3页
第3页 / 共53页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,ASM:automatic storage management(自动存储管理),Oracle10g之前,存储设备的使用情况,1、UNIX或者LINUX,操作系统上安装逻辑卷管理器(LVM),通过LVM将多个磁盘做成卷组,在卷组上划分逻辑卷(logical volume),在逻辑卷上创建文件系统,将文件系统挂载到某个目录下面,2、windows,将磁盘划分成不同的分区,分区上创建文件系统,上面的都是通过文件系统对空间进行管理,软件通过文件系统来访问存储空间,3、裸设备:不通过文件系统,而是直接由Oracle数据库实例来读写磁盘,对文件系统来说,管理文件相对容易,性能较差,对裸设备来说,管理文件相对困难,性能好,1,Oracle 10g中,Oracle结合了文件系统和裸设备的优点,推出了ASM的概念。,如果使用ASM作为存储解决方案,则数据库在读写文件时,采用类似裸设备的方法,绕过文件系统和操作系统。ASM管理的文件可以修改文件名、以及允许文件大小尺寸的动态扩展或收缩,再管理文件方面,ASM具有文件系统的优点。,ASM本身由两大部分组成,ASM实例和ASM磁盘组,ASM磁盘组里面只能存放Oracle数据库文件:数据文件、联机重做日志文件、控制文件等,对ASM磁盘组的管理,则由ASM实例来完成,ASM的好处,1、ASM是跨平台的,主流的硬件平台都能使用、且管理方式一致,2、数据均匀的分布在磁盘组里所有的磁盘上,实现了文件级别的条带化,提高了读取和写入数据的性能,3、提供多重冗余级别,保证数据不丢失,4、支持在线的磁盘更换,添加或删除磁盘以后,自动重分布数据,这个过程叫做rebalance,2,ASM磁盘组的概念如下,ASM磁盘组,ASM文件,ASM磁盘,分配单元(AU),磁盘物理块,1、ASM磁盘组可以包含多个磁盘,2、磁盘中可以包含多个文件,因为文件打散以后放在多个磁盘上,因此磁盘和文件是多对多的关系,3、一个ASM磁盘被分成多个AU,每个AU大小是1M,一个Oracle数据块一定放在一个AU中,不会跨多个AU,一个AU则由多个物理磁盘块组成,AU是ASM进行扩张和收缩时的最小单位,4、一个磁盘组可以包含多个数据库文件,3,ASM实例,ASM实例是用来管理元数据,这些元数据就是数据库实例在访问、读写ASM文件时所必须的。,数据库实例可以直接打开ASM磁盘组,并从中读取ASM文件,与ASM实例通信只是为了获取这些ASM磁盘以及连接到ASM磁盘的方法而已,ASM的体系结构,4,Group Services,DgroupA=+ASM,DgroupB=+ASM,数据库实例,DBWn,ASMB,RBAL,ASM实例,SID=+ASM,RBAL,ARBn,GMON,ASM磁盘组 DgroupA,ASM磁盘,ASM磁盘,ASM磁盘组 DgroupB,ASM磁盘,ASM磁盘,数据库实例,DBWn,ASMB,RBAL,SID=ora10g,SID=xkj,ASM体系结构,5,ASM实例有3个类型的后台进程,1、RBAL:负责协调组内不同磁盘组之间的rebalance工作,reblance工作指的是数据在不同的磁盘之间转移,2、ARBn:用来实际完成rebalance工作,可以由多个进程并发完成rebalance的工作,3、GMON:用来监控磁盘组内有关元数据的维护操作,每个使用了ASM存储的数据库实例也有两个新的进程,1、RBAL:用来打开磁盘组里的磁盘,然后通过DBWn进程将数据写入到这些打开的磁盘里去,2、ASMB:在第一次访问ASM文件时动态创建,他作为前台进程连入到ASM实例,从而使得数据库实例和ASM实例之间建立了一个连接通道。通过该通道,定期在两个实例之间传递数据,并保持两个实例都正常工作。ASMB会访问Group Services,从中获取有关ASM实例所管理的磁盘组的信息。,当数据库实例要向某个磁盘组里写入数据时,通过GROUP Services,数据库实例知道磁盘组是由哪个ASM实例管理的(例如DGruopA由+ASM管理)以及连接到该磁盘组的信息,并通过RBAL进程打开磁盘组,于是就可以将数据写入磁盘组。由于数据库实例一次只能连接到一个ASM实例上,因此只能存在一个ASMB进程,6,Group Services用来注册ASM实例所管理的磁盘组,以及连接磁盘组的信息。当一个ASM实例与另外一个磁盘组关联时(这个过程叫做mount),他会将磁盘组以及该磁盘组的连接信息注册到Group Services里面。,数据库实例只能与其所在的同一台主机上的ASM实例通信,如果当前主机上存在多个数据库,则这些数据库可以共享同一个ASM实例。,7,创建ASM实例,ASM实例与数据库实例类似,也需要参数文件spfile,可以使用dbca完成spfile的创建,也可以手工编辑pfile,然后创建spfile,选择配置ASM以后,需要我们运行一个脚本。,8,另开一个窗口,运行脚本。使用root用户执行。,9,ASM实例的管理员帐号也是sys,给sys输入一个密码。,10,使用DBCA创建的ASM实例的名字是+ASM。上面的界面出现以后,说明ASM实例已经创建成功。我们可以以后再创建ASM磁盘组。Cancel退出。,11,这就是pfile的内容。,这是一个ASM实例,数据库实例是RDBMS。,12,ASM实例,还有几个重要的参数,1、db_unique_name:ASM实例的名字,2、asm_power_limite:默认为1,表示ASM磁盘组在进行rebalance时的速度。取值从1到11,1表示最小,对前台的影响最小,11表示最大,对前台用户的影响也越大,3、asm_disk_string:表示在创建磁盘组时,在指定的路径下搜索磁盘。如果要创建磁盘组,必须设置该参数,如果设置为/dev/raw/raw,那么表示磁盘组里面的磁盘都位于/dev/raw下面,以raw开头,4、asm_diskgroup:表示启动实例时,自动mount那些磁盘组,可以写多个磁盘组名。中间以逗号分开,不要在磁盘组名两边加引号diskgroupa,diskgroupb,5、large_pool_size,必须定义,至少为1MB,13,我们可以使用dbcontrol来管理ASM实例,默认情况下,没有设置ASM实例的主页。需要进行一些转换。,单击continue,输入ASM实例的sys密码和oracle用户及密码,14,15,单击注销退出,16,重新登陆后。,17,创建完成ASM以后,我们可以对ASM实例进行启动和关闭。,ASM实例的启动分为以下两个阶段,1、nomount:该阶段读取spfile,根据其中的参数定义启动ASM实例,2、mount:将初始化参数asm_diskgroup所定义的磁盘组mount起来,这个错误只是说明我们没有定义ASM实例启动时默认要mount起来的磁盘组而已,可以忽略。,18,实例启动起来以后,可以手工的mount磁盘组,关闭ASM实例,也可以有四个参数:normal、transactional、immediate、abort,如果没有以abort选项关闭ASM实例,且这个时侯数据库实例正在使用ASM实例,则无法关闭ASM实例,如果以abort关闭ASM实例,首先会使用abort选项关闭连接在ASM上的数据库实例,然后关闭ASM实例,对ASM发出startup force命令,这与数据库实例一样,先以abort选项关闭ASM实例,然后再startup,从而启动ASM实例,对于单实例的ASM来说,如果ASM实例异常中断或发出shutdown abort、startup force命令时,则当ASM实例启动的以后,会读取磁盘组里的日志文件,进行实例的恢复,如果是多ASM实例,也就是配置了ASM集群,如果其中一个实例崩溃,其他ASM实例会负责恢复该实例的数据。,19,管理ASM磁盘组,ASM磁盘组就是将多块磁盘组合在一起,在逻辑上作为一个整体,磁盘组里的每块物理磁盘都有一个ASM的磁盘名称,该名称可以由ASM自动生成,也可以由我们指定。,磁盘本身的名称在ASM磁盘组里叫做路径,例如一块磁盘的物理路径是/dev/rdsk/c0b0t2d0s1,我们可以给这个磁盘起一个名字disk1,ASM磁盘组将每块磁盘都分割成多个大小1MB的单元,叫做分配单元(allocation unit),对于磁盘组里的数据文件来说,ASM会将数据文件分割成多个大小为1MB的块(chunk),并将这些chunk均匀的分布在所有的磁盘上,这叫做coarse striping。对于联机重做日志文件和控制文件来说,因为文件较小,因此分割成128KB大小的chunk,这叫做fine-grained striping。一个AU里面就存放多个128KB的chunk。,20,通过将文件分割成多个chunk,平均分布在ASM磁盘组里所有的磁盘上,并进行条带化,我们应该确保ASM磁盘组里面的磁盘尺寸应该是一致的、转速应该是一致的。ASM磁盘组的个数不应该过多,两个就够用了,一个用来存放数据、一个用来存放flash recovery area。,故障组(failure group FG),在磁盘组这么一个逻辑组里面,再次划分成更小的逻辑组,这个更小的逻辑组就叫做故障组。通过故障组将多块磁盘组织起来。故障组主要是为了镜像。,在ASM磁盘组里面,镜像是在AU级别上完成的,而不是文件级别上。,三种镜像级别,1、外部镜像(external redundancy)不在ASM磁盘组里面提供镜像功能,如果ASM本身就建立在硬件冗余的基础上,或者容忍数据的丢失,可以配置成外部镜像。,2、普通镜像(normal redundancy)提供两重镜像功能,对于文件里面的每个AU,都会存在该AU的一份副本。,3、高镜像(high redundancy)提供三重镜像功能,对于文件里面的每个AU,都会存在该AU的两份副本,21,磁盘组Dgroup1,故障组(FG1),故障组(FG2),22,ASM在进行镜像的时候,有一条规则:永远不会将AU(主AU)与他的副本放在同一个故障组里面。假设我们有一个数据文件,由6个AU组成。其所在的磁盘组上定义了两重镜像。AU分布如下:,磁盘组Dgroup1,故障组(FG1),故障组(FG2),P主AU,M镜像副本,P1,P2,P3,P4,P5,P6,M6,M5,M4,M3,M2,M1,每一块从盘都包含主AU和镜像副本AU,单个磁盘损坏或者整个故障组损坏,始终都不会丢失数据。,23,假设有两个磁盘控制器,每个磁盘控制器有三个磁盘,那么我们可以建立两个故障组,每个故障组建立在一个磁盘控制器上的三块硬盘上。,如果没有指定磁盘属于哪个故障组,ASM会为该磁盘单独创建一个故障组。,如果我们在磁盘组上定义了外部冗余,则该磁盘组里不能创建故障组。如果我们定义了两重镜像,那么该磁盘组至少需要有两个故障组。如果我们定义了三重镜像,那么该磁盘组至少需要有三个故障组。,我们不能直接删除故障组,当故障组的最后一块硬盘被删除以后,该故障组就被删除。,ASM磁盘组支持热插拔磁盘,当我们向磁盘组里添加硬盘时,ASM会自动从该磁盘组里的每块磁盘上取出部分AU,并放入到新加入的磁盘里,从而使得每块磁盘的数据量大致相等。,当我们从磁盘组里面删除磁盘的时候,ASM会自动的将被删除的磁盘里的AU平均分配到剩余的磁盘中,这个过程叫做再平衡。,Rebalance的过程完全是自动进行,不需要人工的干预。asm_power_limite的值可以决定rebalance的速度,1-11.,24,ASM里并没有数据字典信息,不能将磁盘与磁盘组以及故障组的对应关系记录在数据字典里面。ASM通过在物理磁盘的头部记录元数据,从而描述了每块磁盘属于哪个磁盘组以及故障组,因此ASM里的每块磁盘都是自我描述的。,下面的例子,在linux下面模拟了一些物理的磁盘,25,将这些文件和裸设备关联起来。,如果要删除通过dd模拟出来的虚拟磁盘文件的话,直接删除模拟出来的磁盘文件还不够,还必须执行losetup d /dev/loopN。在这里N从1到6,否则磁盘空间不能释放。,26,使用DBCA创建磁盘组,27,只显示没有划分到磁盘组的磁盘,如果没有发现磁盘,那么可以点击change disk discovery path,这其实就是修改了asm_disk_string参数。,28,对于DBCA来说,只能用来创建ASM磁盘组。,29,30,31,使用SQL语句来管理磁盘组,可以指定size,也可以不指定。100M后面可以加上force,这表示这块磁盘已经属于另外一个磁盘组,需要强行加入进来。如果磁盘没有属于任何组,那么加上force会报错。,创建完成以后,会自动的mount磁盘组。,32,删除磁盘前,磁盘组必须是mount状态。删除以后,里面的数据文件丢失,同时磁盘头部记录的磁盘信息被删除。,33,Raw1属于另外一个磁盘组,将raw1所在的磁盘组dismount以后,就可以将这个磁盘从另外一个磁盘组中拽出来,放进这个磁盘组中。,34,添加一块磁盘到磁盘组中,如果没有指定故障组,则磁盘组会为这块磁盘创建一个新的故障组,故障组的名字就是磁盘的名字。,删除磁盘以后,ASM磁盘组会自动进行一次rebalance操作,添加磁盘后,还会进行一次rebalance。如果我们需要更换磁盘,那么建议将删除和添加磁盘的操作放在一起执行。,实际中,1、先拔下损坏的磁盘,再插入新的磁盘以后,执行下面的语句(假设DgroupB的Disk3损坏,现在使用raw4去替换),改变一个磁盘组的rebalance参数,35,使用em来管理ASM,模拟了6块大小400M的磁盘,36,ASM需要lsnrctl启动以后才能启动。,37,同样建立DgroupB磁盘组,38,39,管理ASM文件,前面讲了一个问题,1、创建ASM实例、启动和关闭ASM实例,2、配置em可以管理ASM实例,3、创建ASM磁盘组,接下来做的事情就是使用ASM实例和磁盘组,ASM文件指的是存放在ASM磁盘组里面的文件,这些文件都是Oracle管理文件(OMF),SQLcreate tablespace asm_test datafile +DgroupA size 20M;,创建了一个大小是20M的表空间,数据文件存放在ASM磁盘组DgroupA里面,数据文件的名字由OMF自动赋予。,我们可以将数据库里面的部分文件存放在文件系统里面,另外一部分文件存放在ASM磁盘里面。,只能通过RMAN对ASM磁盘组里的文件进行备份。,40,ASM的多种命名方式,1、完整的命名方式,+/.,:磁盘组名称,:数据库的名称,:该文件的文件类型,:对于数据文件来说,就是表空间的名称,.:表示唯一的值,ASM磁盘组里也是有目录概念的,其目录概念与文件系统里的目录概念类似,也是一颗目录树。这种命名方式,不能手工指定,必须由ASM自动赋予该名称。我们只能引用这个名称。,41,2、数字的命名方式,同完整命名方式,也是只能引用,不能在创建时引用。由磁盘组名和唯一编号合并而成。数字命名不会出现在ASM的树目录里面,但是我们可以引用。对于上面的文件的数字命名是+DGROUPA.256.682257497,+.,3、别名的命名方式,+/,这种命名方式既可以在用户创建时使用,也可以在引用文件时使用。,命名时,所指定的目录必须存在,不能在别名中带有点和数字,使用了别名的命名方式以后,该文件就不是OMF,删除文件的时候,oracle不会自动的从物理上删除该文件,建议在建立文件的时候不要使用这种方式,而是在创建完ASM以后,为新生成的文件取一个别名。,42,3、带模板的命名方式,该命名方式只能在创建ASM时使用,表示在创建文件时指定一个模板的名称,以模板上定义的属性值来创建新的文件。,+ / (),4、不完全的命名方式,+,创建ASM文件时使用,Oracle会根据所创建的ASM文件的类型选择默认的模板来创建文件。,5、带模板的不完全的命名方式,+(),这种方式只能用于创建ASM文件使用,Oracle会采用指定的模板来创建文件,43,ASM支持数据库里大部分的文件类型,每种文件类型都会关联一个默认的模板名称。,模板表示的是一个命名的属性集合,将一堆属性值组合起来,起一个名字来代表。,在创建文件时使用模板,简化了创建文件的过程,每个磁盘组可以有不同的模板,当创建磁盘组的时候,ASM会为该磁盘组创建默认的模板。默认模板针对不同类型的文件提供了不同的默认值属性,可以在创建完成磁盘组以后修改这些属性,但是不能删除默认的模板。,显示默认模板的属性,不同的文件具有不同的属性。模版定义了ASM文件的冗余度和条带集。,普通镜像,三重镜像,1M chunk,128K chunk,不同的文件类型,44,磁盘组在定义的时候,定义了冗余度和条带集,我们在创建文件的时候,可以使用模板来覆盖磁盘组的定义。,该模板不冗余,条带集是1MB。,ASM实例中运行。,ASM实例中select,45,PS大小是20M,LS也是20M,显然没有冗余。,上面两个文件,LS是PS的两倍,显然是用的是普通镜像。,删除模板。,46,给一个已经存在的ASM文件起一个容易记住的别名,添加别名以前,可以先添加目录。子目录需要一级一级的添加。,当前实例是数据库实例,这种提示表示需要到ASM实例中去执行。,上面使用了数字命名方式,也可以采用完整命名方式。,47,上面出现了一个问题,如果在磁盘组前面没有添加+,那么就不认为是磁盘组,而是一个普通的名字。,48,因为ASM磁盘组里面的文件不能通过普通的操作系统命令访问,因此如果要将数据库从文件系统迁移到ASM磁盘组里面,则必须通过RMAN,如果数据库启用了闪回数据库功能,需要先关闭闪回数据库功能。,1、修改初始化参数control_files和flash recovery area,闪回数据库是开启的。,关闭闪回数据库功能。,49,2、关闭数据库,启动rman到nomount状态,恢复刚才的控制文件。,50,3、通过生成RMAN副本的方式,将所有的数据文件全部迁移到ASM磁盘组。,4、开始恢复数据库,RMANrecover database;,5、将临时表空间所包含的临时文件迁移到DgroupA组中,RMANrun,switch tempfile 1 to +DgroupA;,6、通过SQL*PLUS连入数据库实例,将控制文件里记录的联机重做日志文件的路径修改为磁盘组DgroupA,SQLalter database rename file /u01/app/oracle/oradata/data1/redo01.log to +DgroupA,51,SQLalter database rename file /u01/app/oracle/oradata/data1/redo02.log to +DgroupA,SQLalter database rename file /u01/app/oracle/oradata/data1/redo03.log to +DgroupA,7、在RMAN中以resetlogs选项打开数据库,从而根据控制文件里记录的联机重做日志文件的路径(这里是DgroupA),自动在DgroupA里创建联机日志文件。,52,ASMCMD工具,为了更加方便的查看ASM磁盘组中的文件,Oracle在10g R2中,提供了一个工具,这是一个命令行工具,提供了类似操作系统的交互命令来显示ASM磁盘组里面的文件的相关信息。,$export ORACLE_SID=+ASM,$asmcmd,asmcmdls l,asmcmdcd +dgroupa/oradata,asmcmdpwd,asmcmdhelp 可以看到所有的命令,asmcmdhelp mkalias可以详细的看见这个命令的使用,53,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!