技术分享 |
八、创建asm磁盘 |
||||||||||||||||||||||||||||||||||||||||
发布时间:2018-10-15 18:31:36 浏览次数:次 来源:太原网站制作 作者:太原服务器虚拟化 字体:大 中 小 | ||||||||||||||||||||||||||||||||||||||||
导读: 系统启动的时候会锁定磁盘,所以当启动linux1后共享磁盘被锁定了,linux2就起不来了,因此需要加入disk.locking="false" ASM磁盘名称及空间大小操作系统上的磁盘对应ASM的disk大小描述/dev/sdb1CRS2GASM磁盘组,用于CRS... 系统启动的时候会锁定磁盘,所以当启动linux1后共享磁盘被锁定了,linux2就起不来了,因此需要加入disk.locking = "false"
ASM磁盘名称及空间大小
安装Grid时,其中ASM选项中只选择CRS为一个磁盘组,另外的DATA、FRA不勾选
ASM的磁盘创建过程的全面总结
1)、名词解释1、ASMGrid集群基础软件配置存储(使用ASM), Oracle所允许的存储主要有ASM、NFS和ACFS等。 ASM:Automatic Storage Management, 是Oracle 主推的一种面向Oracle的存储解决方案, ASM 和 RDBMS 非常相似,ASM 也是由实例和文件组成, 也可以通过sqlplus 工具来维护。 ASM 实例的管理除了sqlplus, Oracle 还提供了asmcmd 命令。ASM软件-Grid Infrastructure ASM 实例的创建和删除也可以用DBCA 这个命令来操作。在dbca 的第一个界面选择配置自动存储管理就可以了。 ASM 实例需要CSS 进程, 如果是非RAC 环境, 在启动ASM 实例之前会提示用脚本 $ORACLE_HOME/bin/localconfig add 启动CSS ASM 实例必须要先于数据库实例启动,和数据库实例同步运行,迟于数据库实例关闭。 ASM 可以使用裸设备 或者ASMLib 方式, 因为裸设备的维护比较复杂,在此只讲解ASMLib 方式。 2、ASM 不是一个通用的文件系统ASM 不是一个通用的文件系统,并只能用于 Oracle 数据文件、重做日志以及控制文件。ASM 中的文件既可以由数据库自动创建和命名(通过使用 Oracle 管理文件特性),也可以由 DBA 手动创建和命名。由于操作系统无法访问 ASM 中存储的文件,因此对使用 ASM 文件的数据库执行备份和恢复操作的唯一途径就是通过恢复管理器 (RMAN)。 3、ASM 作为单独的 Oracle 实例实施ASM 作为单独的 Oracle 实例实施,只有它在运行时其他数据库才能访问它。在 Linux 上,只有运行 OCSSD 服务(由 Oracle 通用安装程序默认安装)才能使用 ASM。ASM 需要的内存不多:对大多数系统,只需 64 MB。 4、ASM提供了3种冗余方法external redundancy 表示Oracle不帮你管理镜像,功能由外部存储系统实现,比如通过RAID技术。 normal redundancy (默认方式)表示Oracle提供2路镜像来保护数据。 high redundancy 表示Oracle提供3路镜像来保护数据。
oracle 通过failure group 来提供高可用性。 ASM的镜像算法是extent级别,而不是整个磁盘级别。这里面有个primary copy 和second copy的概念;写入的时候依据primary copy,最终实现写入随机有序读取,来完成平衡数据读取的目的。 5、ASM实例只需要初始参数文件,不需要其它物理文件[oracle@kk dbs]$ cat /opt/oracle/product/10.2.0/db_1/dbs/spfile+ASM.ora <==初始化参数文件的位置 6、ASM的实例的名称是+ASM。INSTANCE_TYPE=ASMSQL> select instance_name from v$instance; ASM实例的控制文件 SQL> SHOW parameter control 7、此次实验是基于CentOS7系统的实验。这里用到的是asmlib来做磁盘设备管理的,这里大家也可以使用UDEV来管理,在RHEL6中asmlib 已经被废弃了,以后就是UDEV的天下????????????????
2)、Oracleasm下载及安装顺序1、下载下载地址:http://www.oracle.com/technetwork/topics/linux/asmlib/index-101839.html 对应不同的操作系统, 需要不同的包,下载的时候一定要和操作系统内核一致。每个 Linux 发行套件都有其自己的 ASMLib 程序包集。在每个发行套件中,每个内核版本都有一个相应的 oracleasm 程序包。 会根据当前的kernel和OS的版本下载三个包。 但是自Red Hat 6.x系列之后,Oracle宣布不会再提供高版本的ASM驱动程序包。针对使用Oracle Linux的用户,只有通过购买官方订阅的方式,才能获得ASM驱动支持。 针对这种商业竞争关系,Red Hat也提出了一定的应对策略。Red Hat推荐使用DM-Multipath这种系统级别支持ASM Diskgroup创建,如果用户一定要使用ASM,官方可以使用kmod工具驱动包,来进行安装工作。 当然,和Oracle一样,kmod只允许购买Red Hat官方订阅的用户才能下载。 本篇介绍kmod模式下如何创建ASM Disk和一些配置步骤 Library and Tools: 1、oracleasmlib-2.0.12-1.el7.x86_64.rpm ------------ASM库 2、oracleasm-support-2.1.8-3.el7.x86_64.rpm --------用于管理 ASMLib 的实用程序 别外一个需要寻找: [root@racnode1 ~]# yum search oracleasm -----------ASM库的内核模块 2、安装使用root用户安装,这三个包之间有依赖关系,安装顺序如下:两台机子上均要安装 # rpm -ivh oracleasm-support-2.1.8-3.el7.x86_64.rpm # yum install kmod-oracleasm.x86_64 # rpm -ivh oracleasmlib-2.0.12-1.el7.x86_64.rpm 3)、配置ASM的库文件:在使用ASMlib之前,必须运行配置脚本准备驱动程序,以root用户使用以下命令配置ASM #/etc/init.d/oracleasm configure 注意:直接使用oracleasm configure是不能配置ASM的 详细说明看官网: 1、运行配置脚本,准备ASMLib驱动程序配置asm启动方式和所属用户,这里假设oracle和dba组已经建立
[root@orahost01 home]#/etc/init.d/oracleasm configure ------这个在两个节点上都要做,否则会报:ASMLib installation and configuration verification 错误。检测报错:Asmlib installation and configuration verification 答:oracleasm configure –i 重新配置ORACLEASM_UID,ORACLEASM_GID grid.asmadmin 所有节点都要配置。 This will configure the on-boot properties of the Oracle ASM library Default user to own the driver interface []: grid <<< 在这里,指定asm磁盘的owner 以上操作会加载和ASM相关的一些驱动.并且mount上asm的文件系统。注意:之所以指出来上面的asm 磁盘的owner 和 group, 是因为从11gR2 开始oracle引入了任务角色分离(job role separation)特性。这里面指定的值和之后安装GI时的步骤“Privileged Operation System Groups”中指定的值是对应的。所以,确认您的选择是正确的。
2、启用ASMLib驱动程序状态[root@orahost01 home]#/etc/init.d/oracleasm status
[root@orahost01 home]#/etc/init.d/oracleasm disable 改为了: systemctl enable oracleasm.service 3、创建ASM磁盘[root@orahost01 home]# /etc/init.d/oracleasm createdisk vol1 /dev/sdb Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) Command (m for help): m Command (m for help): n Command (m for help):w Calling ioctl() to re-read partition table. 这个时候系统中会出现一个sdb1这个设备文件 之后我们继续对sdc,sdd,sde以上面同样的方法来进行分区。 [root@rac2 ~]# oracleasm listdisks 4、查看已标记为ASMLib的硬盘[root@orahost01 dev]#/etc/init.d/oracleasm listdisks vol1 vol2 vol3 vol4 需要注意的是如果是在RAC环境中呢,如果在一个节点添加了ASM磁盘,在其他节点上要用过scandisks命令来获得这种变化。---而且有可能需要重启电脑后,再scandisks后才能看到。 如: [root@orahost01 dev]#/etc/init.d/oracleasm scandisks Scanning system for ASM disks: [ OK ] 就此ASM环境的物理基础就已经搭建成功. 其他OS类似于此,很简单,只要按照这个思路走就可以了:) 5、创建diskgroup后面安装时可以再创建 冗余 - High 镜像数据两次。 - Normal 镜像数据一次。 - External 不镜像 ASM 中的数据。如果外部 RAID 阵列提供冗余,则通常使用此选项。
SQL> select name,path,group_number from v$asm_disk; <==查询asm_disk的名称和路径,一会创建时要用
NAME PATH GROUP_NUMBER ---------------------------------- ---------------------------------------------- ORCL:VOL4 0 <==0说明该磁盘不属于任何组 VOL1 ORCL:VOL1 1 VOL2 ORCL:VOL2 1 VOL3 ORCL:VOL3 1
SQL> create diskgroup DISKGRP2 external redundancy disk 'ORCL:VOL4'; Diskgroup created. 启动/关闭ASM实例【原则】先关闭其它例程,最后关闭ASM例程 否则会报下面的错误 SQL> shutdown immediate; ORA-15097: cannot SHUTDOWN ASM instance with connected RDBMS instance
启动顺序 案例:这里强调ASM实例启动只需要spfile.ora不需要其它任何物理数据文件! SQL> startup ORA-01078: failure in processing system parameters LRM-00109: could not open parameter file '/opt/oracle/product/10.2.0/db_1/dbs/init+ASM.ora'
[oracle@kk ~]$ export ORACLE_SID=+ASM [oracle@kk ~]$ sqlplus "/ as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on Sat Mar 13 07:54:58 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup ASM instance started
Total System Global Area 83886080 bytes Fixed Size 1217836 bytes Variable Size 57502420 bytes ASM Cache 25165824 bytes ASM diskgroups mounted
SQL> exit Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options [oracle@kk ~]$ exit logout [root@kk ~]# su - oracle [oracle@kk ~]$ sqlplus "/ as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on Sat Mar 13 07:55:36 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup ORACLE instance started.
Total System Global Area 608174080 bytes Fixed Size 1220844 bytes Variable Size 176164628 bytes Database Buffers 427819008 bytes Redo Buffers 2969600 bytes Database mounted. Database opened. SQL>
正文: 四,ASM相关视图及内部命令
1,查看asm diskgroup的名字、状态、复制类型、总大小、空闲空间
SQL> select name, state, type, total_mb, free_mb from v$asm_diskgroup;
NAME STATE TYPE TOTAL_MB FREE_MB -------------------- ----------------------- ----------------- ------------------- ---------- ASMGRP1 MOUNTED NORMAL 6273 3616 DISKGRP2 MOUNTED EXTERN 1913 1863
2,查看ASM 磁盘的名字、路径、挂载状态、磁盘号
SQL> select name, path, mode_status, state, disk_number from v$asm_disk;
NAME PATH MODE_STATUS STATE DISK_NUMBER --------------------------------------------------------------------------------------------------------------------------------- VOL1 ORCL:VOL1 ONLINE NORMAL 0 VOL2 ORCL:VOL2 ONLINE NORMAL 1 VOL3 ORCL:VOL3 ONLINE NORMAL 2 VOL4 ORCL:VOL4 ONLINE NORMAL 0
3,数据文件命名含义 dba_data_files
SQL> select file_name from dba_data_files;
FILE_NAME -------------------------------------------------------------------------------- +ASMGRP1/boy/datafile/users.259.713439439 +ASMGRP1/boy/datafile/sysaux.257.713439427 +ASMGRP1/boy/datafile/undotbs1.258.713439433 +ASMGRP1/boy/datafile/system.256.713439419 +ASMGRP1/boy/datafile/example.269.713440119 +DISKGRP2/boy/datafile/erp.256.713522125
格式说明: +ASMGRP1/boy /datafile/tbs_name.asm_filenumber.incarnation_number
+ ASMGRP1: diskgroup名 boy: 该数据库名 datafile: 文件类型,表示是数据文件 tbs_name: 表空间名 asm file#: 表示ASM file编号,v$asm_file.file_number incarnation number: 从时间戳提取,唯一值 。
4,在ASM实例中查询文件编号和大小
[oracle@kk ~]$ export ORACLE_SID=+ASM [oracle@kk ~]$ sqlplus '/as sysdba' SQL> select file_number,bytes/1024/1024 from v$asm_file;
FILE_NUMBER BYTES/1024/1024 ----------- --------------- 256 480.007813 257 250.007813 258 25.0078125 259 70.0078125 260 6.734375 261 6.734375 262 50.0004883 263 50.0004883 264 50.0004883 265 50.0004883 266 50.0004883 267 50.0004883 268 20.0078125 269 100.007813 270 .002441406 256 800.007813
SQL> select member from v$logfile;
MEMBER -------------------------------------------------------------------------------- +ASMGRP1/boy/onlinelog/group_3.266.713439655 +ASMGRP1/boy/onlinelog/group_3.267.713439663 +ASMGRP1/boy/onlinelog/group_2.264.713439635 +ASMGRP1/boy/onlinelog/group_2.265.713439643 +ASMGRP1/boy/onlinelog/group_1.262.713439615 +ASMGRP1/boy/onlinelog/group_1.263.713439627
16 rows selected.
所查询到的值,与dba_data_files相匹配。
查询文件号及其大小
+ASM (ASM instance) SQL> select file_number , sum(bytes)/(1024*1024) MB from v$asm_file group by file_number;
FILE_NUMBER SUM(BYTES)/(1024*1024) ----------- ---------------------- 256 360.007813 257 35.0078125
BOY (database instance) SQL> select name from v$datafile
NAME ---------------------------------------- +DATA/orcl/datafile/sysaux.256.3 +DATA/orcl/datafile/system.258.3 +DATA/orcl/datafile/undotbs1.257.3 +DATA/orcl/datafile/users.265.3 +DATA/orcl/datafile/nitin.263.3
5,查询相关的物理文件的大小
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';
6,ASM的内部命令 asmcmd
[oracle@kk ~]$ export ORACLE_SID=+ASM [oracle@kk ~]$ asmcmd perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "AMRICAN" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "AMRICAN" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). ASMCMD> ls -l State Type Rebal Unbal Name MOUNTED NORMAL N N ASMGRP1/ MOUNTED EXTERN N N DISKGRP2/ ASMCMD [+ASMGRP1] > help commands: -------- cd du find help ls lsct lsdg mkalias mkdir pwd rm rmalias
五,高级操作
1,创建或更改表空间
a,查询asm_diskgroup信息
SQL> select group_number,name, total_mb,free_mb from v$asm_diskgroup
GROUP_NUMBER NAME TOTAL_MB FREE_MB ------------ ------------------------------------------------------------ ---------- ---------- 1 ASMGRP1 6273 3616 2 DISKGRP2 1913 1863
b. 创建表空间erp
SQL> create tablespace erp datafile '+DISKGRP2' size 800m;
Tablespace created.
c,观察磁盘组空间变化
SQL> select group_number,name, total_mb,free_mb from v$asm_diskgroup;
GROUP_NUMBER NAME TOTAL_MB FREE_MB ------------ ------------------------------------------------------------ ---------- ---------- 1 ASMGRP1 6273 3616 2 DISKGRP2 1913 1060 d,dba_data_files中关于文件名称和大小的信息
SQL> select file_name,tablespace_name,bytes/1024/1024 MB,autoextensible from dba_data_files FILE_NAME TABLESPACE_NAME MB AUTOEX ------------------------------------------------------------- ------------------------------------------------------------ ---------- ------ +ASMGRP1/boy/datafile/users.259.713439439 USERS 5 YES +ASMGRP1/boy/datafile/sysaux.257.713439427 SYSAUX 240 YES +ASMGRP1/boy/datafile/undotbs1.258.713439433 UNDOTBS1 25 YES +ASMGRP1/boy/datafile/system.256.713439419 SYSTEM 480 YES +ASMGRP1/boy/datafile/example.269.713440119 EXAMPLE 100 YES +DISKGRP2/boy/datafile/erp.256.713522125 ERP 800 NO
e,resize 文件大小
SQL> alter database datafile '+ASMGRP1/boy/datafile/users.259.713439439' resize 70M;
Database altered.
SQL> select file_name,tablespace_name,bytes/1024/1024 MB,autoextensible from dba_data_files;
FILE_NAME TABLESPACE_NAME MB AUTOEX ----------------------------------------------------------------- ------------------------------------------------------------ ---------- ------ +ASMGRP1/boy/datafile/users.259.713439439 USERS 70 YES
2,删除disk
SQL> select group_number, name from v$asm_diskgroup; SQL> select path, name from v$asm_disk where group_number=1; SQL> alter diskgroup DISKGRP2 drop disk VOL4;
Diskgroup altered.
3,添加新硬盘并重新负载均衡
SQL> alter diskgroup DATA add disk '/dev/rdsk/c3t19d39s4' rebalance power 11 <==power:允许使用系统资源的一个参数
SQL> select * from v$asm_operation
asmcmd -p,加上“-p”参数,可以显示当前路径
ASM动态性能视图 有一些新的动态性能视图与ASM实例有关。这些视图的内容在ASM实例和数据库实例中内容各不相同,见下表:
下一篇文章:没有了
|
||||||||||||||||||||||||||||||||||||||||
![]() ![]() |