Benutzer-Werkzeuge

Webseiten-Werkzeuge


mysql-dump

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
mysql-dump [2021-10-06 10:10:11] – [MySQL-Dump] manfredmysql-dump [2024-06-26 16:45:59] (aktuell) – [Fehler] manfred
Zeile 11: Zeile 11:
   # mysqldump --order-by-primary -Ac > all_databases.sql   # mysqldump --order-by-primary -Ac > all_databases.sql
  
-INNODB-Dump mit "--single-transaction" ziehen:+INNODB-Dump mit "%%--single-transaction%%" ziehen:
 Es dürfen diese Aufrufe während der Dump geschrieben wird, Es dürfen diese Aufrufe während der Dump geschrieben wird,
 nicht ausgeführt werden: nicht ausgeführt werden:
Zeile 23: Zeile 23:
   # mysqldump --skip-add-drop-table -Ktnc   # mysqldump --skip-add-drop-table -Ktnc
  
-komplette Optionen, **mit** Tabelle löschen:+komplette Optionen, **ohne** Tabelle löschen:
   # mysqldump --set-gtid-purged=OFF --opt --triggers --routines --skip-add-drop-table --order-by-primary --single-transaction --skip-extended-insert -QEc [Datenbankname] [Tabellenname] | gzip -1 > Datenbankname_Tabellenname.sql.gz   # mysqldump --set-gtid-purged=OFF --opt --triggers --routines --skip-add-drop-table --order-by-primary --single-transaction --skip-extended-insert -QEc [Datenbankname] [Tabellenname] | gzip -1 > Datenbankname_Tabellenname.sql.gz
  
-komplette Optionen, **ohne** Tabelle löschen:+komplette Optionen, **mit** Tabelle löschen:
   # mysqldump --set-gtid-purged=OFF --opt --triggers --routines --add-drop-table --order-by-primary --single-transaction --skip-extended-insert -QEc [Datenbankname] [Tabellenname] | gzip -1 > Datenbankname_Tabellenname.sql.gz   # mysqldump --set-gtid-purged=OFF --opt --triggers --routines --add-drop-table --order-by-primary --single-transaction --skip-extended-insert -QEc [Datenbankname] [Tabellenname] | gzip -1 > Datenbankname_Tabellenname.sql.gz
  
  
-==== Fehler ====+==== MySQLDump ====
  
-sollte soein Fehler auftreten: 
-  mysqldump: Got error: 1105: Percona-XtraDB-Cluster prohibits use of LOCK TABLE/FLUSH TABLE <table> WITH READ LOCK/FOR EXPORT with pxc_strict_mode = ENFORCING when using LOCK TABLES 
  
-dann muß man dem ''mysqldump'' einen der folgenden beiden Optionen zusätzlich mitgeben: +=== Fehler === 
-  # mysqldump ... --no-lock-tables+ 
 +wenn dieser Fehler auftritt: 
 +  > mysqldump: Got error: 1105: Percona-XtraDB-Cluster prohibits use of LOCK TABLE/FLUSH TABLE <table> WITH READ LOCK/FOR EXPORT with pxc_strict_mode = ENFORCING when using LOCK TABLES 
 + 
 +dann liegt das daran: 
 +  > echo "SHOW VARIABLES WHERE Variable_name LIKE ('pxc_strict_mode');" | mysql -t 
 +  +-----------------+-----------+ 
 +  | Variable_name   | Value     | 
 +  +-----------------+-----------+ 
 +  | pxc_strict_mode | ENFORCING | 
 +  +-----------------+-----------+ 
 + 
 +das ist die falsche vorgehensweise: 
 +  > echo "SET GLOBAL pxc_strict_mode='DISABLED';" | mysql 
 + 
 +das wäre dann zu tun (eine dieser beiden zusätzlichen Optionen verwenden):
   # mysqldump ... --single-transaction   # mysqldump ... --single-transaction
 +  # mysqldump ... --no-lock-tables
 +
 +mal ausprobieren:
 +  SET unique_checks=0;
 +  SET foreign_key_checks = 0;
  
  
Zeile 47: Zeile 65:
 In diesem Beispiel soll eine Datenbank "neuedb" angelegt werden, In diesem Beispiel soll eine Datenbank "neuedb" angelegt werden,
 die die gleiche Tabellenstruktur wie die "altedb" besitzt. die die gleiche Tabellenstruktur wie die "altedb" besitzt.
 +
 +<file bash /root/bin/mysqldump.sh>
 +#!/bin/sh
 +
 +VERSION="v2021102000"
 +
 +# /root/bin/mysqldump.sh -p 3306 -d "testdb1 testdb2 testdb3" | gzip -9 > /tmp/testdbs.sql.gz
 +# /root/bin/mysqldump.sh -p 3306 -l -d "testdb1 testdb2 testdb3" | gzip -9 > /tmp/testdbs.sql.gz
 +# /root/bin/mysqldump.sh -p 3306 -l -t löschen -d "testdb1 testdb2 testdb3" | gzip -9 > /tmp/testdbs.sql.gz
 +# /root/bin/mysqldump.sh -p 3306 -t löschen -d "testdb1 testdb2 testdb3" | gzip -9 > /tmp/testdbs.sql.gz
 +# /root/bin/mysqldump.sh -h 192.168.1.100 -p 3306 -d "testdb1 testdb2 testdb3" | gzip -9 > /tmp/testdbs.sql.gz
 +
 +while [ "${#}" -ne "0" ]; do
 +        case "${1}" in
 +                -h)
 +                        HOST=${2}
 +                        shift
 +                        ;;
 +                -p)
 +                        PORT=${2}
 +                        shift
 +                        ;;
 +                -t)
 +                        TABELLEN=${2}
 +                        shift
 +                        ;;
 +                -d)
 +                        DATENBANKEN=${2}
 +                        shift
 +                        ;;
 +                -l)
 +                        LEER=${2}
 +                        shift
 +                        ;;
 +                -h)
 +                        echo "
 +                        HILFE:
 +                        ${0} [Option]
 +                          DB-Host: -h [Hostname]
 +                          DB-Port: -p [Port]
 +                          Tabellen vorher löschen: -t löschen
 +                          Datenbanken: -d [Datenbanken]
 +                          ohne Daten: -l
 +
 +                        ${0} -p 3306 -d \"testdb1 testdb2 testdb3\"
 +                        ${0} -p 3306 -t löschen -d \"testdb1 testdb2 testdb3\"
 +                        ${0} -p 3306 -l -d \"testdb1 testdb2 testdb3\"
 +                        ${0} -h 192.168.1.100 -p 3306 -d \"testdb1 testdb2 testdb3\"
 +                        "
 +                        exit 1
 +                        ;;
 +                *)
 +                        if [ "$(echo "${1}"|egrep '^-')" ] ; then
 +                                echo "Der Parameter '${1}' wird nicht unterstützt!"
 +                        fi
 +                        shift
 +                        ;;
 +        esac
 +done
 +
 +if [ "x${HOST}" == "x" ] ; then
 +        #HOST="localhost"
 +        HOST="127.0.0.1"
 +fi
 +
 +if [ "x${PORT}" == "x" ] ; then
 +        echo "${0} -h"
 +        echo "${0} -p 3306 ..."
 +        exit 11
 +fi
 +
 +if [ "x${LEER}" == "x" ] ; then
 +        LEER="-d"
 +fi
 +
 +if [ "${TABELLEN}" == "löschen" ] ; then
 +        DROP_TABLE="--add-drop-table"           # Tabellen löschen
 +else
 +        DROP_TABLE="--skip-add-drop-table"      # Tabellen nicht löschen
 +fi
 +
 +DBS="$(for D_B in ${DATENBANKEN}
 +do
 +        echo -n "-B ${D_B} "
 +done)"
 +
 +mysqldump -h ${HOST} -P ${PORT} --set-gtid-purged=OFF --opt --triggers --routines ${DROP_TABLE} --order-by-primary --single-transaction --skip-extended-insert -QEc ${LEER} ${DBS}
 +</file>
  
  
/home/http/wiki/data/attic/mysql-dump.1633515011.txt · Zuletzt geändert: von manfred