1. oracle asm 

   1) Oracle Automatic Storage Management (Oracle ASM)

    2) Oracle ASM  is a volume manager and file system

    3) Oracle ASM meta 

        - The disks that belong to a disk group

        - The amount of space that is available in a disk group

        - The file names of the files in a disk group

        - The location of disk group data file extents

         - A redo log that records information about atomically changing metadata blocks


2. oracle asm 구조


Description of Figure 1-2 follows


  1) disk type


     - Normal : 2-way mirroring

      - High : 3-way mirroring

      - External : not use Oracle ASM mirroring, such as when you configure hardware RAID for redundancy


  2) AU ( allocation units )

       An allocation unit is the fundamental unit of allocation within a disk group. A file extent consists of one or more allocation units. An Oracle ASM file consists of one or more file extent


      - The size is 1, 2, 4, 8, 16, 32, or 64 MB.


   Description of Figure 1-4 follows

  • Extent size always equals the disk group AU size for the first 20000 extent sets (0 - 19999).

  • Extent size equals 4*AU size for the next 20000 extent sets (20000 - 39999).

  • Extent size equals 16*AU size for the next 20000 and higher extent sets (40000+).


3. oracle asm instance 


1) 파라미터 백업 및 복구

   asmcmd > spget

   asmcmd > spcopy +DATA/ASM/ASMPARAMETERFILE/registry.253.849343867 +FRA/spfileCopyASM.ora

   asmcmd > ls -l --absolutepath FRA/ASM/ASMPARAMETERFILE

   asmcmd > spcopy -u +FRA/spfileCopyASM.ora +DATA/ASM/spfileASM.ora


2) 파라미터 종류

   - ASM_DISKGROUPS 

      ASM_DISKGROUPS = DATA, FRA

   - ASM_DISKSTRING  

      ASM_DISKSTRING = '/dev/rdsk/*disk3''/dev/rdsk/*disk4'

   - ASM_IO_PROCESSES : 부하에 따라 큰값으로 조정

   - ASM_POWER_LIMIT  : 0 ~ 1024, 기본값 1이며 큰값으로 조정할수록 rebalance 속도 증가하나 부하도 증가

   - DIAGNOSTIC_DEST : 로그 파일 위치


4. oracle asm instance 관리

# sqlplus / as sysasm 계정으로 작업


1) create disk group

  CREATE DISKGROUP data NORMAL REDUNDANCY

  FAILGROUP controller1 DISK

    '/devices/diska1' NAME diska1,

    '/devices/diska2' NAME diska2,

    '/devices/diska3' NAME diska3,

    '/devices/diska4' NAME diska4

  FAILGROUP controller2 DISK

    '/devices/diskb1' NAME diskb1,

    '/devices/diskb2' NAME diskb2,

    '/devices/diskb3' NAME diskb3,

    '/devices/diskb4' NAME diskb4

  ATTRIBUTE 'au_size'='4M',

    'compatible.asm' = '18.0', 

    'compatible.rdbms' = '18.0',

    'compatible.advm' = '18.0';


  select * from v$asm_diskgroup;

  select * from v$asm_attribute;



  CREATE DISKGROUP spbidata external REDUNDANCY disk

    '/dev/oracleasm/disks/SPBIDATAD01', '/dev/oracleasm/disks/SPBIDATAD02',

    '/dev/oracleasm/disks/SPBIDATAD03', '/dev/oracleasm/disks/SPBIDATAD04',

    '/dev/oracleasm/disks/SPBIDATAD05', '/dev/oracleasm/disks/SPBIDATAD06',

    '/dev/oracleasm/disks/SPBIDATAD07', '/dev/oracleasm/disks/SPBIDATAD08',

    '/dev/oracleasm/disks/SPBIDATAD09', '/dev/oracleasm/disks/SPBIDATAD10'

  ATTRIBUTE 'au_size'='4M',  'compatible.asm' = '18.0';


2) alter disk

   - disk 추가

   ALTER DISKGROUP data1 ADD DISK

     '/devices/diska5' NAME diska5,

     '/devices/diska6' NAME diska6,

     '/devices/diska7' NAME diska7,

     '/devices/diska8' NAME diska8;

 

   ALTER DISKGROUP data1 ADD DISK

      '/devices/diskd*'

       REBALANCE POWER 5 WAIT;   ==> disk 추가하고 명령어가 끝날때까지 기다리기

  

   - disk replace

   ALTER DISKGROUP data2 REPLACE DISK diskc7 WITH '/devices/diskc18' POWER 3;


   - disk 삭제

   ALTER DISKGROUP data1 DROP DISK diska5;

   ALTER DISKGROUP data1 UNDROP DISKS;  ==> drop 작업 취소

 

   - disk group rebalance 수정

  ALTER DISKGROUP data2 REBALANCE MODIFY POWER 10;

  ALTER DISKGROUP data2 REBALANCE WITH BALANCE COMPACT;   ==> defragments and compacts extents


   - 작업 소요 시간 예측

   rebalance 작업시 작업 소요 시간 예측

   EXPLAIN WORK FOR ALTER DISKGROUP data DROP DISK data_0000

   SELECT est_work FROM V$ASM_ESTIMATE


   EXPLAIN WORK SET STATEMENT_ID='online' FOR ALTER DISKGROUP data ONLINE disk data_000;

   SELECT est_work FROM V$ASM_ESTIMATE WHERE STATEMENT_ID='online';


   - 작업 상태 확인

   SELECT GROUP_NUMBER, PASS, STATE FROM V$ASM_OPERATION;


   - 디스크 corrupt and repair

   ALTER DISKGROUP data SCRUB POWER LOW;


   - 신규 disk 확인

   SELECT name, header_status, path FROM V$ASM_DISK WHERE path LIKE '/dev/oracleasm/disks/%'


   - disk group 용량 확인

   SELECT name, type, total_mb, free_mb, required_mirror_free_mb, usable_file_mb FROM V$ASM_DISKGROUP;



5. views 정보 보기


1) diskgroup

SELECT name AS diskgroup, substr(compatibility,1,12) AS asm_compat,
     substr(database_compatibility,1,12) AS db_compat FROM V$ASM_DISKGROUP;


2) diskgroup내 disks 보기

SELECT SUBSTR(dg.name,1,16) AS diskgroup, SUBSTR(d.name,1,16) AS asmdisk,
     d.mount_status, d.state, SUBSTR(d.failgroup,1,16) AS failgroup 
     FROM V$ASM_DISKGROUP dg, V$ASM_DISK d WHERE dg.group_number = d.group_number;


3) diskgroup내 disk 사용 상태 확인

SELECT SUBSTR(dgs.name,1,10) AS diskgroup, SUBSTR(ds.name,1,10) AS asmdisk, 
       ds.mount_status, ds.state, ds.reads, ds.writes, ds.read_time, ds.write_time, 
       bytes_read, bytes_written 
       FROM V$ASM_DISKGROUP_STAT dgs, V$ASM_DISK_STAT ds 
       WHERE dgs.group_number = ds.group_number AND dgs.name = 'DATA';

4) asm client 확인

SELECT dg.name AS diskgroup, SUBSTR(c.instance_name,1,12) AS instance,
    SUBSTR(c.db_name,1,12) AS dbname, SUBSTR(c.SOFTWARE_VERSION,1,12) AS software,
    SUBSTR(c.COMPATIBLE_VERSION,1,12) AS compatible 
    FROM V$ASM_DISKGROUP dg, V$ASM_CLIENT c  
    WHERE dg.group_number = c.group_number;


'RDB > Oracle' 카테고리의 다른 글

oracle 제품 가격  (0) 2019.04.11
oracle 12c varchar2 확장  (0) 2019.04.10
oracle 18c autotask enable or disable  (0) 2019.02.11
oracle 12c 설치  (0) 2018.12.18
oracle audit  (0) 2018.12.13

+ Recent posts