Backup i Restore del Moodle

De Wikijoan
Dreceres ràpides: navegació, cerca

A Moodle system comprises three parts:

  1. the data stored in the database,
  2. the uploaded, and other data files, stored on disc, and
  3. the files containing the Moodle code

You can confirm where all these things are for your Moodle installation by checking your config.php file. There are several parameters that tell Moodle which database to connect to:

  1. $CFG->dataroot controls where the data files are stored; and
  2. $CFG->dirroot points to where the code is stored.

Per fer una còpia de la base de dades:

mysqldump -h localhost -u root --password=******* -C -Q -e --create-options moodle > moodle_database_ddmmyyyy.sql
gzip moodle_database_ddmmyyyy.sql

Després fem una còpia de la carpeta moodledata.

mysqldump -h localhost -u root -p -C -Q -e --create-options moodle > moodle_database_192168010.sql


mysqldump: Got error: 130: Incorrect file format 'mdl_block_instance' when using LOCK TABLES

En el 192.168.0.15 el Moodle corre amb el phpMyAdmin, i faig la còpia de seguretat a través del phpMyAdmin. Segurament, com es comenta a http://docs.moodle.org/en/Site_backup, hi ha algun problema amb la codificació de caràcters.

copia_moodle.sql

If you are running mysql, import the SQL file back into a newly created database on the MySQL server. Be careful here, some backups try to import right back into the same working database that Moodle is connected to. This causes database problems that damage a Moodle installation. The best thing to do is make a new database, restore the backed up database into it, and change the Moodle config.php file to connect to this new database (this way you still have the original database). 

$ mysql -u root -p
mysql> DROP DATABASE moodle;
mysql> CREATE DATABASE moodle;

mysql -u root -p moodle < /home/joan/Escritorio/copia_moodle.sql

Continua dient Incorrect file format 'mdl_block_instance'

$ mysqlcheck arduino -u root -p

S'ha donat voltes a l'error Incorrect file format 'mdl_block_instance' i no hi ha hagut manera...

Solució (parcial)

Faig una còpia sencera del Moodle nou de trinca de la màquina 192.168.0.10

$ mysqldump -h localhost -u root -p -C -Q -e --create-options moodle > moodle_bbdd_290610.sql

i copio també moodledata/

com que no hi ha manera de fer un mysqldump de la màquina 15, la solució és copiar tots els arxius de la base de dades, que funciona, com es comenta a:

How to restore mysql databases from /var/lib/mysql/user_database/ files only?

Do a fresh MySQL installation on a server. Delete /var/lib/mysql folder. Now copy /var/lib/mysql folder old folder to new installation. Start mysql, it will work.

You can make the databases up by copying the db directory to /var/lib/mysql/. However the privileges for the db users to db should be set manually.

ho he fet i funciona. Puc arrencar el moodle amb les dades de la 15: http://192.168.0.10/moodle

Faig una còpia sobre aquest nou Moodle i dóna el mateix problema:

mysqldump -h localhost -u root -p -C -Q -e --create-options moodle > moodle_linuxserver_bbdd_290610.sql

i continua donant l'error:
mysqldump: Got error: 1017: Can't find file: './moodle/mdl_block_instance.frm' (errno: 13) when using LOCK TABLES

però almenys ja tenim una còpia del moodle en una altra màquina.

Falta que la nova instància reconegui tota la carpeta moodledata/. Copio el directori moodledata/ en la ubicació correcta (per al servidor 192.168.0.10 és /var/moodledata/), i és important canviar el propietari a l'usuari d'Internet:

$ sudo chown www-data:www-data -R moodledata/

i ja funciona. Ara ja tinc el Moodle operatiu, excepte aspectes de disseny: logo del Balmes,...

Faig més proves a veure si reparo el fitxer corrupte:

root@ubuntu-bbdd:/var/lib/mysql/moodle# sudo /etc/init.d/mysql restart
 * Stopping MySQL database server mysqld                                                                               [ OK ] 
 * Starting MySQL database server mysqld                                                                               [ OK ] 
 * Checking for corrupt, not cleanly closed and upgrade needing tables.

Sintaxis de REPAIR TABLE: REPAIR TABLE mdl_block_instance

mysql> REPAIR TABLE mdl_block_instance;
+---------------------------+--------+----------+----------------------------------------------------------------+
| Table                     | Op     | Msg_type | Msg_text                                                       |
+---------------------------+--------+----------+----------------------------------------------------------------+
| moodle.mdl_block_instance | repair | Error    | Can't find file: './moodle/mdl_block_instance.frm' (errno: 13) | 
| moodle.mdl_block_instance | repair | error    | Corrupt                                                        | 
+---------------------------+--------+----------+----------------------------------------------------------------+
2 rows in set (0.04 sec)

Si no obtiene OK en la última fila de la tabla retornada, debe intentar reparar la tabla con myisamchk --safe-recover, ya que REPAIR TABLE no implementa todas las opciones de myisamchk.

myisamchk --safe-recover mdl_block_instance

Warning: option 'key_buffer_size': unsigned value 18446744073709551615 adjusted to 4294963200
Warning: option 'read_buffer_size': unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option 'write_buffer_size': unsigned value 18446744073709551615 adjusted to 4294967295
Warning: option 'sort_buffer_size': unsigned value 18446744073709551615 adjusted to 4294967295
myisamchk: error: 'mdl_block_instance' is not a MyISAM-table

llegeixo que REPAIR TABLE funciona sólo en tablas MyISAM, per tant no crec que me'n surti per aquesta via.

Ara bé, sí que hauria de ser una MyISAM table: tables that have .MYD and .MYI files for storing data and indexes, que és el meu cas.

admin                                       | 2ec6071fb1436c1b505f0639ac946a1d |
joan                                        | 24cf39b75c4bd3a8e0b653cc8ac3f0c6 | 

update mdl_user set password='24cf39b75c4bd3a8e0b653cc8ac3f0c6' where username='admin';

ja puc entrar com a admin.

Plantilla:Author, juny 2010

Eines de l'usuari
Espais de noms
Variants
Accions
Navegació
IES Jaume Balmes
Màquines recreatives
CNC
Informàtica musical
joanillo.org Planet
Eines