LOCK TABLES

MyOOS [Dumper]ist ein Sicherungsprogramm für MySQL-Datenbanken. Damit können Sicherungskopien der Daten (Forum, Shop, Blog, usw.) erstellt und bei Bedarf auch wieder hergestellt werden. Besonders bei Web-Space ohne Shell-Zugang bietet sich MyOOS [Dumper] als sinnvolle Alternative an.
Antworten
r23
Beiträge: 2698
Registriert: 18.09.2008, 05:56
Wohnort: Hagen
Kontaktdaten:

LOCK TABLES

Beitrag von r23 »

Hallo,

bei einem Datenbankexport mit MariaDB dump 10.19 (liegt XAMPP bei) ist mir beim Import von Daten der LOCK TABLES Befehlt aufgefallen.

Code: Alles auswählen

LOCK TABLES `a5es9_action_log_config` WRITE;
/*!40000 ALTER TABLE `a5es9_action_log_config` DISABLE KEYS */;
INSERT INTO `a5es9_action_log_config` VALUES (1,'article','com_content.article','id','title','#__content','PLG_ACTIONLOG_JOOMLA'),(2,'article','com_content.form','id','title','#__content','PLG_ACTIONLOG_JOOMLA'),(3,'banner','com_banners.banner','id','name','#__banners','PLG_ACTIONLOG_JOOMLA'),(4,'user_note','com_users.note','id','subject','#__user_notes','PLG_ACTIONLOG_JOOMLA'),(5,'media','com_media.file','','name','','PLG_ACTIONLOG_JOOMLA'),(6,'category','com_categories.category','id','title','#__categories','PLG_ACTIONLOG_JOOMLA'),(7,'menu','com_menus.menu','id','title','#__menu_types','PLG_ACTIONLOG_JOOMLA'),(8,'menu_item','com_menus.item','id','title','#__menu','PLG_ACTIONLOG_JOOMLA'),(9,'newsfeed','com_newsfeeds.newsfeed','id','name','#__newsfeeds','PLG_ACTIONLOG_JOOMLA'),(10,'link','com_redirect.link','id','old_url','#__redirect_links','PLG_ACTIONLOG_JOOMLA'),(11,'tag','com_tags.tag','id','title','#__tags','PLG_ACTIONLOG_JOOMLA'),(12,'style','com_templates.style','id','title','#__template_styles','PLG_ACTIONLOG_JOOMLA'),(13,'plugin','com_plugins.plugin','extension_id','name','#__extensions','PLG_ACTIONLOG_JOOMLA'),(14,'component_config','com_config.component','extension_id','name','','PLG_ACTIONLOG_JOOMLA'),(15,'contact','com_contact.contact','id','name','#__contact_details','PLG_ACTIONLOG_JOOMLA'),(16,'module','com_modules.module','id','title','#__modules','PLG_ACTIONLOG_JOOMLA'),(17,'access_level','com_users.level','id','title','#__viewlevels','PLG_ACTIONLOG_JOOMLA'),(18,'banner_client','com_banners.client','id','name','#__banner_clients','PLG_ACTIONLOG_JOOMLA'),(19,'application_config','com_config.application','','name','','PLG_ACTIONLOG_JOOMLA'),(20,'task','com_scheduler.task','id','title','#__scheduler_tasks','PLG_ACTIONLOG_JOOMLA'),(21,'field','com_fields.field','id','title','#__fields','PLG_ACTIONLOG_JOOMLA');
/*!40000 ALTER TABLE `a5es9_action_log_config` ENABLE KEYS */;
UNLOCK TABLES;
MySQL Dumper

Code: Alles auswählen

/*!40000 ALTER TABLE `a5es9_action_log_config` DISABLE KEYS */;
INSERT INTO `a5es9_action_log_config` (`id`,`type_title`,`type_alias`,`id_holder`,`title_holder`,`table_name`,`text_prefix`) VALUES ('1','article','com_content.article','id','title','#__content','PLG_ACTIONLOG_JOOMLA');
INSERT INTO `a5es9_action_log_config` (`id`,`type_title`,`type_alias`,`id_holder`,`title_holder`,`table_name`,`text_prefix`) VALUES ('2','article','com_content.form','id','title','#__content','PLG_ACTIONLOG_JOOMLA');
INSERT INTO `a5es9_action_log_config` (`id`,`type_title`,`type_alias`,`id_holder`,`title_holder`,`table_name`,`text_prefix`) VALUES ('3','banner','com_banners.banner','id','name','#__banners','PLG_ACTIONLOG_JOOMLA');
INSERT INTO `a5es9_action_log_config` (`id`,`type_title`,`type_alias`,`id_holder`,`title_holder`,`table_name`,`text_prefix`) VALUES ('4','user_note','com_users.note','id','subject','#__user_notes','PLG_ACTIONLOG_JOOMLA');
INSERT INTO `a5es9_action_log_config` (`id`,`type_title`,`type_alias`,`id_holder`,`title_holder`,`table_name`,`text_prefix`) VALUES ('5','media','com_media.file','','name','','PLG_ACTIONLOG_JOOMLA');
INSERT INTO `a5es9_action_log_config` (`id`,`type_title`,`type_alias`,`id_holder`,`title_holder`,`table_name`,`text_prefix`) VALUES ('6','category','com_categories.category','id','title','#__categories','PLG_ACTIONLOG_JOOMLA');
INSERT INTO `a5es9_action_log_config` (`id`,`type_title`,`type_alias`,`id_holder`,`title_holder`,`table_name`,`text_prefix`) VALUES ('7','menu','com_menus.menu','id','title','#__menu_types','PLG_ACTIONLOG_JOOMLA');
INSERT INTO `a5es9_action_log_config` (`id`,`type_title`,`type_alias`,`id_holder`,`title_holder`,`table_name`,`text_prefix`) VALUES ('8','menu_item','com_menus.item','id','title','#__menu','PLG_ACTIONLOG_JOOMLA');
INSERT INTO `a5es9_action_log_config` (`id`,`type_title`,`type_alias`,`id_holder`,`title_holder`,`table_name`,`text_prefix`) VALUES ('9','newsfeed','com_newsfeeds.newsfeed','id','name','#__newsfeeds','PLG_ACTIONLOG_JOOMLA');
INSERT INTO `a5es9_action_log_config` (`id`,`type_title`,`type_alias`,`id_holder`,`title_holder`,`table_name`,`text_prefix`) VALUES ('10','link','com_redirect.link','id','old_url','#__redirect_links','PLG_ACTIONLOG_JOOMLA');
INSERT INTO `a5es9_action_log_config` (`id`,`type_title`,`type_alias`,`id_holder`,`title_holder`,`table_name`,`text_prefix`) VALUES ('11','tag','com_tags.tag','id','title','#__tags','PLG_ACTIONLOG_JOOMLA');
INSERT INTO `a5es9_action_log_config` (`id`,`type_title`,`type_alias`,`id_holder`,`title_holder`,`table_name`,`text_prefix`) VALUES ('12','style','com_templates.style','id','title','#__template_styles','PLG_ACTIONLOG_JOOMLA');
INSERT INTO `a5es9_action_log_config` (`id`,`type_title`,`type_alias`,`id_holder`,`title_holder`,`table_name`,`text_prefix`) VALUES ('13','plugin','com_plugins.plugin','extension_id','name','#__extensions','PLG_ACTIONLOG_JOOMLA');
INSERT INTO `a5es9_action_log_config` (`id`,`type_title`,`type_alias`,`id_holder`,`title_holder`,`table_name`,`text_prefix`) VALUES ('14','component_config','com_config.component','extension_id','name','','PLG_ACTIONLOG_JOOMLA');
INSERT INTO `a5es9_action_log_config` (`id`,`type_title`,`type_alias`,`id_holder`,`title_holder`,`table_name`,`text_prefix`) VALUES ('15','contact','com_contact.contact','id','name','#__contact_details','PLG_ACTIONLOG_JOOMLA');
INSERT INTO `a5es9_action_log_config` (`id`,`type_title`,`type_alias`,`id_holder`,`title_holder`,`table_name`,`text_prefix`) VALUES ('16','module','com_modules.module','id','title','#__modules','PLG_ACTIONLOG_JOOMLA');
INSERT INTO `a5es9_action_log_config` (`id`,`type_title`,`type_alias`,`id_holder`,`title_holder`,`table_name`,`text_prefix`) VALUES ('17','access_level','com_users.level','id','title','#__viewlevels','PLG_ACTIONLOG_JOOMLA');
INSERT INTO `a5es9_action_log_config` (`id`,`type_title`,`type_alias`,`id_holder`,`title_holder`,`table_name`,`text_prefix`) VALUES ('18','banner_client','com_banners.client','id','name','#__banner_clients','PLG_ACTIONLOG_JOOMLA');
INSERT INTO `a5es9_action_log_config` (`id`,`type_title`,`type_alias`,`id_holder`,`title_holder`,`table_name`,`text_prefix`) VALUES ('19','application_config','com_config.application','','name','','PLG_ACTIONLOG_JOOMLA');
INSERT INTO `a5es9_action_log_config` (`id`,`type_title`,`type_alias`,`id_holder`,`title_holder`,`table_name`,`text_prefix`) VALUES ('20','task','com_scheduler.task','id','title','#__scheduler_tasks','PLG_ACTIONLOG_JOOMLA');
INSERT INTO `a5es9_action_log_config` (`id`,`type_title`,`type_alias`,`id_holder`,`title_holder`,`table_name`,`text_prefix`) VALUES ('21','field','com_fields.field','id','title','#__fields','PLG_ACTIONLOG_JOOMLA');
/*!40000 ALTER TABLE `a5es9_action_log_config` ENABLE KEYS */;
Der `LOCK TABLES`-Befehl in MySQL wird verwendet, um explizite Tabellensperren für eine Client-Sitzung zu erwerben. Dies ist nützlich, um mit anderen Sitzungen bei der Zugriffskontrolle auf Tabellen zu kooperieren oder um zu verhindern, dass andere Sitzungen Tabellen während Zeiträumen ändern, in denen eine Sitzung exklusiven Zugriff darauf benötigt.

Es kann bei der Wiederherstellung von Daten vermutlich sinnvoll sein, wenn man die Datenbanktabelle für andere sperrt.

Hier sind einige Anwendungsfälle für den `LOCK TABLES`-Befehl:

- Kooperation zwischen Sitzungen: Wenn mehrere Benutzer gleichzeitig auf dieselbe Tabelle zugreifen müssen, können Sperren dazu beitragen, die Integrität der Daten zu wahren, indem sie den Zugriff koordinieren.
- Exklusiver Zugriff: Manchmal muss eine Sitzung sicherstellen, dass keine anderen Sitzungen eine Tabelle ändern können, während sie eine Reihe von Operationen durchführt.
- Performance-Optimierung: In einigen Fällen kann das Sperren von Tabellen die Leistung verbessern, insbesondere wenn viele Schreiboperationen durchgeführt werden.

Es gibt zwei Arten von Sperren, die wir anwenden können:
- READ: Eine Lesesperre erlaubt der sperrenden Sitzung, die Tabelle zu lesen, und anderen Sitzungen, die Tabelle ebenfalls zu lesen, aber nicht zu schreiben.
- WRITE: Eine Schreibsperre erlaubt nur der sperrenden Sitzung, die Tabelle zu lesen und zu schreiben, während alle anderen Sitzungen weder lesen noch schreiben können.

Es ist wichtig zu beachten, dass der Gebrauch von `LOCK TABLES` sorgfältig überlegt sein sollte, da er andere Prozesse beeinträchtigen und zu Leistungsengpässen führen kann, insbesondere auf stark frequentierten Tabellen.

Jetzt meine Frage, sollen wir für die Wiederherstellung der Datenbank den LOCK TABLES verwenden?

Es könnte die Wiederherstellung verlangsamen.

Ich freue mich über Kommentare, Bitte die verwendete Open-Source-Software angeben, für die MyOOS Dumper verwendet wird.


Vielen Dank

Ralf
Antworten