ZFS는 단일 인스턴스 모드의 Oracle 데이터베이스 버전에 대해 권장됩니다. NFS 공유 파일 시스템으로 제공될 경우 Oracle RAC 데이터베이스에 ZFS를 사용할 수 있습니다.
Oracle 데이터베이스에 대해 ZFS를 조정하기 위해서는 아래의 권장 사항을 검토하십시오.
최신 Oracle Solaris 릴리스를 실행 중인지 확인합니다.
최신 Oracle Solaris 10 또는 Oracle Solaris 11 릴리스를 사용하거나 최소한 Solaris 10 9/10 릴리스 이상을 사용합니다.
필요에 따라 ZFS 저장소 풀에 대한 LUN을 만듭니다.
저장소 배열 도구를 사용해서 ZFS 저장소 풀에 제공될 LUN을 만듭니다. 또는 미러링된 ZFS 저장소 풀의 경우 전체 디스크를 사용합니다. 자세한 내용은 Oracle Solaris 11.2의 ZFS 파일 시스템 관리 의 3 장, Oracle Solaris ZFS 저장소 풀 관리를 참조하십시오.
테이블, 인덱스, 실행 취소 및 임시 데이터에 대한 데이터 파일의 저장소 풀을 만듭니다.
상위 레벨의 데이터 중복성을 제공하기 위해서는 미러링된 저장소 풀을 만드는 것이 좋습니다. 예를 들면 다음과 같습니다.
# zpool status dbpool pool: dbpool state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM dbpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c0t5000C500335F95E3d0 ONLINE 0 0 0 c0t5000C500335F907Fd0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c0t5000C500335BD117d0 ONLINE 0 0 0 c0t5000C500335DC60Fd0 ONLINE 0 0 0 errors: No known data errors
여러 커밋을 포함하는 일반적인 OLTP 데이터베이스와 같은 리두 로그 작업이 많은 데이터베이스에서는 별도 로그용으로 개별 LUN을 사용합니다.
archivelog에 대한 저장소 풀을 만듭니다.
가능한 경우 시스템 내장 디스크가 이 유형의 부하를 처리할 수 있습니다. archivelog 파일 시스템은 dbpool의 파일 시스템일 수도 있습니다.
# zpool create archivepool c0t5000C500335E106Bd0
다음 지침에 따라 ZFS 파일 시스템을 만들고 특정 파일 시스템 등록 정보를 설정합니다.
다음 레코드 크기를 사용해서 리두, 아카이브, 실행 취소 및 임시 데이터베이스 구성 요소에 대한 별도의 파일 시스템을 만듭니다.
Oracle Solaris 11 및 이전 릴리스 - 128K
Oracle Solaris 11.1 및 이후 릴리스 - 1M
일반 규칙은 Oracle 데이터 파일을 포함하는 파일 시스템에 대해 파일 시스템 recordsize = db_block_size를 설정하는 것입니다. 테이블 데이터 및 인덱스 구성 요소에 대해 레코드 크기가 8KB인 파일 시스템을 만듭니다. primarycache 등록 정보를 사용하여 데이터베이스 파일 시스템에 대한 메타 데이터 캐싱 힌트를 제공할 수도 있습니다. ZFS 파일 시스템 등록 정보에 대한 자세한 내용은 Oracle Solaris 11.2의 ZFS 파일 시스템 관리 의 ZFS 등록 정보 소개를 참조하십시오.
recordsize가 8KB인 테이블 데이터 파일 및 인덱스 데이터 파일에 대한 파일 시스템을 만듭니다. primarycache에 대해 기본값을 사용합니다.
# zfs create -o recordsize=8k -o mountpoint=/my_db_path/index dbpool/index # zfs set logbias=throughput dbpool/index # zfs get primarycache,recordsize,logbias dbpool/index NAME PROPERTY VALUE SOURCE dbpool/index primarycache all default dbpool/index recordsize 8K local dbpool/index logbias throughput local
임시 및 실행 취소 테이블 공간에 대한 파일 시스템을 만듭니다.
Oracle Solaris 11 및 이전 릴리스의 경우 기본 recordsize 및 primarycache 값을 사용합니다.
# zfs create -o mountpoint=/my_db_path/temp dbpool/temp # zfs set logbias=throughput dbpool/temp # zfs create -o mountpoint=/my_db_path/undo dbpool/undo # zfs set logbias=throughput dbpool/undo
Oracle Solaris 11.1 및 이후 릴리스의 경우 다음 recordsize 및 기본 primarycache 값을 사용합니다.
# zfs create -o recordsize=1m -o mountpoint=/my_db_path/temp dbpool/temp # zfs set logbias=throughput dbpool/temp # zfs create -o recordsize=1m -o mountpoint=/my_db_path/undo dbpool/undo # zfs set logbias=throughput dbpool/undo
별도 로그 장치를 사용해서 리두 로그에 대한 저장소 풀을 만듭니다. 여러 커밋을 포함하는 일반적인 OLTP 데이터베이스와 같은 리두 로그 작업이 많은 데이터베이스에서는 별도의 로그 장치 LUN을 사용합니다.
디스크를 두 개의 조각으로 분할합니다. 작은 조각인 s0은 64 ~ 150MB 범위이며 개별 로그 장치에 대해 사용됩니다. s1 조각은 리두 로그에 대한 남은 디스크 공간을 포함합니다.
# zpool create redopool c0t50015179594B6F11d0s1 log c0t50015179594B6F11d0s0 # zpool status redopool pool: redopool state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM redopool ONLINE 0 0 0 c0t50015179594B6F11d0s1 ONLINE 0 0 0 logs c0t50015179594B6F11d0s0 ONLINE 0 0 0 errors: No known data errors
리두 풀의 리두 로그에 대한 파일 시스템을 만듭니다.
Oracle Solaris 11 및 이전 릴리스의 경우 recordsize 및 primarycache에 대해 기본 파일 시스템 값을 사용합니다.
# zfs create -o mountpoint=/my_db_path/redo redopool/redo # zfs set logbias=latency redopool/redo
Solaris 11.1 및 이후 릴리스의 경우 다음 recordsize 및 기본 primarycache 값을 사용합니다.
# zfs create -o recordsize=1m -o mountpoint=/my_db_path/redo redopool/redo # zfs set logbias=latency redopool/redo
아카이브 풀에서 아카이브 로그 파일에 대해 파일 시스템을 만듭니다.
Oracle Solaris 11 및 이전 릴리스의 경우 recordsize에 대한 기본값을 사용해서 압축을 사용으로 설정하고 primarycache를 metadata로 설정합니다.
# zfs create -o compression=on -o primarycache=metadata -o mountpoint= /my_db_admin_path/archive archivepool/archive # zfs get primarycache,recordsize,compressratio,compression,available, used,quota archivepool/archive NAME PROPERTY VALUE SOURCE archivepool/archive primarycache metadata local archivepool/archive recordsize 128K default archivepool/archive compressratio 1.32x - archivepool/archive compression on local archivepool/archive available 40.0G - archivepool/archive used 10.0G - archivepool/archive quota 50G local
Solaris 11.1 및 이후 릴리스의 경우 - 압축을 사용으로 설정하고 primarycache를 메타 데이터로 설정하고 다음 recordsize 값을 사용합니다.
# zfs create -o compression=on –o recordsize=1M \ -o mountpoint=/my_db_admin_path/archive archivepool/archive # zfs get primarycache,recordsize,compressratio,compression,\ available,used,quota archivepool/archive NAME PROPERTY VALUE SOURCE archivepool/archive primarycache all local archivepool/archive recordsize 1M local archivepool/archive compressratio 1.32x - archivepool/archive compression on local archivepool/archive available 40.0G - archivepool/archive used 10.0G - archivepool/archive quota 50G local
데이터베이스 파일 시스템에 충분한 작동 디스크 공간이 포함되도록 할당량을 설정하고 데이터베이스 파일 시스템에 대한 스냅샷을 작성하는 것이 좋습니다. 또한 풀 성능을 유지하기 위해 풀 공간의 10-20%를 예약하도록 더미 파일 시스템에서 예약을 설정합니다.
# zfs set reservation=20gb dbpool/freespace
저장소 배열 및 메모리 리소스 조정에 대한 자세한 내용은 http://www.oracle.com/technetwork/server-storage/solaris/config-solaris-zfs-wp-167894.pdf에서 백서를 참조하십시오.
추가 Oracle 데이터베이스 구성 권장 사항
다음 백서의 Configuring Your Oracle Database on ZFS File Systems:
http://www.oracle.com/technetwork/server-storage/solaris/config-solaris-zfs-wp-167894.pdf
Dynamic SGA Tuning of Oracle Database on Oracle Solaris with DISM 백서:
Oracle 11g 설치 설명서
Oracle Database Quick Installation Guide 11g Release 2 (11.2) for Oracle Solaris on SPARC (64-Bit)
http://docs.oracle.com/cd/E11882_01/install.112/e24349/toc.htm
Oracle Database Quick Installation Guide 11g Release 2 (11.2) for Oracle Solaris on x86-64 (64-Bit)
http://docs.oracle.com/cd/E11882_01/install.112/e24351/toc.htm