配置使用ASM磁盘组方案
- 格式:doc
- 大小:53.00 KB
- 文档页数:6
ASM A 管理正做 与 o A自动㈡ASM orac 启动NOMM 与LVMASM 是OMF 理,在底层将做到了“3M 融LVM 的对比oracle 块在它 ASM diskgASM disk ASM file ASM 可以条带动平衡 I/O 以 与RDBMS M 实例和ora cle 实例管理动和停止实例MOUNT:仅 的一个扩展将存储进行自融合”。
同时也它所管理的磁group ∽ ∽ ∽ 带化和镜像磁以删除“热点实例的对比cle 实例都是的是数据库,例的命令也基仅启动实例AS ,通过ASM 我管理。
同时也是向上兼容盘组的磁盘上 VG PVLV磁盘,从而实”。
LVM 不做是由SGA 和一,而ASM 实基本一样。
SM 介和OMF 的结时,ASM 模式容的体现,简上,与LVM 实现了在数据做硬件级别的一堆后台进程实例用于对磁介绍结合,oracle 式下,备份恢简化RAC 中存基本对应。
据库被加载的的容灾,ASM 程构成,但他盘组的管理在上层将数恢复只能由r 存储端的配置的情况下添加可以实现硬他们所面对的。
数据文件进行rman 来承担置。
加或移除磁盘硬件级别的容的对象是不同行自我担,真盘以及容灾。
的,MOUNT 、OPEN:启动实例并加载磁盘,注意加载的是磁盘组,OPEN选项对于ASM实例无意义,等同于MOUNTFORCE :相当于先执行shutdown abort,然后再startup。
但是,ASM 实例没有数据字典之类的东东存储用户系统。
ASM实例的初始化参数ASM实例的初始化参数形式上与RDBMS实例相同,也有pfile和spfile,如:spfile+ASM1.ora. 但是,毕竟,ASM只有实例,而且加载的是磁盘组,所以相对RDBMS实例的初始化参数要简单。
ASM 需要的内存不多:对大多数系统,只需 64 MB。
因此内存这块相关参数就不说了。
下面说说几个ASM实例特别需要的参数。
㈠INSTANCE_TYPE> show parameter instance_typeNAME TYPE VALUE‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐ instance_type string asm初始化参数文件中的INSTANCE_TYPE,该参数必须被设置为ASM,标识要启动的实例是ASM,而不是rdbms实例.㈡ ASM_DISKSTRING> show parameter asm_diskstringNAME TYPE VALUE‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐‐ ‐‐‐‐‐‐‐asm_diskstring string设置ASM启动时检查的磁盘,该选项可以同时指定多个值,并且支持通配符。
ASM详解ASM:Automatic Storage Management, 是Oracle 主推的一种面向Oracle的存储解决方案, ASM 和 RDBMS 非常相似,ASM 也是由实例和文件组成,也可以通过sqlplus 工具来维护。
ASM 实例的创建和删除也可以用DBCA 这个命令来操作。
在dbca 的第一个界面选择配置自动存储管理就可以了。
ASM 实例需要CSS 进程,如果是非RAC 环境,在启动ASM 实例之前会提示用脚本$ORACLE_HOME/bin/localconfig add 启动CSS。
1. ASM 实例由SGA 和后台进程组成。
1.1 SGA 组成:ASM 实例的SGA包括Buffer Cache, Share Pool, Large Pool等。
需要注意的是Share Pool,因为Extent Map 要放在这部分的内存中,需要更具数据量来估计Extent Map 的大小做相应的调整。
Extent Map 的大小可以根据所有文件大小的和来估算,使用下面的语句来计算所有文件和:Select sum(bytes)/(1024*1024*1024) from v$datafile;Select sum(bytes)/(1024*1024*1024) from v$logfile a, v$log b where a.Group#=b.Group#;Select sum(bytes)/(1024*1024*1024) from v$tempfile where status='online';这3个sum 的总和对应着数据库存放ASM中所有文件大小总和,对于使用External Redundancy 的磁盘组,每100G 需要1MB 的Extent Map,根据这个比例计算Extent Map 所需要的空间,在加上额外的2M B就可以了。
在实际工作中一般不需要考虑ASM SGA的配置,使用Oracle 提供的缺省值就可以了。
单机静默安装GI软件并创建ASM实例和ASM磁盘组环境:RHEL 6.4 + Oracle 11.2.0.4需求:单机静默安装GI软件并创建ASM实例和ASM磁盘组,为后续迁移数据库⽂件到ASM做准备1. 安装配置GI软件## 1.1 创建grid⽤户和相关组,创建⽬录,确认ASM磁盘权限,配置环境变量 ## ``` -- 创建grid⽤户和相关组 groupadd asmadmin groupadd asmdba groupadd asmoper useradd -g oinstall -G dba,asmadmin,asmdba,asmoper grid usermod -g oinstall -G dba,asmadmin,asmdba oracle passwd grid -- 创建⽬录 mkdir -p /u02/app/11.2.0/grid mkdir -p/u02/app/grid -- 赋予⽬录权限 chmod 775 /u02/app chown -R grid:oinstall /u02/app/11.2.0 chown -R grid:oinstall /u02/app/grid -- ASM磁盘 $ ls -lh /dev/mapper/ora_vg-lv_asm* lrwxrwxrwx. 1 root root 7 Dec 1 13:13 /dev/mapper/ora_vg-lv_asm1 -> ../dm-2 lrwxrwxrwx. 1 root root 7 Dec 1 13:14 /dev/mapper/ora_vg-lv_asm2 -> ../dm-3 lrwxrwxrwx. 1 root root 7 Dec 1 13:14 /dev/mapper/ora_vg-lv_asm3 -> ../dm-4 lrwxrwxrwx. 1 root root 7 Dec 1 13:14 /dev/mapper/ora_vg-lv_asm4 -> ../dm-5 lrwxrwxrwx. 1 root root 7 Dec 1 13:14 /dev/mapper/ora_vg-lv_asm5 -> ../dm-6 lrwxrwxrwx. 1 root root 7 Dec 1 13:15 /dev/mapper/ora_vg-lv_asm6 -> ../dm-7 -- 赋权并将赋权操作添加到/etc/rc.local⽂件中 chown grid:asmadmin /dev/mapper/ora_vg-lv_asm* -- grid环境变量 export ORACLE_BASE=/u02/app/grid export ORACLE_HOME=/u02/app/11.2.0/grid export ORACLE_SID=+ASM export PATH=$ORACLE_HOME/bin:$PATH ``` 注意:⽣产环境⼀般⽤udev绑定新盘,我这⾥由于是Citrix虚拟化实验环境,⽤每个lv模拟了⼀个磁盘。
一. ASM 快速镜像再同步(ASMFast Mirror Resync)1.1 无ASM快速镜像再同步时每当ASM 无法向分配给某个磁盘的区执行写入操作时,就会使该磁盘脱机,同时会在其它磁盘上至少写入一个此区(ASM 数据区)的镜像副本(如果相应的磁盘组使用了ASM 冗余)。
使用OracleDatabase 10g 时,ASM 会假定脱机磁盘只包含过时数据,因此不再从此类磁盘中读取数据。
磁盘脱机后不久,ASM 就会使用冗余区副本在磁盘组中的剩余磁盘上重新创建分配给磁盘的区(ASM 数据区),将脱机的磁盘从磁盘组中删除。
此进程是一项开销相对较大的操作,可能要花费几小时来完成。
如果磁盘故障只是临时性的(如电缆、主机总线适配器、控制器故障或磁盘的电源中断),则必须在临时故障修复后重新添加磁盘。
但是,将删除的磁盘重新添加回磁盘组还需要将区(ASM 数据区)迁回磁盘,因此增加了成本。
1.2 ASM 快速镜像再同步1.2.1 概述ASM 快速镜像再同步会显著减少重新同步临时故障磁盘所需的时间。
如果某个磁盘因临时故障而脱机,ASM 将跟踪在中断期间发生修改的区。
临时故障被修复后,ASM 可以快速地仅重新同步在中断期间受到影响的ASM 磁盘区。
此功能假定受到影响的ASM磁盘内容未发生损坏或修改。
某个ASM 磁盘路径出现故障时,如果您已设置了相应磁盘组的DISK_REPAIR_TIME 属性,则ASM 磁盘会脱机,但不会被删除。
此属性的设置确定了ASM 可容忍的磁盘中断持续时间;如果中断在此时间范围内,则修复完成后仍可重新同步。
注:跟踪机制对每个已修改的区使用一个位,这样可确保跟踪机制非常高效。
1.2.2 设置ASM 快速镜像再同步请按磁盘组设置此功能。
可以在创建磁盘组后使用ALTER DISKGROUP 命令完成此操作。
使用一个类似以下命令的命令启用ASM 快速镜像再同步:ALTER DISKGROUPSET ATTRIBUTE 'DISK_REPAIR_TIME'='2D4H30M'在修复了磁盘后,运行SQL 语句ALTER DISKGROUP ONLINE DISK。
oracle 11g数据库ASM磁盘组存储空间扩容实施任务概述XX系统存放oracle数据文件的DATA磁盘组空间因为开发方新上线业务,造成原有数据库表空间较为紧张,应业务开发方要求,为了适应未来的数据增长要求,需要扩容。
此方案为数据库扩容常规标准步骤,无需专门测试,但是,在数据库存储扩容前,为防止变更操作带来的风险,需要对数据库数据作备份,以防万一出现问题时做回退恢复。
在实施存储扩容变更操作时,由于是底层磁盘阵列和操作系统的标准化操作,为了防止操作失误,必须一人操作,另一人在旁监督检查,并且分步确认,步步把关,确保万无一失。
1.1. 实施任务DATA磁盘组扩容:在DS5300存储RAID10组中划分新的2个300G的LUN并添加到DATA 磁盘组给XX集群数据库使用,RAID10组剩余的空间可以留给以后扩容或其他用途使用。
1.2. 环境简介系统名称:XX系统;主机:两台IBM P750小型机;操作系统:AIX 6.1;存储:1套IBM DS5300;数据库:ORACLE RAC 11.2.0.3.0;1.3. 实施时间2014年11月。
1.4. 实施人员略2. 实施方案2.1. 实施内容原有数据库需要作数据作RMAN备份;连接到存储DS5300划分LUN,并加载到主机;主机扫描识别,修改属性及权限;ASM存储DATA磁盘组增加disk扩容;检查数据库和应用。
2.2. 实施步骤2.3. 实施风险控制在数据库存储扩容前,为防止变更操作风险,需要对数据库数据作备份,以防万一。
在实施存储扩容变更操作时,由于是底层磁盘阵列和操作系统的标准化操作,为了防止操作失误,必须一人操作,另一人在旁监督检查,并且分步确认,步步把关,确保万无一失。
3. 详细实施步骤3.1. RMAN备份在数据库服务器节点2上通过RMAN对数据库做全备份,历时约60分钟。
具体步骤如下:以root用户创建备份用的目录,并更改所有者等;#mkdir -p /backup/20131122#chown -R oracle:dba /backup/以oracle用户创建rman备份用的脚本,并赋权限:#su - oracle$cd /backup/20131122$vi rmanbackup.sh$chmod 744 rmanbackup.shRMAN全备份脚本rmanbackup.sh内容:run{allocate channel ch1 device type disk;allocate channel ch2 device type disk;allocate channel ch3 device type disk;backup as compressed backupset full database format'/backup/20131122/db_%U_%d' tag="full" spfile include current controlfile;sql 'alter system archive log current';change archivelog all crosscheck;backup as compressed backupset archivelog all format'/backup/20131122/arch_%t_%s' tag="archivelog";release channel ch1;release channel ch2;release channel ch3;}使用脚本做RMAN备份,通过参数cmdfile指定命令文件,使用log指定日志文件:nohup rman target / cmdfile=/backup/20131122/rmanbackup.shlog=/backup/20131122/rmanbackup.log &3.2. 连接到存储将本机设置为192.168.128.XX(不要跟存储控制器的管理ip有冲突),通过集线器,连接到IBM DS5300存储的两个控制器的管理口,SPA(192.168.128.101)和SPB(192.168.128.102),在本机ping两个管理口地址,是否能ping通。
探索ORACLE之ASM概念(完整版)⼀、 ASM(⾃动存储管理)的来由:ASM是Oracle 10g R2中为了简化Oracle数据库的管理⽽推出来的⼀项新功能,这是Oracle⾃⼰提供的卷管理器,主要⽤于替代操作系统所提供的LVM,它不仅⽀持单实例,同时对RAC的⽀持也是⾮常好。
ASM可以⾃动管理磁盘组并提供有效的数据冗余功能。
使⽤ASM(⾃动存储管理)后,数据库管理员不再需要对ORACLE中成千上万的数据⽂件进⾏管理和分类,从⽽简化了DBA的⼯作量,可以使得⼯作效率⼤⼤提⾼。
⼆、什么是ASMASM它提供了以平台⽆关的⽂件系统、逻辑卷管理以及软RAID服务。
ASM可以⽀持条带化和磁盘镜像,从⽽实现了在数据库被加载的情况下添加或移除磁盘以及⾃动平衡I/O以删除“热点”。
它还⽀持直接和异步的I/O并使⽤Oracle9i中引⼊的Oracle数据管理器API(简化的I/O系统调⽤接⼝)。
ASM是做为单独的Oracle实例实施和部署,并且它只需要有参数⽂件,不需要其它的任何物理⽂件,就可以启动ASM实例,只有它在运⾏的时候,才能被其它数据访问。
在Linux平台上,只有运⾏了OCSSD服务(Oracle安装程序默认安装)了才能和访问ASM。
三、使⽤ASM的好处:1、将I/O平均分部到所有可⽤磁盘驱动器上以防⽌产⽣热点,并且最⼤化性能。
2、配置更简单,并且最⼤化推动数据库合并的存储资源利⽤。
3、内在的⽀持⼤⽂件4、在增量增加或删除存储容量后执⾏⾃动联系重分配5、维护数据的冗余副本以提⾼可⽤性。
6、⽀持10g,11g的数据存储及RAC的共享存储管理7、⽀持第三⽅的多路径软件8、使⽤OMF⽅式来管理⽂件四、 ASM冗余:ASM使⽤独特的镜像算法:不镜像磁盘,⽽是镜像盘区。
作为结果,为了在产⽣故障时提供连续的保护,只需要磁盘组中的空间容量,⽽不需要预备⼀个热备(hot spare)磁盘。
不建议⽤户创建不同尺⼨的故障组,因为这将会导致在分配辅助盘区时产⽣问题。
AS4 下安装Oracle 10g ASM背景:环境:Linux AS4Oracle 10.2.0.1ASM配置步骤:1、安装Oracle ASMLib需要的安装包asmlibasm-supportasm-kernelasm-smp-kernel(多process版本)下载地址:/technology/software/tech/linux/asmlib/rhel4.htmluname -a安装3个软件包:# rpm -Uvh oracleasm-support-2.1.3-1.el4.i386.rpm# rpm -Uvh oracleasm-2.6.9-55.ELsmp-2.0.3-1.i686.rpm# rpm -Uvh oracleasmlib-2.0.4-1.el4.i386.rpm2、配置ASMLib# /etc/init.d/oracleasm configureDefault user to own the driver interface [oracle]: oracleDefault group to own the driver interface [oinstall]: oinstallStart Oracle ASM library driver on boot (y/n) [y]: yFix permissions of Oracle ASM disks on boot (y/n) [y]: yWriting Oracle ASM library driver configuration: [ OK ]Loading module "oracleasm": [ OK ]Mounting ASMlib driver filesystem: [ OK ]Scanning system for ASM disks: [ OK ]以上操作将加载oracleasm.o驱动,并且mount上ASM文件系统,同时我们可以通过以下命令来手工的卸载和加载ASMLib#/etc/init.d/oracleasm disable //出错检查/var/log/messages文件,确认需要更新的内核版本#/etc/init.d/oracleasm enable添加init文件使系统启动时自动加载ASMLib$su - root#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#dmesg |grep oracleasm3、创建ASM磁盘(说明:createdisk 是针对分区,不是针对磁盘,即:先应将磁盘分区fdisk) #/etc/init.d/oracleasm createdisk VOL1 /dev/sdc1#/etc/init.d/oracleasm createdisk VOL2 /dev/sdd1#/etc/init.d/oracleasm createdisk VOL3 /dev/sdd2#/etc/init.d/oracleasm createdisk VOL4 /dev/sdd3......#/etc/init.d/oracleasm listdisks //列出ASM磁盘VOL1VOL2VOL3VOL4如果要删除ASM磁盘通过以下命令#/etc/init.d/oracleasm deletedisk VOL4注意:如果是在RAC环境中的某一个节点中添加了ASM磁盘,那么需要在其他的节点上运行scandisk来获取这种变化#/etc/init.d/oracleasm scandisksOK,现在已经完成了创建ASM实例的物理基础,下面开始安装数据库#rpm -ivh compat-libstdc++-33-3.2.3-47.3.i386.rpm#$ORACLE_HOME/bin/localconfig add4、安装数据库软件5、创建ASM实例&建库以oracle 身份登录并启动DBCA:$ dbca1).欢迎单击Next。
2).操作选择Create a Database。
3).数据库模板选择General Purpose。
4).数据库标识输入全局数据库名称。
5).管理选项选择Configure the Database with Enterprise Manager。
选择Use Database Control for Database Management。
6).数据库证书选择Use Same Password for All Accounts。
输入口令并确认。
7).存储选项选择Automatic Storage Management (ASM)。
8).创建ASM 实例输入ASM 实例的口令并确认。
9).弹出一个窗口,提示DBCA将立即创建并启动ASM 实例。
单击OK。
10).创建ASM 实例时弹出一个带齿轮箱窗口。
11).ASM 磁盘组由于这是新ASM 实例且您尚未创建任何ASM 实例,因此该窗口未显示可用磁盘组。
单击Create New。
12).创建磁盘组磁盘组名称输入磁盘组名称,如DA TA1。
冗余- High 镜像数据两次。
- Normal 镜像数据一次。
- External 不镜像ASM 中的数据。
如果外部RAID 阵列提供冗余,则通常使用此选项。
选择成员磁盘- 您必须手动指示ASM 到什么地方查找ASMLib 磁盘,因此,单击Change Disk Discovery Path- 弹出一个窗口,提示输入磁盘发现路径。
如下所示将磁盘发现路径更改为“ORCL:*”。
- 单击OK 继续。
您将返回到Select Member Disks 窗口。
您的所有ASMLib 磁盘现在应显示在此窗口中。
单击该行开头的框,选择加入磁盘组的磁盘。
完成后单击OK。
13).ASM 磁盘组您将返回到ASM Disk Groups 窗口。
此时,出现在上一步中创建的磁盘组。
单击该行开头的框选择此磁盘组。
(在此实例中使用单个磁盘组。
)单击Next。
14).数据库文件位置选择Use Oracle-Managed Files。
确保已将Database Area 设置为您创建的磁盘组。
它包含一个前导加号—例如,+DA TA1。
15).恢复配置选择Specify Flash Recovery Area。
- 快速恢复区—输入要用于快速恢复的ASM 磁盘组。
- 快速恢复区大小—接受默认值2048。
如果要使用归档日志模式,则选中Enable Archiving。
对于评估数据库,可以不选该项。
16).数据库内容选择Sample Schemas。
我们不使用定制脚本,因此单击Next。
17).初始化参数接受默认值,然后单击Next。
18).数据库存储接受默认值,然后单击Next。
19).创建选项选择Create Database(默认值)并单击Finish。
20).确认检查完数据库详细信息后单击OK。
21).DBCA显示一个操作列表和一个进度条。
根据硬件的不同,数据库创建可能需要几分钟到几小时的时间。
22).当数据库创建完成时,将显示一个显示摘要窗口。
记下Enterprise Manager URL,然后单击Exit。
6、ASM database简单管理开机启动:[oracle@asm dbs]$ lsnrctl start[oracle@asm dbs]$ export ORACLE_SID=+ASM[oracle@asm dbs]$ echo $ORACLE_SID+ASM[oracle@asm dbs]$ sqlplus / as sysdbaSQL>startup[oracle@asm dbs]$ export ORACLE_SID=eagle[oracle@asm dbs]$ echo $ORACLE_SIDeagleSQL>startup关机停止:[oracle@asm dbs]$ export ORACLE_SID=+ASM[oracle@asm dbs]$ echo $ORACLE_SID+ASM[oracle@asm dbs]$ sqlplus / as sysdbaSQL>shutdown immediate[oracle@asm dbs]$ export ORACLE_SID=eagle[oracle@asm dbs]$ echo $ORACLE_SIDeagleSQL>shutdown immediateAS4 下移植Oracle 数据库到ASM 存储1,从v$controlfile,v$logfile获得当前控制文件和online redo log files的位置控制文件:SQL> select * from v$controlfile;STA TUS NAME IS_RECOVE BLOCK_SIZE FILE_SIZE_BLKS /home/new/oradata/ORCL/controlfile/o1_mf_59s8c009_.ctl NO 16384 430/home/new/flash_recovery_area/ORCL/controlfile/o1_mf_59s8c0hy_.ctl YES 16384 430联机日志:SQL> select * from v$logfile;GROUP# S TA TUS TYPE MEMBER IS_RECOVE3 ONLINE /home/new/oradata/ORCL/onlinelog/o1_mf_3_59s8cjt3_.log NO3 ONLINE/home/new/flash_recovery_area/ORCL/onlinelog/o1_mf_3_59s8cn2r_.log YES2 ONLINE /home/new/oradata/ORCL/onlinelog/o1_mf_2_59s8cb9w_.log NO2 ONLINE/home/new/flash_recovery_area/ORCL/onlinelog/o1_mf_2_59s8cfoh_.log YES1 ONLINE /home/new/oradata/ORCL/onlinelog/o1_mf_1_59s8c388_.log NO1 ONLINE/home/new/flash_recovery_area/ORCL/onlinelog/o1_mf_1_59s8c6co_.log YESSQL> select * from v$tempfile;2,一致地关闭数据库SQL> SHUTDOWN IMMEDIA TE3,修改数据库的参数文件A,设置必需的omf目的参数为想要的ASM磁盘组(db_create_file_dest,db_recovery_file_dest)B,删除control_files参数SQL> create pfile from spfile;4,备份数据库,切换当前的datafiles到备份,更名online redo log files编辑并执行如下rman脚本run{startup nomount;restore controlfile from …/home/new/oradata/ORCL/controlfile/o1_mf_59s8c009_.ctl‟;alter database mount;backup as copy database format …+dgroupA‟;switch database to copy;sql “alter database rename …/home/new/oradata/ORCL/onlinelog/o1_mf_3_59s8cjt3_.log‟ to …+dgroupA‟”;sql “alter database rename …/home/new/oradata/ORCL/onlinelog/o1_mf_3_59s8cjt3_.log‟ to …+dgroupB‟”;sql “alter database rename …/home/new/oradata/ORCL/onlinelog/o1_mf_3_59s8cjt3_.log‟ to …+dgroupA‟”;sql “alter database rename …/home/new/oradata/ORCL/onlinelog/o1_mf_3_59s8cjt3_.log‟ to …+dgroupB”;sql “alter database rename …/home/new/oradata/ORCL/onlinelog/o1_mf_3_59s8cjt3_.log‟ to …+dgroupA‟”;sql “alter database rename …/home/new/oradata/ORCL/onlinelog/o1_mf_3_59s8cjt3_.log‟ to …+dgroupB‟”;alter database open resetlogs;sql “alter database tempfile …‟ drop”;5,删除老的数据库。