2008-12-03 9 views
1

J'ai une base de données MySQL que je veux archive. Quelle est la meilleure façon de procéder?Comment archiver une base de données MySQL?

Remarque: I ne pas voulez simplement faire une sauvegarde . Je souhaite effectuer une exportation ponctuelle des données pour un stockage à long terme, de manière à pouvoir les consulter ultérieurement. En particulier, je ne veux pas être lié à MySQL, une base de données ou de préférence un logiciel donné (je voudrais vraiment qu'il soit trivial d'écrire un programme qui peut le lire, quelque chose comme quelques douzaines de lignes de C ou de Perl) . Mon plan actuel consiste à vider les fichiers dans une table à l'aide du moteur CSV, puis à les graver sur DVD. C'est sympa car CSV peut être chargé par autant de programmes différents. Le seul truc dans ceci est que la masse des données est dans les colonnes Blob comme dans les binaires, donc je vais devoir décoder comment cela est encodé.

+0

ses données. Cela va devoir être lié à quelque chose. Pourquoi ne pas utiliser mysqldump? Est-ce ASCII qui est assez portable ces jours-ci. –

+0

Les fichiers Mysqldump ne sont pas ASCII. http://marksverbiage.blogspot.com/2007/12/mysql-dumps-are-not-text-files.html –

Répondre

2

L'exportation au format CSV, le codage de données binaires avec un codage Base64, puis la compression avec gzip sont une bonne solution. Je vous conseille de bien réfléchir à votre choix de DVD. Les supports enregistrables ont tendance à se détériorer rapidement au fil des ans.

+0

Quoi de mieux? Mon point principal est de le retirer du disque dur et la bande serait plus difficile d'accès (et il s'agit d'un support enregistrable). – BCS

+0

Le DVD se détériore généralement beaucoup plus rapidement que la bande. Le stockage en ligne comme Amazon S3 pourrait être une autre option. –

+0

Stockez les données de redondance (par exemple, avec par2) sur les DVD et vérifiez-les régulièrement. Si des problèmes * any * apparaissent, utilisez les données de redondance pour les récupérer et gravez un nouveau disque. Gravez également de nouveaux disques régulièrement (par exemple tous les 5 ans environ). http://en.wikipedia.org/wiki/Optical_media_preservation a de bons liens. – derobert

2

Vous pouvez vider l'intégralité de la base de données dans un fichier .sql et utiliser un VCS pour archiver chaque version. Si vous aviez besoin d'une ancienne version, vous pouvez l'exporter hors du référentiel et restaurer à partir de celui-ci.

0
mysql> ALTER TABLE arch2 ENGINE='ARCHIVE'; 

enter image description here

Questions connexes