Sauvegarde logique de sauvegarde de données MySQL
Quel type de sauvegarde est une sauvegarde logique de base de données ?
Comme nous le savons tous, lorsque la base de données renvoie des données que nous pouvons utiliser, elle affiche les données une par une sous la forme d'un certain format d'association logique que nous avons initialement conçu et attendu, et possède certains attributs de logique métier. Au niveau du stockage physique, le logiciel de base de données stocke les données après certains traitements dans un format spécifique conçu par le logiciel de base de données.
La sauvegarde logique de la base de données signifie que le logiciel de sauvegarde génère les fichiers texte pertinents un par un en fonction de la relation logique de la base de données et de l'objet de structure logique de la base de données selon le format d'association logique prédéfini à des fins de sauvegarde.
Sauvegarde logique couramment utilisée
La sauvegarde logique peut être considérée comme la méthode de sauvegarde la plus simple et la plus couramment utilisée pour les systèmes de petite et moyenne taille. Il existe deux principaux types de sauvegardes logiques que nous utilisons couramment dans MySQL. L'une consiste à générer des instructions INSERT qui peuvent reproduire complètement les données de la base de données actuelle. L'autre consiste à transmettre les données via un logiciel de sauvegarde logique pour séparer les données de notre table de base de données de manière spécifique. séparés par des caractères et enregistrés dans un fichier texte.
1. Générer une sauvegarde de l'instruction INSERT
Les deux sauvegardes logiques ont leurs propres avantages et inconvénients, et les scénarios d'utilisation qu'elles ciblent sont légèrement différents. Jetons d'abord un coup d'œil à la sauvegarde logique de la génération d'INSERT. déclarations.
Dans la base de données MySQL, nous utilisons généralement mysqldump dans le programme outil fourni avec le logiciel de base de données MySQL pour réaliser le fichier de sauvegarde logique réclamant l'instruction INSERT. L'utilisation est essentiellement la suivante :
Définition de dumping et données de la base de données ou de la table mysql
Utilisation : mysqldump [OPTIONS] base de données [tables]
OU mysqldump [OPTIONS] -- bases de données [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
Étant donné que l'utilisation de mysqldump est relativement simple, la plupart des éléments requis Ces informations peuvent être obtenues en exécutant "mysqldump --help". Ici, je veux juste combiner certains concepts et principes de la base de données MySQL pour discuter avec vous des techniques dont nous disposons et de ce à quoi nous devons prêter attention lorsque nous utilisons mysqldump pour effectuer une sauvegarde logique de la base de données.
Nous savons tous que la plupart des logiciels ou sites Web qui utilisent des bases de données espèrent que leurs bases de données pourront fournir la plus haute disponibilité possible, plutôt que de devoir fermer et cesser de fournir des services de temps en temps. Car une fois que la base de données ne peut plus fournir de services, le système ne peut plus fournir certaines fonctions dynamiques en accédant aux données. Par conséquent, pour la plupart des systèmes, il n'est peut-être pas acceptable d'arrêter chaque sauvegarde. Cependant, le principe d'implémentation du programme mysqldump consiste à utiliser les informations sur les paramètres que nous donnons ainsi que les informations sur la table système dans la base de données pour créer une table une par une. Obtenez les données, puis générez une instruction INSERT et écrivez-la dans le fichier de sauvegarde. Cela crée un problème. Lors du fonctionnement normal du système, les demandes de modification de données sont susceptibles d'être exécutées en continu, ce qui peut entraîner une incohérence dans les données sauvegardées par mysqldump. En d’autres termes, les données de sauvegarde peuvent ne pas se trouver au même moment et peuvent même ne pas satisfaire aux contraintes d’intégrité. Un tel jeu de sauvegarde n'est peut-être pas un gros problème pour certains systèmes, mais pour certains systèmes qui ont des exigences strictes en matière de cohérence et d'intégrité des données, c'est un gros problème et il s'agit d'un jeu de sauvegarde complètement invalide.
Que devons-nous faire dans un tel scénario ? Nous savons que si nous voulons que les données de la base de données soient cohérentes, il n’existe que deux situations dans lesquelles cela peut être réalisé.
Premièrement, toutes les données sont supprimées en même temps
Deuxièmement, les données de la base de données sont dans un état statique ;
Pour la première situation, tout le monde se demandera certainement : est-ce possible ? Quoi qu'il en soit, tant qu'il y a plus de deux tables, quelle que soit la façon dont on écrit le programme, il est impossible d'obtenir le même nombre à la même heure la nuit dernière. Oui, il est vrai que nous ne pouvons pas rendre les moments de récupération des données exactement les mêmes avec les méthodes conventionnelles, mais n'oubliez pas que dans la même transaction, la base de données peut garantir que les données lues se font au même moment. Par conséquent, pour les moteurs de stockage prenant en charge les transactions, tels que Innodb ou BDB, nous pouvons contrôler l'ensemble du processus de sauvegarde dans la même transaction pour obtenir la cohérence et l'intégrité des données de sauvegarde, et le programme mysqldump nous fournit également les options de paramètres pertinentes pour prennent en charge cette fonction via l'option "--single-transaction", qui n'affecte aucun service normal de la base de données.
Pour la deuxième situation, je pense que la première chose à laquelle tout le monde pense est de verrouiller la table qui doit être sauvegardée, autorisant uniquement la lecture mais pas l'écriture. Oui, c'est vraiment tout ce que nous pouvons faire. Nous ne pouvons utiliser qu'une méthode de compromis, afin que la base de données fournisse uniquement des services de requête de données pendant le processus de sauvegarde et verrouille le service d'écriture, afin que les données soient temporairement dans un état cohérent qui ne sera pas modifié et attende que mysqldump termine le processus. sauvegarde. Supprimez le verrou en écriture et reprenez le service complet. Le programme mysqldump lui-même fournit également des options associées telles que "--lock-tables" et "--lock-all-tables", qui verrouilleront la table avant l'exécution et libéreront automatiquement le verrou après l'exécution. Une chose à noter ici est que "--lock-tables" ne verrouille pas toutes les tables qui doivent être sauvegardées en même temps, mais verrouille uniquement une table de base de données à la fois si vous devez vider les tables dans plusieurs fichiers différents. base de données, "--lock-all-tables" doit être utilisé pour garantir l'intégrité cohérente des données.
Lors de la génération d'un fichier de sauvegarde logique d'une instruction INSERT via mysqldump, il existe une option très utile que nous pouvons utiliser, à savoir "--master-data[=value]". Lorsque "--master-data=1" est ajouté, mysqldump enregistrera le nom et l'emplacement du journal binlog actuellement utilisé par MySQL dans le fichier de vidage, et il sera enregistré sous la forme d'une instruction CHANGE_MASTER si vous l'utilisez simplement. "- -master-data" ou "--masterdata=2", l'instruction CHANGE_MASTER existera sous la forme d'un commentaire. Cette option est très utile lors de la mise en œuvre de la construction en ligne de l'esclave. Même si l'esclave n'est pas construit en ligne, d'autres opérations de récupération peuvent être effectuées via le journal binaire de sauvegarde pendant le processus de récupération dans certains cas.
Dans certains scénarios, nous pouvons simplement exporter des données spéciales vers d'autres bases de données, mais nous ne voulons pas y parvenir en construisant d'abord une table temporaire. Nous pouvons également utiliser le programme mysqldump pour "-where='wherecondition'. " peut être implémenté, mais il ne peut être utilisé que lors du dump d'une seule table. En fait, en plus des conseils ci-dessus, mysqldump fournit également de nombreuses autres options utiles que vous pouvez utiliser dans différents scénarios, comme utiliser "--no-data" pour vider uniquement le script de création de la structure de la base de données, et utiliser "--no - createinfo" supprime les commandes permettant de créer des structures de table dans le fichier dump, etc. Les lecteurs intéressés peuvent lire en détail l'introduction à l'utilisation du programme mysqldump et ensuite le tester par vous-même.
2. Générer une sauvegarde de fichier de données de sauvegarde en texte brut dans un format spécifique
En plus de générer des sauvegardes logiques en générant des commandes INSERT, nous pouvons également utiliser une autre façon de sauvegarder les données dans la base de données. Des caractères délimiteurs spécifiques séparent les enregistrements de données dans des fichiers texte pour obtenir l'effet de sauvegarde logique. Par rapport au fichier de commande INSERT, ces données de sauvegarde nécessitent un espace de stockage plus petit, ont un format de données plus clair et sont plus faciles à modifier. Cependant, l'inconvénient est que les données de sauvegarde de plusieurs tables ne peuvent pas exister dans le même fichier de sauvegarde et qu'il n'existe aucune commande pour reconstruire la structure de la base de données. Le jeu de sauvegarde nécessite plusieurs fichiers, et l'impact sur nous n'est rien de plus que l'augmentation des coûts de maintenance et de récupération due à un plus grand nombre de fichiers, mais ceux-ci peuvent essentiellement être obtenus en écrivant quelques scripts simples
Alors que pouvons-nous généralement Comment générer un tel fichier de jeu de sauvegarde ? En fait, MySQL a également implémenté les fonctions correspondantes pour nous.
Dans MySQL, les deux méthodes suivantes sont généralement utilisées pour obtenir des fichiers de sauvegarde en texte brut avec des délimiteurs personnalisables.
1. En exécutant la commande SELECT ... TO OUTFILE FROM ...
fournit une syntaxe SELECT dans MySQL, conçue pour permettre aux utilisateurs de sélectionner certaines données via des instructions SQL. sortie dans un fichier texte au format spécifié. Il fournit également des outils pratiques et des commandes associées pour importer facilement le fichier exporté tel quel dans la base de données. N'est-ce pas exactement ce dont nous avons besoin pour la sauvegarde ?
Cette commande a plusieurs paramètres qui doivent être notés comme suit :
Le "FIELDS ESCAPED BY ['name']" qui implémente la fonction d'échappement de caractères échappera aux caractères qui doivent être échappé dans l'instruction SQL. Signification ;
"FIELDS [OPTIONALLY] ENCLOSED BY 'name'" qui peut "emballer" le contenu du champ Si "OPTIONALLY" n'est pas utilisé, tous les types de données, y compris numériques. les types seront "compactés". Après avoir utilisé "OPTIONNELLEMENT", les données de type numérique ne seront pas "encapsulées" par le caractère spécifié.
Utilisez "FIELDS TERMINATED BY" pour définir le délimiteur entre chaque deux champs ;
Utilisez "LINES TERMINATED BY" pour indiquer à MySQL d'afficher le fichier à la fin de chaque enregistrement. tu dois ajouter
?
Comme dans l'exemple suivant :
root@localhost : test 10:02:02> SELECT * INTO OUTFILE '/tmp/dump.text'
-> CHAMPS TERMINÉS PAR ',' FERMÉS EN OPTION PAR '"'
-> LIGNES TERMINÉES PAR 'n'
-> FROM test_outfile limite 100;
Requête OK, 100 lignes affectées (0,00 sec)
root@localhost : test 10:02:11> exit
Au revoir
root@sky:/tmp# cat dump.text
350021,21,"A","abcd"
350022,22,"B","abcd"
350023,23,"C","abcd"
350024,24,"D","abcd"
350025,25,"A","abcd"
... ...
2 , Exporter via mysqldump
Peut-être que nous savons tous que mysqldump peut générer des fichiers de sauvegarde associés sous la forme d'instructions INSERT à partir des données de la base de données. En fait, en plus de générer des instructions INSERT, mysqldump peut également implémenter ce qui précède. "SELECT... TOOUTFILE FROM...", et génère également un script de création correspondant à la structure de la base de données concernée.
Comme dans l'exemple suivant :
root@sky:~# ls -l /tmp/mysqldump
total 0
root@sky:~ # mysqldump -uroot -T/tmp/mysqldump test test_outfile --fieldsenclosed-by=" --fields-terminated-by=,
root@sky:~# ls -l /tmp/mysqldump
total 8
-rw-r--r-- 1 racine racine 1346 2008-10-14 22:18 test_outfile.sql
-rw-rw-rw- 1 mysql mysql 2521 2008-10-14 22:18 test_outfile.txt
root@sky:~# cat /tmp/mysqldump/test_outfile.txt
350021,21,"A","abcd "
350022,22,"B","abcd"
350023,23,"C","abcd"
350024,24,"D"," abcd"
350025,25,"A","abcd"
... ...
root@sky:~# cat /tmp/mysqldump/test_outfile .sql
-- MySQL dump 10.11
---- Hôte : localhost Base de données : test
-- ------------- -- ---------------------------------------------------- Serveur version 5.0.51a-log
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @ OLD_COLLATION_CONNECTION= @@COLLATION_CONNECTION */;
/*!40101 DÉFINIR LES NOMS utf8 */;
/*!40103 DÉFINIR @OLD_TIME_ZONE=@@TIME_ZONE */;
/* !40103 SET TIME_ZONE=' 00:00' */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='' */;
/*!40111 SET @ OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
---- Structure de table pour la table `test_outfile`
--DROP TABLE IF EXISTS `test_outfile`;
SET @saved_cs_client = @@character_set_client;
SET Character_set_client = utf8;
CREATE TABLE `test_outfile` (
`id` int(11) NOT NULL par défaut '0 ',
`t_id` int(11) NULL par défaut,
`a` char(1) NULL par défaut,
`mid` varchar(32) NULL par défaut
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
SET Character_set_client = @saved_cs_client;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump terminé le 2008-10 - 14 14:18:23
Ce type de structure de sortie nous convient très bien comme sauvegarde. Bien sûr, s'il y a plusieurs tables qui doivent être vidées à la fois, deux tables seront générées. pour chaque table correspondant aux fichiers.
Ce qui précède est le contenu de la sauvegarde logique de la sauvegarde des données Mysql. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Dans la base de données MySQL, la relation entre l'utilisateur et la base de données est définie par les autorisations et les tables. L'utilisateur a un nom d'utilisateur et un mot de passe pour accéder à la base de données. Les autorisations sont accordées par la commande Grant, tandis que le tableau est créé par la commande Create Table. Pour établir une relation entre un utilisateur et une base de données, vous devez créer une base de données, créer un utilisateur, puis accorder des autorisations.

MySQL a une version communautaire gratuite et une version d'entreprise payante. La version communautaire peut être utilisée et modifiée gratuitement, mais le support est limité et convient aux applications avec des exigences de stabilité faibles et des capacités techniques solides. L'Enterprise Edition fournit une prise en charge commerciale complète pour les applications qui nécessitent une base de données stable, fiable et haute performance et disposées à payer pour le soutien. Les facteurs pris en compte lors du choix d'une version comprennent la criticité des applications, la budgétisation et les compétences techniques. Il n'y a pas d'option parfaite, seulement l'option la plus appropriée, et vous devez choisir soigneusement en fonction de la situation spécifique.

Simplification de l'intégration des données: AmazonrDSMysQL et l'intégration Zero ETL de Redshift, l'intégration des données est au cœur d'une organisation basée sur les données. Les processus traditionnels ETL (extrait, converti, charge) sont complexes et prennent du temps, en particulier lors de l'intégration de bases de données (telles que AmazonrDSMysQL) avec des entrepôts de données (tels que Redshift). Cependant, AWS fournit des solutions d'intégration ETL Zero qui ont complètement changé cette situation, fournissant une solution simplifiée et à temps proche pour la migration des données de RDSMySQL à Redshift. Cet article plongera dans l'intégration RDSMYSQL ZERO ETL avec Redshift, expliquant comment il fonctionne et les avantages qu'il apporte aux ingénieurs de données et aux développeurs.

MySQL convient aux débutants car il est simple à installer, puissant et facile à gérer les données. 1. Installation et configuration simples, adaptées à une variété de systèmes d'exploitation. 2. Prise en charge des opérations de base telles que la création de bases de données et de tables, d'insertion, d'interrogation, de mise à jour et de suppression de données. 3. Fournir des fonctions avancées telles que les opérations de jointure et les sous-questionnaires. 4. Les performances peuvent être améliorées par l'indexation, l'optimisation des requêtes et le partitionnement de la table. 5. Prise en charge des mesures de sauvegarde, de récupération et de sécurité pour garantir la sécurité et la cohérence des données.

Pour remplir le nom d'utilisateur et le mot de passe MySQL: 1. Déterminez le nom d'utilisateur et le mot de passe; 2. Connectez-vous à la base de données; 3. Utilisez le nom d'utilisateur et le mot de passe pour exécuter des requêtes et des commandes.

1. Utilisez l'index correct pour accélérer la récupération des données en réduisant la quantité de données numérisées SELECT * FROMMLOYEESEESHWHERELAST_NAME = 'SMITH'; Si vous recherchez plusieurs fois une colonne d'une table, créez un index pour cette colonne. If you or your app needs data from multiple columns according to the criteria, create a composite index 2. Avoid select * only those required columns, if you select all unwanted columns, this will only consume more server memory and cause the server to slow down at high load or frequency times For example, your table contains columns such as created_at and updated_at and timestamps, and then avoid selecting * because they do not require inefficient query se

Guide d'optimisation des performances de la base de données MySQL dans les applications à forte intensité de ressources, la base de données MySQL joue un rôle crucial et est responsable de la gestion des transactions massives. Cependant, à mesure que l'échelle de l'application se développe, les goulots d'étranglement des performances de la base de données deviennent souvent une contrainte. Cet article explorera une série de stratégies efficaces d'optimisation des performances MySQL pour garantir que votre application reste efficace et réactive dans des charges élevées. Nous combinerons des cas réels pour expliquer les technologies clés approfondies telles que l'indexation, l'optimisation des requêtes, la conception de la base de données et la mise en cache. 1. La conception de l'architecture de la base de données et l'architecture optimisée de la base de données sont la pierre angulaire de l'optimisation des performances MySQL. Voici quelques principes de base: sélectionner le bon type de données et sélectionner le plus petit type de données qui répond aux besoins peut non seulement économiser un espace de stockage, mais également améliorer la vitesse de traitement des données.

Une explication détaillée des attributs d'acide de base de données Les attributs acides sont un ensemble de règles pour garantir la fiabilité et la cohérence des transactions de base de données. Ils définissent comment les systèmes de bases de données gérent les transactions et garantissent l'intégrité et la précision des données même en cas de plantages système, d'interruptions d'alimentation ou de plusieurs utilisateurs d'accès simultanément. Présentation de l'attribut acide Atomicité: une transaction est considérée comme une unité indivisible. Toute pièce échoue, la transaction entière est reculée et la base de données ne conserve aucune modification. Par exemple, si un transfert bancaire est déduit d'un compte mais pas augmenté à un autre, toute l'opération est révoquée. BeginTransaction; UpdateAccountSsetBalance = Balance-100Wh
