Heim > Datenbank > MySQL-Tutorial > Hauptteil

Beispielanalyse der Tabellenbereichsübertragung in MySQL

WBOY
Freigeben: 2023-05-27 12:22:06
nach vorne
1118 Leute haben es durchsucht

Beschreibung: MySQL (5.6.6 und höher), innodb_file_per_table ist aktiviert.

1.1. Arbeitsschritte:

0. Zielserver: ALTER TABLE t DISCARD TABLESPACE;
2 die Quellserver-.ibd- und t.cfg-Dateien auf den Zielserver
4. Zielserver: ALTER TABLE t IMPORT TABLESPACE;
Instanztabelle [mysql5711], übertragen in die Tabelle test_purge unter der Bibliothek burn_test2 in [mysql57112]

1.2.1. Vorbereitung

1. Erstellen Sie einen Tabellenbereich auf dem Zielserver

– Quellserver [mysql5711]

mysql> ; wähle * aus burn_test .test_purge;

+----+-----+

| 3 |. 40 |

| 60 |

|. 100 |

|. ---+
8 Zeilen im Satz (0,01 Sek.)

--Zielserver [mysql57112]
--
-- test_purge existiert nicht auf dem Zielserver, erstellen Sie zuerst die Tabelle
mysql> CREATE TABLE `test_purge` (
`a` int( 11) NOT NULL AUTO_INCREMENT,
`b` int(11) DEFAULT NULL,
PRIMARY KEY (`a`),
UNIQUE KEY `b` (`b`)
) ENGINE=InnoDB AUTO_INCREMENT= 11 DEFAULT CHARSET=utf8mb4;
Abfrage OK, 0 Zeilen betroffen (0,16 Sek.)

2. Nach der Erstellung prüfen

#
# Zielserver
#
[root@MyServer burn_test_2]> ll | ---- -. 1 mysql mysql 8578 21. März 10:31 test_purge.frm # Tabellenstruktur
-rw-r----- 1 mysql mysql 57344 21. März 10:31 test_purge.ibd # Tabellenplatz, den Sie benötigen Übergeben Sie DISCARD an den Tabellenbereich. Löschen Sie die Datei. ALTER TABLE test_purge DISCARD TABLESPACE; bedeutet, die Datei test_purge.frm zu behalten und die Datei test_purge.ibd zu löschen Tabelle test_purge verwerfen Tabellenbereich;
Abfrage OK, 0 Zeilen betroffen (0,04 Sek.)
MySQL> Tabellen anzeigen;
+--------+
| Tables_in_burn_test_2 |
+--- --------------------+

| test_backup1 |

|. ------ ----+
2 Zeilen im Satz (0,00 Sek.)
mysql> select * from test_purge;
ERROR 1814 (HY000): Tablespace wurde für Tabelle „test_purge“ verworfen
[root@MyServer burn_test_2 ]> ll |. grep test_purge
-rw-r----- 1 mysql mysql 21 10:31 test_purge.frm

1 Befehl zum Exportieren des Tabellenbereichs (gleichzeitig Lesesperre hinzufügen)

-- Quellserver

mysql> Flush-Tabelle test_purge für den Export -- Tatsächlich eine Lesesperre zu dieser Tabelle hinzufügen

Abfrage OK, 0 Zeilen betroffen (0,00 sek)

2. Exportieren Sie die cfg-Datei und die ibd-Datei, kopieren Sie sie in die Datenbank des Zielservers
#
[root@MyServer burn_test]> --. 1 mysql mysql 462 21. März 10:58 test_purge.cfg # Nach dem Export enthält die zusätzliche Datei einige Metadateninformationen
-rw-r-----. 1 mysql mysql 8578 4. März 15:41 test_purge.frm
-rw-r- ----. 1 mysql mysql 5.7.11_2/burn_test_2/ # Tabellenbereich und CFG-Datei kopieren, bitte verwenden Sie scp remote (lokale Multi-Instanz-Demonstration, der Bibliotheksname ist hier anders)
3 Entsperren Sie den Tabellenbereich nach dem Export so schnell wie möglich

-- Quellserver

mysql> Tabellen entsperren; -- Entsperren Sie es so schnell wie möglich
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)
Hinweis: Achten Sie darauf, die CFG- und IBD-Dateien vor dem Entsperren zu kopieren, da die CFG-Datei beim Entsperren gelöscht wird
# Protokolle auf dem Quellserver `burn_test`.`test_purge` auf die Festplatte geleert
[Hinweis] InnoDB: Löschen der Metadatendatei './burn_test/test_purge.cfg' # Nach dem Entsperren der Tabelle wird die Datei automatisch gelöscht

[Hinweis] InnoDB: Bereinigung wird fortgesetzt # Stellen Sie nach dem Entsperren den Bereinigungsthread wieder her

4. Berechtigungen zum Ändern der CFG-Datei und der IBD-Datei auf dem Zielserver
#

[root@MyServer burn_test_2]> ibd

5. Führen Sie den Importbefehl auf dem Zielserver aus. Tabellenbereich

--alter table test_purge import tablespace -- Tabellenbereich importieren

Query OK, 0 Zeilen betroffen (0,24 Sek.)
mysql> select * from test_purge; -- Kann vom Quellserver kopierte Daten lesen
+----+-----+
+----+------+
|. 10 |
|. 40 |
| 100 |
+ ----+----- -+
8 Zeilen im Satz (0,00 Sek.)

# In error.log angezeigte Informationen
InnoDB: Tablespace für die Tabelle „burn_test/test_purge“ wird importiert, die vom Host „MyServer“ exportiert wurde.

Hinweis:
Die Namen der Tabellen müssen gleich sein. Nach dem obigen Test können die Bibliotheksnamen unterschiedlich sein.
Diese Methode kann auch für die Sicherung und Wiederherstellung von Partitionstabellen verwendet werden. 🎜🎜#

Das obige ist der detaillierte Inhalt vonBeispielanalyse der Tabellenbereichsübertragung in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!