Studio Multimedialne ljasinski.pl

  • O mnie
  • Blog
  • Prelekcje
  • Portfolio
  • Kontakt
Jesteś tutaj: Strona główna / Komputery / ubuntu / Ubuwtorek – replikacja SQL przez SSH

Ubuwtorek – replikacja SQL przez SSH

19 listopada 2012 by lucasyas Zostaw komentarz

Wpis dzisiejszy jest wzięty z życia – sytuacja z ostatniego weekendu. Zdarzyło się to podczas rozgrywek II ligi brydża sportowego. Czytelnicy mojej strony brydżowej znają zapewne artykuł Davida Stevensona – Z pamiętnika sędziego. Ja niestety nie dysponuję tak giętkim piórem, więc będzie pewnie mniej zabawnie, za to może być to pouczające w kwestiach technicznych.

Preludium – jeśli czekasz na linuxowy tutorial, nie czytaj.

Wszystko zaczęło się już w piątek.  Przed sędziowaniem zagrałem mecz w lidze popularnej. Z kolegą Pawłem rozdzieliliśmy sprzęt na nasze kotły ligowe i rozstaliśmy się koło 9. wieczorem. Przede mną jeszcze 150 km jazdy przez mgły do Brzegu Dolnego. Gdy byłem ok. 40 km od celu, nawigacja zaczęła szwankować. Pierwsza myśl – wyjmę tablet i sprawdzę gdzie jestem. Gdzie jest tablet???

Zjazd na pobocze i paniczne przeszukanie auta – tabletu nie ma. Tak samo jak całej torby z laptopem. Telefon do kapitana – „Zostawiłem?” TAK. Restauracja zamknięta do rana, nie mam po co wracać. Jadę dalej.

W międzyczasie telefon do Jacka i ustalenie planu działania. Odbierz jutro laptopa i nadaj konduktorską w okolice Brzegu Dolnego.

W Brzegu Dolnym jestem ok. 0:30 – mamy już sobotę. Wypakowuję drukarkę z auta, żeby rano była zdatna do użytku, rękawem ścieram lód pokruszony wkoło anteny. Jest zimno. SMS do Tomka – on dojeżdża rano bo ma blisko. Weź pls laptopa. Nocka raczej bezsenna.

Sobota rano, gdy pojawiają się pierwsze techniczne szczegóły

Brydżowy pierniczek

Jest ósma. Odbieram klucz z recepcji i wchodzę na salę. Ustawiam stoły w tzw. „karo” podłączam drukarkę, ustawiam stolik sędziowski itp. Telefon do Jacka – ma laptopa. Przyjeżdża Tomek, biorę jego sprzęt, sprawdzam czy działają pierniczki, przygotowuję kartki na stoły, konfiguruję program… nie ma netu. NIE MA NETU. W przypadku tego kotła to tragedia. Grupa SW gra w dwóch miejscach i do liczenia jej wymagany jest dostęp do zdalnej bazy MySQL. Prośba do miejscowych, kilkukrotne sprawdzenie kabla, jakieś przełączanie routera gdzieś daleko… i jest. Kabla trzeba pilnować, bo plastikowy haczyk jest wyłamany. Nic to, da się grać. Internet chodzi jako tako, choć operacje na zdalnej bazie zdają się trwać wiecznie.

Zaczynamy grę

W instrukcji od organizatorów jest napisane, że nie wolno na lidze łączyć funkcji sędziego komputerowego z sędzią na sali. I jest tak nie bez powodu. Uwierzcie mi, naprawdę przy komputerze jest co robić. Zbieram line-upy, wpisuję do kompa, mija kilka ładnych minut, a zdalna baza tu nie ułatwia sprawy.

W tym miejscu pozwolę sobie na małą dygresję. Ligi są liczone programem Teamy ś.p. Janka Romańskiego. Program ten nawet twórcy oprogramowania konkurencyjnego uznają za najlepszy na świecie. Jego ogromną zaletą jest modułowość oraz praca na bazie MySQL. Dzięki temu możliwe jest właśnie zbieranie wyników w kilku miejscach do jednej bazy, a następnie generowanie statycznych plików HTML i wysyłanie ich na serwer.

Program webmaster po uruchomieniu praktycznie przestaje odpowiadać. Zdalne zapytania do bazy danych zajmują go całkowicie. Poza tym pierwszy segment mija bez problemów. Drukuję historię graczy, uruchamiam pierniczki na drugi segment, sprawdzam czy działa i wsiadam w auto. Przede mną 20 km drogi do najbliższej stacji, na której stają pociągi pospieszne. UDAŁO SIĘ. Laptop dotarł bez problemów – ze strony PKP to naprawdę niespodzianka. Wracam – po drodze telefon od Zimnego – szefa IT ligi, że rozdania ode mnie nie idą. Przyjeżdżam, sprawdzam, poprawiam. Line-upy, poprawki. Wszystko działa, kończy się drugi segment, a więc i cały pierwszy mecz. Liczenie wyników, wydruki. Generowanie stron końcowych i klasyfikacji butlera zajmuje ponad pół godziny… Szybko przed drugim meczem biegnę na obiad.

Awaria internetu – miejsce gdzie wchodzi technika

W trakcie drugiego meczu padł net – zdarza się. Miałem tablet więc zdawałoby się problem niewielki. Niestety, prędkość obsługi MySQL spadła jeszcze bardziej. Kontakt z Zimnym i ustalenie, że Webmastera odpala on, żeby nasz net trochę choć odciążyć. W tym momencie przyszedł mi też do głowy pomysł, żeby robić sobie kopie bazy zdalnej. Piszę więc o dostęp ssh do serwera MySQL. Dostaję go oczywiście bez problemu. Teraz jak to sobie ustawić.

Który komputer wybrać.

Zostawiłem komputer Tomka jako ten główny – liczący wyniki na zdalnej bazie. Następnie na moim odpaliłem Ubuntu i używając Virtualbox uruchomiłem Windowsa z zainstalowanymi Teamami. Wirtualny komp miał aż 3 karty sieciowe

  • do połączenia z bazą danych pod ubuntu
  • do podłączenia do routera, na którym była drukarka
  • do podłączenia do wifi, na którym był internet

Na dobrą sprawę dałoby się skonfigurować odpowiednio routing, by wystarczyła tylko pierwsza karta, ale zależało mi na czasie.

Ustawienia sieci

Następnie trzeba było ustawić domyślne połączenia internetowe na wifi, a nie na kabel. Pod linuxem było to proste

sudo route del default
sudo ip route add default via 192.168.47.1
sudo /etc/init.d/networking restart

Pod windows do tego celu trzeba użyć programu netRouteView.  Teraz tylko trzeba było znaleźć metodę szybkiej replikacji bazy danych. Po kilku próbach udało mi się „zejść” do jednego polecenia wykonującego się ok. 1-2 sekund.

Łatwe tworzenie lokalnej kopii sql

Na początek trzeba oczywiście ustawić ssh bez hasła, żeby było łatwiej. Następnie po połączeniu się trzeba zgrać zawartość bazy danych. dodanie opcji [cci]-B[/cci] sugeruje użycie kilku baz danych, a więc wymusza użycie [cci]use[/cci] w celu wyboru bazy danych. Dzięki temu otrzymany plik zrzutu jest kompletny – wystarczy go wykonać, by nowa wersja zastąpiła starą. mysqldump --add-drop-database -B -u dbuser -pdbpass 2liga_sw > export.sql Tak otrzymany plik pobieramy na komputer i każemy uruchomić w bazie danych: mysql -u localdbuser -plocaldbpass < export.sql Wymaga to trochę operacji. Pomóc można sobie można łącząc nawiązanie połączenia ssh i wykonanie zrzutu w jedno polecenie. Wtedy drugie importuje nam zrzut i sprawę mamy już dość wygodną: ssh [email protected] "mysqldump --add-drop-database -B -u dbuser -pdbpass 2liga_sw" > export.sql
mysql -u localdbuser -plocaldbpass < export.sql

A teraz ułatwmy to sobie po raz ostatni – zastosujmy rurę (ang. pipe):

ssh [email protected] "mysqldump --add-drop-database -B -u dbuser -pdbpass 2liga_sw" | mysql -u localdbuser -plocaldbpass

Otrzymujemy jedno polecenie, które replikuje nam zdalną bazę na lokalny komputer. Od tego momentu mogłem używać lokalnej bazy do przygotowywania wydruków dla zawodników oraz stron statycznych na serwer. Jeżeli kiedyś będziecie w podobnej sytuacji – polecam.

Podobne

W kategorii:ubuntu Tagi:brydż, mysql, ssh

Leave a ReplyCancel reply

WP Core Contributions

View all 0 tickets on Trac.

Mastodon

Ostatnie wpisy

  • Do czego w roku 2025 może przydać się VPN
  • Kontenery z dostępem do Tailnetu
  • Remanent w LANie
  • Kolorowa kontrola wersji
  • Motyw wnuk – prezentacja na WordUp! Kalisz online.

Najnowsze komentarze

  • Jacek - Zakładanie darmowej domeny *.tk
  • Arek - Jak dodać swap do ubuntu
  • refy - Zakładanie darmowej domeny *.tk
  • bezrobotny niepełnosprawny magister - Darmowe domeny – one naprawdę istnieją
  • lucasyas - Jak Lenovo sobie leci…

Archiwa

  • marzec 2025
  • styczeń 2025
  • styczeń 2023
  • styczeń 2021
  • maj 2020
  • luty 2020
  • wrzesień 2018
  • lipiec 2018
  • wrzesień 2016
  • sierpień 2016
  • czerwiec 2016
  • styczeń 2016
  • wrzesień 2015
  • lipiec 2015
  • kwiecień 2015
  • marzec 2015
  • listopad 2014
  • wrzesień 2014
  • lipiec 2014
  • czerwiec 2014
  • maj 2014
  • luty 2014
  • grudzień 2013
  • październik 2013
  • wrzesień 2013
  • sierpień 2013
  • czerwiec 2013
  • maj 2013
  • marzec 2013
  • luty 2013
  • styczeń 2013
  • grudzień 2012
  • listopad 2012
  • październik 2012
  • wrzesień 2012
  • sierpień 2012
  • lipiec 2012
  • czerwiec 2012
  • maj 2012
  • kwiecień 2012
  • marzec 2012
  • luty 2012
  • styczeń 2012
  • grudzień 2011
  • listopad 2011
  • październik 2011
  • wrzesień 2011
  • sierpień 2011
  • czerwiec 2011
  • maj 2011
  • marzec 2011
  • luty 2011
  • styczeń 2011
  • grudzień 2010
  • listopad 2010
  • październik 2010
  • wrzesień 2010
  • sierpień 2010
  • lipiec 2010
  • czerwiec 2010
  • maj 2010
  • kwiecień 2010
  • marzec 2010

Kategorie

  • Android
  • Bez kategorii
  • Dla webmasterów
  • Facebook – prywatność i bezpieczeństwo
  • FAQ
  • Homelab
  • Homelab
  • Komputery
  • LJPL Armored robots.txt
  • Marketing
  • Polityka
  • SEO
  • Thanks God it’s Friday
  • TraktTV Wordpress Widget
  • TraktTV Wordpress Widget @en
  • Twitter Diary
  • ubuntu
  • WordPress
  • Wystąpienia i prezentacje

Meta

  • Zaloguj się
  • Kanał wpisów
  • Kanał komentarzy
  • WordPress.org

Tagi

*.tk .htaccess android Apache apple bezpieczeństwo blog chrome darmowe domeny e-mail facebook firefox git gmail google google analytics Google apps google docs Google drive google logo hasła instagram kernel microsoft mysql PHP piractwo plugin prywatność przekierowanie rich snippet seo serp spam ssh swap twitter ubuntu VMware webmaster windows wordcamp wordpress youtube

Najnowsze komentarze

  • Jacek - Zakładanie darmowej domeny *.tk
  • Arek - Jak dodać swap do ubuntu
  • refy - Zakładanie darmowej domeny *.tk
  • bezrobotny niepełnosprawny magister - Darmowe domeny – one naprawdę istnieją
  • lucasyas - Jak Lenovo sobie leci…

Obserwuj mnie na Twitterze

My Tweets

Copyright © 2025 · ljasinskipl-genesis on Genesis Framework · WordPress · Zaloguj się

Ta strona korzysta z ciasteczek w celach statystycznych oraz dla wyświetlania reklam. Jeżeli nie wyrażasz na to zgody, możesz to zmienić korzystając z ustawień swojej przeglądarki internetowej. Akceptuję
Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
SAVE & ACCEPT
 

Loading Comments...