Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Przerwa w transakcji
Black-Berry
post 25.08.2008, 21:08:22
Post #1





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Zastanawialiście się kiedyś nad takim problemem? Mam 10 zapytań do bazy które muszą się wykonać aby baza była spójna. Co jeśli braknie prądu w momencie wykonania się na przykład piątego? Jak się można przed tym obronić ?


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
mrok
post 25.08.2008, 21:46:27
Post #2





Grupa: Zarejestrowani
Postów: 258
Pomógł: 17
Dołączył: 22.05.2007

Ostrzeżenie: (0%)
-----


http://pl.wikipedia.org/wiki/Transakcja_(informatyka)


--------------------
Go to the top of the page
+Quote Post
kwiateusz
post 25.08.2008, 22:27:59
Post #3


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




j.w. i wtedy bez commita przy wstaniu bazy zmiany zostana cofniete
Go to the top of the page
+Quote Post
Black-Berry
post 25.08.2008, 22:31:02
Post #4





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Brzmi jak sporo pracy:) Słyszał ktoś może o jakichś gotowych rozwiązaniach w przypadku php i mysql ? Moze nie gtowe biblioteki ale opis jak to wdrozyć ?


--------------------
Go to the top of the page
+Quote Post
kwiateusz
post 25.08.2008, 22:37:03
Post #5


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




yy no komenda begin w mysql do zaczecia i commit na zatwierdzenie lub rollback na cofniecie? (tabele musza byc innodb)

np http://pl.php.net/manual/pl/pdo.begintransaction.php
Go to the top of the page
+Quote Post
Black-Berry
post 25.08.2008, 22:40:49
Post #6





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

Ostrzeżenie: (0%)
-----


nie uzywam PDO niestety :/ Ale dobrze rozumiem? Mogę na początku działania mojego skryptu ustawić jakiś znacznik początku wykonywania zapytań i na końcu skryptu drugi znacznik i w jakiś magiczny sposób anulowac wszystkie operacje na bazie jesli znacznik końca nie został osiągnięty questionmark.gif A co jesli w polowie braknie prądu?

Ten post edytował Black-Berry 25.08.2008, 22:46:20


--------------------
Go to the top of the page
+Quote Post
kwiateusz
post 25.08.2008, 22:46:47
Post #7


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




use google young padawan to naprawde nie boli

http://dev.mysql.com/doc/refman/5.0/en/commit.html

do edita: patrz moj 1 post...
Go to the top of the page
+Quote Post
Black-Berry
post 25.08.2008, 22:50:21
Post #8





Grupa: Zarejestrowani
Postów: 663
Pomógł: 6
Dołączył: 3.06.2007
Skąd: Kraków

Ostrzeżenie: (0%)
-----


samą ideę już rozumiem. Nie wiem tylko co jeśli serwer padnie. Czy jesli nie sostanie podana do mysql'a komenda commit to zmiany poprostu przepadną ?

@.@ teraz widzę

Cytat
j.w. i wtedy bez commita przy wstaniu bazy zmiany zostana cofniete

Chyba już wiem wszystko. Dzięki za pomoc smile.gif

Ten post edytował Black-Berry 25.08.2008, 22:52:06


--------------------
Go to the top of the page
+Quote Post
kwiateusz
post 25.08.2008, 22:51:40
Post #9


Admin Techniczny


Grupa: Administratorzy
Postów: 2 071
Pomógł: 93
Dołączył: 5.07.2005
Skąd: Olsztyn




tak serwer wstaje po padnieciu, zapewne ma gdzies pliki o rozpoczetych transakcjach (tak jest w przypadku svna) i je cofa
Go to the top of the page
+Quote Post
dr_bonzo
post 26.08.2008, 00:20:41
Post #10





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Gdzies tam w manualu jest napisane ze jak zerwiesz polaczenie bez commita == rollback.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 22.06.2025 - 10:30