Portál AbcLinuxu, 26. dubna 2024 02:24

Implementace Oracle po NFS

23. 4. 2010 | Mark Stopka
Články - Implementace Oracle po NFS  

Zatímco v předchozím článku se mluvilo o výhodách a nevýhodách protokolu NFS při jeho nasazení na úložných sítích, tentokrát bude řeč o konkrétním příkladu využití NFS na síti s databázovým systémem Oracle. (Příklad nasazení. Upozornění na možné problémy. Zálohování Oracle.)

Úvod

link

Tento článek navazuje na Databáze přes NFS a bude o tom, jak se to dělá v případě databází Oracle. Postřehy jsou založeny na praktických zkušenostech s implementací Oracle 11g o jedné databázové instanci a SAP s Oracle jako databázovým backendem (tedy Oracle 10g).

Návrh byl vypracován při těsné spolupráci se specialisty ze společnosti Network Appliance a Oracle. Nedodržuje striktně Best Practices společnosti NetApp a Oracle, nicméně shoda na tom, že současná verze Best Practicies není úplně nejlepší, panuje i ve společnostech NetApp a Oracle. Návrh je určen pro multicustomer environment (prostředí s více klienty) s využitím funkcí MultiStore, A-SIS (deduplikace), snapvault (disk-to-disk zálohování) a thin provisioning diskových polí Network Appliance.

Příklad nasazení

link

Předpokládejme tedy, že máme NetApp jménem toaster a vFiler jménem oracle1001, dále pak zákazníka abc, který má testovací (SID ab12), vývojovou (SID ab11) a produkční databázi (SID ab10). Každá živá Oracle single instance instalace se skládá z následujících důležitých prvků:

db on netapp

Pro všechny tyto jednotlivé stavební bloky by měly dle doporučení existovat oddělené logické prvky na storage systému (volume). Důvodem je to, že na zálohování/datovou bezpečnost jednotlivých prvků mohou být různé požadavky.

U jiných storage systémů se mohou požadavky lišit, ale v případě zařízení NetApp, pokud chcete mít možnost udržet mnoho záloh na diskových úložištích s možností jednoduché obnovy (pomocí Snap Manager for Oracle), se vyplatí udělat si návrh ukládání dat rozumně a pod rootem každé volume mít k dispozici jeden QTRee, do kterého se budou následně ukládat data. Pak můžete použít pro zálohování technologii SnapVault a mít k dispozici více záloh jak na primárním, tak na sekundárním (NearStore) diskovém úložišti. Můj návrh pro uvedenou databázi by vypadal následovně.

Výstup mého skriptu, který používám k vytváření single instance databázových exportů na storage systémech NetApp.

vFiler name is: oracle1001
SID is: ab12
Customer name is: abc
System name is: test
Used aggregate is: aggr1

---------------------------------------------
Followings volumes/QTrees will be created…:
---------------------------------------------

/vol/oracle1001_abc_test_ab12_orahome/home
/vol/oracle1001_abc_test_ab12_orafiles1/log
/vol/oracle1001_abc_test_ab12_orafiles1/ctrl
/vol/oracle1001_abc_test_ab12_orafiles2/log
/vol/oracle1001_abc_test_ab12_orafiles2/ctrl
/vol/oracle1001_abc_test_ab12_oraarch/arch
/vol/oracle1001_abc_test_ab12_oradata/data

In order to create this please invoke these commands:

vol create oracle1001_abc_test_ab12_orahome aggr1 10g
vol options oracle1001_abc_test_ab12_orahome nosnap on
vol options oracle1001_abc_test_ab12_orahome nosnapdir on
vol autosize oracle1001_abc_test_ab12_orahome on
snap reserve oracle1001_abc_test_ab12_orahome 0
sis on /vol/oracle1001_abc_test_ab12_orahome
vfiler add oracle1001 /vol/oracle1001_abc_test_ab12_orahome

vol create oracle1001_abc_test_ab12_orafiles1 aggr1 10g
vol options oracle1001_abc_test_ab12_orafiles1 nosnap on
vol options oracle1001_abc_test_ab12_orafiles1 nosnapdir on
vol autosize oracle1001_abc_test_ab12_orafiles1 on
snap reserve oracle1001_abc_test_ab12_orafiles1 0
sis on /vol/oracle1001_abc_test_ab12_orafiles1
vfiler add oracle1001 /vol/oracle1001_abc_test_ab12_orafiles1

vol create oracle1001_abc_test_ab12_orafiles2 aggr1 10g
vol options oracle1001_abc_test_ab12_orafiles2 nosnap on
vol options oracle1001_abc_test_ab12_orafiles2 nosnapdir on
vol autosize oracle1001_abc_test_ab12_orafiles2 on
snap reserve oracle1001_abc_test_ab12_orafiles2 0
sis on /vol/oracle1001_abc_test_ab12_orafiles2
vfiler add oracle1001 /vol/oracle1001_abc_test_ab12_orafiles2

vol create oracle1001_abc_test_ab12_oraarch aggr1 60gb # make it double than ordered
vol options oracle1001_abc_test_ab12_oraarch nosnap on
vol options oracle1001_abc_test_ab12_oraarch nosnapdir on
vol autosize oracle1001_abc_test_ab12_oraarch on
snap reserve oracle1001_abc_test_ab12_oraarch 0
sis on /vol/oracle1001_abc_test_ab12_oraarch
vol options oracle1001_abc_test_ab12_oraarch guarantee file
vfiler add oracle1001 /vol/oracle1001_abc_test_ab12_oraarch

vol create oracle1001_abc_test_ab12_oradata aggr1 1tb
vol options oracle1001_abc_test_ab12_oradata nosnap on
vol options oracle1001_abc_test_ab12_oradata nosnapdir on
vol autosize oracle1001_abc_test_ab12_oradata on
snap reserve oracle1001_abc_test_ab12_oradata 0
sis on /vol/oracle1001_abc_test_ab12_oradata
vfiler add oracle1001 /vol/oracle1001_abc_test_ab12_oradata

vfiler run oracle1001 qtree create /vol/oracle1001_abc_test_ab12_orahome/home
vfiler run oracle1001 exportfs -p rw=192.168.0.0/24,root=192.168.0.0/24 /vol/oracle1001_abc_test_ab12_orahome/home

vfiler run oracle1001 qtree create /vol/oracle1001_abc_test_ab12_orafiles1/log
vfiler run oracle1001 exportfs -p rw=192.168.0.0/24,root=192.168.0.0/24 /vol/oracle1001_abc_test_ab12_orafiles1/log
vfiler run oracle1001 qtree create /vol/oracle1001_abc_test_ab12_orafiles1/ctrl
vfiler run oracle1001 exportfs -p rw=192.168.0.0/24,root=192.168.0.0/24 /vol/oracle1001_abc_test_ab12_orafiles1/ctrl

vfiler run oracle1001 qtree create /vol/oracle1001_abc_test_ab12_orafiles2/log
vfiler run oracle1001 exportfs -p rw=192.168.0.0/24,root=192.168.0.0/24 /vol/oracle1001_abc_test_ab12_orafiles2/log
vfiler run oracle1001 qtree create /vol/oracle1001_abc_test_ab12_orafiles2/ctrl
vfiler run oracle1001 exportfs -p rw=192.168.0.0/24,root=192.168.0.0/24 /vol/oracle1001_abc_test_ab12_orafiles2/ctrl

vfiler run oracle1001 qtree create /vol/oracle1001_abc_test_ab12_oraarch/arch
vfiler run oracle1001 exportfs -p rw=192.168.0.0/24,root=192.168.0.0/24 /vol/oracle1001_abc_test_ab12_oraarch/arch

vfiler run oracle1001 qtree create /vol/oracle1001_abc_test_ab12_oradata/data
vfiler run oracle1001 exportfs -p rw=192.168.0.0/24,root=192.168.0.0/24 /vol/oracle1001_abc_test_ab12_oradata/data

Jak můžete vidět, transakční logy i kontrolní soubory jsou na storage systému dvakrát. Je to z toho důvodu, že jsou naprosto nezbytné pro správnou funkci databáze a Oracle dokonce doporučuje uchovávat 4 živé kopie. Nicméně vzhledem k tomu, že ztráta již jediné lokace znamená zastavení databáze a enterprise storage systémům se dá relativně důvěřovat, alespoň co se ztráty dat týče, doporučuji pro většinu produkčních nasazení mít umístění jen dvě. Každé však na jiném agregátu/volume group. Ekvivalentně vytvoříme prostor pro další databázové instance.

Upozornění na možné problémy

link

Při implementaci kritických aplikací běžících po NFS můžete narazit na řadu problémů, například:

Zálohování Oracle

link

Pokud používáte storage systém, který umí „dobré snapshoty“ (LVM2 snapshoty považuji za špatný vtip), jako je například Sun Open Storage nebo NetApp, můžete si velice zjednodušit zálohování takové databáze. V případě, že využijete Sun Open Storage, bude to vyžadovat trošku dodatečného skriptování a bez klonování se asi raději obejdete (sám si v současné době nedokážu představit, že bych si klonování Oracle na Sun Open Storage skriptoval), nicméně pokud se vám podaří vytvořit skript, který bude schopen přepnout Oracle databázi do „hot backup mode“ a říct storage systému, aby udělal snapshot patřičných NFS exportů, získáte konzistentní zálohy za zlomek času oproti jiným druhům zálohování.

V případě storage platformy NetApp nepotřebujete žádné přídavné skriptování, stačí si pořídit licenci na Snap Manager for Oracle. S pomocí tohoto managera můžete vytvářet konzistentní zálohy z databázového serveru bez nutnosti přístupu ke storage systému, tedy plně v režii databázových administrátorů Oracle, kdykoli je potřeba. Obnova takové databáze po selhání nebo lidské chybě je otázkou několika minut, případně několika hodin v případě, že poslední snapshot není k dispozici na primárním storage systému nebo došlo k selhání právě tohoto prvku.

Pokud z nějakého důvodu vyžadujete mít k dispozici zálohy i na jiném médiu než disk, můžete využít protokol NDMP k odzálohování existujících snapshotů na pásky. Pokud v prostředí NetApp potřebujete mít zálohy na 2 různých místech (NearStore NetApp), můžete využít dva různé způsoby: Rychlé, ale špinavé řešení je SnapMirror, čisté, ale komplikovanější řešení je využít NetApp Operation Manager, který nabízí integraci se Snapmanagerem i technologiemi SnapMirror a SnapVault.

Závěr

link

Databázové řešení přes NFS může ušetřit spoustu nákladů jak na specializovaném hardwaru, tak na administraci.

Související články

Databáze přes NFS
NetApp – úložná řešení pro podniky
Recenze: Sun Storage 7110 Unified Storage System

Další články z této rubriky

PowerDNS – přívětivý a jednoduchý DNS server
Bootování ze sítě: pxelinux a kořenový adresář na NFS
Těžký život Do Not Track
OpenAFS – servery
Architektura IPv6 – konfigurace adres a objevování sousedů (2)

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.