如何将 ASM spfile 从外部冗余移动到正常冗余

将 ASM spfile 从外部移动到正常冗余

ASM spfile 的移动不能在线完成,因为其他实例将使用它。
因此,此解决方案将涉及一些停机时间。
请按照以下步骤执行迁移:

  1. 停止所有节点上的 CRS。

  2. 备份现有的 spfile。

ASMCMD> spcopy +DATA/cehaovmsp1clu05/ASMPARAMETERFILE/registry.253.879011727 /home/oracle
  1. 然后将 spfile 移动到 GRID_HOME/dbs 文件夹
ASMCMD> spmove +DATA/cehaovmsp1clu05/ASMPARAMETERFILE/registry.253.879011727 /u01/app/12.1.0/grid/dbs

此时你会得到以下错误

ORA-15032: not all alterations performed
ORA-15028: ASM file '+DATA/cehaovmsp1clu05/ASMPARAMETERFILE/registry.253.879011727' not dropped; currently being accessed (DBD ERROR: OCIStmtExecute)

可以忽略它,退出ASMCMD提示,然后重新登录ASMCMD获取spfile的详细信息

ASMCMD> spget
/u01/app/12.1.0/grid/dbs/registry.253.879011727
  1. 在新磁盘组中为 ASMPARAMETER 文件创建目录结构
ASMCMD> cd vote
ASMCMD> mkdir cehaovmsp1clu05
ASMCMD> cd cehaovmsp1clu05
ASMCMD> mkdir ASMPARAMETERFILE
ASMCMD> cd ASMPARAMETERFILE
ASMCMD> pwd
+vote/cehaovmsp1clu05/ASMPARAMETERFILE
  1. 现在将 spfile 从文件系统位置移动到新磁盘组
ASMCMD> spmove /u01/app/12.1.0/grid/dbs/registry.253.879011727 +vote/cehaovmsp1clu05/ASMPARAMETERFILE/spfileMoveASM.ora
  1. 检查新的spfile位置
ASMCMD> spget
+vote/cehaovmsp1clu05/ASMPARAMETERFILE/spfileMoveASM.ora
  1. 检查gpnp配置文件中更改的当前实例ASM参数文件:
$ gpnptool get
Warning: some command line parameters were defaulted. Resulting command line:
  /u01/app/12.1.0/grid/bin/gpnptool.bin get -o
WlpxmGJZQB7TfmykzrttEEoWq6o=RefE5Nampd1BptSnsyzbhe0hOAMBtMd1SyxXvxDS/K+c0xkTccuyMZsJWJxWpzeFXXHzV+SxmKHRo6NRwPkpbksYTf5ibROeOD+i3fFqUgZVlu0IfdMFB8QfQ5J96jXV+6zdIxgWZJWcSkHSk6pzjslcUrXoNm30U3RSflJrv7Q=
Success.
  1. 现在启动所有其他节点,gpnp 配置文件更改将在启动时传播。

  2. 我们可以使用以下文档将 MGMT 从现有磁盘组移动到新磁盘组。

更多: zhilu jiaocheng

解决方案

在我们进入这个问题的解决方案之前,让我们先看看究竟什么是“外部”、“正常”和“高”冗余。

磁盘组冗余

如果在创建磁盘组期间指定冗余,则 Oracle ASM 会将扩展区的副本存储到同一磁盘组中的另一个故障组中。
故障组是为 NORMAL 和 HIGH 冗余磁盘组创建的。
具有 EXTERNAL 冗余的磁盘组应使用外部文件系统来管理镜像(使用 RAID 或者任何其他方式)。

基于 Oracle ASM 冗余级别,存在三种类型的磁盘组。
冗余级别为:

  • 外部冗余:在外部冗余的情况下,Oracle ASM 不负责镜像数据。假设底层文件系统具有镜像块的必要能力(例如,使用 RAID 配置或者通过任何其他方式)。但是在外部冗余的情况下,任何写入错误都会导致磁盘组的强制卸载。
  • 正常冗余:在正常冗余的情况下,Oracle ASM 会镜像文件中的范围。所以我们有一个文件中每个范围的两个副本。丢失一个 ASM 磁盘不会导致数据丢失,因为我们仍有可用的镜像副本。 NORMAL REDUNDANCY 的空间需求是外部冗余的两倍,所以我们必须确保我们有数据库所需空间的两倍。
  • 高冗余:在高冗余的情况下,Oracle ASM 对原始数据做了两个副本,所以我们总共有三个副本。因此,可以容忍两个不同故障组中的磁盘丢失。如果我们没有足够的在线故障组来满足磁盘组镜像,Oracle ASM 会分配尽可能多的镜像,一旦有足够数量的故障组可用,它就会分配剩余的所需镜像。这种冗余需要的空间量是数据的三倍。

问题

在安装 12c Grid Infrastructure (GI) 的目的是拥有 3 个投票磁盘和 OCR 文件的副本时,我们创建了具有 3 个底层 luns 的 +GRID 磁盘组。
然而,因为我们为磁盘组选择了“外部冗余”,最终只有一个表决磁盘和 OCR 文件的副本,而无法在同一组中多路复用它们。

日期:2020-09-17 00:11:22 来源:oir作者:oir