一、查看磁盘组情况信息

1、查问磁盘组故障组调配

SELECT G.NAME,D.disk_number,D.STATE,D.redundancy,D.NAME,D.PATH,D.FAILGROUP,D.FAILGROUP_TYPE FROM V$asm_diskgroup g,v$asm_disk d where g.group_number=d.group_number;

2、查看磁盘组,(空间状况)

select name name2,state,type,free_mb,total_mb,usable_file_mb from v$asm_diskgroup;

3、查看磁盘状况

select GROUP_NUMBER,free_mb,total_mb,disk_number,MOUNT_STATUS,mode_status,STATE,HEADER_STATUS,name name2,PATH from v$asm_disk order by 4,5;

二、创立磁盘组

获取磁盘列表信息查看磁盘状态:

CANDIDATE-该磁盘素来没有调配给任何ASM磁盘组;
MEMBER-该磁盘调配给ASM磁盘组;
PROVISIONED-正在应用ASMLib,并且该磁盘尚未调配给磁盘组。

1、勾销删除的操作

提到的ASM主动均衡的个性,上述语句返回后并不代表磁盘曾经被删除,此时后盾可能因为正繁忙地执行着IO重均衡的工作,因而如果在这个当口,DBA突然意识到操作失误,其实磁盘并不需要被删除,那也能够马上通过alter diskgroup dgname undrop disks语句来勾销删除的操作,例如:

SQL> alter diskgroup asmdisk2 drop disk asmdisk2; SQL> alter diskgroup asmdisk2 undrop disks; Diskgroup altered.

只有删除操作还没有真正实现,任何就会被勾销,否则的话,上述语句也挽回不了什么了,如果心愿挽回,那DBA只能再通过ADD语句将该磁盘重新加入到磁盘组了。

三、AU与条带

AU和条带就是一个调配单位,数据会被以肯定单位宰割,存储在多个磁盘中。宰割单位的大小由AU、条带来决定。

1、ASM有两种条带

  1. 不可调粗粒度:相当于ASM没有条带,或者说AU就是条带,条带就是AU。条带宽度永远为1,不可扭转。条带大小等于AU大小。
  2. 可调细粒度:条带大小为128kb,条带宽度为8 这是oracle默认的细粒度条带设置。条带的宽度不肯定等于磁盘数。
    a、在DG上创立细粒度模板:

    alter diskgroup data add template stp_fine attributes (unprotected fine);

    b、创立应用细粒度可调条带的表空间

    create tablespace test datafile '+data(stp_fine)/test.dbf' size 10m;

    总结下小条带的优缺点:

    小条带的长处是数据更扩散,有助于扩散热点。小条带的毛病是过小的AU、条带,导致间断数据太小,OLAP零碎性能受影响。大AU、大条带的长处是数据间断存储,显著进步OLAP类操作性能。大AU、大条带的毛病是过大的AU、条带,可导致数据分散度不够高。在OLTP环境下,应用较小的条带扩散热点,能够缩小竞争、进步性能。但在OLAP环境下,全扫描操作较多,这时数据的连续性是要害。间断的IO越多,IO性能越佳,为了让数据间断的存储,尽量应用大的AU.

    四、最大I/O与最小IO

    ORACLE 最大IO取决于间断的数据有多大,当然还有OS和硬件的限度。
    ORACLE 最小IO 取决于块大小,数据文件最小I/O是8kb,redo文件最小IO是512byte,ASM元数据文件大小是4kb,很多操作系统、硬件层都有一个单次IO最大大小限度通常都是1MB.

    五、AU与条带的总结

    AU是针对DG的,条带是针对文件的,一个DG只能有一种大小的AU,但能够有多个条带大小不一的文件。
    例:

    1、在data 磁盘组上创立一个细粒度可调条带的表空间(数据文件)

    create tablespace test1 datafile '+data(stp_fine)/test1.dbf' size 10m;

    2、在这个data磁盘组上创立粗粒度不可调条带的表空间(数据文件)

    create tablespace test2 datafile '+data' size 10m;

    3、在OLAP环境下:不必思考条带大小,用大AU,大小为4MB或8MB为宜,甚至能够思考更大。但大的AU惟一的毛病会节约一点点空间。

    4、在OLTP环境下:如果并发插入的数据比拟多,能够应用小条带进一步宰割数据。

六、ASM常用命令

--------查看磁盘组,(空间状况)select name,state,free_mb,total_mb,usable_file_mb from v$asm_diskgroup;--------查看磁盘状况select GROUP_NUMBER,free_mb,total_mb,disk_number,MOUNT_STATUS,mode_status,HEADER_STATUS,name,PATHfrom v$asm_disk order by 4,5;select g.group_number,g.name,d.name,d.path from v$asm_diskgroup g,v$asm_disk d where g.group_number=d.group_number;select GROUP_NUMBER,free_mb,total_mb,disk_number,HEADER_STATUS,name,PATHfrom v$asm_disk order by 4;---查看是否有数据库实例连贯上ASM实例select instance_name,db_name,status from v$asm_client;--------查看asm存储文件的档次图(树状)select lpad(' ', 4*(level-1))||name name ,REFERENCE_INDEX,PARENT_INDEX,GROUP_NUMBERfrom v$asm_aliasstart with ALIAS_INDEX = 0connect by  prior REFERENCE_INDEX=PARENT_INDEX ;--------查看档次图-类型和大小select a.GROUP_NUMBER,b.name,a.file_number,a.bytes,a.type ,a.modification_datefrom v$asm_file a ,v$asm_alias bwhere a.file_number=b.file_number  and a.GROUP_NUMBER = b.GROUP_NUMBERorder by 1,5;--------查看及批改asm从新均衡速度show parameter poweralter diskgroup data check all repair ;;--检测一致性,并修复谬误ALTER DISKGROUP data REBALANCE POWER 11;--设置最高速度来做均衡的操作--------查看asm实例操作变动均衡的进度(只记录构造变动操作) select group_number,operation,power,est_minutes from v$asm_operation;#####################################################################################3---手动均衡磁盘组alter diskgroup data rebalance power 5;--------创立磁盘组create diskgroup DATA2 external redundancy disk    '/dev/vx/rdmp/Disk_0s2',    '/dev/vx/rdmp/Disk_4s2',      '/dev/vx/rdmp/Disk_5s2'create diskgroup DATA2 external redundancy disk    '/dev/rdisk/ora_data_01' ATTRIBUTE  'compatible.asm' = '11.2';;--------删除磁盘组的某个磁盘alter diskgroup datadg drop disk  DATADG_0000  ;alter diskgroup datadg drop disk  DATADG_0001  ;SQL> alter diskgroup DATA drop disk A4; SQL> alter diskgroup DATA undrop disks; --------批改asm实例搜寻可用asm磁盘门路,不同门路用逗号隔开ALTER SYSTEM SETasm_diskstring='/dev/vx/rdsk/oradata122/*','/dev/vx/rdmp/emc*'scope=both sid='+ASM1';应用asmlib时磁盘的格局:alter diskgroup  DATA2 add disk 'ORCL:ASMDISK09';SQL> alter diskgroup fra add disk 'ORCL:ASMDISK06' NAME A6;--卸载所有磁盘组SQL> alter diskgroup all dismount; SQL> select group_number,name,state,total_mb,free_mb from v$asm_diskgroup; --挂载所有磁盘组SQL> alter diskgroup all mount;select group_number,name,state,total_mb,free_mb from v$asm_diskgroup; --如果以后磁盘组有实例在拜访,则不能被卸载 SQL> alter diskgroup data dismount; #############################################################################a、在DG上创立细粒度模板:   alter diskgroup data add template stp_fine attributes (unprotected fine);      b、创立应用细粒度可调条带的表空间   create tablespace test datafile '+data(stp_fine)/test.dbf' size 10m;c、创立非标准大小AU的磁盘组,个别在OLAP零碎上倡议应用。CREATE DISKGROUP DATA2 external redundancy DISK '/dev/raw/raw11', '/dev/raw/raw10','/dev/raw/raw9' ATTRIBUTE 'au_size' = '16M', 'compatible.asm' = '11.2';CREATE DISKGROUP DATA external redundancy DISK 'ORCL:ASMDISK01', 'ORCL:ASMDISK02' ATTRIBUTE  'compatible.asm' = '11.2';select name,state,compatibility,ALLOCATION_UNIT_SIZE from v$asm_diskgroup;######################################################################################3试验一:启动Gi服务cd /u01/app/oracle/product/11.2.0/grid/bin./crsctl start has   --启动高可用服务./crsctl stop has --进行高可用服务./crsctl enable has --重启操作系统会主动启动HAS服务。如果创立了ASM实例,咱们就能够通过. oraenv 命令来切换环境变量(+ASM),而后间接运行srvctl,crsctl这些命令******************************************************************. oraenv  PROD4切换到数据库的环境变量,执行上面操作注册数据库和监听到has服务中去:srvctl add  database -d PROD4  -o /u01/app/oracle/product/11.2.0/db_1   --注册数据库到GIsrvctl remove database -d PROD4srvctl start database -d PROD4 --启动数据库srvctl stop database -d PROD4  --闭关数据库srvctl config database --查看哪些数据库曾经注册srvctl status database -d PROD4/EMREPlsnrctl stop listenersrvctl add  listener -l listener -p 1521 -o /u01/app/oracle/product/11.2.0/db_1srvctl config listener --查看监听是否注册胜利srvctl start listener  启动监听srvctl remove listener -l listener如果注册谬误能够应用该命令删除*******************************************************************************crs_stat -ttarget是资源所在指标的状态,state是资源是否可用####################crs_stat -p ora.cssd --查看cssd资源状态crs_stat -p ora.diskmon --查看crsctl start resource ora.cssd --手工重启cssd#########################################################################################试验:二1、会创立ASM实例cd /u01/app/oracle/product/11.2.0/grid/bin单机环境:要先启动has服务./crsctl start has2、会应用./asmca 创立磁盘组3、会应用sqlplus 命令创立管治理磁盘组create diskgroup DATA2 external/normal/high redundancy disk 'ORCL:ASMDISK03','ORCL:ASMDISK04'(v$asm_disk里的path) ATTRIBUTE  'compatible.asm'(版本兼容性) = '11.2';--创立磁盘组alter diskgroup data2 add disk 'ORCL:ASMDISK06';--增加磁盘alter diskgroup data2 add disk 'ORCL:ASMDISK07';alter diskgroup data2 add disk 'ORCL:ASMDISK11';alter diskgroup data2 drop disk 'ASMDISK04';--删除磁盘 SQL> drop diskgroup data2  including contents;--删除磁盘组4、会应用ASMCMD命令治理asm文件5、会删除第一个磁盘组SQL>sqlplus / as sysasmSQL> alter diskgroup data dismount force;SQL> drop diskgroup data force including contents;########################################################################################试验三:文件系统迁徙到ASM1、首先关上归档,确认归档门路2、查问下数据库文件构造SQL> select name from v$datafile;NAME--------------------------------------------------------------------------------/u01/app/oracle/oradata/PROD4/PROD4/system01.dbf/u01/app/oracle/oradata/PROD4/PROD4/sysaux01.dbf/u01/app/oracle/oradata/PROD4/PROD4/undotbs01.dbf/u01/app/oracle/oradata/PROD4/PROD4/users01.dbf/u01/app/oracle/oradata/PROD4/PROD4/example01.dbfSQL> select name from v$controlfile;NAME--------------------------------------------------------------------------------/u01/app/oracle/oradata/PROD4/PROD4/control01.ctl/u01/app/oracle/oradata/PROD4/PROD4/control02.ctl/u01/app/oracle/oradata/PROD4/PROD4/control03.ctlSQL> select member from v$logfile;MEMBER--------------------------------------------------------------------------------/u01/app/oracle/oradata/PROD4/PROD4/redo03.log/u01/app/oracle/oradata/PROD4/PROD4/redo02.log/u01/app/oracle/oradata/PROD4/PROD4/redo01.logSQL> select name from v$tempfile;NAME--------------------------------------------------------------------------------/u01/app/oracle/oradata/PROD4/PROD4/temp01.dbf3、全库做备份:open状态就能够[[email protected] ~]$ rman target /RMAN> BACKUP as copy database format '+DATA';RMAN> EXITPROD4创立一个测试表:SQL> create table t1 as select * from dba_objects;Table created.SQL>alter system switch logfile;4、 在生产库查看asm磁盘组中备份的管制文件的门路RMAN> list backup of controlfile;specification does not match any backup in the repositoryRMAN> list copy of controlfile;List of Control File Copies===========================Key     S Completion Time Ckp SCN    Ckp Time       ------- - --------------- ---------- ---------------5       A 17-MAY-16       871730     17-MAY-16              Name: +DATA/prod4/controlfile/backup.260.912089587        Tag: TAG20160517T141203批改spfile文件中管制文件的门路信息create pfile='/home/oracle/pfile' from spfile批改文件中*.control_files='+DATA/prod4/controlfile/backup.262.940489201'删除$ORACLE_HOME/dbs/lkPROD4文件应用另一个实例 将数据库开启到mountexport ORACLE_SID=p4startup pfile='/home/oracle/pfile' mount;进入rman批改管制文件指针 复原数据rman target /RMAN> catalog start with '+data';RMAN> switch database to copy;RMAN> recover database;复原后 开启数据库[[email protected] dbs]$ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.1.0 Production on Thu May 19 09:57:03 2016Copyright (c) 1982, 2009, Oracle.  All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - ProductionWith the Partitioning, Automatic Storage Management, OLAP, Data Miningand Real Application Testing optionsSQL> alter database open resetlogs;  指定resetlogs,会执行下列操作:    1)将以后的在线重做日志文件归档,而后清空其内容并将日志文件序列号重置为1      2)重置管制文件中对于在线重做日志文件的元数据    3)更新数据文件和在线重做日志文件的resetlogs scn等信息6、创立新的长期表空间文件,并删除旧的SQL> alter tablespace temp add tempfile '+DATA' size 200M;SQL> alter database  tempfile '/u01/app/oracle/oradata/PROD4/PROD4/temp01.dbf' drop ; 或alter tablespace temp drop tempfile '/u01/app/oracle/oradata/PROD4/PROD4/temp01.dbf';7、把redo增加新的成员,删除老的成员,查看原来有多少组,就增加多少成员 select member from v$logfile; alter database add logfile member '+data' to group 1; alter database add logfile member '+data' to group 2; alter database add logfile member '+data' to group 3;select group#,status,member from v$logfile;初始化新加的logfileSQL> alter system switch logfile;--起码执行三遍select group#,status,member from v$logfile;--查问下日志成员状态删除旧的logfile member(如果无奈删除,阐明该文件还在应用,咱们能够进行手工切换之后,再删除)SQL> select group#,members,status from v$log;    GROUP#    MEMBERS STATUS---------- ---------- ----------------         1          2 CURRENT         2          2 INACTIVE         3          2 INACTIVEalter database drop logfile member '/u01/app/oracle/oradata/PROD4/PROD4/redo03.log';alter database drop logfile member '/u01/app/oracle/oradata/PROD4/PROD4/redo02.log';SQL> alter system switch logfile;alter database drop logfile member '/u01/app/oracle/oradata/PROD4/PROD4/redo01.log';8、能够依据理论状况从新设置归档门路alter system set log_archive_dest_1='location=+arch'