Wpis z mikrobloga

#programowanie #oracle #bazydanych #sql
Hej mirki. Potrzebuję kogoś kto pomoże mi ogarnąć bazę Oracle. Mam skrypt tworzący cold backup bazy danych
https://pastebin.com/Rz7CGByd
Jest on tworzony na osobnym dysku sieciowym z tego skryptu w każdą sobotę. Baza danych waży ok. 130 GB(kopia robi się 4-5h). Potrzebuję przywrócić tą kopię na innym serwerze. Do tej pory albo się to nie udawało, albo udało się raz i przy drugiej próbie przywrócenia Oracle wariował i trzeba było przywracać snapshota maszyny.
Tu przykładowy skrypt przywracania:
https://pastebin.com/RWX5Y1gB

Z tego co czytałem to te skrypty wyglądają mniej więcej dobrze. Nie wiem w czym problem i pomysły mi się kończą. Jak trzeba będzie to wrzuce logi błędów bo nie mam pod ręką.
  • 15
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@cinek181992: skrypt do restore nie wyglada prawidlowo. Odtworzenie od zera jest kilkuetapowe i na poczatku zdecydowanie nie moze byc startup mount. W skrocie
1. Startup nomount
2. Restore spfile
3. Restore controlfile.
4. Shutdown
5.
  • Odpowiedz
@cinek181992: Jeżeli to jest baza produkcyjna to sposób backupowania jest słaby co sugeruje że osoby zajmujące się backupami nie do końca wiedzą co robią. Nie zamieściłeś komunikatów błędów, ale przypuszczam, że może Ci lecieć "database neds more recovery" i jeżeli tak to ten backup jest tak generalnie o dupę rozbić.

Co do wykonania kopii bazy danych dla deweloperów to ja najczęściej lecę z wykorzystaniem DUPLICATE DATABAASE - to jest chyba
  • Odpowiedz
@maniac777: przykładowe błędy:
- media recovery requesting unknown archived log for thread 1 with sequence 16038 and starting SCN of 116922983195
- RMAN-06023: no backup or copy of datafile 1 found to restore

no i też:
- database neds
  • Odpowiedz
@cinek181992: No właśnie o tym piszę. To czy taki backup jest odtwarzalny czy nie zależy w pewnej mierze od szczęścia i tego jak się uda. W Twoim wypadku są najprawdopodobniej przeważnie bezużyteczne i równie dobrze mogłoby ich nie być. Dodatkowo datafile 1 to najpewniej system tablespace bez którego i tak nie otworzysz żadnego innego tablespace - to tak gdybyś chciał ratować z bazy którykolwiek tablespace.

W mojej ocenie ta polityka
  • Odpowiedz
  • 0
@maniac777 ja nie, ale firma której to są dane raczej tak, ale o tym jeszcze nie wiedzą ( ͡° ʖ̯ ͡°) musiałbym jakoś porządnie uargumentować, ze te dumpy są złe(niestety moja wiedza na to nie pozwala) bo oni będą sie zapierać że są dobre do czasu pierwszej utraty danych
  • Odpowiedz
@cinek181992: To ta firma ma Backup Schrodingera: jego stan nie jest znany dopóki go nie odtworzy. :)

Możesz im powiedzieć, że odtwarzalność tak robionego backupu jest zależna od zbiegu okoliczności podczas jego robienia. Da się go odtworzyć tylko wtedy gdy ostatnia transakcja rozpoczęta przed jego uruchomieniem zakończy się przed jego końcem, a wszystkie bloki które modyfikowała znajdą się w datafiles (czasem może się to dziać ze znacznym opóźnieniem w stosunku
  • Odpowiedz
@cinek181992: To częściowo zależy od tego co robi ta apka i jak jest napisana. Widziałem już różne błędy programistów łącznie z takim, w którym ktoś stwierdził, że idealnie będzie rozpoczynać transakcję zaraz po zamknięciu poprzedniej czekając aż będzie potrzebna do obsługi kolejnego żądania - nie pytaj ;) Poza tym w przeciwieństwie do PHPów aplikacje w Java często mają zaprojektowane jakieś swoje własne schedulery które poza godzinami pracy realizują jakieś zadanie
  • Odpowiedz