Il s'agit de la commande pt-archiverp qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
pt-archiver - Archive les lignes d'une table MySQL dans une autre table ou un fichier.
SYNOPSIS
Utilisation : pt-archiver [OPTIONS] --source DSN --where WHERE
pt-archiver grignote les enregistrements d'une table MySQL. Les arguments --source et --dest utilisent DSN
syntaxe; si COPY est yes, --dest utilise par défaut la valeur de la clé de --source.
Exemples :
Archivez toutes les lignes de oltp_server vers olap_server et dans un fichier :
pt-archiver --source h=oltp_server,D=test,t=tbl --dest h=olap_server \
--file '/var/log/archive/%Y-%m-%d-%D.%t' \
--où "1=1" --limit 1000 --commit-each
Purger (supprimer) les lignes orphelines de la table enfant :
pt-archiver --source h=hôte,D=db,t=enfant --purge \
--where 'N'EXISTE PAS (SELECT * FROM parent WHERE col=child.col)'
LES RISQUES
Percona Toolkit est mature, éprouvé dans le monde réel et bien testé, mais toutes les bases de données
outils peuvent présenter un risque pour le système et le serveur de base de données. Avant d'utiliser cet outil,
s'il te plaît:
· Lire la documentation de l'outil
· Revoir les "BUGS" connus de l'outil
· Tester l'outil sur un serveur hors production
· Sauvegardez votre serveur de production et vérifiez les sauvegardes
DESCRIPTION
pt-archiver est l'outil que j'utilise pour archiver des tables comme décrit dans
<http://tinyurl.com/mysql-archiving>. L'objectif est un travail à faible impact,
grignoter les anciennes données de la table sans trop impacter les requêtes OLTP. Vous pouvez insérer le
données dans une autre table, qui n'a pas besoin d'être sur le même serveur. Vous pouvez également l'écrire sur un
fichier dans un format adapté à LOAD DATA INFILE. Ou vous ne pouvez faire ni l'un ni l'autre, auquel cas c'est
juste un DELETE incrémentiel.
pt-archiver est extensible via un mécanisme de plugin. Vous pouvez injecter votre propre code pour ajouter
logique d'archivage avancée qui pourrait être utile pour l'archivage des données dépendantes, en appliquant
des règles métier complexes ou la création d'un entrepôt de données pendant le processus d'archivage.
Vous devez choisir les valeurs avec soin pour certaines options. Les plus importants sont "--limit",
"--retries" et "--txn-size".
La stratégie consiste à trouver la ou les premières lignes, puis à parcourir un index vers l'avant uniquement pour en trouver plus
rangées efficacement. Chaque requête suivante ne doit pas analyser l'intégralité de la table ; il faut chercher
dans l'index, puis parcourez jusqu'à ce qu'il trouve plus de lignes archivables. Spécification de l'index avec
la partie "i" de l'argument "--source" peut être cruciale pour cela ; utilisez "--dry-run" pour
examinez les requêtes générées et assurez-vous de les EXPLIQUER pour voir si elles sont efficaces
(la plupart du temps, vous souhaiterez probablement scanner la clé PRIMARY, qui est la valeur par défaut). Même
mieux, examinez la différence dans les compteurs d'état du gestionnaire avant et après l'exécution du
requête et assurez-vous qu'il n'analyse pas la table entière à chaque requête.
Vous pouvez désactiver partiellement ou totalement les optimisations de recherche puis de numérisation avec "--no-ascend"
et "--ascend-first". Parfois, cela peut être plus efficace pour les clés multi-colonnes. Être
conscient que pt-archiver est conçu pour démarrer au début de l'index qu'il choisit et analyser
il en avant uniquement. Cela peut entraîner de longs balayages de table si vous essayez de grignoter à partir de
la fin du tableau par un index autre que celui qu'il préfère. Voir "--source" et lire
la documentation sur la partie "i" si cela vous concerne.
Percône XtraDB Grappe
pt-archiver fonctionne avec Percona XtraDB Cluster (PXC) 5.5.28-23.7 et plus récent, mais il existe
trois limitations à prendre en compte avant d'archiver sur un cluster :
Erreur lors de la validation
pt-archiver ne vérifie pas les erreurs lorsqu'il valide les transactions. Les commits sur PXC peuvent
échoue, mais l'outil ne vérifie pas ou ne réessaye pas encore la transaction lorsque cela se produit.
Si cela se produit, l'outil mourra.
Mes tableaux ISAM
L'archivage des tables MyISAM fonctionne, mais la prise en charge de MyISAM dans PXC est encore expérimentale au
moment de cette sortie. Il existe plusieurs bogues connus avec PXC, les tables MyISAM et
Colonnes "AUTO_INCREMENT". Par conséquent, vous devez vous assurer que l'archivage ne sera pas directement
ou entraînent indirectement l'utilisation des valeurs par défaut "AUTO_INCREMENT" pour une table MyISAM.
Par exemple, cela se produit avec "--dest" si "--columns" est utilisé et le
La colonne "AUTO_INCREMENT" n'est pas incluse. L'outil ne vérifie pas cela !
Options hors cluster
Certaines options peuvent fonctionner ou non. Par exemple, si un nœud de cluster n'est pas également un
slave, alors "--check-slave-lag" ne fonctionne pas. Et comme les tables PXC sont généralement
InnoDB, mais InnoDB ne prend pas en charge "INSERT DELAYED", alors "--delayed-insert" ne prend pas en charge
travail. D'autres options peuvent également ne pas fonctionner, mais l'outil ne les vérifie pas, donc
vous devez tester l'archivage sur un cluster de test avant d'archiver sur votre vrai cluster.
SORTIE
Si vous spécifiez "--progress", la sortie est une ligne d'en-tête, plus une sortie d'état à intervalles.
Chaque ligne de la sortie d'état répertorie la date et l'heure actuelles, le nombre de secondes pt-
l'archiveur a été exécuté et le nombre de lignes qu'il a archivées.
Si vous spécifiez "--statistics", "pt-archiver" affiche la synchronisation et d'autres informations pour vous aider
vous identifiez quelle partie de votre processus d'archivage prend le plus de temps.
LA GESTION DES ERREURS
pt-archiver essaie de capter les signaux et de quitter normalement ; par exemple, si vous l'envoyez
SIGTERM (Ctrl-C sur les systèmes UNIX), il captera le signal, imprimera un message sur le
signal, et sortir assez normalement. Il n'exécutera pas "--analyze" ou "--optimize",
car ceux-ci peuvent prendre beaucoup de temps à terminer. Il exécutera tous les autres codes normalement,
y compris l'appel après_finish() sur n'importe quel plugin (voir "EXTENSION").
En d'autres termes, un signal, s'il est détecté, sortira de la boucle d'archivage principale et sautera
optimiser/analyser.
OPTIONS
Spécifiez au moins l'un des éléments "--dest", "--file" ou "--purge".
"--ignore" et "--replace" s'excluent mutuellement.
"--txn-size" et "--commit-each" s'excluent mutuellement.
"--low-priority-insert" et "--delayed-insert" s'excluent mutuellement.
"--share-lock" et "--for-update" s'excluent mutuellement.
"--analyze" et "--optimize" s'excluent mutuellement.
"--no-ascend" et "--no-delete" s'excluent mutuellement.
Les valeurs DSN dans "--dest" sont par défaut les valeurs de "--source" si COPY est yes.
--analyser
type : chaîne
Exécutez ensuite ANALYZE TABLE sur "--source" et/ou "--dest".
Exécute ANALYZE TABLE après avoir terminé. L'argument est une chaîne arbitraire. Si ça
contient la lettre 's', la source sera analysée. S'il contient 'd', le
destination sera analysée. Vous pouvez spécifier l'un ou les deux. Par exemple, le
ce qui suit analysera les deux :
--analyse=ds
Voirhttp://dev.mysql.com/doc/en/analyze-table.html> pour plus de détails sur ANALYSE TABLE.
--monter en premier
Ne montez que la première colonne de l'index.
Si vous souhaitez utiliser l'optimisation d'index ascendant (voir "--no-ascend"), mais ne
voulez encourir la surcharge de l'ascension d'un grand index multi-colonnes, vous pouvez utiliser ceci
option pour dire à pt-archiver de ne remonter que la colonne la plus à gauche de l'index. Ceci peut
fournir une amélioration significative des performances au lieu de ne pas remonter du tout l'indice, tout en
évitant le coût de la remontée de l'ensemble de l'indice.
Voir "EXTENDING" pour une discussion sur la façon dont cela interagit avec les plugins.
--demander-passer
Demander un mot de passe lors de la connexion à MySQL.
--amortir
Sortie du tampon vers "--file" et vidage à la validation.
Désactive le vidage automatique vers "--file" et vide "--file" sur le disque uniquement lors d'une transaction
s'engage. Cela signifie généralement que le fichier est vidé par le système d'exploitation, donc
il peut également y avoir des vidages implicites sur le disque entre les commits. La valeur par défaut est de
vider "--file" sur le disque après chaque ligne.
Le danger est qu'un crash peut entraîner une perte de données.
L'augmentation des performances que j'ai constatée en utilisant "--buffer" est d'environ 5 à 15 %.
Votre kilométrage peut varier.
--suppression en bloc
Supprimez chaque morceau avec une seule instruction (implique "--commit-each").
Supprimez chaque bloc de lignes en bloc avec une seule instruction "DELETE". La déclaration
supprime chaque ligne entre la première et la dernière ligne du bloc, inclus. Ça implique
"--commit-each", car ce serait une mauvaise idée d'"INSERER" les lignes une à la fois et
commitez-les avant le bloc "DELETE".
La méthode normale consiste à supprimer chaque ligne par sa clé primaire. Les suppressions en bloc peuvent être un
beaucoup plus vite. Ils aussi pourrait pas be plus rapide si vous avez une clause "WHERE" complexe.
Cette option reporte complètement tout le traitement "DELETE" jusqu'à ce que le bloc de lignes soit
fini. Si vous avez un plugin sur la source, sa méthode "before_delete" ne sera pas
appelé. Au lieu de cela, sa méthode "before_bulk_delete" est appelée plus tard.
ATTENTION: si vous avez un plugin sur la source qui ne renvoie parfois pas vrai de
"is_archivable()", vous ne devez utiliser cette option que si vous comprenez ce qu'elle fait. Si
le plugin demande à "pt-archiver" de ne pas archiver une ligne, elle sera quand même supprimée par
la suppression en masse !
--[no]limite de suppression groupée
par défaut : oui
Ajoutez "--limit" à l'instruction "--bulk-delete".
Il s'agit d'une option avancée et vous ne devez pas la désactiver à moins que vous ne sachiez ce que vous êtes
faire et pourquoi ! Par défaut, "--bulk-delete" ajoute une clause "--limit" au bloc
supprimer l'instruction SQL. Dans certains cas, cette clause peut être omise en précisant
"--no-bulk-delete-limit". "--limit" doit toujours être spécifié.
--bulk-insérer
Insérez chaque morceau avec LOAD DATA INFILE (implique "--bulk-delete" "--commit-each").
Insérez chaque bloc de lignes avec "LOAD DATA LOCAL INFILE". Cela peut être beaucoup plus rapide que
insérer une ligne à la fois avec les instructions "INSERT". Il est mis en œuvre en créant un
fichier temporaire pour chaque bloc de lignes, et en écrivant les lignes dans ce fichier au lieu de
en les insérant. Lorsque le morceau est terminé, il télécharge les lignes.
Pour protéger la sécurité de vos données, cette option force l'utilisation des suppressions en bloc. Ce
serait dangereux de supprimer chaque ligne telle qu'elle est trouvée, avant d'insérer les lignes dans le
destination en premier. Forcer les suppressions en bloc garantit que la suppression attend que le
l'insertion est réussie.
Les options "--low-priority-insert", "--replace" et "--ignore" fonctionnent avec cela
option, mais "--delayed-insert" ne le fait pas.
Si "LOAD DATA LOCAL INFILE" renvoie une erreur dans les lignes de "La commande utilisée n'est pas
autorisé avec cette version de MySQL", reportez-vous à la documentation de l'option DSN "L".
--jeu de caractères
forme courte : -A ; type : chaîne
Jeu de caractères par défaut. Si la valeur est utf8, définit le binmode de Perl sur STDOUT sur utf8,
passe l'option mysql_enable_utf8 à DBD::mysql et exécute SET NAMES UTF8 après
connexion à MySQL. Toute autre valeur définit binmode sur STDOUT sans la couche utf8,
et exécute SET NAMES après la connexion à MySQL.
Notez que seuls les jeux de caractères connus par MySQL sont reconnus ; Ainsi, par exemple, "UTF8" sera
fonctionnera, mais "UTF-8" ne fonctionnera pas.
Voir aussi "--[no]check-charset".
--[no]vérifier le jeu de caractères
par défaut : oui
Assurez-vous que les jeux de caractères de connexion et de table sont identiques. La désactivation de cette vérification peut
provoquer la conversion erronée du texte d'un jeu de caractères à un autre (généralement à partir de
utf8 à latin1) qui peut entraîner une perte de données ou mojibake. La désactivation de cette vérification peut être
utile ou nécessaire lorsque des conversions de jeux de caractères sont prévues.
--[no]colonnes de contrôle
par défaut : oui
Assurez-vous que "--source" et "--dest" ont les mêmes colonnes.
Activé par défaut ; oblige pt-archiver à vérifier que les tables source et destination
ont les mêmes colonnes. Il ne vérifie pas l'ordre des colonnes, le type de données, etc.
vérifie que toutes les colonnes de la source existent dans la destination et vice versa. Si
il y a des différences, pt-archiver se fermera avec une erreur.
Pour désactiver cette vérification, spécifiez --no-check-columns.
--check-intervalle
type : heure ; par défaut : 1s
Si "--check-slave-lag" est donné, cela définit combien de temps l'outil met en pause chaque
fois qu'il découvre qu'un esclave est à la traîne.
Ce contrôle est effectué toutes les 100 lignes.
--check-slave-lag
type : chaîne ; répétable : oui
Suspendez l'archivage jusqu'à ce que le décalage esclave du DSN spécifié soit inférieur à "--max-lag". Cette
L'option peut être spécifiée plusieurs fois pour vérifier plus d'un esclave.
--Colonnes
forme courte : -c ; type : tableau
Liste de colonnes séparées par des virgules à archiver.
Spécifiez une liste de colonnes séparées par des virgules à récupérer, à écrire dans le fichier et à insérer dans
le tableau des destinations. Si spécifié, pt-archiver ignore les autres colonnes à moins qu'il
doit les ajouter à l'instruction "SELECT" pour remonter un index ou supprimer des lignes.
Il récupère et utilise ces colonnes supplémentaires en interne, mais ne les écrit pas dans le
fichier ou à la table de destination. Ce ne les transmettre aux plugins.
Voir aussi "--primary-key-only".
--commit-chaque
Validez chaque ensemble de lignes extraites et archivées (désactive "--txn-size").
Valide les transactions et vide "--file" après l'archivage de chaque ensemble de lignes,
avant de récupérer le prochain ensemble de lignes et avant de dormir si "--sleep" est spécifié.
Désactive "--txn-size" ; utilisez "--limit" pour contrôler la taille de la transaction avec
"--s'engager-chacun".
Cette option est utile comme raccourci pour faire "--limit" et "--txn-size" la même valeur,
mais plus important encore, il évite que les transactions restent ouvertes lors de la recherche de plus
Lignes. Par exemple, imaginez que vous archivez d'anciennes lignes depuis le début d'une très
grande table, avec "--limit" 1000 et "--txn-size" 1000. Après une certaine période de recherche
et en archivant 1000 lignes à la fois, pt-archiver trouve les 999 dernières lignes et archives
eux, puis exécute le prochain SELECT pour trouver plus de lignes. Cela scanne le reste du
table, mais ne trouve jamais plus de lignes. Il a maintenu une transaction ouverte pendant très longtemps
temps, seulement pour déterminer qu'il est fini de toute façon. Vous pouvez utiliser "--commit-each" pour éviter
ce.
--config
type : tableau
Lisez cette liste de fichiers de configuration séparés par des virgules ; si spécifié, ce doit être le premier
option sur la ligne de commande.
--base de données
forme courte : -D ; type : chaîne
Connectez-vous à cette base de données.
--delayed-insertion
Ajoutez le modificateur DELAYED aux instructions INSERT.
Ajoute le modificateur DELAYED aux instructions INSERT ou REPLACE. Voir
<http://dev.mysql.com/doc/en/insert.html> pour les détails.
--dest
tapez : DSN
DSN spécifiant la table dans laquelle archiver.
Cet élément spécifie une table dans laquelle pt-archiver insérera les lignes archivées à partir de
"--la source". Il utilise le même format d'argument key=val que "--source". Le plus manquant
les valeurs par défaut sont les mêmes que "--source", vous n'avez donc pas à répéter les options
qui sont les mêmes dans "--source" et "--dest". Utilisez l'option "--help" pour voir quel
les valeurs sont copiées à partir de "--source".
ATTENTION: Utilisation d'une option DSN de fichier d'options par défaut (F) qui définit un socket pour
"--source" oblige pt-archiver à se connecter à "--dest" en utilisant ce socket à moins qu'un autre
socket pour "--dest" est spécifié. Cela signifie que pt-archiver peut se connecter de manière incorrecte
à "--source" lorsqu'il se connecte à "--dest". Par exemple:
--source F=host1.cnf,D=db,t=tbl --dest h=host2
Lorsque pt-archiver se connecte à "--dest", host2, il se connectera via le "--source",
host1, socket défini dans host1.cnf.
- à sec
Imprimez les requêtes et quittez sans rien faire.
Provoque la fermeture de pt-archiver après l'impression du nom de fichier et des instructions SQL qu'il utilisera.
--déposer
type : chaîne
Fichier à archiver, avec FORMAT DE DATE()-comme le formatage.
Nom de fichier dans lequel écrire les lignes archivées. Un sous-ensemble de MySQL FORMAT DE DATE() formatage
les codes sont autorisés dans le nom de fichier, comme suit :
%d Jour du mois, numérique (01..31)
%H Heure (00..23)
%i minutes, numérique (00..59)
%m Mois, numérique (01..12)
%s secondes (00..59)
%Y Année, numérique, quatre chiffres
Vous pouvez également utiliser les codes de format supplémentaires suivants :
%D Nom de la base de données
%t Nom de la table
Exemple :
--file '/var/log/archive/%Y-%m-%d-%D.%t'
Le contenu du fichier est dans le même format utilisé par SELECT INTO OUTFILE, comme documenté
dans le manuel MySQL : lignes terminées par des sauts de ligne, colonnes terminées par des tabulations, NULL
les caractères sont représentés par \N et les caractères spéciaux sont échappés par \. Cela permet
vous rechargez un fichier avec les paramètres par défaut de LOAD DATA INFILE.
Si vous voulez un en-tête de colonne en haut du fichier, voir "--header". Le fichier est auto-
vidé par défaut ; voir "--buffer".
--pour-mise à jour
Ajoute le modificateur FOR UPDATE aux instructions SELECT.
Pour plus de détails, voirhttp://dev.mysql.com/doc/en/innodb-locking-reads.html>.
--entête
Imprimer l'en-tête de colonne en haut de "--file".
Écrit les noms de colonnes sur la première ligne du fichier donné par "--file". Si le fichier
existe, n'écrit pas les en-têtes ; cela garde le fichier chargeable avec LOAD DATA INFILE dans
au cas où vous y ajoutez plus de sortie.
--Aidez-moi
Afficher l'aide et quitter.
--high-priority-select
Ajoute le modificateur HIGH_PRIORITY aux instructions SELECT.
Voirhttp://dev.mysql.com/doc/en/select.html> pour les détails.
--hôte
forme courte : -h ; type : chaîne
Connectez-vous à l'hôte.
--ignorer
Utilisez IGNORE pour les instructions INSERT.
Fait que les INSERT dans "--dest" sont INSERT IGNORE.
--limite
tapez : entier ; par défaut : 1
Nombre de lignes à récupérer et archiver par instruction.
Limite le nombre de lignes renvoyées par les instructions SELECT qui récupèrent les lignes à
archiver. La valeur par défaut est une ligne. Il peut être plus efficace d'augmenter la limite, mais
attention si vous archivez peu, en sautant de nombreuses lignes ; cela peut potentiellement
provoquer plus de conflits avec d'autres requêtes, selon le moteur de stockage, la transaction
niveau d'isolement et des options telles que "--for-update".
--locale
N'écrivez pas de requêtes OPTIMIZE ou ANALYZE dans binlog.
Ajoute le modificateur NO_WRITE_TO_BINLOG aux requêtes ANALYZE et OPTIMIZE. Voir "--analyser"
pour en savoir plus.
--suppression à faible priorité
Ajoute le modificateur LOW_PRIORITY aux instructions DELETE.
Voirhttp://dev.mysql.com/doc/en/delete.html> pour les détails.
--low-priority-insérer
Ajoute le modificateur LOW_PRIORITY aux instructions INSERT ou REPLACE.
Voirhttp://dev.mysql.com/doc/en/insert.html> pour les détails.
--max-flow-ctl
type: flotteur
Un peu similaire à --max-lag mais pour les clusters PXC. Vérifier le temps moyen passé en cluster
faire une pause pour le contrôle de flux et mettre l'outil en pause s'il dépasse le pourcentage indiqué
dans l'option. La valeur par défaut n'est pas de contrôle de contrôle de flux. Cette option est disponible pour PXC
version 5.6 ou supérieure.
--max-décalage
type : heure ; par défaut : 1s
Suspendre l'archivage si l'esclave donné par "--check-slave-lag" est en retard.
Cette option oblige pt-archiver à regarder l'esclave chaque fois qu'il est sur le point de récupérer
une autre rangée. Si le décalage de l'esclave est supérieur à la valeur de l'option, ou si l'esclave
n'est pas en cours d'exécution (son décalage est donc NULL), pt-table-checksum dort pour "--check-interval"
secondes, puis examine à nouveau le décalage. Il se répète jusqu'à ce que l'esclave soit rattrapé,
puis procède à la récupération et à l'archivage de la ligne.
Cette option peut éliminer le besoin de "--sleep" ou "--sleep-coef".
--pas de montée
N'utilisez pas l'optimisation d'index ascendant.
L'optimisation d'index ascendant par défaut entraîne l'optimisation répétée de « pt-archiver »
Les requêtes "SELECT" afin qu'elles recherchent dans l'index où la requête précédente s'est terminée, puis parcourent
le long de celui-ci, plutôt que de numériser à chaque fois depuis le début du tableau. C'est
activé par défaut car c'est généralement une bonne stratégie pour les accès répétés.
Les index volumineux à plusieurs colonnes peuvent rendre la clause WHERE suffisamment complexe pour que
cela pourrait en fait être moins efficace. Considérons par exemple une CLÉ PRIMAIRE à quatre colonnes
sur (a, b, c, d). La clause WHERE pour commencer là où la dernière requête s'est terminée est la suivante :
O (un > ?)
OU (a = ? ET b > ?)
OU (a = ? ET b = ? ET c > ?)
OU (a = ? ET b = ? ET c = ? ET d >= ?)
Remplir les espaces réservés avec des valeurs utilise la mémoire et le processeur, ajoute du trafic réseau et
frais d'analyse et peut rendre la requête plus difficile à optimiser pour MySQL. Une quatre colonnes
clé n'est pas un gros problème, mais une clé de dix colonnes dans laquelle chaque colonne autorise "NULL" pourrait
être.
L'augmentation de l'index peut ne pas être nécessaire si vous savez que vous supprimez simplement des lignes
du début de la table en morceaux, mais sans laisser de trous, donc à partir de
le début de la table est en fait la chose la plus efficace à faire.
Voir aussi "--ascend-first". Voir "EXTENDING" pour une discussion sur la façon dont cela interagit
avec des plugins.
--pas de suppression
Ne supprimez pas les lignes archivées.
Empêche "pt-archiver" de ne pas supprimer les lignes après les avoir traitées. Cela interdit
"--no-ascend", car les activer tous les deux provoquerait une boucle infinie.
S'il y a un plugin sur le DSN source, sa méthode "before_delete" est quand même appelée,
même si "pt-archiver" n'exécutera pas la suppression. Voir « EXTENSION » pour en savoir plus sur
Plugins.
--optimiser
type : chaîne
Exécutez ensuite OPTIMIZE TABLE sur "--source" et/ou "--dest".
Exécute OPTIMIZE TABLE après avoir terminé. Voir "--analyze" pour la syntaxe de l'option et
<http://dev.mysql.com/doc/en/optimize-table.html> pour plus de détails sur OPTIMISER LA TABLE.
--le mot de passe
forme courte : -p ; type : chaîne
Mot de passe à utiliser lors de la connexion. Si le mot de passe contient des virgules, elles doivent être échappées
avec une barre oblique inverse : "exam\,ple"
--pid
type : chaîne
Créez le fichier PID donné. L'outil ne démarre pas si le fichier PID existe déjà et
le PID qu'il contient est différent du PID actuel. Cependant, si le fichier PID
existe et que le PID qu'il contient n'est plus en cours d'exécution, l'outil écrasera le PID
fichier avec le PID actuel. Le fichier PID est supprimé automatiquement à la fermeture de l'outil.
--brancher
type : chaîne
Nom du module Perl à utiliser comme plugin générique.
Spécifiez le nom du module Perl d'un plugin à usage général. Il est actuellement utilisé uniquement
pour les statistiques (voir "--statistics") et doit avoir "new()" et une méthode "statistics()".
La méthode "new( src =" $src, dst => $dst, opts => $o )> obtient la source et
les DSN de destination et leurs connexions à la base de données, tout comme les DSN spécifiques à la connexion
les plugins le font. Il obtient également un objet OptionParser ($o) pour accéder à la ligne de commande
options (exemple : "$o-"get('purge');>).
La méthode "statistics(\%stats, $time)" obtient un hashref des statistiques collectées par
le travail d'archivage et l'heure à laquelle tout le travail a commencé.
--Port
forme courte : -P ; tapez : entier
Numéro de port à utiliser pour la connexion.
--clé-primaire uniquement
Colonnes de clé primaire uniquement.
Un raccourci pour spécifier "--columns" avec les colonnes de clé primaire. C'est un
efficacité si vous souhaitez simplement purger des lignes ; cela évite d'aller chercher la ligne entière, quand
seules les colonnes de clé primaire sont nécessaires pour les instructions "DELETE". Voir aussi "--purge".
--le progrès
tapez : entier
Imprimez les informations de progression toutes les X lignes.
Imprime l'heure actuelle, le temps écoulé et les lignes archivées toutes les X lignes.
--purge
Purger au lieu d'archiver ; permet d'omettre "--file" et "--dest".
Permet l'archivage sans argument "--file" ou "--dest", ce qui est effectivement une purge
puisque les lignes sont simplement supprimées.
Si vous souhaitez simplement purger des lignes, envisagez de spécifier les colonnes de clé primaire de la table
avec "--primary-key-only". Cela empêchera de récupérer toutes les colonnes du serveur pour
sans raison.
--suppression rapide
Ajoute le modificateur QUICK aux instructions DELETE.
Voirhttp://dev.mysql.com/doc/en/delete.html> pour les détails. Comme indiqué dans le
documentation, dans certains cas, il peut être plus rapide d'utiliser DELETE QUICK suivi de OPTIMIZE
TABLE. Vous pouvez utiliser "--optimize" pour cela.
--silencieux
forme courte : -q
N'imprimez aucune sortie, comme pour "--statistics".
Supprime la sortie normale, y compris la sortie de "--statistics", mais ne supprime pas
la sortie de "--why-quit".
--remplacer
Entraîne l'écriture des INSERT dans "--dest" sous la forme REPLACE.
--réessais
tapez : entier ; par défaut : 1
Nombre de tentatives par délai d'attente ou blocage.
Spécifie le nombre de fois que pt-archiver doit réessayer lorsqu'il y a un verrou InnoDB
délai d'attente ou blocage. Lorsque les tentatives sont épuisées, pt-archiver se fermera avec un
Erreur.
Réfléchissez bien à ce que vous voulez qu'il se passe lorsque vous archivez entre un mélange de
moteurs de stockage transactionnels et non transactionnels. L'INSERTION à "--dest" et
DELETE de "--source" sont sur des connexions séparées, donc ils ne sont pas réellement
participent à la même transaction même s'ils sont sur le même serveur. Cependant, pt-
l'archiveur implémente des transactions distribuées simples dans le code, donc des commits et des rollbacks
devrait se produire comme vous le souhaitez entre les deux connexions.
Pour le moment, je n'ai écrit aucun code pour gérer les erreurs avec le stockage transactionnel
moteurs autres qu'InnoDB. Demandez cette fonctionnalité si vous en avez besoin.
--Durée
type : heure
Le temps de courir avant de sortir.
Suffixe facultatif s=secondes, m=minutes, h=heures, d=jours ; s'il n'y a pas de suffixe, s est utilisé.
--[no]safe-auto-incrément
par défaut : oui
Ne pas archiver la ligne avec max AUTO_INCREMENT.
Ajoute une clause WHERE supplémentaire pour empêcher pt-archiver de supprimer la ligne la plus récente lorsque
ascendant une clé AUTO_INCREMENT à une seule colonne. Cela évite la réutilisation
AUTO_INCREMENT valeurs si le serveur redémarre, et est activé par défaut.
La clause WHERE supplémentaire contient la valeur maximale de la colonne d'auto-incrémentation à partir de
le début de la tâche d'archivage ou de purge. Si de nouvelles lignes sont insérées pendant pt-archiver
est en cours d'exécution, il ne les verra pas.
--sentinelle
type : chaîne ; par défaut : /tmp/pt-archiver-sentinel
Quittez si ce fichier existe.
La présence du fichier spécifié par "--sentinel" entraînera l'arrêt de pt-archiver
archivage et sortie. La valeur par défaut est /tmp/pt-archiver-sentinel. Vous pourriez trouver ceci
pratique pour arrêter les tâches cron gracieusement si nécessaire. Voir aussi "--stop".
--set-vars
type : tableau
Définissez les variables MySQL dans cette liste de paires "variable=valeur" séparées par des virgules.
Par défaut, l'outil définit :
wait_timeout=10000
Les variables spécifiées sur la ligne de commande remplacent ces valeurs par défaut. Par exemple,
spécifier "--set-vars wait_timeout=500" remplace la valeur par défaut de 10000.
L'outil imprime un avertissement et continue si une variable ne peut pas être définie.
--share-lock
Ajoute le modificateur LOCK IN SHARE MODE aux instructions SELECT.
Voirhttp://dev.mysql.com/doc/en/innodb-locking-reads.html>.
--ignorer-les-vérifications-de-clés-étrangères
Désactive les vérifications de clé étrangère avec SET FOREIGN_KEY_CHECKS=0.
--dormir
tapez : entier
Temps de sommeil entre les récupérations.
Spécifie la durée de sommeil entre les instructions SELECT. La valeur par défaut est de ne pas dormir à
tous. Les transactions ne sont PAS validées et le fichier "--file" n'est PAS vidé, avant
en train de dormir. Voir "--txn-size" pour contrôler cela.
Si "--commit-each" est spécifié, la validation et le vidage se produisent avant de dormir.
--sommeil-coef
type: flotteur
Calculez "--sleep" comme un multiple de la dernière fois SELECT.
Si cette option est spécifiée, pt-archiver se mettra en veille pendant la durée de la requête du dernier
SELECT multiplié par le coefficient spécifié.
Il s'agit d'une manière légèrement plus sophistiquée d'étrangler les SELECT :
durée entre chaque SELECT, en fonction de la durée des SELECT.
--prise
formes courtes; type : chaîne
Fichier socket à utiliser pour la connexion.
--la source
tapez : DSN
DSN spécifiant la table à partir de laquelle archiver (obligatoire). Cet argument est un DSN. Voir
" OPTIONS DSN " pour la syntaxe. La plupart des options contrôlent la façon dont pt-archiver se connecte à MySQL,
mais il existe des options DSN étendues dans la syntaxe de cet outil. Le D, t et je
options sélectionnez une table à archiver :
--source h=mon_serveur,D=ma_base de données,t=mon_tbl
L'option a spécifie la base de données à définir comme valeur par défaut de la connexion avec USE. Si
l'option b est vraie, elle désactive la journalisation binaire avec SQL_LOG_BIN. L'option m
spécifie des actions enfichables, qu'un module Perl externe peut fournir. Le seul
la partie requise est la table ; d'autres parties peuvent être lues à divers endroits dans le
environnement (comme les fichiers d'options).
La partie 'i' mérite une mention spéciale. Cela indique à pt-archiver quel index il doit
numériser pour archiver. Cela apparaît dans un indicateur FORCE INDEX ou USE INDEX dans le SELECT
instructions utilisées pour récupérer les lignes archivables. Si vous ne spécifiez rien, pt-archiver
découvrira automatiquement un bon index, préférant une "PRIMARY KEY" s'il en existe une. Dans mon
l'expérience, cela fonctionne généralement bien, donc la plupart du temps, vous pouvez probablement simplement omettre le
'je' partie.
L'index permet d'optimiser les accès répétés à la table ; pt-archiver se souvient
la dernière ligne qu'il récupère de chaque instruction SELECT et l'utilise pour construire un WHERE
clause, en utilisant les colonnes de l'index spécifié, qui devrait permettre à MySQL de démarrer le
next SELECT où le dernier s'est terminé, plutôt que de potentiellement scanner à partir du
début du tableau avec chaque SELECT successif. Si vous utilisez un externe
plugins, s'il vous plaît voir "EXTENDING" pour une discussion sur la façon dont ils interagissent avec ascendant
index.
Les options 'a' et 'b' vous permettent de contrôler la façon dont les instructions circulent dans le binaire
Journal. Si vous spécifiez l'option 'b', la journalisation binaire sera désactivée sur le
lien. Si vous spécifiez l'option « a », la connexion « UTILISERA » le
base de données, que vous pouvez utiliser pour empêcher les esclaves d'exécuter les événements du journal binaire
avec les options "--replicate-ignore-db". Ces deux options peuvent être utilisées comme différentes
méthodes pour atteindre le même objectif : archiver les données hors du maître, mais les laisser sur le
trimer. Par exemple, vous pouvez exécuter une tâche de purge sur le maître et l'empêcher de
se passe sur l'esclave en utilisant la méthode de votre choix.
ATTENTION: Utilisation d'une option DSN de fichier d'options par défaut (F) qui définit un socket pour
"--source" oblige pt-archiver à se connecter à "--dest" en utilisant ce socket à moins qu'un autre
socket pour "--dest" est spécifié. Cela signifie que pt-archiver peut se connecter de manière incorrecte
à "--source" lorsqu'il est censé se connecter à "--dest". Par exemple:
--source F=host1.cnf,D=db,t=tbl --dest h=host2
Lorsque pt-archiver se connecte à "--dest", host2, il se connectera via le "--source",
host1, socket défini dans host1.cnf.
--statistiques
Collectez et imprimez des statistiques de temps.
Force pt-archiver à collecter des statistiques de synchronisation sur ce qu'il fait. Ces statistiques
sont disponibles pour le plugin spécifié par "--plugin"
Sauf si vous spécifiez "--quiet", "pt-archiver" imprime les statistiques lorsqu'il se ferme. Les
les statistiques ressemblent à ceci :
Started at 2008-07-18T07:18:53, ended at 2008-07-18T07:18:53
Source : D=db,t=table
SELECT 4
INSÉRER 4
SUPPRIMER 4
Action Compte Temps Pct
commettre 10 0.1079 88.27
sélectionnez 5 0.0047 3.87
suppression 4 0.0028 2.29
insertion 4 0.0028 2.28
autre 0 0.0040 3.29
Les deux (ou trois) premières lignes indiquent les heures et les tables source et destination. Les
les trois lignes suivantes indiquent le nombre de lignes extraites, insérées et supprimées.
Les lignes restantes indiquent les nombres et le temps. Les colonnes sont l'action, le total
nombre de fois où cette action a été chronométrée, le temps total qu'elle a pris et le pourcentage de la
la durée totale d'exécution du programme. Les lignes sont triées par ordre décroissant de temps total. Les
la dernière ligne est le reste du temps non explicitement attribuée à quoi que ce soit. Les actions seront
varient en fonction des options de la ligne de commande.
Si "--why-quit" est donné, son comportement est légèrement modifié. Cette option provoque
affiche la raison de la sortie même si c'est simplement parce qu'il n'y a plus de lignes.
Cette option nécessite le module standard Time::HiRes, qui fait partie du noyau Perl sur
raisonnablement nouvelles versions de Perl.
--arrêter
Arrêtez d'exécuter les instances en créant le fichier sentinelle.
Force pt-archiver à créer le fichier sentinelle spécifié par "--sentinel" et à se fermer.
Cela devrait avoir pour effet d'arrêter toutes les instances en cours d'exécution qui surveillent le
même fichier sentinelle.
--txn-taille
tapez : entier ; par défaut : 1
Nombre de lignes par transaction.
Spécifie la taille, en nombre de lignes, de chaque transaction. Zéro désactive les transactions
tout à fait. Une fois que pt-archiver a traité ce nombre de lignes, il valide à la fois le
"--source" et le "--dest" s'il est donné, et vide le fichier donné par "--file".
Ce paramètre est essentiel à la performance. Si vous archivez à partir d'un serveur en direct,
qui par exemple effectue un travail OLTP lourd, vous devez choisir un bon équilibre entre
la taille de la transaction et la surcharge de validation. Les transactions plus importantes créent la possibilité de
plus de conflits de verrouillage et de blocages, mais les transactions plus petites entraînent des
la surcharge de commit, qui peut être importante. Pour donner une idée, sur un petit banc d'essai j'ai
travaillé avec lors de l'écriture de pt-archiver, une valeur de 500 faisait que l'archivage prenait environ 2
secondes par 1000 lignes sur une instance MySQL par ailleurs silencieuse sur mon ordinateur de bureau,
l'archivage sur disque et sur une autre table. Désactiver les transactions avec une valeur de zéro,
qui active la validation automatique, a fait chuter les performances à 38 secondes pour mille lignes.
Si vous n'archivez pas depuis ou vers un moteur de stockage transactionnel, vous souhaiterez peut-être
désactiver les transactions afin que pt-archiver n'essaie pas de s'engager.
--utilisateur
forme courte : -u ; type : chaîne
Utilisateur pour la connexion si ce n'est pas l'utilisateur actuel.
--version
Afficher la version et quitter.
--[no]vérification de la version
par défaut : oui
Recherchez la dernière version de Percona Toolkit, MySQL et d'autres programmes.
Il s'agit d'une fonctionnalité standard de « recherche automatique des mises à jour », avec deux
caractéristiques. Tout d'abord, l'outil vérifie la version des autres programmes sur le système local dans
en plus de sa propre version. Par exemple, il vérifie la version de chaque serveur MySQL
il se connecte à Perl et au module Perl DBD::mysql. Deuxièmement, il vérifie et avertit
sur les versions avec des problèmes connus. Par exemple, MySQL 5.5.25 avait un bogue critique et
a été réédité en tant que 5.5.25a.
Toutes les mises à jour ou problèmes connus sont imprimés sur STDOUT avant la sortie normale de l'outil.
Cette fonction ne doit jamais interférer avec le fonctionnement normal de l'outil.
Pour plus d'informations, visitez .
--où
type : chaîne
Clause WHERE pour limiter les lignes à archiver (obligatoire).
Spécifie une clause WHERE pour limiter les lignes archivées. Ne pas inclure le mot
OÙ. Vous devrez peut-être citer l'argument pour empêcher votre shell de l'interpréter.
Par exemple :
--where 'ts < current_date - intervalle 90 jours'
Pour des raisons de sécurité, "--where" est requis. Si vous n'avez pas besoin d'une clause WHERE, utilisez
"--où" 1=1.
--pourquoi-arrêter
Imprimer la raison de la sortie sauf si les lignes sont épuisées.
Oblige pt-archiver à imprimer un message s'il se ferme pour une raison autre que l'exécution
sur des lignes à archiver. Cela peut être utile si vous avez une tâche cron avec "--run-time"
spécifié, par exemple, et vous voulez être sûr que pt-archiver se termine avant
manquer de temps.
Si "--statistics" est donné, le comportement est légèrement modifié. Il imprimera le
raison de quitter même si c'est simplement parce qu'il n'y a plus de lignes.
Cette sortie s'imprime même si "--quiet" est donné. C'est pour que vous puissiez mettre "pt-archiver" dans
un travail "cron" et recevez un e-mail s'il y a une sortie anormale.
DSN OPTIONS
Ces options DSN sont utilisées pour créer un DSN. Chaque option est donnée comme "option=valeur".
Les options sont sensibles à la casse, donc P et p ne sont pas la même option. Il ne peut y avoir
espace avant ou après le "=" et si la valeur contient un espace, il doit être entre guillemets.
Les options DSN sont séparées par des virgules. Voir la page de manuel percona-toolkit pour plus de détails.
· une
copie : non
Base de données à UTILISER lors de l'exécution des requêtes.
· UNE
dsn : jeu de caractères ; copie : oui
Jeu de caractères par défaut.
· b
copie : non
Si vrai, désactivez binlog avec SQL_LOG_BIN.
· RÉ
dsn : base de données ; copie : oui
Base de données qui contient la table.
· F
dsn : mysql_read_default_file ; copie : oui
Lire uniquement les options par défaut du fichier donné
· H
dsn : hôte ; copie : oui
Connectez-vous à l'hôte.
· je
copie : oui
Index à utiliser.
· L
copie : oui
Activez explicitement LOAD DATA LOCAL INFILE.
Pour une raison quelconque, certains fournisseurs compilent libmysql sans --enable-local-infile
option, qui désactive l'instruction. Cela peut conduire à des situations étranges, comme le
serveur autorisant LOCAL INFILE, mais le client lève des exceptions s'il est utilisé.
Cependant, tant que le serveur autorise LOAD DATA, les clients peuvent facilement le réactiver ; Voir
et
<http://search.cpan.org/~capttofu/DBD-mysql/lib/DBD/mysql.pm>. Cette option fait
exactement ça.
Bien que nous n'ayons pas trouvé de cas où l'activation de cette option entraîne des erreurs ou des divergences
comportement, par mesure de sécurité, cette option n'est pas activée par défaut.
· m
copie : non
Nom du module de plug-in.
·p
dsn : mot de passe ; copie : oui
Mot de passe à utiliser lors de la connexion. Si le mot de passe contient des virgules, elles doivent être échappées
avec une barre oblique inverse : "exam\,ple"
P
dsn : port ; copie : oui
Numéro de port à utiliser pour la connexion.
·S
dsn : mysql_socket ; copie : oui
Fichier socket à utiliser pour la connexion.
t
copie : oui
Table à archiver de/vers.
· vous
dsn : utilisateur ; copie : oui
Utilisateur pour la connexion si ce n'est pas l'utilisateur actuel.
EXTENSION
pt-archiver est extensible en branchant des modules Perl externes pour gérer une partie de la logique et/ou
Actions. Vous pouvez spécifier un module à la fois pour le "--source" et le "--dest", avec le 'm'
partie du cahier des charges. Par exemple:
--source D=test,t=test1,m=Mon::Module1 --dest m=Mon::Module2,t=test2
Cela obligera pt-archiver à charger les packages My::Module1 et My::Module2, créer
instances d'entre eux, puis les appeler pendant le processus d'archivage.
Vous pouvez également spécifier un plugin avec "--plugin".
Le module doit fournir cette interface :
nouveau(dbh => $dbh, db => $db_name, tbl => $tbl_name)
Le constructeur du plugin reçoit une référence au handle de la base de données, la base de données
nom et nom de la table. Le plugin est créé juste après que pt-archiver ouvre le
connexion, et avant d'examiner le tableau donné dans les arguments. Cela donne le
plugin une chance de créer et de remplir des tables temporaires, ou d'effectuer d'autres travaux de configuration.
before_begin(cols => \@cols, allcols => \@allcols)
Cette méthode est appelée juste avant que pt-archiver ne commence à parcourir les lignes et
les archiver, mais après cela, il effectue tous les autres travaux de configuration (examen des structures de table,
conception de requêtes SQL, etc.). C'est la seule fois où pt-archiver dit au plugin
noms de colonnes pour les lignes qu'il transmettra au plugin lors de l'archivage.
L'argument "cols" est le nom des colonnes que l'utilisateur a demandé à être archivé, soit par
par défaut ou par l'option "--columns". L'argument "allcols" est la liste des colonnes
les noms de chaque ligne pt-archiver seront extraits de la table source. Il peut rapporter plus
colonnes que celles demandées par l'utilisateur, car il a besoin de colonnes pour son propre usage. Lorsque
les fonctions de plugin suivantes reçoivent une ligne, c'est la ligne complète contenant tous les extra
colonnes, le cas échéant, ajoutées à la fin.
is_archivable(ligne => \@ligne)
Cette méthode est appelée pour chaque ligne afin de déterminer si elle est archivable. Cette
s'applique uniquement à "--source". L'argument est la ligne elle-même, en tant que arrayref. Si la
la méthode renvoie true, la ligne sera archivée ; sinon il sera ignoré.
Sauter une ligne ajoute des complications pour les index non uniques. Normalement, pt-archiver utilise un
Clause WHERE conçue pour cibler la dernière ligne traitée comme emplacement de démarrage de l'analyse
pour la prochaine instruction SELECT. Si vous avez sauté la ligne en retournant false de
est_archivable(), pt-archiver pourrait entrer dans une boucle infinie car la ligne reste
existe. Par conséquent, lorsque vous spécifiez un plugin pour l'argument "--source", pt-archiver
modifiera légèrement sa clause WHERE. Au lieu de commencer par "supérieur ou égal
à" la dernière ligne traitée, il commencera "strictement supérieur à". Cela fonctionnera
très bien sur les index uniques tels que les clés primaires, mais il peut sauter des lignes (laisser des trous) sur
index non uniques ou en remontant uniquement la première colonne d'un index.
"pt-archiver" modifiera la clause de la même manière si vous spécifiez "--no-delete",
car encore une fois une boucle infinie est possible.
Si vous spécifiez l'option "--bulk-delete" et retournez false à partir de cette méthode,
"pt-archiver" peut ne pas faire ce que vous voulez. La ligne ne sera pas archivée, mais elle le sera
supprimé, car les suppressions en bloc fonctionnent sur des plages de lignes et ne savent pas quelles lignes le
plugin sélectionné à conserver.
Si vous spécifiez l'option "--bulk-insert", la valeur de retour de cette méthode influencera
si la ligne est écrite dans le fichier temporaire pour l'insertion en bloc, donc les insertions en bloc
fonctionnera comme prévu. Cependant, les insertions en bloc nécessitent des suppressions en bloc.
before_delete(ligne => \@ligne)
Cette méthode est appelée pour chaque ligne juste avant sa suppression. Cela ne s'applique qu'à
"--la source". C'est un bon endroit pour gérer les dépendances, telles que la suppression
les choses qui sont à clé étrangère pour la ligne que vous êtes sur le point de supprimer. Vous pouvez également utiliser
ceci pour archiver récursivement toutes les tables dépendantes.
Cette méthode de plugin est appelée même si "--no-delete" est donné, mais pas si
"--bulk-delete" est donné.
before_bulk_delete(first_row => \@row, last_row => \@row)
Cette méthode est appelée juste avant l'exécution d'une suppression en bloc. C'est similaire au
méthode "before_delete", sauf que ses arguments sont la première et la dernière ligne de la plage
à supprimer. Il est appelé même si "--no-delete" est donné.
avant_insertion(ligne => \@ligne)
Cette méthode est appelée pour chaque ligne juste avant son insertion. Cela ne s'applique qu'à
"--dest". Vous pouvez l'utiliser pour insérer la ligne dans plusieurs tables, peut-être avec un
ON DUPLICATE KEY UPDATE pour créer des tables récapitulatives dans un entrepôt de données.
Cette méthode n'est pas appelée si "--bulk-insert" est donné.
before_bulk_insert(first_row => \@row, last_row => \@row, filename =>
nom_fichier_insertion_vrac)
Cette méthode est appelée juste avant l'exécution d'une insertion en bloc. C'est similaire au
méthode "before_insert", sauf que ses arguments sont la première et la dernière ligne de la plage
à supprimer.
custom_sth(row => \@row, sql => $sql)
Cette méthode est appelée juste avant d'insérer la ligne, mais après "avant_insertion()". Ce
permet au plugin de spécifier une instruction "INSERT" différente si vous le souhaitez. Le retour
valeur (le cas échéant) doit être un descripteur d'instruction DBI. Le paramètre "sql" est le texte SQL
utilisé pour préparer l'instruction "INSERT" par défaut. Cette méthode n'est pas appelée si vous
spécifiez "--bulk-insert".
Si aucune valeur n'est renvoyée, le descripteur d'instruction "INSERT" par défaut est utilisé.
Cette méthode s'applique uniquement au plugin spécifié pour "--dest", donc si votre plugin n'est pas
faire ce que vous attendez, vérifiez que vous l'avez spécifié pour la destination et non le
la source.
custom_sth_bulk(first_row => \@row, last_row => \@row, sql => $sql, nom de fichier =>
$bulk_insert_filename)
Si vous avez spécifié "--bulk-insert", cette méthode est appelée juste avant le bulk
insérer, mais après "avant_bulk_insert()", et les arguments sont différents.
La valeur de retour de cette méthode, etc., est similaire à "personnalisé_sth()" méthode.
après_finish()
Cette méthode est appelée après que pt-archiver quitte la boucle d'archivage, valide toutes les bases de données
gère, ferme "--file" et imprime les statistiques finales, mais avant l'exécution de pt-archiver
ANALYSER ou OPTIMISER (voir "--analyze" et "--optimize").
Si vous spécifiez un plugin pour "--source" et "--dest", pt-archiver construit, appelle
avant_début(), et appelle après_finish() sur les deux plugins dans l'ordre "--source",
"--dest".
pt-archiver suppose qu'il contrôle les transactions et que le plugin ne sera PAS validé ou lancé
revenir le handle de la base de données. Le handle de base de données passé au constructeur du plugin est le
même handle que pt-archiver utilise lui-même. N'oubliez pas que "--source" et "--dest" sont séparés
poignées.
Un exemple de module pourrait ressembler à ceci :
paquet Mon::Module;
sous nouveau {
ma ( $class, %args ) = @_;
return bless(\%args, $class);
}
sous-avant_debut {
mon ( $self, %args ) = @_;
# Enregistrer les noms de colonnes pour plus tard
$self->{cols} = $args{cols} ;
}
sous est_archivable {
mon ( $self, %args ) = @_;
# Faites de la logique avancée avec $args{row}
1 revenir;
}
sub before_delete {} # Ne rien faire
sub before_insert {} # Ne rien faire
sub custom_sth {} # Ne prendre aucune mesure
sub after_finish {} # Ne prendre aucune mesure
1;
ENVIRONNEMENT
La variable d'environnement "PTDEBUG" active la sortie de débogage détaillé vers STDERR. Autoriser
débogage et capture toutes les sorties dans un fichier, exécutez l'outil comme :
PTDEBUG=1 pt-archiveur ... > FICHIER 2>&1
Attention : la sortie de débogage est volumineuse et peut générer plusieurs mégaoctets de sortie.
SYSTÈME EXIGENCES
Vous avez besoin de Perl, DBI, DBD::mysql et de certains packages de base qui doivent être installés dans n'importe quel
raisonnablement nouvelle version de Perl.
Utilisez pt-archiverp en ligne en utilisant les services onworks.net
