Oracle 11g ASM详细配置
来源:互联网 发布:iphone库存查询软件 编辑:程序博客网 时间:2024/05/18 04:49
目录
0,说明
1,查看系统版本号
2,检查asm依赖的oracleasm-support和kernel-uek包是否存在
3,在VMware Workstation 9.0 虚拟机添加4个大小为5G的磁盘为虚拟裸设备使用
4,扫描已经mount的硬盘
5,给磁盘分区
6,查看分区后的硬盘信息
7,将已经分区的磁盘绑定为裸设备 raw
8,给裸设备设置权限
9,启动绑定的裸设备
10,配置ASM磁盘
11,在ASM实例中查看ASM磁盘信息
12,在DB实例中使用ASM磁盘
0, 说明
环境>
操作系统:Oracle Enterprise Linux6.2
数据库:Oracle11.2.0.3.0 with Grid
裸设备虚拟环境:VMware Workstation 9.0
一般是oracle用户对应DB实例,grid用户对应ASM实例,为了便于管理,将两个实例统一由oracle用户管理,通过每次启动实例前,运行. .asm和. .db这两个环境变量实现在oracle一个用户下启动和使用不同的实例。
两个环境变量配置如下。
[oracle@updba ~]$ cat .asm# .bash_profile# Get the aliases and functionsif [ -f ~/.bashrc ]; then. ~/.bashrcfi# User specific environment and startup programsexport ORACLE_BASE=/u01/app/oracleexport GRID_HOME=/u01/app/grid/11g ——Grid主目录export ORACLE_HOME=$GRID_HOMEexport ORACLE_SID=+ASMPATH=$GRID_HOME/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:export PATH[oracle@updba ~]$ cat .db# .bash_profile# Get the aliases and functionsif [ -f ~/.bashrc ]; then. ~/.bashrcfi# User specific environment and startup programsexport ORACLE_BASE=/u01/app/oracleexport DB_HOME=/u01/app/oracle/11g ——DB主目录export ORACLE_SID=updbexport ORACLE_HOME=$DB_HOMEPATH=$DB_HOME/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:export PATH
1,查看系统版本号
[root@updba rules.d]# uname -aLinux updba.uplooking.com 2.6.32-300.3.1.el6uek.x86_64 #1 SMP Fri Dec 9 18:57:35 EST 2011 x86_64 x86_64 x86_64 GNU/Linux
2,检查asm依赖的oracleasm-support和kernel-uek包是否存在
[oracle@updba ~]$ rpm -qa|grep oracleasm-supportoracleasm-support-2.1.5-1.el6.x86_64[oracle@updba ~]$ rpm -qa|grep kernel-uekkernel-uek-firmware-2.6.32-300.3.1.el6uek.noarchkernel-uek-headers-2.6.32-300.3.1.el6uek.x86_64kernel-uek-2.6.32-300.3.1.el6uek.x86_64
包的版本号和系统的版本号一致。
由于我用的是 Oracle Enterprise Linux6.2,所以系统自带这两个包。如果是用的redhat6.X,需要在 yum.oracle.com 上下载与之版本号相匹配的包,小版本号也最好相同,安装包后需要重新启动系统。
3,在VMware Workstation 9.0 虚拟机添加4个大小为5G的磁盘为虚拟裸设备使用
4,扫描已经mount的硬盘
共有4个,依次是:sdb,sdc,sde,sdd
[root@updba ~]# fdisk -lDisk /dev/sda: 32.2 GB, 32212254720 bytes255 heads, 63 sectors/track, 3916 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x000bb795Device Boot Start End Blocks Id System/dev/sda1 * 1 64 512000 83 LinuxPartition 1 does not end on cylinder boundary./dev/sda2 64 3917 30944256 8e Linux LVMDisk /dev/sdb: 5368 MB, 5368709120 bytes255 heads, 63 sectors/track, 652 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00000000Disk /dev/sdb doesn't contain a valid partition table -- sdb --磁盘1Disk /dev/sdc: 5368 MB, 5368709120 bytes – sdc--磁盘2255 heads, 63 sectors/track, 652 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00000000Disk /dev/sdc doesn't contain a valid partition tableDisk /dev/sde: 5368 MB, 5368709120 bytes – sde--磁盘3255 heads, 63 sectors/track, 652 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00000000Disk /dev/sde doesn't contain a valid partition tableDisk /dev/sdd: 5368 MB, 5368709120 bytes – sdd--磁盘4255 heads, 63 sectors/track, 652 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00000000Disk /dev/sdd doesn't contain a valid partition tableDisk /dev/mapper/VolGroup-lv_root: 27.5 GB, 27489468416 bytes255 heads, 63 sectors/track, 3342 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00000000Disk /dev/mapper/VolGroup-lv_root doesn't contain a valid partition tableDisk /dev/mapper/VolGroup-lv_swap: 4194 MB, 4194304000 bytes255 heads, 63 sectors/track, 509 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x00000000Disk /dev/mapper/VolGroup-lv_swap doesn't contain a valid partition table
5,给磁盘分区
[root@updba ~]# fdisk /dev/sdbDevice contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabelBuilding a new DOS disklabel with disk identifier 0xdc9eee33.Changes will remain in memory only, until you decide to write them.After that, of course, the previous content won't be recoverable.Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u').Command (m for help): n ——此处输入 n 新建分区(下同)Command action e extended p primary partition (1-4)p ——此处输入 p新建主分区(下同)Partition number (1-4): 1 ——此处输入1建将这块磁盘分为一个区(下同)First cylinder (1-652, default 1): ——默认全部分给主分区(下同)Using default value 1Last cylinder, +cylinders or +size{K,M,G} (1-652, default 652): Using default value 652Command (m for help): w ——输入W保存设置(下同)The partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.依次为其他已经mount而没有分区的设备进行分区[root@updba ~]# fdisk /dev/sdcDevice contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabelBuilding a new DOS disklabel with disk identifier 0x63634766.Changes will remain in memory only, until you decide to write them.After that, of course, the previous content won't be recoverable.Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u').Command (m for help): nCommand action e extended p primary partition (1-4)pPartition number (1-4): 1First cylinder (1-652, default 1): Using default value 1Last cylinder, +cylinders or +size{K,M,G} (1-652, default 652): Using default value 652Command (m for help): wThe partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.[root@updba ~]# fdisk /dev/sdeDevice contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabelBuilding a new DOS disklabel with disk identifier 0x323654a6.Changes will remain in memory only, until you decide to write them.After that, of course, the previous content won't be recoverable.Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u').Command (m for help): nCommand action e extended p primary partition (1-4)pPartition number (1-4): 1First cylinder (1-652, default 1): Using default value 1Last cylinder, +cylinders or +size{K,M,G} (1-652, default 652): Using default value 652Command (m for help): wThe partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.[root@updba ~]# fdisk /dev/sddDevice contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabelBuilding a new DOS disklabel with disk identifier 0x36a34693.Changes will remain in memory only, until you decide to write them.After that, of course, the previous content won't be recoverable.Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u').Command (m for help): nCommand action e extended p primary partition (1-4)pPartition number (1-4): 1First cylinder (1-652, default 1): Using default value 1Last cylinder, +cylinders or +size{K,M,G} (1-652, default 652): Using default value 652Command (m for help): wThe partition table has been altered!Calling ioctl() to re-read partition table.Syncing disks.
6,查看分区后的硬盘信息
[root@updba ~]# fdisk -l|grep sdDisk /dev/mapper/VolGroup-lv_root doesn't contain a valid partition tableDisk /dev/mapper/VolGroup-lv_swap doesn't contain a valid partition tableDisk /dev/sda: 32.2 GB, 32212254720 bytes/dev/sda1 * 1 64 512000 83 Linux/dev/sda2 64 3917 30944256 8e Linux LVMDisk /dev/sdb: 5368 MB, 5368709120 bytes/dev/sdb1 1 652 5237158+ 83 Linux ——对应sdbDisk /dev/sdc: 5368 MB, 5368709120 bytes/dev/sdc1 1 652 5237158+ 83 Linux ——对应sdcDisk /dev/sde: 5368 MB, 5368709120 bytes/dev/sde1 1 652 5237158+ 83 Linux ——对应sdeDisk /dev/sdd: 5368 MB, 5368709120 bytes/dev/sdd1 1 652 5237158+ 83 Linux ——对应sdd
7,将已经分区的磁盘绑定为裸设备 raw(也称做字符设备)
然后就可以通过ASM实例去管理和使用
编辑60-raw.rules文件,拷贝4行,有几个裸设备就要添加几行配置,映射磁盘和raw设备的关系
[root@updba ~]# cat /etc/udev/rules.d/60-raw.rules# Enter raw device bindings here.## An example would be:# ACTION=="add", KERNEL=="sda", RUN+="/bin/raw /dev/raw/raw1 %N"# to bind /dev/raw/raw1 to /dev/sda, or# ACTION=="add", ENV{MAJOR}=="8", ENV{MINOR}=="1", RUN+="/bin/raw /dev/raw/raw2 %M %m"# to bind /dev/raw/raw2 to the device with major 8, minor 1.ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw10 %N"ACTION=="add", KERNEL=="sdc1", RUN+="/bin/raw /dev/raw/raw11 %N"ACTION=="add", KERNEL=="sdd1", RUN+="/bin/raw /dev/raw/raw12 %N"ACTION=="add", KERNEL=="sde1", RUN+="/bin/raw /dev/raw/raw13 %N"
验证
[root@updba ~]# tail -4 /etc/udev/rules.d/60-raw.rulesACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw10 %N"ACTION=="add", KERNEL=="sdc1", RUN+="/bin/raw /dev/raw/raw11 %N"ACTION=="add", KERNEL=="sdd1", RUN+="/bin/raw /dev/raw/raw12 %N"ACTION=="add", KERNEL=="sde1", RUN+="/bin/raw /dev/raw/raw13 %N"
8,给裸设备设置权限
权限必须是oracle用户和其所在的组的用户有权限去访问
[oracle@updba ~]$ id oracle -auid=500(oracle) gid=110(oinstall) groups=110(oinstall),111(dba),112(oper),120(asmdba),121(asmadmin),122(asmoper)[root@updba rules.d]# cat 99-fuse.rulesKERNEL=="fuse", MODE="0666",OWNER="root",GROUP="root"[root@updba rules.d]# vi 99-asm.rulesNEL=="raw1[0-3] MODE="0644",OWNER="oracle",GROUP="dba"
9,启动绑定的裸设备
[root@updba rules.d]# start_udevStarting udev: [ OK ]
可以产看绑定的设备是否正确
[root@updba rules.d]# ls -l /dev/raw/raw*crw-rw----. 1 root dba 162, 10 Oct 28 21:42 /dev/raw/raw10crw-rw----. 1 root dba 162, 11 Oct 28 21:42 /dev/raw/raw11crw-rw----. 1 root dba 162, 12 Oct 28 21:42 /dev/raw/raw12crw-rw----. 1 root dba 162, 13 Oct 28 21:42 /dev/raw/raw13crw-rw----. 1 root dba 162, 0 Oct 28 21:42 /dev/raw/rawctl
10,配置ASM磁盘
运行.asm实例,两个点之间有空格
[oracle@updba ~]$ . .asm
执行asmca命令
[oracle@updba ~]$ asmca
稍等出现如下界面,并设定密码
然后点击 Specify Disk Group … 按钮
如果配置的正确,在弹出的这个界面中会看到已经绑定的裸设备,此时表示可以创建磁盘组了。选中raw10,raw11分组为DB,存放数据文件,数据文件冗余方式选择 External
冗余方式简介
NORMAL 即ASM将为每一个extent创建一个额外的拷贝以便实现冗余;默认情况下所有的文件都会被镜像,这样每一个file extent都有2份拷贝。若写错误发生在2个Disk上且这2个Disk是partners时将导致disk Disk Group被强制dismount。若发生失败的磁盘不是partners则不会引起数据丢失和不可用。
HIGH 即ASM为每一个extent创建两个额外的拷贝以便实现更高的冗余。2个互为partners的Disk的失败不会引起数据丢失,当然不能有更多的partners Disk失败了。
EXTERNAL即ASM本身不做镜像,而依赖于底层存储阵列资深实现镜像;在External下任何的写错误都会导致Disk Group被强制dismount。在此模式下所有的ASM DISK必须都存在健康,否则Disk Group将无法MOUNT
然后点击 OK 到如下界面
点击 Yes
创建磁盘组
创建成功
然后选中raw12分组为FRA,存放快速闪回区的文件,选中raw13分组为VOTEDISK,作为表决磁盘,留做RAC用,如下图:
此时可以在系统进程中查看到+ASM的实例了
[root@updba rules.d]# ps -ef|grep asm_oracle 25377 1 0 21:54 ? 00:00:00 asm_pmon_+ASMoracle 25379 1 0 21:54 ? 00:00:00 asm_psp0_+ASMoracle 25381 1 0 21:54 ? 00:00:01 asm_vktm_+ASMoracle 25385 1 0 21:54 ? 00:00:00 asm_gen0_+ASMoracle 25387 1 0 21:54 ? 00:00:00 asm_diag_+ASMoracle 25389 1 0 21:54 ? 00:00:00 asm_dia0_+ASMoracle 25391 1 0 21:54 ? 00:00:00 asm_mman_+ASMoracle 25393 1 0 21:54 ? 00:00:00 asm_dbw0_+ASMoracle 25395 1 0 21:54 ? 00:00:00 asm_lgwr_+ASMoracle 25397 1 0 21:54 ? 00:00:00 asm_ckpt_+ASMoracle 25399 1 0 21:54 ? 00:00:00 asm_smon_+ASMoracle 25401 1 0 21:54 ? 00:00:00 asm_rbal_+ASMoracle 25403 1 0 21:54 ? 00:00:00 asm_gmon_+ASMoracle 25405 1 0 21:54 ? 00:00:00 asm_mmon_+ASMoracle 25407 1 0 21:54 ? 00:00:00 asm_mmnl_+ASMroot 25522 22418 0 21:57 pts/1 00:00:00 grep asm_
11,在ASM实例中查看ASM磁盘信息
切换到oracle用户下,确认SID
[oracle@updba ~]$ echo $ORACLE_SID+ASM[oracle@updba ~]$ sqlplus / as sysasmSQL*Plus: Release 11.2.0.3.0 Production on Mon Oct 28 22:00:46 2013Copyright (c) 1982, 2011, Oracle. All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit ProductionWith the Automatic Storage Management option
查询磁盘信息
SQL> select name from v$asm_diskgroup;NAME------------------------------DBFRAVOTEDISKSQL> alter diskgroup VOTEDISK dismount;Diskgroup altered.[oracle@updba ~]$ asmcmdASMCMD> ls DB/FRA/ASMCMD> du *Used_MB Mirror_used_MB 1 1ASMCMD> du DBUsed_MB Mirror_used_MB 1 1ASMCMD> du FRAASMCMD>
也可以添加和删除文件夹,和在操作系统里面相似,但他是字符设备,存放的全部是1和0,它没有文件夹这个概念,只是在表象上看到有文件夹。
12,在DB实例中使用ASM磁盘
[oracle@updba ~]$ . .db[oracle@updba ~]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.3.0 Production on Mon Oct 28 22:08:18 2013Copyright (c) 1982, 2011, Oracle. All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit ProductionWith the Partitioning, Oracle Label Security, OLAP, Data Mining,Oracle Database Vault and Real Application Testing options
查询磁盘信息
SQL> select name from v$asm_diskgroup; NAME------------------------------DBFRAVOTEDISK
在+DB上创建表空间tbs_ivyuasm
SQL> create tablespace tbs_ivyuasm datafile '+DB' size 10m;Tablespace created.
在创建的这个表空间上创建一张表,并指定所存储的表空间在tbs_ivyuasm上
SQL> create table test_asm (id number,name varchar2(100)) tablespace TBS_IVYUASM;Table created.
插入一些数据
SQL> insert into test_asm select object_id,object_name from dba_objects;75263 rows created.SQL> commit;Commit complete.
查看ASM磁盘的使用情况,说明ASM存储配置成功,over。
ASMCMD> du DBUsed_MB Mirror_used_MB 12 12
数据也可正常读取
SQL> select * from test_asm where rownum<6; ID NAME---------- ---------------------------------------------------------------------------------------------------- 870 I_XSTREAM_DML_CONF_HANDLER2 871 XSTREAM$_DML_CONFLICT_COLUMNS 873 SYS_IL0000000871C00011$$ 872 SYS_LOB0000000871C00011$$ 874 I_XSTREAM_DML_CONFLICT_COLS1ASM 磁盘的相关视图 v$asm_disk(_stat) --查看磁盘及其状态信息 v$asm_diskgroup(_stat) --查看磁盘组及其状态信息 v$asm_operation --查看当前磁盘的操作信息 v$asm_client --返回当前连接的客户端实例信息 v$asm_file --返回asm文件的相关信息 v$asm_template --返回asm文件样本的相关信息 v$asm_alias --返回asm文件的别名信息
- Oracle 11g ASM详细配置
- Oracle 11g dataguard asm to asm
- ASM磁盘配置(Oracle RAC 11g)
- 11g+ASM oracle 安装
- Oracle 11g ASM 特性
- oracle 11g asm安装
- Oracle-11G-DataGuard 一主库多备库详细配置
- Oracle 11g DataGuard 配置详细说明
- Oracle 11g R2 ASM:了解 Oracle ASM 基本概念
- 连接 Oracle 11G R2 ASM实例
- oracle 11g asm 基本操作
- 单用户安装Oracle 11g 单机ASM
- Oracle 11g ASM Command Enhancement
- ORACLE 11G ASM DISKGROUP COMPATIBILITY
- Oracle-11g学习5 - ASM安装
- Linux + Oracle 11g R2 RAC 安装配置详细过程
- Linux + Oracle 11g R2 RAC 安装配置详细过程
- [oracle]Oracle 11g DG搭建(备库使用ASM)
- linux系统资源监控命令
- CentOS7.2安装MySQL
- C/C++可变参数,“## __VA_ARGS__”宏的介绍和使用
- HDU-2017 多校训练赛5-补题
- 多线程目录与前序
- Oracle 11g ASM详细配置
- 数据库索引到底是什么,是怎样工作的?
- strlen和sizeof的区别
- 谈谈几种公司的特点
- Enumerable.Range(1,4).Select(x=>x*x)
- 数据结构
- 在Java中正确解码用Javascript:escape()编码的中文字符
- 拖动指令bug修改(4)
- R语言--股票数据分析