接上回【ASM】ASM官方文档-Part I 介绍,继续过官方文档。
参考的文档是19c版本:
https://docs.oracle.com/en/database/oracle/oracle-database/19/ostmg/index.html
本篇对应的是Part II Oracle ASM Instances and Disk Groups,下面
3 Administering Oracle ASM Instances
查看COMPATIBLE.ASM命令:
[grid@xk1 ~]$ asmcmd lsattr -G DATA -l compatible.asm Name Value compatible.asm 11.2.0.0.0
一、管理ASM实例
ASM实例的管理类似于Oracle实例管理。
本章介绍如何管理ASM实例、配置ASM实例参数以及设置Oracle数据库参数。还介绍了ASM的升级、打补丁和身份验证。
管理ASM使用下列工具
- ASMCMD-ASM命令行实用程序
- ASMCA-ASM配置助手
- SQL*Plus
1.使用不同版本的ASM和数据库实例
ASM支持与旧版本的Oracle软件一起使用,最低到10gR1。假设ASM是18c版本,数据库是10gR1版本,但是只能使用10g版本的ASM功能。
关联视图为 V$ASM_CLIENT,关注其中两列:
- SOFTWARE_VERSION:所选磁盘组连接的数据库或ASM实例的软件版本号。
- COMPATIBLE_VERSION:所选磁盘组连接的数据库或ASM实例的兼容性参数的设置。
下图是本机11.2.0.4版本查询结果

2.ASM实例的初始化参数
大部分默认参数已经足够,少量参数可重新配置。
2.1 初始化参数文件
-
ASM在安装期间,OUI会自动创建SPFILE在磁盘组中
-
ASM实例升级的时候,如果SPFILE位于初始的共享文件系统中,则升级的实例会将SPFILE保留在同一位置。如果原始的ASM实例使用PFILE,则在升级后,该实例将继续使用PFILE。
-
可以使用SPFILE或者PFILE作为参数文件,如果使用SPFILE,那就必须放在磁盘组中或者集群文件系统中。Oracle推荐放在磁盘组上。
-
不能使用现有的SPFILE创建的新别名来启动ASM实例(估计也没人这么玩)
ASM实例搜索参数文件的顺序:
- Grid Plug and Play(GPnP)profile中指定的位置
- 如果尚未在GPnP配置文件中设置该位置,则搜索顺序将更改为:
a. ASM家目录中的SPFILE,例如:$ORACLE_HOME/dbs/spfile+ASM.ora
b. ASM家目录中的PFILE
可以使用SQL*Plus、ASMCA和ASMCMD命令管理OracleASM初始化参数文件
2.2 备份、复制和移动参数文件
在ASMCMD命令行下可以使用spbackup、spcopy、spmove命令进行SPFILE的备份、复制和移动操作。
复制或移动SPFILE或PFILE后,必须使用新位置的SPFILE或PFILE重新启动实例才能使用该SPFILE或PFILE。
--从本地文件系统中的PFILE创建SPFILE,并存储到ASM磁盘组中
--1.连接ASM实例
$ sqlplus / as sysasm
--2.从PFILE创建SPFILE
SQL> CREATE SPFILE = '+DATA/asmspfile.ora' FROM PFILE = '$ORACLE_HOME/dbs/asmpfile.ora';
--3.CREATE SPFILE操作会更新 GPnP profile,检查SPFILE位置
--注意:如果加了as copy,那么 CREATE SPFILE FROM PFILE 就不会更新SPFILE指定位置
ASMCMD> spget
+GRID/rac-scan/asmparameterfile/registry.253.1072113523
--4.重启ASM实例,就会读取新生成的SPFILE
2.3 创建SPFILE备份副本
在另外的磁盘组中创建SPFILE的备份副本,用于紧急情况下还原。
创建步骤:
--1.获取SPFILE位置
ASMCMD [+] > spget
+DATA/ASM/ASMPARAMETERFILE/registry.253.849343867
--2.使用spcopy命令复制
ASMCMD [+] > spcopy +DATA/ASM/ASMPARAMETERFILE/registry.253.849343867 +FRA/spfileCopyASM.ora
--注意:单纯使用spcopy命令不会更新SPFILE位置信息,加-u参数则复制后,则SPFILE就指向了新复制出的SPFILE。
--3.想重新制定SPFILE位置可以用spset命令
--4.列出+FRA磁盘组中的SPFILE副本
ASMCMD [+] > ls -l --absolutepath FRA/ASM/ASMPARAMETERFILE
Type Redund Striped Time Sys Name
ASMPARAMETERFILE MIRROR COARSE JUN 06 13:00:00 Y +FRA/spfileCopyASM.ora =>
REGISTRY.253.849533009
2.4 初始化参数设置
默认参数基本够用。可以在ASMCA设置,也可以在数据库创建后用ALTER SYSTEM 或 ALTER SESSION修改。不能在数据库实例参数文件中使用名称前缀为ASM_*的参数。
2.5 ASM的自动内存管理(AMM)
ASM和数据库实例一样也可以使用AMM,也是通过设置 MEMORY_TARGET参数启用。
AMM功能在ASM实例是默认启用的,即使也没显式地设置MEMORY_TARGET(实际是设置了的)。
大多数环境使用MEMORY_TARGET的默认值就可以。
MEMORY_TARGET是启用AMM需要设置的唯一参数。
Oracle强烈推荐ASM使用AMM!
如果出现ORA-04031错误并且启用了AMM,则MEMORY_MAX_TARGET和MEMORY_TARGET值会自动增加。
如果 MEMORY_MAX_TARGET已经设定,则每次出现ORA-04031错误MEMORY_TARGET会增加10%或者128M,哪个涨得多久以哪个为准,但是不会超过MEMORY_MAX_TARGET的设置。
如果未显式设置MEMORY_MAX_TARGET,则MEMORY_TARGET和MEMORY_MAX_TARGET将增加现有MEMORY_TARGET值的10%或128MB,以较大者为准,最多将增加5次。
新设置的MEMORY_TARGET和MEMORY_MAX_TARGET 需要重启实例生效。
AMM在/dev/shm不可用或者过小的情况不能使用。(推荐看Oracle Database Administrator’s Reference for Linux and UNIXBased Operating Systems)
ASM最小MEMORY_TARGET为1GB。如果将MEMORY_TARGET设置为较低,则Oracle会自动将MEMORY_TARGET的值增加到1GB。
2.6 ASM初始化参数的建议设置
1.ASM_DISKGROUPS
ASM实例在启动时要挂载的磁盘组列表
--除非启动时指定nomount,否则默认实例启动进程会执行下面命令
ALTER DISKGROUP ALL MOUNT
ASM_DISKGROUPS默认值是NULL字符串
ASM_DISKGROUPS参数是动态的,使用SPFILE的话,大多数情况下不用手动更改ASM_DISKGROUPS的值。当成功创建或安装磁盘组时,ASM会自动将磁盘组添加到参数中。当删除磁盘组时,ASM也会自动从参数中删除磁盘组。手动卸载不会更新SPFILE。
--手工设置参数
SQL> ALTER SYSTEM SET ASM_DISKGROUPS = DATA, FRA;
使用PFILE的话,可以编辑文件添加磁盘组,这样启动的时候就会自动挂载。
--pfile里可以如下添加
ASM_DISKGROUPS = DATA, FRA
注意:执行ALTER DISKGROUP…ALL MOUNT 或 ALTER DISKGROUP…ALL DISMOUNT不会影响ASM_DISKGROUPS的参数值。
在12c Release 1之前的版本最多支持63个磁盘组,从12c Release 1 开始最多支持511个。
2.ASM_DISKSTRING
ASM的发现磁盘的路径

支持通配符
--搜索disk3 disk4结尾的磁盘
ASM_DISKSTRING = '/dev/rdsk/*disk3', '/dev/rdsk/*disk4'
3.ASM_IO_PROCESSES
在Oracle IOServer实例中启动的I / O工作进程数,12c R2新增。
此参数仅适用于Oracle IOServer实例,该实例在Oracle Grid Infrastructure主目录下运行。
通常默认值够用,IO繁重情况可调大。
ASM_IO_PROCESSES指定要在Oracle IOServer实例中启动的I / O工作进程数。
4.ASM_POWER_LIMIT
设置磁盘组重新平衡的功率(power)

值的范围为0到1024。默认值为1。如果值为0,将禁用重新平衡。较高的数值使再平衡操作能够更快速地完成,但可能会导致较高的I/O开销和更多的再平衡进程。
- 兼容性 11.2.0.2 以上,范围0~1024
- 兼容性 11.2.0.2 以下,范围0~11,设置大于11也是用11
--在REBALANCE时候指定power
alter diskgroup DATA REBALANCE power 2;
--修改ASM_POWER_LIMIT参数
alter session set ASM_POWER_LIMIT=2
alter system set ASM_POWER_LIMIT=2;
Oracle不建议将值设为0,Exadata一体机不允许设为0。
5.ASM_PREFERRED_READ_FAILURE_GROUPS
该初始化参数值是一个以逗号分隔的字符串列表,它指定给定实例应优先读取的失败组。
12.2开始已弃用
6.DB_CACHE_SIZE
设置buffer cache的大小。使用AMM不需要设置该参数,ASM默认且推荐使用AMM,所以一般不用设
7.DIAGNOSTIC_DEST
诊断日志的目录,默认$ORACLE_BASE下
--我本机的asm警告日志查看路径
/oracle/app/grid/diag/asm/+asm/+ASM1/trace/alert_+ASM1.log
8.INSTANCE_TYPE
实例类型,数据库实例、asm实例或 ASM Proxy实例
9.LARGE_POOL_SIZE
设置大池大小。使用AMM不用管。
10.PROCESSES
该参数影响Oracle ASM,但默认值通常就够用。(官方文档就就这写的,应该就是进程数量)
计算方式,n代表实例数量:

11.REMOTE_LOGIN_PASSWORDFILE
指定ASM实例是否检查密码文件。
参数说明:
https://docs.oracle.com/database/121/REFRN/GUID-6619299E-95E8-4821-B123-3B5899F046C7.htm#REFRN10184
12.SHARED_POOL_SIZE
设置共享池大小。使用AMM不用管。
2.7 为ASM设置数据库的参数
这一块的意思是,如果数据库实例没有使用AMM,则可能需要为了ASM而调整一些涉及内存的参数设置,我在实际生产上没有做过什么调整,这里先不过多深究,放上原文

3.ASM实例的管理
ASM通常安装在GI的home目录下。标准设置一台服务器上只能装一个ASM实例,但是Oracle Flex ASM有一些额外选项。
3.1 单实例环境使用GI
配置Oracle Restart可实现硬件或软件出现故障或者数据库所在主机重启之后自动重新启动数据库,监听和其它oracle组件。
介绍:http://blog.itpub.net/26015009/viewspace-1175347/
3.2 ASM实例启动
1.连接并启动ASM实例
-
使用sqlplus启动ASM,要注意 ORACLE_SID
- 单实例的ORACLE_SID默认是 +ASM
- RAC环境ORACLE_SID默认是 +ASMnode_number,例如+ASM1
-
Oracle不推荐修改默认的ORACLE_SID
-
初始化参数里需要有 INSTANCE_TYPE = ASM,表示当前启动的是ASM实例
-
执行startup命令时,并不是尝试启动到mount到open数据库,而是去挂载ASM磁盘组
-
ASM实例的启动不需要所关联的数据库实例也启动
startup命令的一些参数:
- force:等于shutdown abort + startup
- MOUNT or OPEN:启动的时候挂载ASM_DISKGROUPS参数指定的磁盘组,这是默认选项,加不加都行
- NOMOUNT:启动OracleASM实例,而不装入任何磁盘组。
- RESTRICT:以受限模式启动一个实例,用户只有CREATE SESSION和RESTRICTED SESSION权限,可以与MOUNT, NOMOUNT, OPEN 一起使用
在受限模式下,数据库实例不能使用这些磁盘组。换句话说,数据库无法打开该磁盘组中的文件。此外,集群中的任何其他实例都无法装入该磁盘组。在受限模式下装载磁盘组只能使一个OracleASM实例装载磁盘组。此模式可帮助您装载磁盘组以修复配置问题。
2.使用不正确的SPFILE路径启动ASM实例
如果GPnP配置文件中的SPFILE路径不正确,则可以按以下方式启动OracleASM实例:
--1.创建一个PFILE(/oracle/dbs/spfileasm_init.ora)指向SPFILE的路径
SPFILE='+DATA/asm/asmparameterfile/asmspfile.ora'
--2.使用PFILE启动
SQL> STARTUP PFILE=/oracle/dbs/spfileasm_init.ora
--3.实例启用后再用spset命令设置正确是SPFILE路径,更新GPnP配置
ASMCMD> spset +DATA/asm/asmparameterfile/asmspfile.ora
3.启动时挂载磁盘组
启动时,ASM实例会尝试挂载以下磁盘组:
- ASM_DISKGROUPS参数指定的磁盘组
- CSS(Cluster Synchronization Services)集群同步服务使用的表决磁盘
- OCR(Oracle Cluster Registry)集群注册表所在磁盘组
- ASM实例用于存储ASM参数文件(SPFILE)的磁盘组
如果启动时没找到上面列表中的磁盘组,那么就不会挂载任何磁盘组
4.关于受限模式

3.3 ASM实例关闭
- 使用sqlplus关闭ASM,要注意 ORACLE_SID
- 单实例的ORACLE_SID默认是 +ASM
- RAC环境ORACLE_SID默认是 +ASMnode_number,例如+ASM1
- Oracle强烈建议关闭ASM实例前首先关闭数据库实例
- voting files跟OCR所在的磁盘组要卸载,只能通过关闭ASM实例
- 关闭CRS命令:crsctl stop crs
3.4 使用SRVCTL(Server Control Utility)管理ASM实例
- 使用SRVCTL命令在集群注册表OCR中添加或删除CRS资源
- Enable, disable, start, and stop ASM实例
- 显示ASM实例的配置和状态
- 添加、修改和删除ASM网络资源
- 添加、修改、移除、启用、禁用、启动和停止ASM监听资源
具体的srvctl操作需要看《Oracle Clusterware Administration and Deployment Guide》和《Oracle Real Application Clusters Administration and Deployment Guide》
3.5 关于Out of Place升级
我理解的是异地升级的意思,也就是不能直接在旧版本的GI直接升级,看下原文

3.6 使用配置向导配置GI

3.7 ASM活动会话历史记录采样
可以在OracleASM实例上进行活动会话历史记录采样。
关联视图 V$ACTIVE_SESSION_HISTORY ,这个可以再好好研究下
参考:https://blog.csdn.net/weixin_33991418/article/details/91885814
4.ASM升级和打补丁
RAC环境,Oracle集群软件的版本号必须至少等于要应用于Oracle数据库的补丁版本号。
必须先给GI升级补丁,在给数据库打
4.1 滚动升级(Rolling Upgrade)
滚动升级不影响数据库可用性。滚动升级意味着,当集群中的一个或多个节点使用不同的软件版本时,集群OracleASM环境的某些功能将继续运行。Oracle建议在执行集群软件滚动升级的时候同时对ASM滚动升级。
在执行ASM滚动升级之前,Oracle群集软件必须完全升级到下一个patch或发行版本。
滚动升级仅适用于群集OracleASM实例,并且只能在使用Oracle数据库11g或更高版本的环境中执行滚动升级。不能使用此功能从Oracle数据库10g升级到Oracle数据库11g。
4.2 滚动补丁升级(Rolling Patches)
您可以在群集OracleASM环境中应用patch,一次将一个节点更新到最新补丁,而不影响OracleASM群集或使用OracleASM存储的数据库群集的整体可用性。
启动或停止滚动补丁升级:
SQL> ALTER SYSTEM START ROLLING PATCH;
SQL> ALTER SYSTEM STOP ROLLING PATCH;
查询滚动补丁升级信息:
--滚动补丁模式
SELECT SYS_CONTEXT('SYS_CLUSTER_PROPERTIES', 'CLUSTER_STATE') FROM DUAL;
--补丁级别,这个再11gGI查询失败
SELECT SYS_CONTEXT('SYS_CLUSTER_PROPERTIES', 'CURRENT_PATCHLVL') FROM DUAL;
文档里提到一个视图V$PATCHES可以查询补丁的信息,但是11g下没有找到该视图
滚动补丁升级的asmcmd命令:
- showclusterstate
- showpatches
- showversion
5.访问ASM实例的身份验证
ASM实例没有数据字典,所以连接ASM实例需要使用SYSASM、SYSDBA或者SYSOPER三种权限之一。
连接ASM实例的三种模式:
- 使用操作系统身份验证的本地连接
- 使用密码身份验证的本地连接
- 通过使用密码身份验证的Oracle Net Services进行远程连接
5.1 ASM的权限
管理ASM实例应该使用SYSASM权限,SYSDBA权限不能用于ASM实例的管理,执行管理命令会提示错误。
SYSDBA权限是用于数据库访问磁盘组。
Oracle还建议使用特权较低的用户,例如,在安装期间创建的具有SYSDBA权限的ASMSNMP,来监视OracleASM实例。
使用指定为OSDBA、OSOPER和OSASM的组中的成员身份的操作系统身份验证在所有Oracle平台上都有效。
通过SYSASM连接到OracleASM实例,将授予您对所有可用的OracleASM磁盘组和管理功能的完全访问权限。
1.ASM用户的的操作系统组

2.ASM用户使用单独的操作系统组
P112

3.SYSASM管理员权限
SYSASM权限专用于存储管理,而SYSDBA是用于数据库管理,这样权限分离开。
--密码验证登陆
sqlplus SYS AS SYSASM
...
Enter password:
--远程登录
sqlplus sys@\"myhost.mydomain.com:1521/+ASM\" AS SYSASM
...
Enter password:
--操作系统验证
sqlplus / AS SYSASM
4.SYSDBA权限
要管理与数据库关联的ASM组件,可以使用sqldba权限登陆或者用asmcmd。
在运行具有SYSDBA权限的SQL或ASMCMD操作时,请连接到数据库实例,而不是OracleASM实例。
以SYSDBA身份连接到数据库实例具有一组有限的OracleASM权限。例如,当连接到SYSDBA权限时,您无法创建磁盘组。
当作为SYSDBA连接到数据库实例时,OracleASM操作被限制为:
- 创建和删除文件、别名、目录和模板
- 查看ASM实例视图
- 操作由此用户创建的文件或仅访问其他用户明确授予访问权限的文件
- 授予其他用户OracleASM文件访问权限
这一块看的有点蒙
5.2 创建具有SYSASM权限的用户
使用SYSASM权限登陆,可以用create user 和grant授权创建同样具有SYSASM权限的用户。使用revoke撤销权限, DROP USER删除用户。
注意:
- 上面说的命令仅更新本地OracleASM实例的密码文件。
- ASM不支持创建外部用户和全局用户。
--例子
REM create a new user, then grant the SYSASM privilege
SQL> CREATE USER new_user IDENTIFIED by new_user_passwd;
SQL> GRANT SYSASM TO new_user;
REM connect the user to the ASM instance
SQL> CONNECT new_user AS SYSASM;
Enter password:
REM revoke the SYSASM privilege, then drop the user
SQL> REVOKE SYSASM FROM new_user;
SQL> DROP USER new_user;
在ASM密码文件中撤销用户的最后一个权限时,不会像Oracle数据库密码文件中那样自动删除该用户。必须运行DROP USER才能删除密码文件中没有权限的用户。
5.3 ASM的操作系统身份验证

5.4 ASM的密码文件身份验证
ASM的密码文件身份验证可以在本地和远程工作。要启用密码文件身份验证,必须为OracleASM创建密码文件。
如果选择OracleASM存储选项,则当ASMCA配置OracleASM磁盘组时,ASMCA将为具有初始用户(SYS和ASMSNMP)的OracleASM创建密码文件。要将其他用户添加到密码文件中,可以使用create user和grant命令。
如果在不使用ASMCA的情况下配置ASM实例,则必须手动创建密码文件并给SYS用户授予SYSASM权限。
5.5 管理磁盘组中的共享密码文件
您可以管理磁盘组上的共享密码文件,以便通过整个集群系统访问该单个文件。
注意:
更改密码文件的位置后,应执行以下SQL语句以刷新密码文件元数据的缓存。
SQL> ALTER SYSTEM FLUSH PASSWORDFILE_METADATA_CACHE
密码文件的位置修改可以通过orapwd,或者是ASMCMD下的pwcopy, pwcreate, pwdelete, pwmove, or pwset 命令
1.关于磁盘组中的共享密码文件
Oracle数据库或OracleASM的单个密码文件可以驻留在指定的OracleASM磁盘组上。
将密码文件驻留在跨集群可访问的单个位置可以降低维护成本和密码不同步的情况。
只有在OracleASM实例正在运行并且挂载了指定的磁盘组时,才能使用位于磁盘组上的密码文件进行身份验证。否则,必须使用操作系统身份验证来启动OracleASM实例和堆栈的启动。
磁盘组中的共享密码文件由ASMCMD命令、ORAPWD工具和SRVCTL命令进行管理。ORAPWD支持在OracleASM磁盘组上创建密码文件。
SRVCTL提供了管理磁盘组中的密码文件的命令,例如以下用于更新和显示密码文件位置的命令:
`--查看asm口令文件的位置,注意11g版本是查不到的,显示内容少
$ srvctl config asm
--创建口令文件
$ orapwd file='+data/ORCL/orapwdb' dbuniquename='orcl' asm=y
#asm=y 表明是asm口令文件
--也可使用已有的口令文件创建新的口令文件
$ orapwd input_file='/oraclegrid/dbs/orapwasm' file='+data/ORCL/orapwdb' asm=y
--修改asm口令文件的位置
$ srvctl modify asm -pwfile <location>
$ srvctl modify database -db <dbname> -pwfile <location>
--备份asm口令文件
ASMCMD [+] > pwget --asm
+DATA/orapwasm
ASMCMD [+] > pwcopy +DATA/orapwasm +FRA/my_pwfile_backup
--还原asm口令文件,从备份中拷贝过去
ASMCMD [+] > pwcopy --asm +FRA/my_pwfile_backup +DATA2/my_orapwasm
--注意:这部分都是12c后新增的特性
2.在磁盘组中创建密码文件
首先注意:
在群集中配置OracleASM时,不要使用orapwd创建新的OracleASM密码文件。如果在群集配置中无法访问OracleASM密码文件,则必须使用可用的备份还原密码文件,而不是创建新文件。有关有关在群集中重新创建共享的OracleASM密码文件的文档,查看MOS 1929673.1
可以使用orapwd在指定的OracleASM磁盘组中创建密码文件。
从文件系统上的现有密码文件在磁盘组中创建Oracle数据库密码文件,执行orapwd命令带dbuniquename。dbuniquename指定了要为哪个数据库实例创建密码文件。
步骤:
- 确定Oracle数据库密码文件当前位于该文件系统上。
SQL> SELECT file_name FROM V$PASSWORDFILE_INFO;
FILE_NAME
----------------------------------------------------------------------
/u01/app/oracle/product/19.1.0/db_home1/dbs/orapworcl
- 运行orapwd以将密码文件移动到OracleASM磁盘组
$ orapwd file='+data/ORCL/orapwdb' dbuniquename='orcl' Enter password for SYS:
- 移动密码文件后,使用alter system语句更新密码元数据缓存,然后确认新的密码文件的位置。
SQL> ALTER SYSTEM FLUSH PASSWORDFILE_METADATA_CACHE;
System altered.
SQL> SELECT file_name FROM v$passwordfile_info;
FILE_NAME
----------------------------------------------------------------------
+DATA/ORCL/orapwdb
要在磁盘组中创建OracleASM密码文件,请使用asm开关设置为y运行orapwd:
$ orapwd file='+data/ASM/orapwasm' asm=y Enter password for SYS:
要从现有密码文件在OracleASM磁盘组中创建OracleASM密码文件,请使用input_file开关和asm开关设置为y运行orapwd:
$ orapwd input_file='/oraclegrid/dbs/orapwasm' file='+data/ASM/orapwasm' asm=y Enter password for SYS:
3.备份和还原磁盘组中的OracleASM密码文件
可以对OracleASM密码文件进行备份,如果OracleASM密码文件丢失或磁盘组无法访问,则可以还原备份密码文件。
本节介绍了将OracleASM密码文件备份到磁盘组的步骤,以及还原OracleASM密码文件的步骤。
COMPATIBLE.ASM属性必须是12.1或更高
--1.在asmcmd中使用pwget定位密码文件
ASMCMD [+] > pwget --asm
+DATA/orapwasm
--2.使用pwcopy命令将密码文件备份到另一个磁盘组
ASMCMD [+] > pwcopy +DATA/orapwasm +FRA/my_pwfile_backup
--使用不带--asm或 --dbuniquename选项的pwcopy不会更改密码文件的当前位置。复制后,如果必要,可以使用pwset命令设置当前密码文件位置。
--3.在使用pwcopy命令进行备份后,验证哪个密码文件位于当前位置。
ASMCMD [+] > pwget --asm
+DATA/orapwasm
--4.验证是否创建了备份密码文件
ASMCMD [+] > ls +fra/my_pwfile_backup
my_pwfile_backup
--5.要恢复OracleASM密码文件,可以使用pwset或pwcopy。
--要从备份中还原OracleASM密码文件并使用现有位置,请使用包含--asm选项的pwset命令。
ASMCMD [+] > pwset --asm +FRA/my_pwfile_backup
--要将OracleASM密码文件从备份还原到另一个磁盘组,请使用带有--asm选项的pwcopy命令。
ASMCMD [+] > pwcopy --asm +FRA/my_pwfile_backup +DATA2/my_orapwasm
--pwset和pwcopy命令使用--asm选项可设置OracleASM实例的密码位置。
--6.如果已更改了该位置,请使用pwget命令验证当前密码文件的位置。
ASMCMD [+] > pwget --asm
+DATA2/my_orapwasm
--如果显示的当前密码文件的位置不是预期位置,则刷新密码元数据缓存以刷新密码文件信息。
SQL> ALTER SYSTEM FLUSH PASSWORDFILE_METADATA_CACHE;
System altered.
6.迁移数据库到ASM中
新装数据库的时候可以选择ASM作为存储选项,如果当前运行系统的数据文件存储在本地文件系统上,也可以将部分或全部数据文件迁移到ASM中。
在将数据库迁移到OracleASM之前,必须至少升级到Oracle数据库10g。
6.1 使用RMAN迁移
可以使用Oracle恢复管理器(RMAN)手动迁移到OracleASM。
还可以使用RMAN将单个表空间或数据文件迁移到OracleASM。
具体的迁移步骤在后续章节有说明
6.2 迁移到ASM的最佳实践
这里给了个网站去查询:https://www.oracle.com/database/technologies/high-availability/maa.html
7.ASM审计跟踪
P120-P123
二、总结
- 19c版本相对11g还是有很多新特性,新上环境还是19c好些;
- 阅读官方文档还是暴露出很多知识盲点,截止到现在的章节,大多还是讲一些基本概念,不太涉及实际的操作命令;
- 对于我自己来说,计划先通读完官方文档,再结合实际操作和一些其他技术博客加深理解。






