www.Orasql.Com
 
用户名: 密码:  验证码: 注册|找回密码 oracleawen's blog  
 
         当前位置 >> 技术论坛  发表帖子     论坛版块     查找帖子
OCP笔记-dba2-les12-技术论坛||Oracle高手之路—Orasql.Com!
            OCP笔记-dba2-les12
 
发贴人:oracle_awen
oracleawen@gmail.com448315233127.0.0.1
用户级别:管理员
发贴总数:1245
注册时间:2011-05-05 09:23:03
2011-07-17 01:12:57
ASM Automatic Storage Management (ASM) 提供了文件系统与卷管理器的纵向集成,这是一项专门为 Oracle 数据库文件构建的技术。使用 ASM 可以管理单个 SMP 计算机,也可管理集群的多个节点以便为 Oracle Real Application Clusters (RAC) 提供支持。 ASM 将 I/O 负载分布在所有可用的资源中来优化性能,不必手动进行 I/O 优化。ASM有助于 DBA 管理动态数据库环境,使 DBA 不必关闭数据库,就可以增加数据库的大小来调节存储分配。 ASM 通过维护数据的冗余副本来提供容错能力,也可以基于供应商提供的可靠存储机制来构建 ASM。通过为各类数据选择所期望的可靠性和性能特性来进行数据管理,而不是人工处理每个文件。 ASM 功能可以实现人工存储自动化,提高 DBA 管理大型数据库及更多数据库的能力,从而可以节省 DBA 的时间并提高效率。 ASM 将文件分为多个分配单元 (AU),并在所有磁盘间平均分配每个文件的分配单元。ASM 使用索引技术跟踪每个分配单元的位置。存储容量发生变化时,ASM 不会重新条带化所有数据,而是根据添加或删除的存储量,按比例移动一定数量的数据,以重新均匀分配文件,保持磁盘间的负载平衡。此操作可在数据库处于活动状态时执行。 可以提高或降低重新平衡操作的速度,以减小对 I/O 子系统的影响。ASM 还提供了镜像保护,因此您不必再购买第三方的逻辑卷管理器。ASM 的一个独特优势在于其镜像基于文件而不是基于卷。因此,同一磁盘组中可以包含受镜像保护的文件和不受镜像保护的文件的组合。 ASM 支持数据文件、日志文件、控制文件、归档日志、RMAN 备份集以及其它 Oracle数据库文件类型。ASM 支持 Oracle Real Application Clusters,而且无需使用集群逻辑卷管理器或集群文件系统。 要使用 ASM,在启动数据库实例之前,必须启动一个名为 ASM 实例的特殊实例。ASM实例不会装载数据库,而是管理使 ASM 文件可用于普通数据库实例所必需的那些元数据。 ASM 实例和数据库实例都能访问一些公共的磁盘集,这些公共磁盘集称为磁盘组。数据库实例直接访问 ASM 文件的内容,它们与 ASM 实例通信的目的只是为了获取这些文件的布局信息。 ASM 实例包含两个新的后台进程。一个进程负责协调磁盘组的重新平衡活动,称为 RBAL。 第二个进程负责执行实际的重新平衡分配单元移动操作。在同一时刻可以存在许多此类进程,它们分别名为 ARB0、ARB1,以此类推。ASM 实例还有一些与数据库实例相同的后台进程,其中包括 SMON、PMON、LGWR、DBWR 和 CKPT。 每个使用 ASM 的数据库实例都有两个新的后台进程,ASMB 和 RBAL。RBAL 负责全局打开磁盘组中的磁盘。 数据库实例启动时,ASMB 作为前台进程连接到 ASM 实例。数据库实例和 ASM 实例之间的通信就是通过这种桥接来实现的。此类通信包括物理文件更改,例如数据文件的创建和删除。通过这种连接可以定期交换消息,以更新统计信息并确认这两个实例都在正常运行。 ASM作为单独的Oracle实例实施 ASM作为单独的 Oracle实例实施,只有它在运行时其他数据库才能访问它。在 Linux上,只有运行 OCSSD服务(由 Oracle通用安装程序默认安装)才能使用 ASM。ASM需要的内存不多:对大多数系统,只需 64 MB。 ASM提供了3种冗余方法 external redundancy 表示Oracle不帮你管理镜像,功能由外部存储系统实现,比如通过RAID技术。 normal redundancy(默认方式)表示Oracle提供2路镜像来保护数据。 high redundancy 表示Oracle提供3路镜像来保护数据。 ASM实例只需要初始参数文件,不需要其它物理文件. spfile+ASM.ora ASM的实例的名称是+ASM。INSTANCE_TYPE=ASM select instance_name from v$instance; ----安装ASM 1 确认自己系统版本 uname –rm 2 下载对应的软件 软件下载地址:http://www.oracle.com/technology/tech/linux/asmlib/index.html 3安装,注意安装顺序 rpm -ivh oracleasm-support-2.1.3-1.el5.i386.rpm rpm -ivh oracleasm-2.6.18-92.el5-2.0.5-1.el5.i686.rpm rpm -ivh oracleasmlib-2.0.4-1.el5.i386.rpm 4 确保selinux是关闭的 vi /etc/selinux/config SELINUX=disabled 5 运行配置脚本,准备ASMLib驱动程序 /etc/init.d/oracleasm configure oracle dba y y 6 启用ASMLib驱动程序 /etc/init.d/oracleasm enable 如果当前操作系统的内核和编译ASMLib的内核不同,那么上面的操作将会出错,请检查/var/log/messages文件,确认需要更新的系统内核版本。 7 添加init文件使系统启动时自动加载ASMLib $ su – # cd /etc/rc3.d # ln -s ../init.d/oracleasm S99oracleasm # ln -s ../init.d/oracleasm K01oracleasm 注意:如果系统启动是自动进入图形界面,也就是系统的init level是5,那么上面生成链接的命令应该在/etc/rc5.d目录中操作。 重新启动系统,确认ASMLib已经可以自动加载 #lsmod | grep oracleasm oracleasm 14224 1 #dmesg | grep oracleasm ASM: oracleasmfs mounted with options: 8 ASM的运行需要CSS服务,下面来安装它 cd /u01/app/oracle/product/10.2.0/db_1/bin/ ./localconfig add <==执行这个命令来完成安装 -------驱动和CSS服务都动----------------------------- 9 fdisk –l <==查看系统都挂载了那些磁盘 fdisk /dev/sdb m 帮助 n 创建分去 p主分区 w保存 最后使用partprobe 生效分区 fdisk - l查看 asm卷管理功能 给分区取名--创建ASM磁盘 10 创建ASM磁盘 注意:VOL* :这里必须要大写,否则会出错 /dev/sdb*:这里可以是整块未分区的硬盘也可以是硬盘的分区。 /etc/init.d/oracleasm createdisk VOL1 /dev/sdb1 /etc/init.d/oracleasm createdisk VOL2 /dev/sdc1 /etc/init.d/oracleasm createdisk VOL3 /dev/sdd1 /etc/init.d/oracleasm createdisk VOL4 /dev/sde1 如果要删除ASM磁盘通过以下命令: # /etc/init.d/oracleasm deletedisk VOL4 11 查看已标记为ASMLib的硬盘 /etc/init.d/oracleasm listdisks <==查看已标记为ASMLib的硬盘 12注意:如果是在RAC环境中的某一个节点中添加了ASM磁盘,那么需要在其它的节点上运行scandisk来获取这种变化。 # /etc/init.d/oracleasm scandisks 13 使用DBCA来创建ASM实例 ---ASM 实例初始化参数 INSTANCE_TYPE:对于 ASM 实例,该参数应设置为 ASM。 DB_UNIQUE_NAME:该参数指定此 ASM 实例为其管理磁盘组的服务提供程序的名称。默认值为 +ASM。仅当在同一节点上运行多个 ASM 实例时才须修改默认值。 ASM_POWER_LIMIT:该参数控制重新平衡操作的速度。取值范围为 1 到 11,11 表示速度最快。如果省略,该值将默认为 1。从属进程的数量可以从手动重新平衡命令 (POWER) 中指定的并行级别派生,或者通过 ASM_POWER_LIMIT 参数派生。 ASM_DISKSTRING:该参数是一个与操作系统相关的值,由 ASM 用来限制搜索中涉及的磁盘集。 ASM_DISK_GROUPS:该参数列出 ASM 实例启动时或者使用 ALTER DISKGROUP ALL MOUNT 命令时装载的磁盘组的名称。 INSTANCE_TYPE 参数是唯一一个必须由您定义的参数。其它所有ASM 参数都有适合于大多数环境的默认值。 注:如果 ASM 环境是使用命令行而不是通过 EM 创建的,则必须先创建磁盘组然后才能装载。 注:由于 ASM 文件的分配单元映射是从 LARGE_POOL 分配的,因此必须将 LARGE_POOL_SIZE 初始化参数设置为至少 8 MB,越大越好。 ----------管理ASM实例 1 启动 / 关闭 ASM 实例 ASM 实例与DB实例高度相似,启动和停止实例的命令也一模一样,就启动来说,也同样拥有 NOMOUNT/MOUNT/OPEN /FORCE 几种状态。 NOMOUNT :仅启动实例; MOUNT 、OPEN:启动实例并加载磁盘,注意加载的是磁盘组(如果当前未创建或配置任何磁盘组,则提示敬告信息),OPEN选项对于ASM实例无意义,等同于MOUNT。 FORCE :相当于先执行shutdown abort,然后再startup。 export ORACLE_SID=+ASM sqlplus / as sysdba startup nomount select name,state from v$asm_diskgroup; select instance_name,status from v$instance; alter diskgroup all mount; select name,state from v$asm_diskgroup; 这样,该ASM就可以提供存储服务了。 提示一点,在10g版本中,ASM是依赖于CSS守护进程的,因此在启动ASM 实例前要确保css守护进程已经启动 。 安装localconfig add CSS(Cluster Synchronization Services) 守护进程 用来维持ASM 及客户端数据库实例间的一致性同步 ,如果是通过dbca建库的话,那么CSS守护进程默认即会启动(跟随系统reboot)。 检查css守护进程是否启动非常 简单 ,直接使用crsctl check cssd即可,如果启动的话会收到"CSS appears healthy"的返回消息 访问 ASM 实例 ASM 实例没有数据字典,因此连接此类实例的唯一方法是使用操作系统验证机制,即 SYSDBA 或 SYSOPER。要进行远程连接,需要使用口令文件。通常,SYSDBA 权限是通 过使用操作系统组来授予的。在 UNIX 上,通常是 dba 组。默认情况下,dba 组的成员对该节点上的所有实例(包括 ASM 实例)拥有 SYSDBA 权限。使用 SYSDBA 权限连接到ASM 实例的用户对系统中的所有磁盘组拥有管理权限。ASM 实例中支持 SYSOPER 权限,该权限将允许执行的 SQL 命令集限制到最小,即能满足已配置系统上的基本操作即可。 例如 CREATE DISKGROUP、ADD/DROP/RESIZE DISK 等等,都需要具备 SYSDBA 权限才能执行,使用 SYSOPER 权限不能执行。 关闭ASM实例,简单了,NORMAL/IMMEDIATE/TRANSACTIONAL/ABORT几个选项的定义与关闭普通数据库实例完全一模一样! 尝试关闭处于 NORMAL、IMMEDIATE 或 TRANSACTIONAL 模式下的 ASM 实例时,只有在没有任何数据库实例连接到该 ASM 实例的情况下,操作才会成功。如果至少有一个实例与之连接,则会显示以下错误: ORA-15097: cannot SHUTDOWN ASM instance with connected RDBMS instance SQL> shutdown immediate ASM diskgroups dismounted ASM instance shutdown 2、管理ASM磁盘 ASM 逻辑结构 数据库文件可以存储为 ASM 文件。新层次的顶部是 ASM 磁盘组。任何单个 ASM 文件只能包含在一个磁盘组中。不过,一个磁盘组中可以包含属于多个数据库的多个文件,并且单个数据库可以使用来自多个磁盘组的存储空间。正如您看到的那样,一个磁盘组由多个 ASM 磁盘组成,但每个 ASM 磁盘只能属于一个磁盘组。ASM 文件始终分布在该磁盘组中的所有 ASM 磁盘上。ASM 磁盘按分配单元 (AU) 进行分区,每个分配单元的大小为 1 MB。分配单元是 ASM 分配的最小连续磁盘空间。ASM 不允许跨分配单元拆分一个 Oracle 块。 ASM 磁盘组 使用ASM磁盘组有很多方面的优点:改进I/O性能、增加可用性、简化添加磁盘到磁盘组或添加全新的磁盘组,从而允许在相同的时间内管理更多的数据库。 1. 磁盘组的体系结构 磁盘组是作为一个单位管理的物理磁盘的集合。 作为磁盘组一部分的每个ASM磁盘都有一个ASM磁盘名,可以由DBA赋予该磁盘名,也可以在将该磁盘赋予磁盘组时自动分配磁盘名。 使用粗糙条带化或细密条带化,在磁盘上对磁盘组中的文件条带化。粗糙条带化以每个1MB为单位将文件扩展到所有的磁盘。粗糙条带化适合于具有高度并发的小I/O请求的系统,例如OLTP环境。作为选择,细密条带化以128KB为单位扩展文件,它适合于传统的数据仓库环境或具有较低并发性的OLTP系统,可以最大化单个I/O请求的响应时间。 2. 磁盘组镜像和故障组 故障组是某个特定磁盘组中的一组磁盘,共享一个可以容错的公用资源。例如,故障组可以是连接到公用 SCSI 控制器的一组 SCSI 磁盘。 在定义磁盘组中的镜像类型前,必须将磁盘分组到故障组中。 除非专门将一个磁盘赋给故障组,否则磁盘组中的每个磁盘都赋给它自己的故障组。 一旦已经定义故障组,就可以定义磁盘组的镜像。可用于磁盘组中的故障组的数量可以限制可用于磁盘组的镜像类型。有3种可用的镜像类型:外部冗余、普通冗余和高度冗余。 外部冗余 外部冗余只需要一个磁盘位置,并且假设磁盘对于正在进行的数据库操作不是至关重要的,或者使用高可用性的硬件(例如RAID控制器)在外部管理磁盘。 普通冗余 普通冗余提供双向镜像,并且需要磁盘组中至少有两个故障组。故障组中的一个磁盘产生故障不会造成磁盘组的任何停机时间或数据丢失,除了对磁盘组中对象的查询有一些性能上的影响。当故障组的所有磁盘都处于联机状态时,读性能一般会得到提高,因为请求的数据在多个磁盘上可用。 高度冗余 高度冗余提供三向镜像,并且需要磁盘组中的至少3个故障组。对于数据库用户来说,任意两个故障组中的磁盘产生故障基本上不会有明显的表现,如同在普通冗余镜像中 那样。 ASM 不镜像磁盘,而是镜像分配单元。 ASM 将文件的一个主分配单元分配至磁盘组中的一个磁盘时,会将该分配单元的一个镜像副本分配至该磁盘组的另一个磁盘中。给定磁盘中的主分配单元可以在该磁盘组的其中一个伙伴磁盘上拥有各自的镜像副本。ASM 将确保主分配单元及其镜像副本始终位于不同的故障组中。如果为磁盘组定义了故障组,则 ASM 可以对单一故障组中多个磁盘发生的同步故障进行容错处理。 3. 磁盘组的动态重新平衡 改变磁盘组的配置时,无论添加或删除故障组或故障组中的磁盘,都将自动进行动态的重新平衡,按比例将数据从磁盘组的其他成员重新分配到磁盘组的新成员。当数据库联机并且用户可使用该数据库时,这种重新平衡就可以发生。通过将初始参数ASM_POWER_LIMIT的值调整为较低的值,可以控制对正在进行的数据库I/O的任何影响。取值范围为 0 到 11。数值越小,负载越少,而设置越高,负载越多,完成的也更快。设置为 0 表示暂挂重新平衡操作。默认值为 1。 ---ASM 磁盘组的管理 ASM 磁盘组的管理方式呢也比较多,比如像DBCA、EM、SQL*PLUS等均可操作(不同工具 易用性不同,不过 功能也有差异),除此之外ORACLE还专门提供了ASMCMD命令行方式,像操作文件系统一样来操作磁盘组。 查询数据库中ASM相关视图 select * from dict where table_name like 'V$ASM_%'; V$ASM_ALIAS视图中记录文件别名信息 V$ASM_CLIENT返回当前连接的客户端实例信息 V$ASM_DISK*相关视图中记录的是ASM管理的磁盘及磁盘组信息, V$ASM_OPERATION记录当前磁盘的操作信息 select group_number,name,state,total_mb,free_mb from v$asm_diskgroup; 添加磁盘组 DBCA 中创建磁盘组 SQL*PLUS下操作也很简单,主要是使用CREATE DISKGROUP语句,该语句的语法如下: CREATE DISKGROUP diskgroup_name [ { HIGH | NORMAL | EXTERNAL } REDUNDANCY ] [ FAILGROUP failgroup_name ] DISK [ NAME disk_name ] [ SIZE size_clause ] [ FORCE | NOFORCE ] .. 首先要指定的就是磁盘组名称(diskgroup_name); 指定冗余度,有三个选择:HIGH(高度冗余>三路)、NORMAL(标准冗余--双路)和EXTERNAL(外部存储冗余); 选择是否指定FAILGROUP(如果选择非external则必须指定); create diskgroup dgtest normal redundancy failgroup DATA1 disk 'ORCL:DISK1' failgroup DATA2 disk 'ORCL:DISK2' create diskgroup dgtest normal redundancy failgroup DATA1 disk '/dev/raw/raw1' failgroup DATA2 disk '/dev/raw/raw2' 创建完成后就可以查看新建的磁盘组状态: select name ,state from v$asm_diskgroup; 在dgtest上可以创建目录 alter diskgroup dgtest add directory '+DGTEST/A'; 修改目录名: alter diskgroup dgtest rename directory '+DGTEST/ORADATA' to '+DGTEST/B'; 删除目录名: alter diskgroup dgtest drop directory '+DGTEST/B'; 查看磁盘名及路径 select name ,path from v$asm_disk_stat; 查看磁盘组的名,磁盘成员名,和路径 select g.NAME,DISK_NUMBER,d.NAME, PATH from v$asm_disk_stat d join v$asm_diskgroup g using (GROUP_NUMBER) 备份一个文件到dgtest磁盘组 backup datafile 1 format '+DGTEST/' 添加磁盘: 这里新创建了一个DISK5,将其加入到DGTEST磁盘组中: alter diskgroup dgtest add disk 'ORCL:DISK5'; 该命令立刻返回,并且在后台进行格式化和重新平衡。然后,通过检查V$ASM_OPERATION视图来检查重新平衡操作的状态: select group_number, operation, state, power, actual,sofar, est_work, est_rate, est_minutes from v$asm_operation 可以手工设置平衡率 手动平衡磁盘组 一般情况下ASM都会自动对其下的磁盘组进行平衡,不过ORACLE也提供了手动平衡磁盘组的方式,通过alter diskgroup ... power 语句。前面提到过磁盘组的平衡度有0到11多个级别,默认是按照ASM_POWER_LIMIT初始化参数中设置的值,手动平衡的话,设置的平衡度可以与初始化参数中并不相同, 例如如果完成重新平衡操作估计要用10分钟,所以可以决定分配更多的资源给重新平衡操作,并且改变当前重新平衡操作的功率极限: alter diskgroup dgtest rebalance power 5; 通过V$ASM_DISK和V$ASM_DISKGROUP视图确认新磁盘的配置: select group_number, disk_number, name,failgroup, create_date, path from v$asm_disk; 删除磁盘 虽然删除磁盘也涉及到数据库的重新平衡,因此删除跟添加还有点儿不同,就是当删除磁盘时,当ASM发现怎么平衡都平衡不过来时(比如剩下的磁盘空间不足以存放所有数据时),删除操作也会失败。这种情况要么先删数据,要么取消删除的操作。 简单举个例子,比如说删除DGTEST磁盘组中的DISK5磁盘,操作如下: alter diskgroup dgtest drop disk DISK5; 上述语句返回后并不代表磁盘已经被删除,此时后台可能由于正忙碌地执行着IO重平衡的工作,因此如果在这个当口,DBA忽然意识到操作失误,其实磁盘并不需要被删除,那也可以马上通过alter diskgroup dgname undrop disks语句来取消删除的操作,例如: alter diskgroup dgtest undrop disks; 只要删除操作还没有真正完成,任何就会被取消,否则的话,上述语句也挽回不了什么了,如果希望挽回,那DBA只能再通过ADD语句将该磁盘重新加入到磁盘组了。 删除diskgroup drop diskgroup dgtest including contents; alter diskgroup命令 alter diskgroup ... drop disk 删除磁盘组中来自于故障组的磁盘,并且执行自动的重新平衡 alter diskgroup ... drop ... add 删除来自于故障组的磁盘,并且添加另一个磁盘,所有这些操作都在相同的命令中完成 alter diskgroup ... mount 使磁盘组可用于所有的实例 alter diskgroup ... dismount 使磁盘组不可用于所有的实例 alter diskgroup ... check all 验证磁盘组的内部一致性 使用asmcmd命令 asmcmd实用程序是Oracle 10g版本2的新增特性,它是一个命令行实用工具,提供了一种简单的方法,可以使用类似于Linux外壳命令(例如ls和mkdir)的命令集,浏览和维护ASM磁盘组中的对象。 ASMCMD看起来很想UNIX的命令行。下面是一些ASMCMD命令,很多都是UNIX开发人员熟悉的: cd:在模拟文件结构中改变目录。 ls: 列出当前目录的内容。 pwd:打印出当前目录的名字。 rm:从磁盘组删除一个文件。 lsdg:列出在ASM实例中配置的磁盘组。 du:显示指定的ASM目录下ASM文件占用的所有磁盘空间(du命令只显示已用的磁盘空间以及跨镜像磁盘组所用的总磁盘空间) lsct:列出当前ASM客户端的信息 mkalias:为系统生成的文件名创建别名 --ASM中的文件名 ASM 创建的文件均由系统自动命名,这种命名方式官方定义为 完全定义文件名 (Fully Qualified Filename) ,这种方式命名的文件包含完整的文件路径: +DGROUP1/ORCL/TEMPFILE/TEMP.267.714576831 上述名称是在文件创建时完全由ASM自动生成,事上述名称的生成格式为: +diskgroup/dbname/file_type/file_type_tag.file.incarnation +diskgroup :磁盘组名称; dbname :数据库的DB_UNIQUE_NAME参数值; file_type :创建的文件类型, 比如CONTROLFILE/DATAFILE/ONLINELOG/ARCHIVELOG/TEMPFILE/BACKUPSET/FLASHBACK等等 file_type_tag :文件类型的标签,比如表空间对应的通常为该表空间名称; file.incarnation :文件序号+incarnation,用来确保文件的唯一; 实际上,即使DBA在创建时想手动指定这样格式的文件名也是不行的(即使指定了,创建的也只是别名) create tablespace test datafile '+DGROUP1/ORCL/datafile/test01.dbf' size 10m; asmcmd下查看一下实际创建的文件: ASMCMD> ls 即然文件创建时无法指定实际文件名及路径,那么创建语句当然还可以更简化 create tablespace test datafile '+DGROUP1' size 10m 管理别名(Alias Names) 别名就是外号,比如说当系统自动产生的名称太过复杂不怎么好记,DBA可以通过别名,为它创建一个简单化的名称,而又不会对其现有名称造成任何影响。ASM中创建别名是通过alter diskgroup的alias子句实现,支持增加/修改/删除等多项操作。V$ASM_ALIAS视图中可以查询到当前实例中创建的别名。 例如,增加别名: alter diskgroup dgtest add alias '+DGROUP1/ORCL/datafile/temp01.dbf' for '+DGROUP1/ORCL/TEMPFILE/TEMP.267.714576831'; 删除别名: alter diskgroup asmdisk2 drop alias '+DGROUP1/ORCL/datafile/temp01.dbf' 不管是添加/删除或是修改别名,对原有文件路径均不会有影响。 -------------裸设备 创建ASM磁盘 a. raw /dev/raw/raw1 /dev/sdh1 raw /dev/raw/raw2 /dev/sdh2 b.配置裸设备映射,修改/etc/udev/rules.d/60-raw.rules文件 使用root帐户修改/etc/udev/rules.d/60-raw.rules 按如下方式添加磁盘 cat /etc/udev/rules.d/60-raw.rules --查看添加的内容 ATION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="17", RUN+="/bin/raw /dev/raw/raw1 %M %m" ACTION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="33", RUN+="/bin/raw /dev/raw/raw2 %M %m" ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N" ACTION=="add", KERNEL=="sdc1", RUN+="/bin/raw /dev/raw/raw2 %N" #重启udev服务 start_udev raw -aq 是否输出 raw 信息 ll /dev/raw 是否存在,并且属主是否为oracle:dba chown oracle:dba /dev/raw/raw[1-2] --修改属主,否则创建磁盘组时提示权限不够 ll /dev/raw/ chmod 660 /dev/raw/raw1 chmod 660 /dev/raw/raw2 重启裸设备服务 /sbin/service rawdevices restart create diskgroup DG1 normal redundancy disk '/dev/raw/raw1','/dev/raw/raw2'; --创建磁盘组DG1 select name,allocation_unit_size,state,type, free_mb,required_mirror_free_mb req_mi_fr_mb,usable_file_mb from v$asm_diskgroup; 手工创建ASM实例及磁盘组 创建ASM实例参数文件 cd $ORACLE_HOME/dbs VIM init+ASM.ora *.asm_diskstring='ORCL:VOL*' *.background_dump_dest='/opt/oracle/admin/+ASM/bdump' *.core_dump_dest='/opt/oracle/admin/+ASM/cdump' *.instance_type='asm' *.large_pool_size=12M *.remote_login_passwordfile='SHARED' *.user_dump_dest='/opt/oracle/admin/+ASM/udump' 创建密码文件 cd $ORACLE_HOME/dbs orapwd file=orapw+ASM password=oracle 创建必要的目录结构 su - oracle mkdir -p $ORACLE_HOME/admin/+ASM/udump mkdir -p $ORACLE_HOME/admin/+ASM/bdump mkdir -p $ORACLE_HOME/admin/+ASM/cdump 确保ORACLE集群同步服务CSS开启 localconfig add 检查服务是否启动 ps -ef |grep ocssd |grep -v grep 最后启动实例 export ORACLE_SID=+ASM startup 手工划分好的磁盘创建磁盘组 create diskgroup dgroup1 normal redundancy failgroup fgruop1 disk 'ORCL:VOL1','ORCL:VOL2' failgroup fgruop1 disk 'ORCL:VOL3','ORCL:VOL4' 查看磁盘组状态 select name ,state from v$asm_diskgroup 手工加载磁盘组 alter diskgroup dgroup1 mount; 查看asm_diskgroups参数被自动设置为 磁盘组 show parameter asm_diskgroups 卸载 alter diskgroup all dismount;

      
 
  
 Orasql.Com|E-Mail:oracleawen@gmail.com|Phone:15271942915|Copyright © 2011|All Rights Reserved|