文章目录

  • 一,启动和关闭asm实例
    • 方法1:sqlplus
    • 方法2:asmcmd
    • 方法3:srvctl
  • 二,ASM查看磁盘组和asm实例状态
  • 三,ASMCMD工具
  • 四,操作举例
    • 1, 创建ASM磁盘组
    • 2, 添加磁盘
    • 3, 挂载与卸载磁盘组
    • 4,删除磁盘
    • 5,其他补充

参考链接:

  • https://blog.csdn.net/qq_34556414/article/details/79716566
  • https://www.cnblogs.com/zhangshengdong/p/11935035.html
  • https://blog.csdn.net/weixin_33699914/article/details/91963556 (主)
  • https://blog.csdn.net/weixin_34077371/article/details/92543318
  • https://blog.csdn.net/weixin_33912638/article/details/93227527?spm=1001.2014.3001.5506
  • https://blog.csdn.net/qq_34556414/article/details/79716566?spm=1001.2014.3001.5506

一,启动和关闭asm实例

ASM实例是没有控制文件的,其只有一个参数文件,参数文件里面只是指定了需要加载的磁盘、ASM需要的内存空间、实例的类型等,这主要是因为ASM只是管理磁盘组的分配和数据的平衡,不需要关注数据的一致性和数据库结构,其逻辑上只做数据的查询与抽取工作,所以ASM不需要自己单独的控制文件,只需要给ASM分配内存区及相应的后台进程就可以了。

方法1:sqlplus

[grid@rac2 ~]$ sqlplus / as sysasm;
SQL> startup

方法2:asmcmd

[grid@rac2 ~]$ asmcmd
SQL> startup

方法3:srvctl

srvctl start asm

二,ASM查看磁盘组和asm实例状态

SQL> select group_number,name, state,total_mb,free_mb from v$asm_diskgroup;SQL> select group_number,name,path,failgroup,STATE,TOTAL_MB,FREE_MB from v$asm_disk;SQL> select instance_name,status from v$instance; --正常的状态就是STARTED
INSTANCE_NAME                    STATUS
------------------------------------------------ ------------------------------------
+ASM2                       STARTED

三,ASMCMD工具

asmcmd是一个命令行实用程序,可用于轻松地查看和操纵ASM 磁盘组中的文件和目录。该实用程序可以列出磁盘组
内容、执行搜索、创建和删除目录以及显示空间使用情况等等,grid用户下调用asmcmd,可用rm 命令删除磁盘里
的文件等。

  • asmcmd -p 在命令行前显示当前路径
  • du 显示指定的ASM目录下ASM文件占用的所有磁盘空间
  • lsdg 列出所有磁盘组及其属性
  • lsdsk 列出此ASM实例可见的所有磁盘
  • rm 删除ASM文件或目录
  • remap 修理磁盘上遭到破坏或损坏的一系列物理块
[grid@rac1 ~]$ asmcmd lsdsk -k
Total_MB  Free_MB  OS_MB  Name           Failgroup      Failgroup_Type  Library  Label  UDID  Product  Redund   Path2048     1740   2048  OCR_VOTE_0000  OCR_VOTE_0000  REGULAR         System                         UNKNOWN  /dev/asm-diskb2048     1739   2048  OCR_VOTE_0001  OCR_VOTE_0001  REGULAR         System                         UNKNOWN  /dev/asm-diskc2048     1739   2048  OCR_VOTE_0002  OCR_VOTE_0002  REGULAR         System                         UNKNOWN  /dev/asm-diskd40960    38212  40960  DATA_0000      DATA_0000      REGULAR         System                         UNKNOWN  /dev/asm-diske30720    30390  30720  FRA_0000       FRA_0000       REGULAR         System                         UNKNOWN  /dev/asm-diskf
[grid@rac1 ~]$
[grid@rac1 ~]$
[grid@rac1 ~]$ asmcmd lsdsk
Path
/dev/asm-diskb
/dev/asm-diskc
/dev/asm-diskd
/dev/asm-diske
/dev/asm-diskfASMCMD> lsdg
State    Type    Rebal  Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  EXTERN  N         512   4096  1048576     40960    38212                0           38212              0             N  DATA/
MOUNTED  EXTERN  N         512   4096  1048576     30720    30390                0           30390              0             N  FRA/
MOUNTED  NORMAL  N         512   4096  1048576      6144     5218             2048            1585              0             Y  OCR_VOTE/ASMCMD> ls
DATA/
FRA/
OCR_VOTE/
ASMCMD> cd fra
ASMCMD> ls
RACDB/
ASMCMD> cd racdb
ASMCMD> ls
CONTROLFILE/
ONLINELOG/
ASMCMD> cd onlinelog
ASMCMD> ls
group_1.257.1080862029
group_2.258.1080862031
group_3.259.1080865393
group_4.260.1080865395

四,操作举例

1, 创建ASM磁盘组

切换至grid用户,使用sqlplus命令来登录ASM实例:sqlplus / as sysasm,输入如下语句:

create diskgroup data external redundancy disk '/dev/asm-diske','/dev/asm-diskg';

创建normal冗余磁盘组:

CREATE DISKGROUP test NORMAL REDUNDANCY
FAILGROUP F1 DISK '/dev/asm-diskm' NAME D1 SIZE 1024 M ,'/dev/asm-diskn' NAME D2 SIZE 1024 M
FAILGROUP F2 DISK '/dev/asm-disko' SIZE 1024 M ,'/dev/asm-diskp' SIZE 1024 M;

2, 添加磁盘

1,往共享存储的虚拟机(192.168.128.160)上新增一块40G硬盘,然后vim /etc/tgt/targets.conf,重启tgtd:
[root@master03 ~]# systemctl restart tgtd && tgtadm --lld iscsi --mode target --op show |egrep 'Backing store path|Size:'Size: 0 MB, Block size: 1Backing store path: NoneSize: 2147 MB, Block size: 512Backing store path: /dev/sdaSize: 2147 MB, Block size: 512Backing store path: /dev/sdcSize: 2147 MB, Block size: 512Backing store path: /dev/sddSize: 42950 MB, Block size: 512Backing store path: /dev/sdeSize: 32212 MB, Block size: 512Backing store path: /dev/sdfSize: 42950 MB, Block size: 512Backing store path: /dev/sdg2,制作rawdevice:vim + /etc/udev/rules.d/99-oracle-asmdevices.rules,并copy至rac2节点
[root@rac1 ~]# for i in g;
> do
>  echo "KERNEL==\"sd*\", SUBSYSTEM==\"block\", PROGRAM==\"/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\", RESULT==\"`/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\", SYMLINK+=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\"" >> /etc/udev/rules.d/99-oracle-asmdevices.rules
> done
[root@rac1 ~]# scp /etc/udev/rules.d/99-oracle-asmdevices.rules root@192.168.128.152:/etc/udev/rules.d/99-oracle-asmdevices.rules
[root@rac1 ~]# udevadm control --reload-rules
[root@rac1 ~]# udevadm trigger
[root@rac1 ~]# ls -l /dev/asm-disk*
[root@rac1 ~]#  ls -l /dev/sd*3,添加磁盘到asm磁盘组
SQL> select group_number,name, state,total_mb,free_mb from v$asm_diskgroup;
GROUP_NUMBER NAME                                  STATE                       TOTAL_MB FREE_MB1 DATA                                           MOUNTED                    40960      382122 FRA                                            MOUNTED                    30720      303903 OCR_VOTE                                           MOUNTED                 4096       3304SQL>  select group_number,name,path from v$asm_disk;
GROUP_NUMBER NAME                                           PATH0                                               /dev/asm-diskb2 FRA_0000                                            /dev/asm-diskf1 DATA_0000                                           /dev/asm-diske3 OCR_VOTE_0001                                       /dev/asm-diskc3 OCR_VOTE_0002                                       /dev/asm-diskd
# 根据实际情况看是否需要清除磁盘头信息
[root@rac1 ~]#  dd if=/dev/zero of=/dev/asm-diskb bs=8k count=256 SQL> alter diskgroup OCR_VOTE add disk '/dev/asm-diskb';SQL> select group_number,name,path from v$asm_disk;
GROUP_NUMBER NAME                                           PATH2 FRA_0000                                          /dev/asm-diskf1 DATA_0000                                           /dev/asm-diske3 OCR_VOTE_0001                                       /dev/asm-diskc3 OCR_VOTE_0002                                       /dev/asm-diskd3 OCR_VOTE_0000                                       /dev/asm-diskbSQL> select group_number,name, state,total_mb,free_mb from v$asm_diskgroup;
GROUP_NUMBER NAME                                   STATE                   TOTAL_MB    FREE_MB1 DATA                                           MOUNTED                    40960      382122 FRA                                            MOUNTED                    30720      303903 OCR_VOTE                                           MOUNTED                 6144       5218SQL> alter diskgroup DATA add disk '/dev/asm-diskg';
SQL>  select group_number,name,path from v$asm_disk;GROUP_NUMBER NAME                                            PATH
------------ ---------------------------------------------------------------------------------1 DATA_0000                                           /dev/asm-diske2 FRA_0000                                            /dev/asm-diskf3 OCR_VOTE_0001                                       /dev/asm-diskc3 OCR_VOTE_0000                                       /dev/asm-diskb3 OCR_VOTE_0002                                       /dev/asm-diskd1 DATA_0001                                           /dev/asm-diskg6 rows selected.SQL>
SQL> select group_number,name, state,total_mb,free_mb from v$asm_diskgroup; GROUP_NUMBER NAME                                            STATE                   TOTAL_MB    FREE_MB
------------ ------------------------------------------------------------------1 DATA                                           MOUNTED                    81920      791402 FRA                                            MOUNTED                    30720      303903 OCR_VOTE                                           MOUNTED                 6144       5218

3, 挂载与卸载磁盘组

ASM磁盘组只有在当前节点的ASM实例上挂载,才能被该节点的数据库实例访问:

alter diskgroup data mount;

卸载ASM磁盘组:

alter diskgroup data dismount;

4,删除磁盘

从ASM磁盘组删除磁盘,需事先查得删除的ASM磁盘的名称,而非其操作系统设备名,建议登录grid用户,使用asmcmd命令获取磁盘名:

asmcmd lsdsk -k

将需删除磁盘对应的name列替换如下命令中的OCR_VOTE_0000即可:

alter diskgroup data drop disk OCR_VOTE_0000;

通过alter diskgroup dgname undrop disks语句来取消删除的操作。

删除磁盘以后,ASM磁盘组会自动进行一次rebalance操作,添加磁盘后,还会进行一次rebalance。如果我们需要更换磁盘,那么建议将删除和添加磁盘的操作放在一起执行:
实际生产中,先拔下损坏的磁盘,再插入新的磁盘以后,执行下面的语句(假设DgroupB的Disk3损坏,现在使用raw4去替换)

alter diskgroup DgroupB drop disk Disk3 add failgroup fg1 disk ‘/dev/raw/raw4’  name Disk4;

5,其他补充

添加故障组alter diskgroup dgn  add failgroup fgn3 disk  'ORCL:DISKD01';
删除磁盘组中的磁盘(用磁盘名)alter diskgroup dgn  drop disk ASMDISKB02;
删除磁盘时同时添加磁盘,可减少重平衡次数alter diskgroup dge drop disk DISKC01 add disk 'ORCL:DISKC02';
删除故障组alter diskgroup dgn drop disks in failgroup fgn3;
删除故障组同时添加故障组alter diskgroup dgn  drop disks in failgroup fg3 add failgroup fg4 disk 'ORCL:DISKD01';
停止磁盘从一个磁盘组中删除alter diskgroup dg1 undrop disks;
平衡磁盘数据alter diskgroup dg1 rebalance;alter diskgroup dg1 rebalance wait;     --wait即等到数据平衡结束才在命令行提示结束alter diskgroup dg1 rebalance power 11;  --加快平衡速度
修改加快同步alter system set asm_power_limit=10;
停止平衡磁盘数据alter diskgroup dg1 rebalance power 0;
挂载和卸载磁盘组alter diskgroup dgn mount;alter diskgroup dgn dismount;alter diskgroup dg1 dismount force;
检测磁盘组一致性ALTER DISKGROUP dgn CHECK ALL;
删除ASM磁盘组drop diskgroup  dgd;drop diskgroup  dgc including contents;

oracle RAC asm管理相关推荐

  1. 【Oracle RAC+DG实验】Oracle RAC+ASM+DataGuard配置实验记录+常见问题

    [Oracle RAC+DG实验]Oracle RAC+ASM+DataGuard配置实验记录+常见问题 1.环境规划: ---RAC环境介绍(primary database)            ...

  2. oracle没用过元数据,案例:Oracle RAC asm备份元数据之md_backup和md_restore 好处与

    天萃荷净 Oracle rAC asm备份元数据之md_backup和md_restore好处与坏处 在11g的asm中增加了md_backup和md_restore命令,用来备份和还原asm的元数据 ...

  3. Oracle RAC+ASM 数据库实时同步

    采用Beedup实现数据库实时同步,主库环境Oracle RAC+ASM,内存64G,历史数据19T,日增归档100G,从库单实例环境,内存192G. 以下是项目实施过程遇到的主要问题: 1 历史数据 ...

  4. ORACLE RAC ASM磁盘规划

     基于ASM冗余设计架构实现的数据库双活方案,如何规划ASM? ASM使用独特的镜像算法:不镜像磁盘,而是镜像盘区.作为结果,为了在产生故障时提供连续的保护,只需要磁盘组中的空间容量,而不需要预备一个 ...

  5. Oracle RAC ASM disk header 备份 恢复 与 重建 示例说明

    一. 准备知识 RAC ASM由于其高度的封装性,使得我们很难知道窥探其内部的原理.ASM如果一旦出现问题,通常都很难处理.即便在有很完备的RMAN备份的情况下,恢复起来都可能需要很长的时间. 而AS ...

  6. ORACLE+RAC+ASM环境下添加redo日志组

    在集群环境中,每个节点上的数据库实例都需要自己的重做日志组.例如,如果集群数据库拥有三个节点和实例,每个实例至少有两个重做日志组,则整个集群至少需要6个联机重做日志组.一般而言,两个日志组是最低限量, ...

  7. Oracle数据库ASM管理-华为闪存添加ASM存储实践1

    1 在存储管理软件中为主机添加4T存储. 2 使用hot_add命令进行更新存储信息 . 存储信息如下 [root@gzrac01 ~]# upadmin UltraPath CLI #0 >s ...

  8. oracle asm 日志,Oracle+RAC+ASM数据库ora-00257日志归档器错误解决方法

    ERROR: ORA-00257: archiver error. Connect internal only, until freed. (1)SQL> select * from v$log ...

  9. Oracle rac进阶管理专家指导系列文档

    Session1 Session2 Session3 Session4 Session5 Session6 Session7 Session8

最新文章

  1. SURF 特征检测及匹配
  2. C语言中static全局变量与普通的全局变量区别
  3. WPF与缓动(一) N次缓动
  4. ajax请求get方法的封装,使用jQuery中Ajax的封装函数——$.get()
  5. Be动词的缩写形式_3
  6. caj文件浏览器_知网上PDF文件下载的问题怎么解决?
  7. [独家放送]Unity2020规划预览,可视化编程又双叒叕来了!
  8. Oracle学习总结(2)——Oracle数据库设计总结(三大范式)
  9. 指针用完了怎么办_墙体里水管漏水怎么办?瞧瞧这个,轻松搞定,滴水不漏
  10. 从一个MFC工程移植对话框类到另一个MFC工程
  11. 58 集团面向亿级用户 IM 长连接服务设计与实践
  12. PLSQL Developer破解注册码
  13. Linux系统中修复SambaCry漏洞(CVE-2017-7494)
  14. Pytorch入门教程学习笔记(六)循环神经网络RNN(学周杰伦写歌)
  15. Android开发书籍推荐
  16. 尝试manjar20.03、fedora32、ubuntu20.04作为主力操作系统
  17. 可怕,GPT-3论坛跟帖灌水一周无人发现!专挑热搜,秒秒钟长文
  18. 【小技能】电脑校园网可以登录QQ但不能打开网页解决方法(4种解决方法)
  19. Xamarin.Android入门
  20. ZK和EureKa的区别(CAP理论)

热门文章

  1. 淘宝吱口令效果实现,获取系统剪贴板内容
  2. php时间函数不准确,php date函数时间不对如何解决
  3. Sigfox获法国最大一笔VC投资,打造物联网自己的互联网
  4. unity上传头像_unity3d 上传本地PC图片
  5. html 注释 实例,超详细的HTML !–…– 注释标签使用实例
  6. 校招:滴滴出行相关校招信息
  7. ISA, x86,x86_64, AMD64, 指令集等名词解析
  8. Civil 3d 路线之固定图元(AlignmentEntity)部分分析
  9. android自带的webview有广告,android webview 拦截广告
  10. 地图下载软件(持续更新)