创建ASM实例及ASM数据库

本文详细介绍了Oracle ASM(自动存储管理)的概念、优点及其在RAC集群中的应用。深入探讨了ASM实例的架构,包括SGA、后台进程、ASM磁盘组和磁盘的管理。同时,提供了在RHEL5.4环境下创建ASM实例和磁盘组的步骤,包括安装ASM包、配置参数文件、创建ASM实例和磁盘组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.youkuaiyun.com/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

--========================

-- 创建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级别

        SYSTEMUNDO表空间通常置于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实例的后台进程,如SMONPMONLGWRDBWRCKPT等,还增添了两个新进程,一类是RBAL,一类是ARBn

            RBAL:用于协调和管理磁盘组之间的动态平衡

            ARBn:可以为多个,用于完成AU的移动

        ASM实例仅仅是定位管理ASM磁盘,不能加载或打开数据库,因此也无法读取数据字典信息

        ASM实例通常有个参数,只能使用口令文件或操作系统身份验证作为sysdbasysoper来启动或关闭该实例。

            关于sysdbasysoper区别请参考:system sys,sysoper sysdba

 

        一个ASM实例可以为多个RDBMS提供服务,可以在一台主机上创建多个ASM实例,但通常一台主机上使用一个ASM实例

        如果一个实例服务于多个RDBMS,建议将ASMASM_HOMEDBORACLE_HOME分开,便于日后的升级与维护

        ASM磁盘组的创建与配置在ASM实例启动之后

       

使用ASM磁盘的RDBMS实例与普通的RDBMS实例相同,但多出了两个后台进程,RBALASMB

            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参数文件(使用VIVIM)

        [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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值