前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ASM 磁盘组如何重命名

ASM 磁盘组如何重命名

作者头像
JiekeXu之路
发布2021-07-08 10:48:06
1.1K0
发布2021-07-08 10:48:06
举报
文章被收录于专栏:JiekeXu之路JiekeXu之路

大家好,我是 JiekeXu,很高兴又和大家见面了,今天和大家一起聊聊ASM 磁盘组如何重命名的问题,欢迎点击上方蓝字关注我,标星或置顶,更多干货第一时间到达!

前几天在 MOS 上看到一篇“如何在 11gR2 版本上重命名 ASM 磁盘组”的文章。记得很久之前有人问过是否可以重命名,当时要是看到这篇的话就可以参考一下了。不过对于这种操作来说还是很少见的,毕竟磁盘组名叫啥除了 DBA 关心外好像不关其他人什么事,而且 OCR、VOTE 盘是没法重命名的。其他磁盘组到是可以重命名,但也要注意由于 ASM 文件名(如 <OLD_DG_NAME>files / controlfiles 等)包括磁盘组名称,因此在重命名后,需要注意(更新 pfile 或重命名 <OLD_DG_NAME>files )RDBMS 实例。

  1. 首先,需要卸载所需的磁盘组(如果这是 RAC 配置,则从每个节点卸载): $ asmcmd umount <OLD_DG_NAME>
  2. 验证所需的磁盘组是否已卸载:
代码语言:javascript
复制
$ asmcmd lsdg

State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name

MOUNTED NORMAL N 512 4096 1048576 32756 31828 244 15792 0 N <OLD_DG_NAME>_OCR/

MOUNTED EXTERN N 512 4096 1048576 16378 10134 0 10134 0 N LOB<OLD_DG_NAME>/

3. 然后执行rename语句:

代码语言:javascript
复制
# renamedg phase=both dgname=<OLD_DG_NAME> newdgname=<NEW_DG_NAME> verbose=true

Parsing parameters..

Parameters in effect:

Old DG name : <OLD_DG_NAME>

New DG name : <NEW_DG_NAME>

Phases :

Phase 1

Phase 2

Discovery str : (null)

Clean : TRUE

Raw only : TRUE

renamedg operation: phase=both dgname=<OLD_DG_NAME> newdgname=<NEW_DG_NAME> verbose=true

Executing phase 1

Discovering the group

Performing discovery with string:

Identified disk ASM:/opt/oracle/extapi/64/asm/orcl/1/libasm.so:ORCL:<DISK_NAME>1 with disk number:0 and timestamp (32925601 -972709888)

Identified disk ASM:/opt/oracle/extapi/64/asm/orcl/1/libasm.so:ORCL:<DISK_NAME>2 with disk number:1 and timestamp (32925601 -972709888)

Identified disk ASM:/opt/oracle/extapi/64/asm/orcl/1/libasm.so:ORCL:<DISK_NAME>3 with disk number:2 and timestamp (32925601 -972709888)

Checking for hearbeat...

Re-discovering the group

Performing discovery with string:

Identified disk ASM:/opt/oracle/extapi/64/asm/orcl/1/libasm.so:ORCL:<DISK_NAME>1 with disk number:0 and timestamp (32925601 -972709888)

Identified disk ASM:/opt/oracle/extapi/64/asm/orcl/1/libasm.so:ORCL:<DISK_NAME>2 with disk number:1 and timestamp (32925601 -972709888)

Identified disk ASM:/opt/oracle/extapi/64/asm/orcl/1/libasm.so:ORCL:<DISK_NAME>3 with disk number:2 and timestamp (32925601 -972709888)

Checking if the diskgroup is mounted

Checking disk number:0

Checking disk number:1

Checking disk number:2

Checking if diskgroup is used by CSS

Generating configuration file..

Completed phase 1

Executing phase 2

Looking for ORCL:<DISK_NAME>1

Modifying the header

Looking for ORCL:<DISK_NAME>2

Modifying the header

Looking for ORCL:<DISK_NAME>3

Modifying the header

Completed phase 2

Terminating kgfd context 0x2af21517e0a0

如果上面的命令失败,搜索磁盘,那么我们需要包含磁盘字符串,然后你需要使用

代码语言:javascript
复制
renamedg phase=both dgname=<OLD_DG_NAME> newdgname=<NEW_DG_NAME> verbose=true asm_diskstring='<discoverystring1>','<discoverystring2>'
  1. 最后,挂载重命名的磁盘组并验证它是否已挂载(如果这是 RAC 配置,则在每个节点上):
代码语言:javascript
复制
$ asmcmd mount <NEW_DG_NAME>
$ asmcmd lsdg

State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name

MOUNTED NORMAL N 512 4096 1048576 32756 31828 244 15792 0 N <OLD_DG_NAME>_OCR/

MOUNTED EXTERN N 512 4096 1048576 24567 14267 0 14267 0 N <NEW_DG_NAME>/
MOUNTED EXTERN N 512 4096 1048576 16378 10134 0 10134 0 N LOB<OLD_DG_NAME>/

>>>请避免使用重命名 OCR/VOTE 磁盘组。>>>

重要提示:使用重命名磁盘组名称会发生变化。由于 ASM 文件名(如 <OLD_DG_NAME>files / controlfiles 等)包括磁盘组名称,因此在重命名后,您需要注意(更新 pfile 或重命名 <OLD_DG_NAME>files )RDBMS 实例。

下面来一起试试:

在 19c 环境中新建一个磁盘组来试验一下:

查看可使用的裸盘

代码语言:javascript
复制
ASMCMD> lsdsk --candidate -p
Group_Num  Disk_Num      Incarn  Mount_Stat  Header_Stat  Mode_Stat  State   Path
        0         0           0  CLOSED      CANDIDATE    ONLINE     NORMAL  /dev/asmdisks/asm-mgmt

静默创建磁盘组

代码语言:javascript
复制
asmca -silent -createDiskGroup -sysAsmPassword Oracle19c -asmsnmpPassword Oracle19c -oui_internal  -diskString '/dev/asmdisks/asm*' -diskGroupName TEST -diskList /dev/asmdisks/asm-mgmt -redundancy EXTERNAL -au_size 4 -compatible.asm 19.0.0.0.0	

静默创建的语法如下:

代码语言:javascript
复制
jieke-rac1:/dev/asmdisks(+ASM1)$ asmca -silent -h
asmca [-silent] [-sysAsmPassword <SYS 用户口令>] [-asmsnmpPassword <ASM 监视口令>] {<command> <options>}
有关详细信息, 请参阅手册。
您可以输入以下命令之一:

1. 通过指定以下命令和参数来配置 ASM 实例:
        -configureASM
                [-sysAsmPassword <SYS 用户口令>]
                [-asmsnmpPassword <ASM 监视口令>]
                [(-param <paramname=paramvalue>)]
                -diskString <磁盘搜索路径>
                (-diskGroupName <磁盘组名>
                        (-disk <磁盘路径> [-diskName <磁盘名>] |
                         -diskList <逗号分隔的磁盘列表>
                                [-diskSize <磁盘大小 (MB)>] 
                                [-failuregroup <故障组名>] 
                                [-force|-noforce] 
                                [-quorum|-noquorum])
                        [-redundancy <HIGH|NORMAL|EXTERNAL|FLEX|EXTENDED>]
                        [-au_size <1 ~ 64>]
                        [-compatible.asm <11.2.0.2 ~ 12.2>]
                        [-compatible.rdbms <11.2.0.2 ~ 12.2>]
                        [-compatible.advm <11.2.0.2 ~ 12.2>])

2. 通过指定以下命令和参数来配置 ASM 参数:
        -configureParameter
                (-param <paramname=paramvalue>)
                (-target <ASM|APX|IOS> 为其配置初始化参数的目标。如果未配置 spfile, 则将为该目标配置新的 spfile)
                [-sysAsmPassword <SYS 用户口令>]

3. 通过指定以下命令和参数来创建磁盘组:
        -createDiskGroup
                [-diskString <磁盘搜索路径>]
                (-diskGroupName <磁盘组名>
                        (-disk <磁盘路径> [-diskName <磁盘名>] |
                         -diskList <逗号分隔的磁盘列表>
                                [-diskSize <磁盘大小 (MB)>] 
                                [-failureGroups <逗号分隔的故障组名列表>] 
                                [-quorumFailureGroups <逗号分隔的故障组名列表>] 
                                [-sites <站点名称>] 
                                [-force|-noforce] 
                                [-quorum|-noquorum])
                        [-redundancy <HIGH|NORMAL|EXTERNAL|FLEX|EXTENDED>]
                        [-au_size <1 ~ 64>]
                        [-compatible.asm <11.2.0.2 ~ 12.2>]
                        [-compatible.rdbms <11.2.0.2 ~ 12.2>]
                        [-compatible.advm <11.2.0.2 ~ 12.2>]
                        [-sector_size.physical <512, 4k>]
                        [-sector_size.logical <512, 4k>]
                        [-autoLabel <自动生成 AFD 标签; 如果未指定标签前缀, 则将磁盘组名用作前缀>])
                        [-labelPrefix <标签前缀将用于创建 AFD 标签>]
                [-sysAsmPassword <SYS 用户口令>]

4. 通过指定以下命令和参数将磁盘添加到磁盘组:
        -addDisk
                [-diskString <磁盘搜索路径>]
                (-diskGroupName <磁盘组名>
                        (-disk <磁盘路径> [-diskName <磁盘名>] |
                         -diskList <逗号分隔的磁盘列表>
                                [-diskSize <磁盘大小 (MB)>] 
                                [-failuregroup <故障组名>] 
                                [-force|-noforce] 
                                [-quorum|-noquorum])
                        [-autoLabel <自动生成 AFD 标签; 如果未指定标签前缀, 则将磁盘组名用作前缀>]
                        [-labelPrefix <标签前缀将用于创建 AFD 标签>]
                [-sysAsmPassword <SYS 用户口令>]

5. 通过指定以下命令和参数来创建卷:
        -createVolume
                (-volumeName <ASM 卷名>
                -volumeDiskGroup <卷的 ASM 磁盘组名>
                -volumeSizeGB <ASM 卷大小 (GB)>
                [-volumeRedundancy <INHERIT|MIRROR|HIGH|UNPROTECTED>])
                [-sysAsmPassword <SYS 用户口令>]

6. 通过指定以下命令和参数来创建 ASM 集群文件系统:
        -createACFS
                (-acfsVolumeDevice <ASM 卷设备>)
                (-acfsMountPoint <现有主机文件系统路径>)
                [-acfsUserName <ACFS 用户名>]
                [-acfsGroupName <ACFS 组名>]
                [-sysAsmPassword <SYS 用户口令>]

7. 通过指定以下命令和参数来创建 ACFS 快照:
        -createACFSSnapshot
                (-acfsMountPoint <ACFS 装载点>)
                (-snapshotName <ACFS 快照名>)
                [-snapshotMode <ACFS 快照模式 r|w>]
                [-parentSnapshotName <父 ACFS 快照名>]

8. 通过指定以下命令和参数来删除现有 ACFS 快照:
        -deleteACFSSnapshot
                (-acfsMountPoint <ACFS 装载点>)
                (-snapshotName <ACFS 快照名>)

9. 通过指定以下命令和参数, 在给定磁盘组上创建一个或多个新的文件组:
        -createFileGroups
                (-diskGroupName <磁盘组名>)
                (-fileGroupNames <包含要处理的所有文件组名称的逗号分隔列表>)
                (-fileGroupUsages <包含用法字符串的逗号分隔列表, 这些用法字符串对应于要处理的所有文件组>)
                (-fileGroupUsageIDs <包含用法 ID 字符串的逗号分隔列表, 这些用法 ID 字符串对应于要处理的所有文件组>)

10. 通过指定以下命令和参数, 删除给定磁盘组上的一个或多个文件组:
        -dropFileGroups
                (-diskGroupName <磁盘组名>)
                (-fileGroupNames <包含要处理的所有文件组名称的逗号分隔列表>)

11. 通过指定以下命令和参数, 在给定磁盘组上创建一个或多个新的限额组:
        -createQuotaGroups
                (-diskGroupName <磁盘组名>)
                (-quotaGroupNames <包含要处理的所有限额组名称的逗号分隔列表>)
                (-quotaGroupSizes <包含大小的逗号分隔列表, 这些大小对应于要处理的所有限额组>)

12. 通过指定以下命令和参数, 删除给定磁盘组上的一个或多个限额组:
        -dropQuotaGroups
                (-diskGroupName <磁盘组名>)
                (-quotaGroupNames <包含要处理的所有限额组名称的逗号分隔列表>)

13. 编辑现有磁盘组的一个或多个属性的当前值。
        -editDiskGroupAttributes
                (-diskGroupName <磁盘组名>)
                (-attribute <<attribute name=attribute value> 格式的字节组用于指定磁盘组属性。>)

查看创建成功

代码语言:javascript
复制
ASMCMD> lsdg
State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  EXTERN  N         512             512   4096  4194304    307200   122736                0          122736              0             N  DATA/
MOUNTED  EXTERN  N         512             512   4096  4194304    102400    92120                0           92120              0             N  FRA/
MOUNTED  NORMAL  N         512             512   4096  4194304      9216     8236             3072            2582              0             Y  OCR/
MOUNTED  EXTERN  N         512             512   4096  4194304     51200    51064                0           51064              0             N  TEST/

当然也可直接修改 compatible 属性

代码语言:javascript
复制
su - grid 
sqlplus / as sysasm 
SYS@+ASM2>col value for a30
SYS@+ASM2>col name for a30
SYS@+ASM2>set lin 120
SYS@+ASM2>select name,value from v$asm_attribute where group_number=4 and name like 'compatible%';
NAME               VALUE
------------------ ------------------------------
compatible.asm     19.0.0.0.0
compatible.rdbms   10.1.0.0.0
compatible.advm    19.0.0.0.0
SYS@+ASM2>ALTER DISKGROUP TEST SET ATTRIBUTE 'compatible.rdbms' = '19.0.0.0.0';

然后我们用新建的磁盘组来尝试重命名,对于有数据的磁盘本次暂未考虑。

首先两节点均卸载磁盘组

代码语言:javascript
复制
asmcmd umount test

然后开始重命名

代码语言:javascript
复制
renamedg phase=both dgname=TEST newdgname=JIEKE verbose=true

重命名前一定得卸载两节点的磁盘组

挂载新命名的磁盘组 JIEKE

上边有报错,用下边的命令继续将磁盘组 JIEKE 重命名为 JIEKEXU

代码语言:javascript
复制

下面是详细日志,无报错。

代码语言:javascript
复制
jieke-rac1:/home/grid(+ASM1)$ renamedg phase=both dgname=JIEKE newdgname=JIEKEXU verbose=true asm_diskstring='/dev/asmdisks/asm-mgmt'

Parameters in effect:

         Old DG name       : JIEKE 
         New DG name          : JIEKEXU 
         Phases               :
                 Phase 1
                 Phase 2
         Discovery str        : /dev/asmdisks/asm-mgmt 
         Clean              : TRUE
         Raw only           : TRUE
renamedg operation: phase=both dgname=JIEKE newdgname=JIEKEXU verbose=true asm_diskstring=/dev/asmdisks/asm-mgmt
Executing phase 1
Discovering the group
Performing discovery with string:/dev/asmdisks/asm-mgmt
Identified disk UFS:/dev/asmdisks/asm-mgmt with disk number:0 and timestamp (33119146 1388808192)
Checking for hearbeat...
Re-discovering the group
Performing discovery with string:/dev/asmdisks/asm-mgmt
Identified disk UFS:/dev/asmdisks/asm-mgmt with disk number:0 and timestamp (33119146 1388808192)
Checking if the diskgroup is mounted or used by CSS 
Checking disk number:0
Generating configuration file..
Completed phase 1
Executing phase 2
Looking for /dev/asmdisks/asm-mgmt
Modifying the header
Completed phase 2

两个节点 mount 磁盘组

代码语言:javascript
复制
asmcmd mount jiekexu
代码语言:javascript
复制
ASMCMD> lsdg
State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  EXTERN  N         512             512   4096  4194304    307200   122736                0          122736              0             N  DATA/
MOUNTED  EXTERN  N         512             512   4096  4194304    102400    92120                0           92120              0             N  FRA/
MOUNTED  EXTERN  N         512             512   4096  4194304     51200    51064                0           51064              0             N  JIEKEXU/
MOUNTED  NORMAL  N         512             512   4096  4194304      9216     8236             3072            2582              0             Y  OCR/
ASMCMD>

本次重命名只是一块新的磁盘组没有存放任何数据,操作比较简单,如果磁盘里存放数据文件、密码文件、参数文件等数据库重要文件,肯定难度指数级上升。只供测试环境学习使用,生产环境禁用,以上仅供参考。


好了,今天的文章就到此为止了。如果此文对您有帮助,欢迎点赞、在看与转发,写作不易,举手之劳,便是对作者最大的支持,也能让更多的人受益。

参考文档:

How To Rename A Diskgroup On ASM 11gR2? (Doc ID 948040.1)

———————————————————————— 公众号:JiekeXu DBA之路 墨天轮:https://www.modb.pro/u/4347 CSDN :https://blog.csdn.net/JiekeXu 腾讯云:https://cloud.tencent.com/developer/user/5645107 ————————————————————————

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-06-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JiekeXu之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文字识别
文字识别(Optical Character Recognition,OCR)基于腾讯优图实验室的深度学习技术,将图片上的文字内容,智能识别成为可编辑的文本。OCR 支持身份证、名片等卡证类和票据类的印刷体识别,也支持运单等手写体识别,支持提供定制化服务,可以有效地代替人工录入信息。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档