lYong90

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

 

asm常见参数:
和database实例一样,asm同样具有启动实例的相关参数,具体如下:
asm_diskgroups:指定asm实例启动的时候需要mount的disk group名字:
asm_disktsring :指定一个asm实例寻找磁盘的路径名可以有通配符。
asm_power_limit:指定在磁盘组中平衡数据的时候默认的power大小。
asm_preferred_read_failure_groups:指定优先读取的故障组
diagnostic_dest:asm实例diagnostics的目录
instance_type:实例类型,对于asm实例必须为asm
remote_login_passwordfile:验证是否需要去读密码文件


sm实例和数据库实例参数文件搜索过程:
对于asm实例在启动的时候需要参数文件,那么一般搜索过程为:
1、先根据GPNP profile文件指定的参数文件位置进行寻找
2、如果没有在GPNP profile中指定的目录找到,那么将寻找$ORACLE_HME/dbs/spfile+ASM.ora
3、如果没有spfile+ASM.ora,那么将寻找pfile文件。
如果上述没有找到则无法启动asm
对于数据库实例启动的时候需要参数文件,那么搜素过程为:
1、寻找 $ORACLE_HOME/dbs/spfile<ORACLE_SID>.ora,
2、寻找 $ORACLE_HOME/dbs/spfile.ora
3、寻找 $ORACLE_HOME/dbs/init<ORACLE_SID>.ora
如果上述没有找到参数文件,那么数据库实例无法启动。

 

-----创建磁盘组
CREATE DISKGROUP diskgroup_name
              [ { HIGH | NORMAL | EXTERNAL } REDUNDANCY ]
              [ FAILGROUP failgroup_name ]
              DISK [ NAME disk_name ] [ SIZE size_clause ] [ FORCE | NOFORCE ] ...; 
create diskgroup dgtest normal redundancy
failgroup DATA1 disk '/dev/oracleasm/disks/VOL5' name DATA1
failgroup DATA2 disk '/dev/oracleasm/disks/VOL6' name DATA2; 

create diskgroup datadg External REDUNDANCY
 disk '/dev/oracleasm/datadisk01'
 attribute
 'au_size'='4M',
 'compatible.asm'='12.1',
 'compatible.rdbms'='12.1'
 /    


create diskgroup datagroup3 normal redundancy
   failgroup failgroup_1 disk
    '/dev/oracleasm/disks/ASMDISK7' NAME DATAGROUP3_DISK7
    failgroup failgroup_2 disk
    '/dev/oracleasm/disks/ASMDISK8' NAME DATAGROUP3_DISK8,
    '/dev/oracleasm/disks/ASMDISK9' NAME DATAGROUP3_DISK9
quorum failgroup failgroup_3 disk
     8  '/dev/oracleasm/disks/ASMDISK10' NAME DATAGROUP3_DISK10
   ATTRIBUTE 'au_size'='4M',
   'compatible.rdbms'='11.2',
   'compatible.asm'='11.2',
   'sector_size'='512';

------查看extend
select disk_kffxp disk#, 
XNUM_KFFXP extent#,
case lxn_kffxp
  when 0 then 'Primary Copy'
  when 1 then 'Mirrored Copy'
  when 2 then '2nd Mirrored Copy or metadata'
  else 'Unknown' END TYPE
from x$kffxp
where 
number_kffxp=287
and xnum_kffxp!=65534
order by 2;

--磁盘成员管理 
为diskgroup增加disk
alter diskgroup DATA add disk '/dev/oracleasm/VOL5' name VOL5,'/dev/oracleasm/VOL6' name VOL6; 
--从diskgroup删除disk
alter diskgroup DATA drop disk VOL5; 
--取消删除disk的命令,只在上述命令没执行完成的时候有效
ALTER DISKGROUP DATA UNDROP DISKS; 
--为DG2的个故障组各添加一个成员
alter diskgroup DG2
add failgroup FG1 disk '/dev/oracleasm/disks/VOL7'
add failgroup FG2 disk '/dev/oracleasm/disks/VOL8'
add failgroup FG3 disk '/dev/oracleasm/disks/VOL9'; 
--数据文件别名 
--取别名
alter diskgroup <diskgroup_name> add alias <alias_name> for '<asm_file>';   
ALTER DISKGROUP disk_group_1 ADD ALIAS '+disk_group_1/my_dir/my_file.dbf' FOR '+disk_group_1/mydb/datafile/my_ts.342.3'; 
--注意:10g中只有利用OMF创建的ASM文件才能取别名(11g未测试),且别名和原文件名的diskgroup必须一致,如上例的+disk_group_1 
--重命名别名
ALTER DISKGROUP disk_group_1 RENAME ALIAS '+disk_group_1/my_dir/my_file.dbf'  TO '+disk_group_1/my_dir/my_file2.dbf'; 
--删除别名
ALTER DISKGROUP disk_group_1 DELETE ALIAS '+disk_group_1/my_dir/my_file.dbf'; 
--使用别名删除数据文件
ALTER DISKGROUP disk_group_1 DROP FILE '+disk_group_1/my_dir/my_file.dbf'; 
--使用全面删除数据文件
ALTER DISKGROUP disk_group_1 DROP FILE '+disk_group_1/mydb/datafile/my_ts.342.3'; 
--查看别名信息
select * from v$asm_alias; 
手动Rebalance
alter diskgroup DG2 rebalance power 3 wait; 
--为磁盘组增加目录
--为磁盘组增加目录
alter diskgroup DG2 add directory '+DG2/datafile';    
--注意必须确保各级目录都存在,否则会报错ORA-15173
--ASM的 磁盘组动态重新平衡
alter diskgroup ORADG add disk 'ORCL:VOL6' rebalance power 11;

--ASM 磁盘的相关视图 
v$asm_disk(_stat)       --查看磁盘及其状态信息
v$asm_diskgroup(_stat)  --查看磁盘组及其状态信息
v$asm_operation         --查看当前磁盘的操作信息
v$asm_client            --返回当前连接的客户端实例信息
v$asm_file              --返回asm文件的相关信息
v$asm_template          --返回asm文件样本的相关信息
v$asm_alias             --返回asm文件的别名信息


--------ASM磁盘查询
set linesize 1000 pagesize 500
col name for a20
col state for a20
col type for a20
col  total_gb for 999999.99
col  free_gb for 999999.99
SELECT a.NAME,
       a.STATE,
       a.TYPE,
       a.TOTAL_MB / 1024 total_gb,
       decode(a.FREE_MB,'',1,0,1,a.FREE_MB) / 1024 free_gb,
       trunc(a.FREE_MB/decode(a.FREE_MB,'',1,0,1,a.FREE_MB) *100,2) pct_free
  FROM v$asm_diskgroup a order by  6;

set linesize 1000 pagesize 500
col name for a20
col state for a20
col path for a40
col  total_gb for 999999.99
col  free_gb for 999999.99  
SELECT a.NAME,
       b.PATH,
       b.STATE,
       b.MOUNT_STATUS,
       b.TOTAL_MB/1024 total_gb,
       b.FREE_MB/1024 free_gb
  FROM v$asm_disk b, v$asm_diskgroup a
 WHERE a.GROUP_NUMBER = b.GROUP_NUMBER order by 2,1;

ASM的常见故障
1.创建磁盘时出现错误可以查看asm日志
tail -f /var/log/oracleasm
2.启动asm实例时出现ORA-29701错误
ORA-29701: unable to connect to Cluster Manager
首次需要启用css服务,使用root帐户,运行
$ORACLE_HOME/bin/localconfig add
如果下次启动实例的时候仍然碰到如下报错:
ORA-29701: unable to connect to Cluster Manager
那么检查/etc/inittab 文件,看看是否有下面这行
h1:35:respawn:/etc/init.d/init.cssd run >/dev/null 2>&1 </dev/null
如果没有请添加,如果被注释了请取消注释(root帐户)。
也可以使用root帐户执行/u01/oracle/10g/bin/localconfig reset 来解决
如果在执行长时间hang住,可以执行如下操作
$ORACLE_HOME/bin/localconfig delete
$ORACLE_HOME/root.sh
$ORACLE_HOME/bin/localconfig add
3.磁盘搜索路径问题
SQL> create diskgroup DG1 normal redundancy disk 'ORCL:VOL1','ORCL:VOL2';
create diskgroup DG1 normal redundancy disk 'ORCL:VOL1','ORCL:VOL2'
*
ERROR at line 1:
ORA-15018: diskgroup cannot be created
ORA-15031: disk specification 'ORCL:VOL2' matches no disks
ORA-15031: disk specification 'ORCL:VOL1' matches no disks
使用oraclasm创建磁盘后,缺省会在/dev/oracleasm/disks目录下添加刚刚创建的磁盘映射,修改asm_diskstring修改路径之后再次创建即可
alter system set asm_diskstring='/dev/oracleasm/disks/VOL*'
注意事项: ASM 实例在配置好并且创建了ASM磁盘组之后,还必须保证已经注册到Listener中后才能在数据库实例中使用,否则就需要手工注册ASM 实例:
SQL>alter system register;

posted on 2018-08-15 14:56  lYong90  阅读(506)  评论(0编辑  收藏  举报