[ deki_per @ 05.11.2008. 22:39 ] @
Evo jednog problema koji sam uočio pre nekoliko dana...

Pretpostavljam da je stvar ozbiljnija premda nigde ne uspevam da nadjem nikakav hint o čemu bi moglo da se radi.

Ukratko, baza je Oracle 10gR2 na Windows 2k3 Standard SP1.

Do pre par meseci nije bio aktivan archivelog režim i radili su se backup-i svake noći uz spuštanje baze i ponovno podizanje. U međuvremenu je instaliran softver kome to smeta tj. neke od komponenti popadaju kada im se izmakne baza ispod nogu tako da je jedino rešenje online backup što automatski implicira i archivelogs.

Ideja je bila da se nakon paljenja archivelog režima uradi full backup level 0 kako bi se kasnije, svake noći, radili incremental backup-i sa istovremenim backup-om i brisanjem arhiviranih logova.

Generalno, ovo je prošlo totalno OK i izgledalo je da nema nikakvih problema, incremental backup je lepo radio svake noći.

No, setih se ja u neko zlo doba da pogledam "Manage Current Backups" na Maintenance strani Enterprise Manager-a i primetim da se prikazuju samo inkrementalni backup-i to od poslednjih 15-ak dana... Nigde na spisku nema onog prvog Full backup-a! :-(

Probao sam da kroz RMAN konzolu izlistam sve backup-e koji su mu trenutno "u pameti" ali rezultat je isti, dobijam potpuno isti broj backup-a kao i iz Enterprise Manager-a.

Što je najgore, napravio sam još jedan test. Iskopirao sam sve backup-e na rezervnu lokaciju a onda sam izbrisao Full backup sa default lokacije i, gle čuda, Oracle se ne buni, sledeći incremental backup se odradio sasvim korektno (???).

Još jedna informacija, Retention Policy NIJE definisan (aktivna je varijanta da se ja sam brinem o brisanju nepotrebnih backup-a).

Imate li ideju zašto Oracle "zaboravlja" stare backup-e i šta će se desiti ako baza pukne? Pošto mu je Full backup negde "nestao iz pameti" na koji način će rekonstruisati bazu ako dođe do nekog većeg krša (gubitka celih tablespace-ova usled crkavanja diska ili nešto slično)?

Da li je neko imao sličnu situaciju? Probao sam na Metalink-u ali ni reči o "nestajanju" backup-a iz registra.

Any ideas?

Pozdrav!
[ suadhm @ 07.11.2008. 10:15 ] @
Procedura za backup koju ja koristim je:
- Svake nedelje full backup.
- Svaki radni dan+subota uveče incremental.

Probaj sa komandom crosscheck iz RMAN-a da vidiš šta ti je sa backup fajlovima.

[ Dr.sima @ 07.11.2008. 10:18 ] @
Pokusaj da izmenis control file record keep time na 30 dana!

sql> show parameter control_ ce ti dati trenutnu vrednost...
[ deki_per @ 07.11.2008. 17:41 ] @
Hvala momci!

Probao sam i jedno i drugo.

CROSSCHECK ALL se ne buni, ne prijavljuje nikakav problem. Prosto uradi CROSSCHECK samo onih backup-a koji su na listi i navodno je sve OK.

A SHOW PARAMETER CONTROL kaže da je control_file_record_keep_time = 7.

Iskreno, nisam znao da control_file_record_keep_time ima veze sa tim koliko dugo će pamtiti BACKUP-e.
Misliš da ovo treba promeniti na 30?

Deki
[ Dr.sima @ 07.11.2008. 22:25 ] @
Ja sam imao isti problem kao i ti i promenom doticnog parametra je problem resen... Takodje, mislim da je pametno da podesis da ti cuva recimo 4 zadnja backupa. (configure retention policy to redundancy 4).

control_file_record_keep_time znaci da podatke o backupima u kontrolnom fajlu cuva 7 dana (predpostavljam da nemas podignut katalog)...
Bekap politika koju ja koristim je mozda paranoicna...

1 nedeljno full backup - lvl
1 dnevno inkremental (ne racunajuci dan kad se radi full) - lvl 1
na svakih 15 min backup arhivskih logova

-svi podaci idu direktno na redudantni storage + na tape library

*sve zavisi koliko su ti bitni podaci i koliko bi tebe (firmu) kostalo da bez istih ostanes....
**takodje je pametno napraviti dodatne kopije control file-a i pfile (init.ora) u slucaju da moras da radis restore na nekom drugom serveru...
*** workaround tvog problema je da pravis kopije control file-a posle svakog backupa posto se u njemu "vide" poslednji backup-i koji posle "nestanu"!
[ deki_per @ 11.11.2008. 12:16 ] @
Postavio sam sve kako si napisao...

Sačekaću nekoliko dana da se skupi kritična masa backup fajlova pa ću da proverim da li je sve OK.

Javljam rezultate!

Hvala puno na savetima!

P.S. Da li je neko do sada probao da prenese backup sa jedne Oracle instance na drugu i da rekonstruiše instancu na drugom serveru? Koliko je to komplikovano?
[ Dr.sima @ 11.11.2008. 13:27 ] @
Nije komplikovano uopste,
treba ti jos jedna masina (target) na kojoj je instaliran identican softver (baza iste verzije na istim lokacijama), takodje potrebno je da bekap smestis na istu lokaciju na kojoj je napravljen, i trebaju ti pfile i control file sa source baze.
Potom na target bazi oboris instancu, (shutdown immediate;)
prekopiras kontrolni fajl sa source preko target db kontrolnih
i pustis skript za restore (nesto lepo upakovano tipa restore database;recover database)
i to ti je to ... :)
a mozes isto da koristis i duplicate database proceduru samo sto ja to nisam probao ...

*ovo ti je dobra vezba za recovery scenario
[ deki_per @ 11.11.2008. 13:41 ] @
Pretpostavio sam da je tako ali ipak...

Kažeš kopija pfile i controlfile... OK. Kod mene se konkretno koriste spfile i controlfile.

E sad, da li je obavezno imati iskopirane te fajlove nezavisno od backup-a ili je (u slučaju totalne katastrofe i nemogućnosti pristupa "starom" serveru) dovoljno i ovo što ću navesti u listi?

2008.11.11 2.04.21 ARCHIVED LOG DISK AVAILABLE
2008.11.11 2.04.09 CONTROLFILE, SPFILE DISK AVAILABLE
2008.11.11 2.04.06 DATAFILE DISK AVAILABLE

Svaki moj incremental backup se sastoji iz ove tri celine.

Pitanje je, znači, da li je za full recovery na drugoj mašini dovoljan SPFILE i CONTROLFILE iz backup set-a ili ipak moraju postojati posebno iskopirani fajlovi?

Možda smaram ali pokušavam da se zamislim u situaciji da je originalni server totalno pukao (ne mogu nikako da pristupim file sistemu) i da imam samo full + incremental backup-e na drugoj mašini.

Hvala još jednom! ;-)
[ Dr.sima @ 11.11.2008. 15:01 ] @
Mozes ako je ukljucena opcija include controlfile copy (ili tako nesto)... Spfile je binarni fajl a pfile je tekstulani... Postoji komanda restore controlfile from backupset (ili tako nesto, hvala bogu nikad nisam koristio :) )

Pravljenje pfile od spfile - create pfile from spfile - koristi se kada je potrebno da promenis neki od parametara pa da posle boot-ujes sa startup pfile='\lokacijadopfile\pfile.ora';
Pravljenje spfile od pfile - create spfile from pfile - koristi se kada je potrebno napraviti binarnu verziju sa kojom se baza po default-u podize (znaci startup, sa standardnim spfile )

U principu ako u okviru bekapa imas ukljucen controlfile mozes i bez ove manuelne kopije, ali je ovaj jedan fajl toliko bitan da ako ga nemas ili je ostecen ne mozes nista da uradis, a retko je veci od 50mb, tako da ne vidim razlog da ga rucno ne iskopiras na bezbednu lokaciju.
Pfile isto nije neophodan, mozes i rucno da poturis default pfile u kome je podeseno ime baze i lokacija kontrolnog fajla, ali isto tako, oduzima ti vreme ako treba da radis recovery i nemas podesene sve parametre...