Oracle Best Practices

From Dirty Cache Wiki
Jump to navigation Jump to search

A list of best practices for Oracle on best-of-breed infrastructure

This list is work in progress. Expect more items and details to be added.

List of Best Practices

Data layout

TBD

Enable Linux Hugepages

Especially on large-memory systems (which is the majority of systems these days), Linux hugepages cause less memory-management overhead and therefore improve performance.

Use Oracle ASM

ASM removes the need for creating separate disk partitions, file systems, volume groups or LVM logical volumes. It also distributes all data in Allocation Units across all available disks in an ASM disk group. It eliminates some of the need for file system tuning and works well with nearly all 3rd party management tools.

There are multiple ways to run Oracle ASM which is covered in a separate section.

Use External redundancy

With ASM, use EXTERNAL redundancy (i.e. no host mirroring). Similar for non-ASM systems: avoid LVM based mirroring or other host-level replication as it causes some overhead, administration complexities.

The native RAID protection of enterprise storage (whether hardware or software defined) provides much better protection against disk failures and other issues.

Database blocksize

Use the default 8KiB blocksize, unless the database needs to be optimized for very large throughput.

Avoid automatic memory management

Do not use AMM (automatic memory management). Use the parameters sga_target and pga_aggregate_target instead (this is also required to enable hugepages). See Automatic Memory Management (AMM) in Oracle Database 11g Release 1 for more info.

Multi-block read count

Leave db_file_multiblock_read_count to the default value (Oracle will automatically use the optimal I/O sizes).

Disk Alignment

Use appropriate disk alignment when using disk partitions instead of entire disks for Oracle (ASM or file systems).

More info TBD

I/O Multipathing

TBD

NUMA

TBD

I/O Queue size

TBD

I/O scheduler

TBD

Redo log I/O size

TBD