Portál AbcLinuxu, 15. prosinec 2017 16:51

Implementace Oracle po NFS

23. 4. 2010 | Marek 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)

Diskuse k tomuto článku

23.4.2010 07:40 s0 | skóre: 32 | blog: nejchytřejší kecy | prágl
Rozbalit Rozbalit vše Re: Implementace Oracle po NFS
Odpovědět | Sbalit | Link | Blokovat | Admin
dík. Až teda na stylystiku závěrů - to je jak ze slohovýho cvičení na základní škole.
Kuolema Kaikille (Paitsi Meille).
Marek Stopka avatar 23.4.2010 09:50 Marek Stopka | skóre: 57 | blog: Paranoidní blog | London, United Kingdom
Rozbalit Rozbalit vše Re: Implementace Oracle po NFS
Já tam pro jistotu neměl závěr žádný, tohle musel doplnit Robert. :) Nicméně těžko mu cokoli vyčítat, on má vždycky hodně práce s mými články napůl v angličtině na půl v češtině... :)
23.4.2010 08:33 Zdenek 'Mst. Spider' Sedlak | skóre: 37 | blog: xMstSpider
Rozbalit Rozbalit vše Re: Implementace Oracle po NFS
Odpovědět | Sbalit | Link | Blokovat | Admin
SI i RAC Oracle pres NFS mame u nas, dost jsme bojovali s vykonem. Kdyz jsem otevrel tenhle clanek, byl jsem dost zklamany - tohle je spis jak PR NetAppu.

Doufam, ze vyjde jeste jeden dil nazavany PRAKTICKA Implementace Oracle po NFS, kde se k tomuhle dostanes...
Marek Stopka avatar 23.4.2010 09:49 Marek Stopka | skóre: 57 | blog: Paranoidní blog | London, United Kingdom
Rozbalit Rozbalit vše Re: Implementace Oracle po NFS
Až někdo bude chtít praktickou implementaci (včetně podpory) obávám se, že si mě bude muset zaplatit jako konzultanta... :)
23.4.2010 10:08 pasmen | skóre: 45 | blog: glob | Praha
Rozbalit Rozbalit vše Re: Implementace Oracle po NFS
Tak ty už jsi dobře zmasírovanej! :-)
24.4.2010 17:08 Peter Golis | skóre: 55 | Bratislava
Rozbalit Rozbalit vše Re: Implementace Oracle po NFS
Tiež mám ten dojem. Alter database begin backup v spolupraci s zalohovanim zrkadla nezaručuje konzistenciu, len ju umožňuje. A vypnutie databázy (hoci aj len počas synchronizácie diskov) zas znamená downtime.

Toľko k zálohovaciemu konceptu. Zaujímalo by ma či sa tu spomenie aj úspešhosť restore concept-u.
Marek Stopka avatar 24.4.2010 18:17 Marek Stopka | skóre: 57 | blog: Paranoidní blog | London, United Kingdom
Rozbalit Rozbalit vše Re: Implementace Oracle po NFS
ARCHIVELOG režim? :)
Toľko k zálohovaciemu konceptu. Zaujímalo by ma či sa tu spomenie aj úspešhosť restore concept-u.
60x restore, 60x success...
24.4.2010 20:16 Peter Golis | skóre: 55 | Bratislava
Rozbalit Rozbalit vše Re: Implementace Oracle po NFS
Samotný archivelog mode nezaručuje konzistentnú obnovu databázy. Tú zabezpečuje až dostupnosť opríslušných redolog-ov. A o ich zálohovaní sa nič nepísalo.

Vo vzduchu je teda otázka, prečo?

Marek Stopka avatar 25.4.2010 10:04 Marek Stopka | skóre: 57 | blog: Paranoidní blog | London, United Kingdom
Rozbalit Rozbalit vše Re: Implementace Oracle po NFS
Jenže ty se zálohují stejnými snapshoty jako ty datové soubory....
26.4.2010 19:34 Peter Golis | skóre: 55 | Bratislava
Rozbalit Rozbalit vše Re: Implementace Oracle po NFS
Áno, a preto som písal že nezaručuje, len umožňuje. Ešte je obvykle jeden posledný bod v hre, zachovanie k určitému SCN alebo logseq. Obvykle tam stačí pichnúť jeden alter...

Mimochodom, až 60 restorov? To sa v práci asi nepretrhnete. Teda za predpokladu že si zákazník nerobí repliky databáz na testovacie prostredia sám :-)

Marek Stopka avatar 26.4.2010 19:39 Marek Stopka | skóre: 57 | blog: Paranoidní blog | London, United Kingdom
Rozbalit Rozbalit vše Re: Implementace Oracle po NFS
Mimochodom, až 60 restorov? To sa v práci asi nepretrhnete. Teda za predpokladu že si zákazník nerobí repliky databáz na testovacie prostredia sám :-)
Proč by tohle dělal někdo ze storage departmentu? To si snad Oracle DBA umí udělat (naklikat ve snap manageru) sami, ne? :)
26.4.2010 20:36 Peter Golis | skóre: 55 | Bratislava
Rozbalit Rozbalit vše Re: Implementace Oracle po NFS
On Oracle DBA to vie napísať aj do RMan-u. Či už cez flash recovery alebo s pomocou páskových mechaník. A delegovanie kompetencií je záležitosťou zmluvy.

Mňa to zaujalo len z hladiska veľkosti čísla. To NASko je maličké, takže tam to môže sedieť.
xkucf03 avatar 24.4.2010 21:48 xkucf03 | skóre: 46 | blog: xkucf03
Rozbalit Rozbalit vše SaaS
ČaaD

(článek as a demoverze)
Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-Výuka.cz, Nekuřák.net
23.4.2010 08:40 pasmen | skóre: 45 | blog: glob | Praha
Rozbalit Rozbalit vše Re: Implementace Oracle po NFS
Odpovědět | Sbalit | Link | Blokovat | Admin
Hele nemáš nějaký zkušenosti s Oraclím databázovým filesystémem? Dá se to používat prakticky jako cokoliv exportované přes NFS? Nebo to jako klasické úložiště použít (z nějakých důvodů) nelze?
23.4.2010 17:14 Jan Kundrát (jkt) | skóre: 27 | blog: jkt | Praha - Bohnice
Rozbalit Rozbalit vše Re: Implementace Oracle po NFS
Odpovědět | Sbalit | Link | Blokovat | Admin
Jake jsou slabiny snapshotovani v Linuxovem LVM2?
Blésmrt
24.4.2010 00:24 just me
Rozbalit Rozbalit vše Re: Implementace Oracle po NFS
V tomhle korporatnim IT svete IMHO:
1) protoze to neni dostatecne pomale
2) protoze z toho necouhaji miliony ca$h

=)
Marek Stopka avatar 24.4.2010 15:41 Marek Stopka | skóre: 57 | blog: Paranoidní blog | London, United Kingdom
Rozbalit Rozbalit vše Re: Implementace Oracle po NFS
1. LVM2 snapshoty jsou pomalé :D
2. LVM2 snapshoty nejsou flexibilní co se do množství změněných dat týče (a zde jsem skončil, je to pro mě no-go vlastnost, dál jsem zjišťovat nepotřeboval)
26.4.2010 23:12 Dzerza
Rozbalit Rozbalit vše Re: Implementace Oracle po NFS
Nefungují v CLVM a to ani exkluzivně.
28.4.2010 10:17 ondar
Rozbalit Rozbalit vše Re: Implementace Oracle po NFS
Odpovědět | Sbalit | Link | Blokovat | Admin
Tak timhle článkem jsem fakt zklamanej - jak už tady někdo podotknul, je to jak u PR v NetAppu. Praktické informace žádné, o NFS vlastně ani zmínka - čekal bych alespoň srovnání NFSv3 a V4, vliv keše na výkonnost databáze apod. Nic tu nejni. S tim se můžeš jít vycpat....
Marek Stopka avatar 28.4.2010 10:50 Marek Stopka | skóre: 57 | blog: Paranoidní blog | London, United Kingdom
Rozbalit Rozbalit vše Re: Implementace Oracle po NFS
Můžeš mi říct jak můžu dělat benchmarky na firemních produkčních systémech našich zákazníků a pak je s čistým svědomím publikovat? Vy si myslíte, že je to snadné psát tyhle články, já jen čekám, kdy mi přijde e-mail z našeho právního oddělení, že jsem vyzradil něco co tahle společnost považuje za její intelektuální vlastnictví...

A na výkon publikoval Oracle whitepaper, který je odkázaný v prvním článku, tak si přečti ten...

Whitepaper
28.4.2010 11:49 ondar
Rozbalit Rozbalit vše Re: Implementace Oracle po NFS
No o tom to ale je ne? Buď mám informace a chci je publikovat, a nebo je nemám (ať už z jakéhokoli důvodu) a pak nepublikuji. Ten whitepaper je o ničem - je jasné, že pokud si Oracle napíše vlastní optimalizovaný NFS klient, takže to bude lepší nežli ten jaderný už kvůli tomu, že NFSv3 je bezestavový protokol a zamykání je tam "přilepeno" jaksi navíc - a od toho se ostatně odvíjí i výkonnost co z NFSv3 můžeš vymáčknout. Proto mě ani nějaký "Oracle direct NFS client" moc nebere - problém neřeší, jen supluje práci kernelu. Co tady každého spíše zajímá je co k má k této problematice říci NFSv4 a jeho delegace a agresivnější optimalizace (které si díky kompletně přepsané architektuře může dovolit). Tady bych čekal u databází dramatický nárůst rychlosti. Ale tady ne. Ticho po pěšině...

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