ASM三 管理ASM实例

1.不同版本ASM与数据库实例

11.2的ASM支持旧版本的数据库,如10G。在群集(Oracle Clusterware)中使用ASM时,群集的版本必须大于等于ASM的版本。

 V$ASM_CLIENT 视图的SOFTWARE_VERSIONCOMPATIBLE_VERSION   字段显示了软件版本和兼容性版本。

 

2.初始化参数

ASM实例也有一个参数文件spfile或pfile,需要设置的参数很少,大多数参数的默认设置是合适的。在群集(in clustered Oracle ASM environment)中,OUI只创建一个共享的SPIFLE,放在磁盘组中。ORACLE建议将SPFILE放在磁盘组中。

 

ASM参数文件查找顺序:

1.Grid Plug and Play (GPnP) profile中定义的参数文件位置

2.ASM实例的HOME目录,如$ORACLE_HOME/dbs/spfile+ASM.ora。没找到SPFILE就在该目录下找PFILE。

 

参数文件的备份

以下几种方法可以管理参数文件:

1.ASMCMD工具的spbackupspcopy , spmove命令.

2.在SQLPLUS 中执行create spfile命令.

3.操作系统命令(如CP)复制PFILE.

示例:

$ sqlplus / as sysasm
SQL> CREATE SPFILE = '+DATA/asmspfile.ora' 
       FROM PFILE = '$ORACLE_HOME/dbs/asmpfile.ora';

执行完以后可以用ASMCMD的spget命令查看新的SPFILE位置.

 

设置参数文件

可以使用ASMCA或SQLPLUS来设置.参数文件中唯一一个必要的参数是INSTANCE_TYPE .其它的参数都可以使用默认值.

 

 

3.ASM自动内存管理

ASM自动开启自动内存管理,即使是MEMORY_TARGET  参数没有设置.一般情况下MEMORY_TARGET  的默认值就是合适的.管理自动内存管理只需要设置这一个参数即可.如果没有设置MEMORY_TARGET  而设置了其它内存参数,ASM自动的设置MEMORY_TARGET  为一个合适的值.可以动态的设置MEMORY_TARGET  ,最大值为MEMORY_MAX_TARGET .不建议关闭自动内存管理,如果要关闭,执行ALTER SYSTEM SET MEMORY_TARGET=0 .关闭自动内存管理后,ASM自动启用共享内存管理和PGA自动管理.关闭共享内存管理 ALTER SYSTEM SET SGA_TARGET=0 .

 

 

4.ASM参数的建议值

  • ASM_DISKGROUPS  ASM启动时加载的磁盘组,默认值是NULL.当使用NOMOUNT或执行alter diskgroup all mount 时,忽略这个参数.如果使用SPFILE启动,不需要设置这个参数,当一个磁盘组创建或加载时,自动将这个磁盘组写到SFPILE中,当磁盘组被删除或卸载时,也自动的更新SFPILE.示例:SQL> ALTER SYSTEM SET ASM_DISKGROUPS = DATA, FRA; 如果使用PFILE启动,则必须编辑这个参数来决定启动时加载哪些磁盘组.如果不想让磁盘组在启动时自动加载,要从PFILE中删除这个磁盘组.PFILE中示例:ASM_DISKGROUPS = DATA, FRA

  • ASM_DISKSTRING ASM磁盘的寻找路径,默认值是NULL.该字符串说明要加载哪些磁盘,可以使用通配符.如:/dev/rdsk/*disk3/dev/rdsk/*disk4 .使用?号时,?放在字符串的第一位表示是ORCLE_HOME目录,放在其它位置表示单个任意字符.该值为NULL时,则搜索平台相关的一个OS路径.在集群中,只有每个ASM实例都能找到这个磁盘才能使用这个磁盘.

  • ASM_POWER_LIMIT 默认的重分布速率,值为0-2014,默认值为1.值越大,则重分布速率越快,需要的I/O和重分布进程就越多.在compatibility 为11.2.0.2或以上时,可选值为0-1024,在小于11.2.0.2时,可选值为1-11. ALTER DISKGROUP ... REBALANCE 可以设置磁盘组的重分布速率

  • ASM_PREFERRED_READ_FAILURE_GROUPS 设置优先读哪个故障组.每个ASM实例的设置都可以不同,该参数常用于集群的ASM中.

  • DB_CACHE_SIZE 使用多大的cache来保存元数据,开启了自动内存管理后,不需要设置这个参数.该参数的默认值是合适的,不需要设置.

  • DIAGNOSTIC_DEST 诊断信息的位置.默认在ORACLE_BASE下

     

    $ ls $ORACLE_BASE/diag/asm/+asm/+ASM
    alert  cdump  hm  incident  incpkg  ir  lck  metadata  stage  sweep  trace

     

  • INSTANCE_TYPE 实例类型,RDBMS表示为数据库,ASM表示是ASM.

  • LARGE_POOL_SIZE  used for large allocations 用于大量分配(分配啥?),默认参数即可,使用自动内存管理里不需要设置

  • PROCESSES 进行数.默认值即可.如果要设置:PROCESSES = 50 + 50*n N为连接到ASM的数据库数. 

  • REMOTE_LOGIN_PASSWORDFILE  远程登录是否使用密码文件,与数据库一样.

  • SHARED_POOL_SIZE   共享池大大小 ,在自动内存管理时不用设置,使用默认值即可.

 

初始化参数的指导方针:

  • PROCESSES initialization parameter—Add 16 to the current value  每次增加16

  • LARGE_POOL_SIZE initialization parameter—Add an additional 600K to the current value 每次增加600K

  • SHARED_POOL_SIZE initialization parameter—Aggregate the values from the following queries to obtain the current database storage size that is either on Oracle ASM or stored in Oracle ASM. Next, determine the redundancy type and calculate the SHARED_POOL_SIZE using the aggregated value as input.   

    SELECT SUM(bytes)/(1024*1024*1024) FROM V$DATAFILE;
    SELECT SUM(bytes)/(1024*1024*1024) FROM V$LOGFILE a, V$LOG b
           WHERE a.group#=b.group#;
    SELECT SUM(bytes)/(1024*1024*1024) FROM V$TEMPFILE 
           WHERE status='ONLINE'; 
    
    • For disk groups using external redundancy, every 100 GB of space needs 1 MB of extra shared pool plus 2 MB

    • For disk groups using normal redundancy, every 50 GB of space needs 1 MB of extra shared pool plus 4 MB

    • For disk groups using high redundancy, every 33 GB of space needs 1 MB of extra shared pool plus 6 MB

 

5.管理ASM实例

1.用Server Control Utility (SRVCTL)工具管理ASM实例 Administering Oracle ASM Instances with Server Control Utility

SRVCTL可以实现以下功能:

  1. Add and remove the Oracle ASM CRS resource in Oracle Cluster Registry (OCR)  在集群注册表中OCR中增加或删除CRS资源
  2. Enable, disable, start, and stop Oracle ASM instances   开启关闭ASM实例
  3. Display the Oracle ASM instance configuration and status 显示ASM状态和配置

2.使用ORACLE RESTART 

oracle restart提高了可用性.用Grid Infrastructure安装单实例数据库后,ASM和oracle restart也被安装了.oracle restart不在Grid home中.

oracle restart用于启动和重启单实例数据库、ASM、监听、服务和其它进程。当某些组件发生故障后,oracle restart负责重启这些组件。

使用SRVCTL时,可以把组件加入或移出oracle restart,用可SRVCTL可以开启和关闭oracle restart.

 

3.启动ASM实例

注意:

要设置SID:export ORACLE_SID=+ASM.RAC中实例是+ASMn,n代表结点号。

用于启动的初始化参数必须有INSTANCE_TYPE = ASM。

startup用于加载磁盘组而不是mount和open数据库。

 

在SQLPLUS中执行STARTUP 命令时可以加入以下参数

FORCE :在重启ASM实例前执行 shutdown abort命令,一数据库force命令相同。

MOUNT 或 OPEN :加载磁盘组。只使用startup不加参数也是这个功能。

NOMOUNT :不加载磁盘组。

RESTRICT :在mount nomount open中加上该参数,仅仅让同时有 CREATE SESSION 和RESTRICTED SESSION权限的用户连接。此时数据库不能使用磁盘组,磁盘组也不能被集群中其它的ASM实例加载,在修复ASM时使用。

示例:

 
  1. SQLPLUS /NOLOG
  2. SQL> CONNECT SYS AS SYSASM
  3. Enter password: sys_password
  4. Connected to an idle instance.
  5.  
  6. SQL> STARTUP
  7. ASM instance started
  8.  
  9. Total System Global Area 71303168 bytes
  10. Fixed Size 1069292 bytes
  11. Variable Size 45068052 bytes
  12. ASM Cache 25165824 bytes
  13. ASM disk groups mounted

 

4.当SPIFLE路径不正确时启动方式

如果GPNP profile 中记录的SPFILE的路径正确,用以下方式启动ASM实例

1.创建PFILE

如PFILE /u01/oracle/dbs/spfileasm_init.ora 

包含如下一行

SPFILE='+DATA/asm/asmparameterfile/asmspfile.ora'

2.用PFILE启动实例

SQL> STARTUP PFILE=/u01/oracle/dbs/spfileasm_init.ora

3.修改GPNP profile中SPFILE路径

ASMCMD> spset +DATA/asm/asmparameterfile/asmspfile.ora

 

5.启动时自动加载磁盘组

启动时ASM尝试加载以下磁盘:

  • Disk groups specified in the ASM_DISKGROUPS initialization parameter  ASM_DISKGROUPS指定的磁盘组
  • Disk group used by Cluster Synchronization Services (CSS) for voting files  集群同步服务(CSS)使用的磁盘组
  • Disk groups used by Oracle Clusterware for Oracle Cluster Registry (OCR)  集群注册表使用的磁盘组
  • Disk group used by the Oracle ASM instance to store the ASM server parameter file (SPFILE)  保存SPIFLE的磁盘组

6.受限模式(About Restricted Mode )

受限模式在维护时使用,ASM_DISKGROUPS  参数指定的磁盘组都以受限模式加载,此时数据库实例不能连接到ASM,也不能使用alter system命令,而且磁盘组只能被一个ASM实例加载。

 

7.关闭ASM实例(Shutting Down an Oracle ASM Instance

在关闭ASM实例之前,应该关闭数据库实例。ADVM上如果有文件系统,则要卸载这些文件系统再关闭ASM。如果Oracle Cluster Registry (OCR)集群注册表和 voting files 文件保存在磁盘组中,只能关闭部分的ASM节点。如果要关闭整个集群,执行crsctl stop crs.

示例:

 
  1. SQLPLUS /NOLOG
  2. SQL> CONNECT SYS AS SYSASM
  3. Enter password: sys_password
  4. Connected.
  5. SQL> SHUTDOWN NORMAL

shutdown 选项

 normal:ASM实例等所有连接到ASM实例的用户断开连接,如果此时有数据库连接到ASM,则报错并保持运行状态。normal是默认选项。

immediate 或transactional:ASM实例不等等用户从ASM实例断开,直接切断连接。如果有数据库连接到ASM实例,则报错并保持运行状态。transactional选项与immediate 功能一样。

abort:ASM实例直接停止,在下次启动时ASM实例需要恢复。数据库实例也abort。

 

8.在OUI(包含ORACLE RESTART)中升级ASM实例到11.2

略。

 

 

9.ASM验证信息(Authentication for Accessing Oracle ASM Instances)

ASM没有数据字典,因此只有三种身份登录实例sysasm sysdba sysoper.

三种登录方式:

  1. Local connection using operating system authentication    本地OS验证
  2. Local connection using password authentication                本地密码验证
  3. Remote connection by way of Oracle Net Services using password authentication  远程密码验证

ASM实例和数据库实例都要有读写ASM磁盘组和权限,在LINUX上表现为ASM和ORACLE的所有都要在OSASM组中(应该是OSDBA组而不是OSASM组)。

 

ASM权限(About Privileges for Oracle ASM)

在安装ASM时,可以只用一个组(OS group )来管理多个权限,也可以用多个组把权限分开管理。

ASM实例中的SYSASM用户用于管理ASM实例。SYSDBA用户不用于管理ASM实例,如果使用SYSDBA用户管理ASM实例,则会报错。SYSDBA是给数据库实例用的,用于数据库实例连接到磁盘组。

 

 

使用一个用户组(Using One Operating System Group for Oracle ASM Users)

只用一个用户组时,该组同时有OSASM OSDBA OSOPER权限,默认是dba组。

Role/Software OwnerUserGroup/Privilege

Oracle ASM administrator/Oracle Grid Infrastructure home

oracle

dba/SYSASM, SYSDBA, SYSOPER

Database administrator 1/Database home 1

oracle

dba/SYSASM, SYSDBA, SYSOPER

Database administrator 2/Database home 2

oracle

dba/SYSASM, SYSDBA, SYSOPER

Operating system disk device owner

oracle

dba

 

 

使用多个用户组(Using Separate Operating System Groups for Oracle ASM Users)

  • OSASM group

    This group is granted the SYSASM privilege, which provides full administrative privileges for the Oracle ASM instance. For example, the group could be asmadmin.拥有SYSASM权限,有管理ASM实例的所有权限,组名一般是asmadmin

  • OSDBA for Oracle ASM group

    This group is granted the SYSDBA privilege on the Oracle ASM instance, which grants access to data stored on Oracle ASM. This group has a subset of the privileges of the OSASM group. 拥有SYSDBA权限,有访问磁盘组的权限,只有OSASM组部分的权限。组名一般是asmdba

    When you implement separate administrator privileges, choose an OSDBA group for the Oracle ASM instance that is different than the group that you select for the database instance, such as dba. For example, the group could be asmdba.

  • OSOPER for Oracle ASM group 

    This group is granted the SYSOPER privilege on the Oracle ASM instance, which provides operations such as startup, shutdown, mount, dismount, and check disk group. This group has a subset of the privileges of the OSASM group. For example, the group could be asmoper拥有启动和关闭ASM实例等权限,比OSASM稍微小一点,组名默认是asmoper.

数据库实例必须在ASM实例的OSDBA组,即admdba组中(与前面所写数据库实例和ASM实例必须共享OSASM组有冲突,实际上是数据库实例必须在ASM实例的OSDBA组中,即asmdba组中)。

如果不使用orace restart,Grid Infrastructure的拥有者grid不需要在数据库拥有者oracle的OSDBA组(dba组)中,但是如果使用了oracle restart则grid必须在oracle的OSDBA组中。原因是,oracle用户的dba组管理数据库对应于sysdba权限,集群软件在启动(如srvctl 命令)时会自动的获取数据库的sysdba权限,此时grid用户不用来执行启动和关闭数据库的操作,也不需要数据库的sysdba权限。但是在使用oracle restart时,由于oracle restart是以grid用户的身份来执行数据库的关闭和启动的,所以grid用户要用数据库的sysdba权限。(一般来说,grid和oracle用户都要设置在双方的OSDBA组中,即grid和oracle同时在dba 和asmdba组中)。

此外,系统磁盘的所有者必须与ASM实例的的有者是一样的(grid)。

Role/Software OwnerUserGroup/Privilege

Oracle ASM administrator/Oracle Grid Infrastructure home

grid

asmadmin (OSASM)/SYSASM

asmdba (OSDBA for ASM)/SYSDBA

asmoper (OSOPER for ASM)/SYSOPER

dba1, dba2, ... (OSDBA for the databases when in an Oracle Restart configuration)

Database administrator 1/Database home 1

oracle1

asmdba (OSDBA for ASM)/SYSDBA

oper1 (OSOPER for database 1)/SYSOPER

dba1 (OSDBA for database 1)/SYSDBA

Database administrator 2/Database home 2

oracle2

asmdba (OSDBA for ASM)/SYSDBA

oper2 (OSOPER for database 2)/SYSOPER

dba2 (OSDBA for database 2)/SYSDBA

Operating system disk device owner

grid

asmadmin (OSASM)

 

SYSDBA权限用于管理ASM组件(The SYSDBA Privilege for Managing Oracle ASM Components)

(grid用户)可以以sysdba的身份连接sqlplus 和asmcmd来管理asm实例与数据库相关的组件。要执行sql和asmcmd命令时,要连接到数据库实例而不是asm实例。 当以sysdba权限连接数据库实例时,只有有限的权限来管理asm:

  1. Create and delete files, aliases, directories, and templates 创建文件、同义词、目录、模板
  2. Examine various Oracle ASM instance views 查看关于asm的视图
  3. Operate on files that were created by this user or only access files to which another user had explicitly granted access   查看文件
  4. Granting Oracle ASM File Access Control to other users 给其它用户授权

 

将数据库从非ASM迁移到ASM上:

1.使用EM来迁移

2.使用RMAN

(这里没有讲如何迁移)

 

中间省略了一内容,如升级ASM等,实在是很少用到,有兴趣自己查看文档:

http://docs.oracle.com/cd/E11882_01/server.112/e18951/asminst.htm#CHDGDJDF

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值