方法 2:使用中间 pfile
这是通过使用中间 pfile 在单实例环境中移动 ASM spfile 的示例。
创建中间 pfile
- 验证当前 spfile 的位置。
$ sqlplus / as sysasm SQL*Plus: Release 11.2.0.1.0 Production on [date] Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production With the Automatic Storage Management option SQL> show parameter spfile NAME TYPE VALUE ------- ------- ------------------------------------------------- spfile string +DATA/asm/asmparameterfile/registry.253.715881237
- 接下来是使用如下所示的命令从 spfile 创建一个中间 pfile。
SQL> create pfile='/tmp/pfile+ASM.ora' from spfile; File created.
创建新的 spfile
- 使用我们刚刚在上面的步骤 1 中创建的中间 pfile 在新磁盘组中创建一个新 spfile。
SQL> create spfile='+PLAY' from pfile='/tmp/pfile+ASM.ora'; File created. SQL> exit Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production With the Automatic Storage Management option
重新启动 HA 堆栈
- 重新启动 HA 堆栈以验证 ASM 是否可以通过移动的 spfile 正常启动。
$ crsctl stop has CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on '[server]' ... CRS-4133: Oracle High Availability Services has been stopped.
$ crsctl start has CRS-4123: Oracle High Availability Services has been started.
- 使用以下命令验证数据库是否正在使用新的 spfile。
$ sqlplus / as sysasm SQL*Plus: Release 11.2.0.1.0 Production on [date] Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production With the Automatic Storage Management option SQL> show parameter spfile NAME TYPE VALUE ------- ------- ------------------------------------------------- spfile string +PLAY/asm/asmparameterfile/registry.253.715963539
- 还要验证磁盘组+DATA 和+PLAY 是否处于挂载状态。
SQL> select name, state from v$asm_diskgroup; NAME STATE ----- ---------- DATA MOUNTED PLAY MOUNTED SQL> exit Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production With the Automatic Storage Management option
4、新的spfile的使用也可以用asmcmd验证如下:
$ asmcmd spget +PLAY/asm/asmparameterfile/registry.253.715963539
删除旧的 spfile
我们可能希望删除旧的 spfile,以便没有人误用它。
使用“asmcmd rm”命令删除旧的 spfile。
$ asmcmd rm +DATA/asm/asmparameterfile/registry.253.715881237
注意:必须重新启动 ASM 实例才能使此更改生效。
在集群环境中,集群中的所有 ASM 实例都必须重新启动。
问题
首次安装 ASM 时,spfile 被放置在默认磁盘组中(例如 +DATA)。
现在的要求是将 spfile 移动到不同的磁盘组。
on It Road.com
方法 1:使用“asmcmd spcopy”
复制 spfile
下面显示的是在 Oracle Restart 环境中使用“asmcmd spcopy”实用程序移动 spfile 的示例。
- 使用“asmcmd spget”命令列出数据库中当前正在使用的spfile。
$ asmcmd spget +DATA/asm/asmparameterfile/registry.253.722601213
验证要将 spfile 移动到的磁盘组。
在我们的示例中,我们将把 spfile 移动到磁盘组“+PLAY”
$ asmcmd lsdg State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Votin g_files Name MOUNTED EXTERN N 512 4096 1048576 14658 9814 0 9814 0 N DATA/ MOUNTED EXTERN N 512 4096 1048576 9772 8507 0 8507 0 N PLAY/ MOUNTED EXTERN N 512 4096 1048576 9772 9212 0 9212 0 N RECO/
使用 -u 选项复制 spfile 以在 RAC 环境中更新 GPnP 配置文件
$ asmcmd spcopy -u +DATA/asm/asmparameterfile/registry.253.722601213 +PLAY/spfileASM.ora
重新启动 HA 堆栈
- 下一步是重新启动 HA 堆栈以验证 ASM 是否可以通过 Copyspfile 正常启动。
使用 crsctl 重新启动“has”资源。
$ crsctl stop has CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on '[server]' ... CRS-4133: Oracle High Availability Services has been stopped.
$ crsctl start has CRS-4123: Oracle High Availability Services has been started.
再次使用“asmcmd spget”命令验证 spfile 的新位置。
$ asmcmd spget +PLAY/spfileASM.ora
删除旧的 spfile
我们可能还想删除旧的 spfile,这样就不会有人错误地使用它。
为此,请使用“asmcmd rm”命令。
$ asmcmd ls -l +DATA/asm/asmparameterfile Type Redund Striped Time Sys Name ASMPARAMETERFILE UNPROT COARSE JUN 25 10:00:00 Y REGISTRY.253.722601213
$ asmcmd rm +DATA/asm/asmparameterfile/registry.253.722601213
日期:2020-09-17 00:11:23 来源:oir作者:oir