当ASM instance 查找初始化文件的时候,搜索的顺序如下:
1. GPnP(Grid Plug and Play) profile 中指定的本地位置
2. 如果GPnP profile中没有指定初始化文件的位置,然后搜索ASM Instance Home目录。这里会包含2种文件,SPFILE 和 PFILE,默认路径是:$ORACLE_HOME/dbs/spfile+ASM.ora
GPnP profile文件保存的是集群的配置信息。这个XML 文件里记录了如下信息:
1.网络接口和IP地址(公网和私网)
2.ASM diskstring和spfile信息
注意:Oracle不支持手动修改profile.xml文件,直接对它的修改可能导致无法修复的问题,最终导致在所有节点重建Clusterware。
默认的保存位置是:
$GRID_HOME/gpnp/$HOSTNAME/profile/peer/profile.xml
$GRID_HOME/gpnp/profile/peer/profile.xml(全局备份)
我们可以指定的平台上使用命令复制和移动ASM PFILE 文件, 在复制或者移动一个SPFILE 或者 PFILE 文件之后,要使新文件生效,必须使用新位置的SPFILE 或者PFILE 来重新启动ASM 实例。
--停止asm服务
srvctl stop asm -h
--查看启动spfile位置
1.
show parameter spfile
2.
[grid@asm ~]$ asmcmd
ASMCMD&get; spget
--ASM启动参数
[grid@asm dbs]$ cat init+ASM.ora
+ASM.asm_diskgroups='FRA'#Manual Mount
*.asm_diskstring='/dev/asm*'
*.asm_power_limit=1 --自动平衡的速度1~1024
*.diagnostic_dest='/u01/grid'
*.instance_type='asm'
*.large_pool_size=12M
*.remote_login_passwordfile='EXCLUSIVE'
2.3.2.4.1 ASM_DISKGROUPS
show parameter asm_diskgroups
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
asm_diskgroups string FRA, DATA
ASM_DISKGROUPS 参数是动态参数,如果我们使用SPFILE 来启动ASM 实例,那么我们就不需要设置ASM_DISKGROUPS参数,在我们成功创建或者MOUNT disk group之后,ASM 会自动把disk group 的信息添加到这个参数中。
--启动要加载的磁盘组,如果没加载可以修改这个参数,比如ALTER SYSTEM SET ASM_DISKGROUPS = DATA, FRA;
2.3.2.4.2 ASM_DISKSTRING
ASM_DISKSTRING 参数用来执行ASM 实例discover的路径,如果有多个路径,那么用逗号进行分割,并且在路径中可以使用通配符。 在discover的过程中,只要匹配任意一个路径的disk都会被识别到,同一个disk 只能被匹配一次。
ASM_DISKSTRING 参数中字符串的格式有ASM library 和操作系统决定。
如果在Linux 环境,并且没有使用ASMLib,要限制ASM discovery 进程只查找/dev/rdsk/mydisks 目录下的disk,那么可以设置ASM_DISKSTRING 参数为如下值:
/dev/rdsk/mydisks/*
注意:这里星号是必须要的。
/dev/asm*
2.3.2.4.3 ASM_POWER_LIMIT
ASM_POWER_LIMIT 参数指定disk group rebalance的default power。 该参数的值是0 到 1024. 默认是1. 如果设置为0,则表示禁用rebalance。
该参数设置的越高,rebalancing 操作就会进行的越快,但是带来的影响就是需要高IO ,也需要更多的rebalancing 进程来处理。
注意:
如果disk group 的compatible.asm属性大于11.2.0.2,那么该参数的值范围是0 到 1024.
如果 disk group的compatible.asm属性小于11.2.0.2,那么该参数值只能从0到11.
--查看ASM rebalancing 进行中的操作:有操作才有记录,没操作没记录
select * from v$asm_operation;
例子:
--将FRA 这个power改成3:
alter diskgroup FRA rebalance power 3;
--速度的查看:
select group_number, operation, state, power, est_minutes from v$asm_operation;
2.3.2.4.4 ASM_PREFERRED_READ_FAILURE_GROUPS
这个参数是配置ASM失败组,指定的是优先读取的failure groups。 这个参数指定的是失败组的一个列表,默认为NULL。
SQL&get; show parameter asm_preferred
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
asm_preferred_read_failure_groups string
SQL&get;
可以指定多个值,用逗号隔开:
diskgroup_name1.failure_group_name1, ...
2.3.2.4.5 DB_CACHE_SIZE
show parameter db_cache_size
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_cache_size big integer 0
2.3.2.4.6 DIAGNOSTIC_DEST
show parameter diag
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
diagnostic_dest string /u01/app/grid
SQL&get;
该参数用来指定实例诊断的目录。 默认位置是Grid 的$ORACLE_BASE。
2.3.2.4.7 INSTANCE_TYPE
show parameter instance_type
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
instance_type string asm
2.3.2.4.8 LARGE_POOL_SIZE
show parameter large
2.3.2.4.9 PROCESSES
PROCESSES 参数会影响ASM 实例,该参数的默认值一般都够用。
如果有多个数据库实例使用同一个ASM 实例,那么就需要修改这个参数,计算方法如下:
PROCESSES = 50 + 50*n
n 表示数据库实例的个数。 如果是2个数据库实例,就是50+50*2=150.
2.3.2.4.10 REMOTE_LOGIN_PASSWORDFILE
show parameter remote_login_passwordfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
remote_login_passwordfile string EXCLUSIVE
SQL&get;
这个参数用来指定ASM 实例是否使用password file。 机制和我们数据库实例一样。
2.3.2.4.11 SHARED_POOL_SIZE
show parameter shared_pool_size
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
shared_pool_size big integer 0
2.3.3.1 使用Server Control Utility 管理ASM 实例
这里的Server Control Utility 就是SRVCTL 工具,这个很方便。 这个工具工作,我们后面会详细介绍这个工具的使用。 这里了解一下。
(1) 可以使用SRVCTL 工具在OCR(Oracle Cluster Registry)中添加或者移除ASM 的CRS 资源。
(2) Enable, disable, start, stop Oracle ASM instances
(3) 显示Oracle ASM 实例的配置和状态信息
2.3.3.2 Oracle Restart 是如何管理的?
Oracle Restart 是Oracle 11g里推出来的新特性。 Oracle Restart能提高数据库的可用性,当安装了Oracle Restart之后,在系统出现硬件或者软件问题,或者主机重启之后,OracleRestart 管理的组件都能自动的进行启动。
2.3.3.2.3 使用CRSCTL 命令管理Oracle Restart
--手工停止Oracle Restart: crsctl stop has [-f]
[grid@asm ~]$ crsctl stop has
--启动HAS
[grid@asm ~]$ crsctl start has
2.3.3.2.4 使用SRVCTL 命令管理Restart(OHASD)
可以手工的使用SRVCTL 命令来管理Oracle Restart。从Oracle Restart 配置里添加或者删除一些组件。当我们手工的添加一个组件到到Oracle Restart,并使用SRVCTL启用该组件,那么Oracle Restart 就开始管理该组件,并根据需要决定是否对该组件进行重启。s
--将DB_UNIQUE_NAME为dave的数据库添加到Restart中:
srvctl add database -d dave –o /u01/app/oracle/product/11.2.0/dbhome_1
--将dave 添加到restart中,并将数据库和disk group 建立连接:
srvctl add database -d dave -o/u01/app/oracle/product/11.2.0/dbhome_1 -a "DATA,RECOVERY"
远程连ASM
ASM =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.51)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = +ASM)
(UR=A)
)
)
--重要视图
v$asm_client
v$asm_diskgroup
v$asm_attribute --每个磁盘组有自己的属性