|
|
5 年之前 | |
|---|---|---|
| __pycache__ | 5 年之前 | |
| core | 5 年之前 | |
| .gitignore | 5 年之前 | |
| clonedb.py | 5 年之前 | |
| readme.md | 5 年之前 | |
| requirements.txt | 5 年之前 | |
| settings.yml | 5 年之前 |
Script de clonage des bases de données MySql
Usage: clonedb.py [-v] [-y] [] clonedb.py (-h | --help) clonedb.py --version
Options: -y, --yes Do not ask for confirmation -h --help Show this screen. --version Show version.
requiert python 3.6+:
sudo apt-get install python3 python3-pip
git clone https://gitlab.2iopenservice.com/olivier/clonedb
cd clonedb
pip3 install -r requirements.txt
Pour configurer les opérations de clônage, ouvrez le fichier settings.yml.
La structure du fichier est la suivante:
servers:
[server_name]:
host: host
description: ...
mysql:
port: 3306
username: user
password: my_password
ssh:
key_file: ~/.ssh/id_rsa
port: 22
user: user
operations:
[op_name]:
dbname: my_db
from_server: [server_name]
to_server: [server_name]
is_default: True
ignore_tables: []
ignore_views: []
structure_only: []
compress: True
filter_tables: []
Ajouter une entrée dans la section servers pour
le serveur d'origine et le serveur cible de l'opération de clônage.
On peut ajouter une courte description, par exemple "Prod", ou "Test"
Pour chaque serveur, ajouter une section mysql dans laquelle
devront apparaitre les paramètres de connexion au serveur mysql:
port, username, password
Si l'accès au serveur doit passer par un tunnel SSH, ajouter
une section ssh, dans laquelle
pourront apparaitre les paramètres de connexion SSH:
key_file (chemin d'accès à la clé privée ssh), port, user
Les noms donnés à chaque serveur (
[server_name]) n'ont pas d'importance
Ensuite, ajouter une entrée dans la section operations et définir au moins les trois paramètres suivants:
On pourra aussi ajouter les paramètres suivants:
is_default: l'opération sera lancée par défaut, losque clonedb est lancé sans l'argument <opname>compress: compresse les dumps du serveur source; diminue le volume de données mais augmente la charge du serveur source,ignore_tables: liste de noms de tables ou d'expressions régulières, les tables correspondantes seront ignoréesstructure_only: liste de noms de tables ou d'expressions régulières, seule la structure des tables
correspondantes sera clonée, pas les données contenues.ignore_views: liste de noms de tables ou d'expressions régulières, les vues correspondantes seront ignoréesfilter_tables: liste de noms de tables ou d'expressions régulières; si une liste est donnée,
seules les tables correspondantes seront traitées.The user specified as a definer ('username'@'%') does not exist: add a user account
to the targeted mysql server named username@% with admin privileges