Backup FAQ

Z MoodleDocs
Skocz do:nawigacja, szukaj


Backupy Stron WWW
Zalecane jest wykonywanie regularnych backupów (kopii zapasowych) bazy danych Moodle aby w razie awarii w minimalnym czasie i z możliwie małym nakładem pracy przywrócić stronę do poprawnego działania.
Backupy kursów
Backupy kursów, skonfigurowane w sekcji backup, są bardziej kosztowne pod względem zużycia czasu procesora. Czas przywracania ich jest również większy od ogólno stronowych backupów. Backupy kursów są praktyczne jeżeli chcesz np. przenieść na inny serwer dane konkretnego kursu, ale nie powinny być stosowane jako główny system zabezpieczania tych danych (o ile twój hosting nie pozwala na zalecane metody backupu). Aby backupy te wykonywały się automatycznie w ustalonych odstępach czasu musisz odpowiednio skonfigurować CRON’a. Aby dowiedzieć się jak to zrobić przeczytaj stronę o konfiguracji Cron’a.


Jak zrobić backup całej mojej strony Moodle?

Są dwie rzeczy o które musisz zadbać podczas tworzenia backupu całej strony: pliki oraz dane. Pliki skryptu Moodle są mniej ważne jako, że i tak zawsze możesz je pobrać na nowo, najważniejsze są dane zebrane w bazie danych oraz twoje pliki które uploadowałeś do Moodle.

Jest wiele sposobów na wykonanie poprawnego pełnego backupu strony Moodle. Poniżej został przedstawiony skrypcik który możesz wykonać na serwerze Unikowym, aby wykonywać kopie zapasowe bazy danych. (można ten skrypt wywoływać sobie okresowo przez CRONa):

cd /my/backup/directory
mv moodle-database.sql.gz moodle-database-old.sql.gz
mysqldump -h example.com -u myusername --password=mypassword -C -Q -e -a mydatabasename > moodle-database.sql
gzip moodle-database.sql

Kopię plików możesz wykonywać przez na przykład rsync aby kopiować tylko zmienione pliki na innego hosta, oszczędzając tym samym na czasie potrzebnym do wykonania tej operacji:

rsync -auvtz --delete -e ssh mysshusername@example.com:/my/server/directory /my/backup/directory/

Kodowanie znaków Podczas zrzucania bazy danych do pliku, trzeba uważać na problemy z kodowaniem znaków, które mogłyby ewentualnie wystąpić. W niektórych backupach stworzonych przez mysqldump lub phpmyadmin może zostać użyte nie poprawne kodowanie, co może doprowadzić do uszkodzenia tekstów zapisanych w bazie. Aby rozwiązać ten problem można użyć narzędzia mySQL Administrator 1.1 które wymusi kodowanie UTF-8 w czasie tworzenia backupu.

Jak przywrócić utworzony wcześniej backup całej strony?

Jeśli postępowałeś według powyższych instrukcji przy tworzeniu swojej kopii zapasowej, może ci się przydać informacja na temat przywracania tych danych/plików. Poniżej znajduje się krótka lista kroków koniecznych do wykonania aby odzyskać dane z kopii zapasowej: 1. Zmień nazwę oryginalnego folderu Moodle na jakis inny (tak aby na wszelki wypadek go jeszcze mieć) i skopiuj pliki z backupu na jego miejsce.

2. Jeżeli używasz mySQL backup bazy powinien kończyć się na .sql, .gz lub .tar.gz. Jeśli końcyz się na .tar.gz lub .gz, zanim go wgrasz musisz go rozpakować, poniższym poleceniem:

tar -xzvf moodlesqlfile.tar.gz

3. Jeśli pracujesz na mySQL możesz zaimportować plik SQL do bazy przy użyciu pokazanego poniżej polecenia. Poleca się nie importowanie danych do obecnie użuwanej bazy danych, a utworzenie nowej, wgranie danych i przełączenie Moodle do korzystania z tej nowej poprzez modyfikację odpowiedniej linii w config.php.

Komenda którą wgrywa się dane z backupu do bazy danych:

mysql -p new_database < moodlesqlfile.sql

Jakie dane nie są zapisywane w backupach kursów?

Jeśli wybierzesz wszystkie dostępne opcje podczas tworzenia backupu kursu, możesz zabezpieczyć prawie wszystkie dane dostępne w tym kursie. Pamiętaj jednak że nie zostaną zapisane wszystkie dane, pominięte zostaną:

  • Pytania Quizów są tylko zapisywane jeśli choć jedno pytanie z danej kategorii zostało dodane do niego.
  • Skale są tylko zapisywane jeżeli są używane w choć jednym miejscu.

Występuje błąd: ”An error occurred deleting old backup data”

Błąd ten może wystąpić podczas tworzenia nowego backupu, oznacza on nie możność usuniecia starych nie potrzebnych już plików. Aby naprawić ten problem:

  • Usuń stare rekordy z tabeli "backup_ids": Sprawdź czy tabela istnieje, napraw ją i spróbuj raz jeszcze.
  • Usuń stare rekordy z tabeli "backup_files": Sprawdź czy tabela istnieje, napraw ją i spróbuj raz jeszcze.
  • Usuń stare pliki z folderu "moodledata/temp/backup": Usuń ten folder całkowicie i spróbuj raz jeszcze.

Istnieje wiele sposobów na naprawienie tabel, możesz użyć między innymi phpMyAdmina.

Występuje błąd XML: „not well-formed (invalid token) at line YYYY”

Problem ten może się pojawić w dowolnym momencie przywracania danych z backupu. Oznacza że parser XML wykrył jakąś niepoprawność w opracowywanym pliku XML i nie może poprawnie dokończyć parsowania tego pliku. Zazwyczaj błąd ten powodowany jest obecnością jakiś „nielegalnych” dodanych do Moodle poprzez skopiowanie i w klejenie tekstu z innego źródła niż prosty edytor tekstu... Aby naprawić ten problem:

  • Rozpakuj plik backupu powodujący problem do pustego folderu
  • Włączy Moodle.xml w firefox’ie. Wskazane zostanie miejsce w którym występuje błąd.
  • Edytuj plik Moodle.xml przy użyciu jakiegoś kompatybilnego z UTF8 edytora tekstu i usuń problematyczne (wskazane) znaki. Zapisz zmiany.
  • Powtarzaj ten proces (sprawdzania pliku w firefox i edycji go w dowolnym kompatybilnym z UTF8 edytorem tekstu), aż do momentu kiedy firefox nie wyświetli żadnego błędu.
  • Spakuje ponownie wszystko do archiwum zip (zawartość foldera w którym pracowałeś, nie cały folder!)
  • Przywróć kurs, korzystając z poprawionego pliku. Błąd nie powinien się już pojawić.
  • Występuje nadal jakiś problem? Przeczytaj następny paragraf.

Wciąż wystepuje błąd XML, jak wyczyścić plik XML?

W niektórych przypadkach pliki XML backupów konieczne do poprawnego przeprowadzenia procesu przywracania backupu mogą być jeszcze bardziej „zaśmiecone” niż przewiduje to powyższy paragraf. W takim przypadku spróbuj postępować wedle poniższych instrukcji:

  • Pobierz Atlassian XML Cleanr Utility z strony JIRA Atlassian.
  • Rozpakuj powodujący problemy plik zip (backup) do nowego pustego folderu.
  • Zmień nazwę niepoprawnego pliku XML z moodle.xml na moodle-unclean.xml.
  • Spakuj plik moodle-unclean.xml do pliku zip. Pobierz go z serwera i rozpakuj u siebie. Proces pakowania na serwerze, przed przesłaniem go jest o tyle istotny że pozwala na uniknięcie niechcianych (i nie widocznych) zmian kodowania „w locie” w tym pliku.
  • Przenieś pobrany Atlassian XML Cleaner Utility do tego samego folderu do którego rozpakowałeś plik moodle-unclean.xml.
  • Wykonaj następujące polecenie w swojej konsoli:
java -jar atlassian-xml-cleaner-0.1.jar moodle-unclean.xml > moodle.xml
  • Spakuj nowo utworzony plik moodle.xml do archiwum zip, i wyślij go na serwer, do folderu w którym znajdował się plik moodle-unclean.xml. Rozpakuj go potem (możesz użyć odpowiedniego narzędzia Moodle)
  • Spakuj całą zawartość folderu w którym znajduje się nowy plik xml. (Zawartość tego foldera, nie sam folder)
  • Przywróć kurs. Powinno już wszystko działać.

Nie wszystkie kursy zostały zapisane!!!

Może to być spowodowane jednym z trzech poniżej wypisanych problemów:

  1. Błąd – to może się zdarzyć gdy procedura tworzenia kopii zapasowej znalazła błąd w konkretnym kursie, i nie dokończyła zapisywania jego danych.
  2. Nieskończone – to może się zdarzyć gdy procedura tworzenia kopii zapasowej zostanie przerwana, „nie wiedząc” czemu. Przy następnym wowołaniu CRON’a zostanie podane co spowodowało przerwanie tego procesu ostatnim razem, i będzie kontynuował pomijając ten konkretny problem. Możliwym rozwiązaniem jest zwiększenie limitów serwera PHP/Apacze odnośnie czasu wykonania skryptu lub też dostępnej danemu procesowi pamięci. Sprawdzając LOGi swojego serwera możesz sprawdzić czy „crash” twojego skryptu następuje po mniej więcej podobnym czasie wykonania, jeśli czas ten jest zawsze identyczny, prawdopodobnie skrypt jest ograniczany czasowo przez zmienną PHP: max_execution_time.
  3. Ominięte – to może się zdarzyć jeśku kurs jest niedostępny studentom i nie był zmieniany w przeciągu ostatnich 31 dni. Nie jest to „błąd”, to bardzo przydatna CECHA Moodle, pozwalająca na oszczędzanie ważnego czasu procesora przez nie pracowanie nad czymś co i tak już ma swój backup.

Przywracanie backupów pre 1.6 non-ISO-8859-1 do Moodle 1.6 - Unicode

Przy przywracaniu danych które nie są w 100% zapisane w ISO-8859-1 do Moodle 1.6 (i nowszych) działających w UNICODE, może wystąpić problem. Zamiast normalnej metody polecana jest następująca:

  1. Zrób czystą instalację Moodle 1.5.x
  2. Przywróć do niej wszystkie kursy które chcesz potem przywrócić do Moodle 1.6+
  3. Zrób update tej strony do Moodle 1.6, a przy tym wykonaj skrypt migracyjny do UTF-8
  4. Zrób na tej instalacji backup tych kursów

To utworzy nowy zestaw plików kopii zapasowych które będą w 100% zapisane w UTF-8, wgranie takich plików do twojej instalacji Moodle korzystającej z UTF8 przebiegnie bez problemów.

Dlaczego niektóre kursy są pomijane?

Od wersji 1.6 wzwyż backup kursów pomija automatycznie kursy które są niedostępne studentom ORAZ nie zostały zmienione w ostatnim miesiącu (31 dniach).

Dlaczego podczas odtwarzania kursu znikają tagi html?

Podczas odtwarzania kursu zamiast

Link do <a href="http://moodle.org">MOODLE</a>  

pojawia się:

 Link do a href=http://moodle.orgMOODLE/a. 

Problem ten dotyczy serwerów, które korzystają z błędnej wersji biblioteki libxml2 (zobacz PHP bug in libxml2 2.7.1. Jeśli podczas odtwarzania kursu zauważysz, że znikają >, < and " musisz zainstalować wcześniejszą wersję libxml2 taką jak np. 2.7.0 lub 2.6.32. Błąd opisany jest tutaj: http://tracker.moodle.org/browse/MDL-16759

Patrz również

Linki zewnętrzne

Zobacz również

pt:FAQ sobre cópias de segurança