konto usunięte

Temat: Oracle 10g RAC ASM i backup

Witam,
wiem, że temat był juz wałkowany setki razy, ale czas mi się konczy a właściwe szkolenie z administracji Oracle będę miał dopiero za parę miesięcy. Wdrożyłem klaster dwunodowy Oracle RAC w oparciu o ASM. Na systemie produkcyjnym platformą jest AIX. Dodatkowo zrobiłem sobie lokalnie w firmie testowy klaster na Linuxie (zamiast SAN -iSCSI). Wdrożenie jakie mieliśmy wykonać zostało niemal ukończone. Pozostała kwestia backupów.

Wymagania jakie postawiono przede mną to cotygodniowy full backup level 0, tak by umozliwić pełne odtworzenie bazy. Parę razy na dobę backup online, level 1 Cumulative lub differential, zaleznie od obciazenia, jakie by wywolalo jego wykonywanie -wyjdzie w testach.

Zacząłem opracowywać różnego rodzaju skrypty RMANowe do tworzenia backupu, które "niby działają". Niby, bo dla testu tworzę jakieś tam dane (jakaś tabela, parę rekordów), pliku backupów, które niby zawierają te dane. Problem jest natomiast podczas ich przywracania.

DANE:
portalf -GLOBAL SID
odpowiednio, portalf1 i portalf2 instancje na nodach

Przykladowy skrypt polecen rmana dla wykonania backupu level 0 wyglada tak:
run
{
configure channel 1 device type disk connect sys/asm123@portalf1 format '/oracle/backup/_backup_level_0/data-file-%d-%t-%s-%p' ;
configure default device type to disk;
set controlfile autobackup format for device type disk to '/oracle/backup/_backup_level_0/contol-file-%d-%F';
configure controlfile autobackup on;
backup spfile;

backup incremental level 0 database plus archivelog ;
}
exit
-----------------------EOF----------------------------

Skrypt jest maksymalnie uproszczony, nawet kanal wygospodarowalem zaledwie jeden.
Archivelogi mam w bazie wlaczone.

Po wykonaniu skryptu, nie wyswietlaja sie zadne bledy, a grep na plikach backupow wykazuje istnienie w nich informacji o tabelkach i rekordach, ktore diagnostycznie utworzylem.

Po wykonaniu backupu kasuje albo zawartosc tabelki albo cala tabele. Nastepnie probuje te informacje odzyskac poprzez restore i recovery:

np.:

1) wylaczam drugiego noda, a przywracanie wykonuje tylko z pierwszego:

RMAN>
shutdown immediate;
set dbid 2024795259;
startup force nomount;

set controlfile autobackup format for device type disk to '/oracle/backup/_backup_level_0/contol-file-%d-%F';

restore spfile to pfile '/oracle/backup/tmp/pfileportalf1.ora' from autobackup;
startup force nomount pfile='/oracle/backup/tmp/pfileportalf1.ora';


restore controlfile from autobackup;
host 'rm /oracle/products/rdbms/dbs/orapwportalf1';
host '/oracle/products/rdbms/bin/orapwd file=/oracle/products/rdbms/dbs/orapwportalf1 password=jakieshaslo entries=5';
alter database mount;
restore database;
recover database delete archivelog;
alter database open resetlogs;
shutdown immediate;
startup;

------------------------EOF


RMAN nie wywala bledow. Wszysytko NIBY jest ok, ale po tabelce a tym bardziej jej zawartosci ani sladu!

W Oracle jestem poczatkujacy. Wszystkiego ucze sie sam. Ale kwestie backupow mecze juz jakis czas i powoli zaczynam odczuwac frustracje.

W związku z tym, prosze o kontakt kogoś cierpliwego, bo ja niestety nie jestem expertem od tej bazy. Udostepnie wszystkie skrypty mailowo oraz zrzuty typu database parameters.

Dopiero zaczynam, a firma nie kwapi sie z wyslaniem mnie na szkolenie. Zaczalem we wlasnym zakresie studium z baz danych, ale administracje bedziemy miec dopiero w nastepnym semestrze. Wszystkie testy robie na srodowisku testowy, jednak wkrotce bede zmuszony zaczac widoczne prace na srodowisku produkcyjnym a postepy nadal beznadziejne.

Proszę, pomóżcie!

konto usunięte

Temat: Oracle 10g RAC ASM i backup

Łukasz Piętka:
run
{
configure channel 1 device type disk connect sys/asm123@portalf1 format '/oracle/backup/_backup_level_0/data-file-%d-%t-%s-%p' ;
configure default device type to disk;
set controlfile autobackup format for device type disk to '/oracle/backup/_backup_level_0/contol-file-%d-%F';
configure controlfile autobackup on;
backup spfile;

backup incremental level 0 database plus archivelog ;
}

1. Configure wywal ... to się robi raz na początku.
2. incremental level wywal ...
3. jeśli to RAC to wg best practices:

BACKUP CHECK LOGICAL AS COMPRESSED BACKUPSET FORMAT '/oracle/backup/_backup_level_0/data-file-%d-%t-%s-%p' DATABASE;
sql 'alter system archive log current';
BACKUP AS COMPRESSED BACKUPSET FORMAT '/oracle/backup/_backup_level_0/arch-%d-%t-%s-%p' ARCHIVELOG ALL DELETE INPUT;
BACKUP FORMAT '/oracle/backup/_backup_level_0/cntrl_%s_%p_%t' CURRENT CONTROLFILE;


4. Jeśli robisz backup inkrementalny to z w/w wywalasz tylko linię z BACKUP DATABASE.

Ewentualnie możesz nie kasować archivelogów od razu ... wtedy ustawiasz SET BACKUP OPTIMIZATION ON i usuwasz "DELETE INPUT". Archivelogi nie bedą usuwane, ale rman i tak bedzie pobierał tylko te, które nie były backupowane.

Co do odtwarzania to ... mniej więcej wyglądać moze to wtedy tak:


RMAN>STARTUP NOMOUNT;
RMAN>RESTORE CONTROLFILE FROM '/oracle/backup/_backup_level_0/cntrl_pelna_nazwa';
RMAN>ALTER DATABASE MOUNT;
RMAN>RESTORE DATABASE;
RMAN>RECOVER DATABASE;
RMAN>ALTER DATABASE OPEN RESETLOGS;

konto usunięte

Temat: Oracle 10g RAC ASM i backup

Dzieki. Moja procedura przywracania w jednym ze sprawdzanych wariantow wyglada tak jak napisales.

Testowalem kilka roznych skryptow. Ciagle sa problemy, bo bledow nie wywala, przywracanie konczy sie sukcesem, tylko efektow brak. Po zalogowaniu do bazy brakuje rekordow / tabel, zaleznie co zdecydowalem usunac na probe.

konto usunięte

Temat: Oracle 10g RAC ASM i backup

Łukasz Piętka:
Testowalem kilka roznych skryptow. Ciagle sa problemy, bo bledow nie wywala, przywracanie konczy sie sukcesem, tylko efektow brak. Po zalogowaniu do bazy brakuje rekordow / tabel, zaleznie co zdecydowalem usunac na probe.

Wrzuć wynik LIST BACKUP, oraz wynik RESTORE DATABASE ...

Temat: Oracle 10g RAC ASM i backup

Krzysztof Pułapa:
Łukasz Piętka:
Testowalem kilka roznych skryptow. Ciagle sa problemy, bo bledow nie wywala, przywracanie konczy sie sukcesem, tylko efektow brak. Po zalogowaniu do bazy brakuje rekordow / tabel, zaleznie co zdecydowalem usunac na probe.

Wrzuć wynik LIST BACKUP, oraz wynik RESTORE DATABASE ...

Witam,

Jesli robisz backup przed wywaleniem tabel/rekordow to dane te nie sa uwzglednione w backupie !!!!!! Mozesz odsyskac wszystko co :
1. zostalo zakomitowane (dziwnie to slowo wyglada) do bazy danych
2. logi zostaly przelaczone i zarchiwizowane RMAN-em

backup format '/oracle/backup/blablabla' archivelog all;

To jest tzw odwtarzanie niekompletne - czyli do ostatniego znanego RMAN-owi archive loga.

Otwarzanie kompletne jest mozliwe tylko i wylacznie w przypadku kiedy awarie storage przezyja pliki kontrolne i pliki redo logow.
Wtedy nie odtwarzasz pliku kontrolnego wogole, tylko montujesz baze i robisz
1. restore database;
2. recover database;

pozdrawiam,
Marcin

konto usunięte

Temat: Oracle 10g RAC ASM i backup

Marcin Przepiórowski:

Jesli robisz backup przed wywaleniem tabel/rekordow to dane te nie sa uwzglednione w backupie !!!!!! Mozesz odsyskac wszystko co :
1. zostalo zakomitowane (dziwnie to slowo wyglada) do bazy danych

skrypt do dodawania testowych rekordów po dodaniu robi commit (o ile dobrze Cię zrozumiałem)

wyglada to niej wiecej tak:

1)insert into costamtable costam1, costam2 , costam3 ;
2) commit ;

2. logi zostaly przelaczone i zarchiwizowane RMAN-em

alter system archivelog current ?

backup format '/oracle/backup/blablabla' archivelog all;
>
To jest tzw odwtarzanie niekompletne - czyli do ostatniego znanego RMAN-owi archive loga.

Otwarzanie kompletne jest mozliwe tylko i wylacznie w przypadku kiedy awarie storage przezyja pliki kontrolne i pliki redo logow.
Wtedy nie odtwarzasz pliku kontrolnego wogole, tylko montujesz baze i robisz
1. restore database;
2. recover database;

pozdrawiam,
Marcin

Ok, potrzebuje obsluzyc sytuacje pelnego przywrocenia stanu bazy i jej zawartosci w danym oknie czasowym (np do tygodnia wstecz). Masz moze jakis pomysl na backup pelny bazy co tydzien + lekkie przyrostowe pare razy dziennie?

Cokolwiek by sie nie stalo na tydzien wstecz, musze miec mozliwosc przywrocenia pełnego stanu bazy i jej zawartosci. Odtwarzanie wiaze sie ze stwierdzeniem awarii, wiec moze sie odbywac offline.Łukasz Piętka edytował(a) ten post dnia 05.11.10 o godzinie 15:00

konto usunięte

Temat: Oracle 10g RAC ASM i backup

Łukasz Piętka:
Cokolwiek by sie nie stalo na tydzien wstecz, musze miec mozliwosc przywrocenia pełnego stanu bazy i jej zawartosci.

Pełny stan bazy = spójny ...

Jeśli ma się ciągłość backupów, to odtwarzać można do dowolnego momentu w czasie (jedyne ograniczenie: czas retencji).

Jeśli w odtworzonym backupie nie masz tych danych, których oczekujesz to znaczy, że nie zostały one zbackupowane ...

Temat: Oracle 10g RAC ASM i backup

Łukasz Piętka:
skrypt do dodawania testowych rekordów po dodaniu robi commit (o ile dobrze Cię zrozumiałem)

wyglada to niej wiecej tak:

1)insert into costamtable costam1, costam2 , costam3 ;
2) commit ;

2. logi zostaly przelaczone i zarchiwizowane RMAN-em

alter system archivelog current ?

Tak - to zrobic RMAN automatycznie przy backup archivelog i tylko te dane beda w backupie.

Ok, potrzebuje obsluzyc sytuacje pelnego przywrocenia stanu bazy i jej zawartosci w danym oknie czasowym (np do tygodnia wstecz). Masz moze jakis pomysl na backup pelny bazy co tydzien + lekkie przyrostowe pare razy dziennie?

Jak wielkosc bazy ? moze lepiej robic full codziennie
Cokolwiek by sie nie stalo na tydzien wstecz, musze miec mozliwosc przywrocenia pełnego stanu bazy i jej zawartosci. Odtwarzanie wiaze sie ze stwierdzeniem awarii, wiec moze sie odbywac offline.


Pelne - masz control file i redo logi, backup i wszystkie archive logi od momentu startu backup do chwili obecnej

Spojne ale nie pelne = masz backup i archive logi od momentu startu backup do chwili do ktorej odtwarzasz

Marcin

konto usunięte

Temat: Oracle 10g RAC ASM i backup

Marcin Przepiórowski:
Łukasz Piętka:
skrypt do dodawania testowych rekordów po dodaniu robi commit (o ile dobrze Cię zrozumiałem)

wyglada to niej wiecej tak:

1)insert into costamtable costam1, costam2 , costam3 ;
2) commit ;
2. logi zostaly przelaczone i zarchiwizowane RMAN-em

alter system archivelog current ?

Tak - to zrobic RMAN automatycznie przy backup archivelog i tylko te dane beda w backupie.

Tak wlasnie robilem do tej pory. Wykonam jeszcze pare testow...

Ok, potrzebuje obsluzyc sytuacje pelnego przywrocenia stanu bazy i jej zawartosci w danym oknie czasowym (np do tygodnia wstecz). Masz moze jakis pomysl na backup pelny bazy co tydzien + lekkie przyrostowe pare razy dziennie?

Jak wielkosc bazy ? moze lepiej robic full codziennie
>

Na razie kilka GB, ale urosnie to nawet do 512GB
Cokolwiek by sie nie stalo na tydzien wstecz, musze miec mozliwosc przywrocenia pełnego stanu bazy i jej zawartosci. Odtwarzanie wiaze sie ze stwierdzeniem awarii, wiec moze sie odbywac offline.


Pelne - masz control file i redo logi, backup i wszystkie archive logi od momentu startu backup do chwili obecnej

Tak, jak pisalem, chce wrocic do stanu sprzed jakiegos zdarzenia. Tak, aby wszystko jak najwierniej bylo przywrocone.

linia czasu:
[level0]--->operacje SQL-->[backup level1]-->operacje SQL--[backup l1 -do tego miejsca chce wrocic]--> bledne operacje SQL/awaria/uszkodzenie/cokolwiek

Zazwyczaj w innych dziedzinach nie mam problemow, zeby sie do kogos zwrocic o pomoc, ale z Oracle niestety nie mam obeznanych znajomych...

konto usunięte

Temat: Oracle 10g RAC ASM i backup

Zapoznaj się z książką
RMAN Recipes for Oracle Database 11g : A Problem-Solution Approach

Bardzo dobra książka, która da solidne podstawy na temat backupów
(zawiera także bardzo dużo gotowych rozwiązań)

Jest dostępna pod adresem
http://search.4shared.com/q/1/RMAN%20Recipes%20for%20O...
Mariusz Masewicz

Mariusz Masewicz Prawie wszysko o
bazach danych Oracle
:-)

Temat: Oracle 10g RAC ASM i backup

Łukasz Piętka:
Ok, potrzebuje obsluzyc sytuacje pelnego przywrocenia stanu bazy i jej zawartosci w danym oknie czasowym (np do tygodnia wstecz). Masz moze jakis pomysl na backup pelny bazy co tydzien + lekkie przyrostowe pare razy dziennie?

Moje 5gr. Backupy przyrostowe z zalozenia nie sa "lekkie". Zaby byly lzejsze podczas backupowania - trzeba wlaczyc "block change tracking"

Pozdrawiam

Mariusz

konto usunięte

Temat: Oracle 10g RAC ASM i backup

Dzieki wszystkim za odpowiedzi. Moje grzechy:
- wszystko przywracalo sie poprawnie, ale zapomnialem, ze najnowszy archivelog (po backupie) posiadal wpis o kasowaniu rekordow/tabel. dlatego nalezalo uzyc until time dla sekcji przywracania
- w sytuacji, gdy robilem level 1 po level 0, z bledami, ale jednak, sytuacja przywracala mi sie do ostatniego backupu dlatego, ze jakims cudem pominalem backup controlfile w Level 1. Dlatego control file z level0 nie wiedzial o istnieniu pewnych archivelogow.

Obecnie skrypty smigaja. Wszystko cacy, pozostaje zaimplementowac mi jeszcze retention policy na recovery window (zyczenie odbiorcy) oraz crosscheck backup i delete expired backup.
Dariusz Podleśny

Dariusz Podleśny Oracle System
Engineer - Senior
Consultant

Temat: Oracle 10g RAC ASM i backup

Mam małe pytanie;
po co kolega odtwarza z rman-owego backupu spfile i controlfile, skoro ich kolega nie utracił? (z tekstu to nie wynika). Czy kolega przed wykonaniem odtwarzania kasuje wszystkie plikw łącznie z spfilem ?
hmm. tylko po co?

Przy odtwarzaniu Point In Time Recovery nie ma potrzeby odtwarzać spfile ani controlfil
Szymon K.

Szymon K. Oracle DBA

Temat: Oracle 10g RAC ASM i backup

Dariusz Podleśny:
Mam małe pytanie;
po co kolega odtwarza z rman-owego backupu spfile i controlfile, skoro ich kolega nie utracił? (z tekstu to nie wynika). Czy kolega przed wykonaniem odtwarzania kasuje wszystkie plikw łącznie z spfilem ?
hmm. tylko po co?

Przy odtwarzaniu Point In Time Recovery nie ma potrzeby odtwarzać spfile ani controlfil

W opisanym przypadku, może i nie ma sensu. Procedura jednak wydaje mi się jak najbardziej poprawna. Mogła się zmienić struktura fizyczna bazy (dodane/usunięcie pliku), zmiana parametrów bazy. Jeśli skrypt ma być uniwersalny to przywrócenie plików controlfile i spfile ma sens.

Następna dyskusja:

Migracja Oracle RAC ASM 10g...




Wyślij zaproszenie do