3 Datenbank-Upgrade auf Primärschlüssel
Übersicht
Dieser Abschnitt enthält Anweisungen zum manuellen Upgrade von Tabellen in bestehenden Installationen auf Primärschlüssel.
Das Upgrade auf Primärschlüssel optimiert die Indizierung und den Zugriff auf Daten, wodurch Abfragen schneller ausgeführt und Speicherplatz eingespart werden kann. Außerdem verbessert es die Datenverwaltung und Synchronisierung in Cluster-Setups, unterstützt die Skalierung und trägt dazu bei, dass das System auch dann zuverlässig bleibt, wenn einige Server ausfallen.
Die Anweisungen auf dieser Seite sind für fortgeschrittene Benutzer gedacht und müssen möglicherweise an Ihre spezifische Konfiguration angepasst werden. Das Upgrade auf Primärschlüssel kann zeitaufwendig und ressourcenintensiv sein. Stellen Sie sicher, dass ausreichend freier Speicherplatz verfügbar ist; abhängig von der Größe Ihrer Datenbank und den gespeicherten Daten kann der Vorgang bis zu 2,5-mal so viel Speicherplatz erfordern, wie derzeit von den History-Tabellen belegt wird.
Primärschlüssel werden seit Zabbix 6.0 für alle Tabellen in neuen Installationen verwendet.
Es gibt kein automatisches Datenbank-Upgrade auf Primärschlüssel; bestehende Installationen können jedoch manuell aktualisiert werden, nachdem der Zabbix Server auf 6.0 oder neuer aktualisiert wurde.
Seit Zabbix 7.0 wird beim Upgrade von Tabellen auf Primärschlüssel auch die Verwendung von Datentypen mit doppelter Genauigkeit aktiviert.
Wenn Sie Zabbix 7.0 verwenden, nutzen die Tabellen bereits doppelte Genauigkeit.
Die Anweisungen auf dieser Seite können jedoch weiterhin verwendet werden, um Tabellen auf Primärschlüssel zu aktualisieren, ohne Tabellen zu beeinflussen, die bereits doppelte Genauigkeit verwenden.
Wenn Sie Zabbix 6.4 (oder älter) verwenden, sollten Sie erwägen, die Tabellen zuerst auf doppelte Genauigkeit zu aktualisieren.
Weitere Informationen finden Sie unter Upgrade auf numerische Werte mit erweitertem Bereich.
Anweisungen sind verfügbar für:
Wichtige Hinweise
Um das Datenbank-Upgrade durchzuführen:
- Stoppen Sie den Zabbix server.
Es wird dringend empfohlen, den Zabbix server für die Dauer des Upgrades zu stoppen. Falls es jedoch unbedingt erforderlich ist, können Sie das Upgrade auch durchführen, während der server läuft (nur für MySQL, MariaDB und PostgreSQL ohne TimescaleDB).
- Sichern Sie Ihre Datenbank.
Wenn Sie PostgreSQL oder TimescaleDB verwenden, lesen Sie die bekannten Probleme zum Wiederherstellen eines PostgreSQL- oder TimescaleDB-Backups, das in Zabbix 7.0.0-7.0.4 erstellt wurde.
- Installieren Sie das neueste mit Ihrer Zabbix-Version kompatible Paket zabbix-sql-scripts (z. B. für RHEL:
dnf install zabbix-sql-scripts). - Führen Sie die Skripte für Ihre Datenbank aus.
- Starten Sie den Zabbix server.
Führen Sie die Skripte nur für die Server-Datenbank aus. Der Proxy profitiert nicht von diesem Upgrade.
Wenn die Datenbank Partitionen verwendet, wenden Sie sich an den DB-Administrator oder den Zabbix Support.
CSV-Dateien können nach einem erfolgreichen Upgrade auf Primärschlüssel entfernt werden.
Optional kann das Zabbix Frontend in den Wartungsmodus versetzt werden.
MySQL
Export und Import müssen in tmux/screen durchgeführt werden, um sicherzustellen, dass die Sitzung nicht unterbrochen wird.
Siehe auch: Wichtige Hinweise
MySQL 8.0+ mit mysqlsh
Diese Methode kann mit einem laufenden Zabbix Server verwendet werden, es wird jedoch empfohlen, den Server für die Dauer des Upgrades zu stoppen. Die MySQL Shell (mysqlsh) muss installiert sein und eine Verbindung zur DB herstellen können.
-
Melden Sie sich an der MySQL-Konsole als root an (empfohlen) oder als beliebiger Benutzer mit FILE-Rechten.
-
Starten Sie MySQL mit aktivierter Variable local_infile.
-
Benennen Sie alte Tabellen um und erstellen Sie neue Tabellen, indem Sie
history_upgrade_prepare.sqlausführen.
mysql -uzabbix -p<password> zabbix < /usr/share/zabbix-sql-scripts/mysql/option-patches/history_upgrade_prepare.sql
- Exportieren und importieren Sie die Daten.
Verbinden Sie sich über mysqlsh. Wenn Sie eine Socket-Verbindung verwenden, muss möglicherweise der Pfad angegeben werden.
sudo mysqlsh -uroot -S /run/mysqld/mysqld.sock --no-password -Dzabbix
Wechseln Sie mit folgendem Befehl in den JavaScript-Modus:
\js
Führen Sie dann den folgenden Code aus (CSVPATH kann bei Bedarf geändert werden):
CSVPATH="/var/lib/mysql-files";
util.exportTable("history_old", CSVPATH + "/history.csv", { dialect: "csv" });
util.importTable(CSVPATH + "/history.csv", {"dialect": "csv", "table": "history" });
util.exportTable("history_uint_old", CSVPATH + "/history_uint.csv", { dialect: "csv" });
util.importTable(CSVPATH + "/history_uint.csv", {"dialect": "csv", "table": "history_uint" });
util.exportTable("history_str_old", CSVPATH + "/history_str.csv", { dialect: "csv" });
util.importTable(CSVPATH + "/history_str.csv", {"dialect": "csv", "table": "history_str" });
util.exportTable("history_log_old", CSVPATH + "/history_log.csv", { dialect: "csv" });
util.importTable(CSVPATH + "/history_log.csv", {"dialect": "csv", "table": "history_log" });
util.exportTable("history_text_old", CSVPATH + "/history_text.csv", { dialect: "csv" });
util.importTable(CSVPATH + "/history_text.csv", {"dialect": "csv", "table": "history_text" });
Wenn die Meldung "JavaScript is not supported" angezeigt wird, unterstützt Ihre MySQL Shell-Installation kein JS. Installieren Sie in diesem Fall das offizielle MySQL Shell-Paket von Oracle (oder erstellen Sie es aus dem Quellcode), damit der JavaScript-Modus aktiviert ist.
- Befolgen Sie die Anweisungen nach der Migration, um die alten Tabellen zu löschen.
MariaDB/MySQL 8.0+ ohne mysqlsh
Diese Upgrade-Methode dauert länger und sollte nur verwendet werden, wenn ein Upgrade mit mysqlsh nicht möglich ist.
Tabellen-Upgrade
-
Melden Sie sich in der MySQL-Konsole als root an (empfohlen) oder als beliebiger Benutzer mit FILE-Berechtigungen.
-
Wenn Sie die Migration mit einem laufenden Zabbix-Server durchführen, starten Sie MySQL mit aktivierter Variable local_infile.
-
Benennen Sie alte Tabellen um und erstellen Sie neue Tabellen, indem Sie
history_upgrade_prepare.sqlausführen:
mysql -uzabbix -p<password> zabbix < /usr/share/zabbix-sql-scripts/mysql/option-patches/history_upgrade_prepare.sql
Migration mit gestopptem Server
max_execution_time (in MySQL) oder max_statement_time (in MariaDB) muss vor der Migration der Daten deaktiviert werden, um ein Timeout während der Migration zu vermeiden.
Für MySQL:
SET @@max_execution_time=0;
Für MariaDB:
SET @@max_statement_time=0;
INSERT IGNORE INTO history SELECT * FROM history_old;
INSERT IGNORE INTO history_uint SELECT * FROM history_uint_old;
INSERT IGNORE INTO history_str SELECT * FROM history_str_old;
INSERT IGNORE INTO history_log SELECT * FROM history_log_old;
INSERT IGNORE INTO history_text SELECT * FROM history_text_old;
Befolgen Sie die Anweisungen nach der Migration, um die alten Tabellen zu löschen.
Migration mit laufendem Server
Prüfen Sie, für welche Pfade Import/Export aktiviert ist:
mysql> SELECT @@secure_file_priv;
+-----------------------+
| @@secure_file_priv |
+-----------------------+
| /var/lib/mysql-files/ |
+-----------------------+
Wenn der Wert von secure_file_priv ein Pfad zu einem Verzeichnis ist, wird der Export/Import für Dateien in diesem Verzeichnis durchgeführt. Bearbeiten Sie in diesem Fall die Pfade zu den Dateien in den Abfragen entsprechend oder setzen Sie den Wert von secure_file_priv für die Dauer des Upgrades auf eine leere Zeichenfolge.
Wenn der Wert von secure_file_priv leer ist, kann der Export/Import von jedem Speicherort aus durchgeführt werden.
Wenn der Wert von secure_file_priv NULL ist, setzen Sie ihn auf den Pfad, der die exportierten Tabellendaten enthält (im obigen Beispiel '/var/lib/mysql-files/').
Weitere Informationen finden Sie in der MySQL-Dokumentation oder in der MariaDB-Dokumentation.
max_execution_time (in MySQL) oder max_statement_time (in MariaDB) muss vor dem Export der Daten deaktiviert werden, um ein Timeout während des Exports zu vermeiden.
Für MySQL:
SET @@max_execution_time=0;
Für MariaDB:
SET @@max_statement_time=0;
SELECT * INTO OUTFILE '/var/lib/mysql-files/history.csv' FIELDS TERMINATED BY ',' ESCAPED BY '"' LINES TERMINATED BY '\n' FROM history_old;
LOAD DATA INFILE '/var/lib/mysql-files/history.csv' IGNORE INTO TABLE history FIELDS TERMINATED BY ',' ESCAPED BY '"' LINES TERMINATED BY '\n';
SELECT * INTO OUTFILE '/var/lib/mysql-files/history_uint.csv' FIELDS TERMINATED BY ',' ESCAPED BY '"' LINES TERMINATED BY '\n' FROM history_uint_old;
LOAD DATA INFILE '/var/lib/mysql-files/history_uint.csv' IGNORE INTO TABLE history_uint FIELDS TERMINATED BY ',' ESCAPED BY '"' LINES TERMINATED BY '\n';
SELECT * INTO OUTFILE '/var/lib/mysql-files/history_str.csv' FIELDS TERMINATED BY ',' ESCAPED BY '"' LINES TERMINATED BY '\n' FROM history_str_old;
LOAD DATA INFILE '/var/lib/mysql-files/history_str.csv' IGNORE INTO TABLE history_str FIELDS TERMINATED BY ',' ESCAPED BY '"' LINES TERMINATED BY '\n';
SELECT * INTO OUTFILE '/var/lib/mysql-files/history_log.csv' FIELDS TERMINATED BY ',' ESCAPED BY '"' LINES TERMINATED BY '\n' FROM history_log_old;
LOAD DATA INFILE '/var/lib/mysql-files/history_log.csv' IGNORE INTO TABLE history_log FIELDS TERMINATED BY ',' ESCAPED BY '"' LINES TERMINATED BY '\n';
SELECT * INTO OUTFILE '/var/lib/mysql-files/history_text.csv' FIELDS TERMINATED BY ',' ESCAPED BY '"' LINES TERMINATED BY '\n' FROM history_text_old;
LOAD DATA INFILE '/var/lib/mysql-files/history_text.csv' IGNORE INTO TABLE history_text FIELDS TERMINATED BY ',' ESCAPED BY '"' LINES TERMINATED BY '\n';
Befolgen Sie die Anweisungen nach der Migration, um die alten Tabellen zu löschen.
PostgreSQL
Export und Import müssen in tmux/screen durchgeführt werden, um sicherzustellen, dass die Sitzung nicht getrennt wird. Bei Installationen mit TimescaleDB überspringen Sie diesen Abschnitt und fahren Sie mit PostgreSQL + TimescaleDB fort.
Siehe auch: Wichtige Hinweise
Tabellenupgrade
- Benennen Sie Tabellen mit
history_upgrade_prepare.sqlum:
sudo -u zabbix psql zabbix < /usr/share/zabbix-sql-scripts/postgresql/option-patches/history_upgrade_prepare.sql
Migration mit gestopptem Server
- Exportieren Sie den aktuellen Verlauf, importieren Sie ihn in die temporäre Tabelle und fügen Sie dann die Daten in die neuen Tabellen ein, wobei Duplikate ignoriert werden:
INSERT INTO history SELECT * FROM history_old ON CONFLICT (itemid,clock,ns) DO NOTHING;
INSERT INTO history_uint SELECT * FROM history_uint_old ON CONFLICT (itemid,clock,ns) DO NOTHING;
INSERT INTO history_str SELECT * FROM history_str_old ON CONFLICT (itemid,clock,ns) DO NOTHING;
INSERT INTO history_log SELECT * FROM history_log_old ON CONFLICT (itemid,clock,ns) DO NOTHING;
INSERT INTO history_text SELECT * FROM history_text_old ON CONFLICT (itemid,clock,ns) DO NOTHING;
Tipps zur Verbesserung der INSERT-Performance finden Sie hier: PostgreSQL: Bulk Loading Huge Amounts of Data, Checkpoint Distance and Amount of WAL.
- Befolgen Sie die Anweisungen nach der Migration, um die alten Tabellen zu löschen.
Migration mit laufendem Server
- Exportieren Sie den aktuellen Verlauf, importieren Sie ihn in die temporäre Tabelle und fügen Sie die Daten dann unter Ignorieren von Duplikaten in die neuen Tabellen ein:
\copy history_old TO '/tmp/history.csv' DELIMITER ',' CSV
CREATE TEMP TABLE temp_history (
itemid bigint NOT NULL,
clock integer DEFAULT '0' NOT NULL,
value DOUBLE PRECISION DEFAULT '0.0000' NOT NULL,
ns integer DEFAULT '0' NOT NULL
);
\copy temp_history FROM '/tmp/history.csv' DELIMITER ',' CSV
INSERT INTO history SELECT * FROM temp_history ON CONFLICT (itemid,clock,ns) DO NOTHING;
\copy history_uint_old TO '/tmp/history_uint.csv' DELIMITER ',' CSV
CREATE TEMP TABLE temp_history_uint (
itemid bigint NOT NULL,
clock integer DEFAULT '0' NOT NULL,
value numeric(20) DEFAULT '0' NOT NULL,
ns integer DEFAULT '0' NOT NULL
);
\copy temp_history_uint FROM '/tmp/history_uint.csv' DELIMITER ',' CSV
INSERT INTO history_uint SELECT * FROM temp_history_uint ON CONFLICT (itemid,clock,ns) DO NOTHING;
\copy history_str_old TO '/tmp/history_str.csv' DELIMITER ',' CSV
CREATE TEMP TABLE temp_history_str (
itemid bigint NOT NULL,
clock integer DEFAULT '0' NOT NULL,
value varchar(255) DEFAULT '' NOT NULL,
ns integer DEFAULT '0' NOT NULL
);
\copy temp_history_str FROM '/tmp/history_str.csv' DELIMITER ',' CSV
INSERT INTO history_str (itemid,clock,value,ns) SELECT * FROM temp_history_str ON CONFLICT (itemid,clock,ns) DO NOTHING;
\copy history_log_old TO '/tmp/history_log.csv' DELIMITER ',' CSV
CREATE TEMP TABLE temp_history_log (
itemid bigint NOT NULL,
clock integer DEFAULT '0' NOT NULL,
timestamp integer DEFAULT '0' NOT NULL,
source varchar(64) DEFAULT '' NOT NULL,
severity integer DEFAULT '0' NOT NULL,
value text DEFAULT '' NOT NULL,
logeventid integer DEFAULT '0' NOT NULL,
ns integer DEFAULT '0' NOT NULL
);
\copy temp_history_log FROM '/tmp/history_log.csv' DELIMITER ',' CSV
INSERT INTO history_log SELECT * FROM temp_history_log ON CONFLICT (itemid,clock,ns) DO NOTHING;
\copy history_text_old TO '/tmp/history_text.csv' DELIMITER ',' CSV
CREATE TEMP TABLE temp_history_text (
itemid bigint NOT NULL,
clock integer DEFAULT '0' NOT NULL,
value text DEFAULT '' NOT NULL,
ns integer DEFAULT '0' NOT NULL
);
\copy temp_history_text FROM '/tmp/history_text.csv' DELIMITER ',' CSV
INSERT INTO history_text SELECT * FROM temp_history_text ON CONFLICT (itemid,clock,ns) DO NOTHING;
- Folgen Sie den Anweisungen nach der Migration, um die alten Tabellen zu löschen.
PostgreSQL + TimescaleDB
Export und Import müssen in tmux/screen durchgeführt werden, um sicherzustellen, dass die Sitzung nicht getrennt wird. Der Zabbix Server sollte während des Upgrades heruntergefahren sein.
Siehe auch: Wichtige Hinweise
-
Benennen Sie Tabellen mit
history_upgrade_prepare.sqlum.- Wenn die Komprimierung aktiviert ist (bei der Standardinstallation), führen Sie das Skript aus
/usr/share/zabbix-sql-scripts/postgresql/timescaledb/option-patches/with-compressionaus:cat /usr/share/zabbix-sql-scripts/postgresql/timescaledb/option-patches/with-compression/history_upgrade_prepare.sql | sudo -u zabbix psql zabbix - Wenn die Komprimierung deaktiviert ist, führen Sie das Skript aus
/usr/share/zabbix-sql-scripts/postgresql/timescaledb/option-patches/without-compressionaus:cat /usr/share/zabbix-sql-scripts/postgresql/timescaledb/option-patches/without-compression/history_upgrade_prepare.sql | sudo -u zabbix psql zabbix
- Wenn die Komprimierung aktiviert ist (bei der Standardinstallation), führen Sie das Skript aus
-
Führen Sie die TimescaleDB-Hypertable-Migrationsskripte basierend auf den Komprimierungseinstellungen aus:
- Wenn die Komprimierung aktiviert ist (bei der Standardinstallation), führen Sie die Skripte aus
/usr/share/zabbix-sql-scripts/postgresql/timescaledb/option-patches/with-compressionaus:cat /usr/share/zabbix-sql-scripts/postgresql/timescaledb/option-patches/with-compression/history_upgrade.sql | sudo -u zabbix psql zabbix cat /usr/share/zabbix-sql-scripts/postgresql/timescaledb/option-patches/with-compression/history_upgrade_uint.sql | sudo -u zabbix psql zabbix cat /usr/share/zabbix-sql-scripts/postgresql/timescaledb/option-patches/with-compression/history_upgrade_log.sql | sudo -u zabbix psql zabbix cat /usr/share/zabbix-sql-scripts/postgresql/timescaledb/option-patches/with-compression/history_upgrade_str.sql | sudo -u zabbix psql zabbix cat /usr/share/zabbix-sql-scripts/postgresql/timescaledb/option-patches/with-compression/history_upgrade_text.sql | sudo -u zabbix psql zabbix cat /usr/share/zabbix-sql-scripts/postgresql/timescaledb/option-patches/with-compression/trends_upgrade.sql | sudo -u zabbix psql zabbix - Wenn die Komprimierung deaktiviert ist, führen Sie die Skripte aus
/usr/share/zabbix-sql-scripts/postgresql/timescaledb/option-patches/without-compressionaus:cat /usr/share/zabbix-sql-scripts/postgresql/timescaledb/option-patches/without-compression/history_upgrade.sql | sudo -u zabbix psql zabbix cat /usr/share/zabbix-sql-scripts/postgresql/timescaledb/option-patches/without-compression/history_upgrade_uint.sql | sudo -u zabbix psql zabbix cat /usr/share/zabbix-sql-scripts/postgresql/timescaledb/option-patches/without-compression/history_upgrade_log.sql | sudo -u zabbix psql zabbix cat /usr/share/zabbix-sql-scripts/postgresql/timescaledb/option-patches/without-compression/history_upgrade_str.sql | sudo -u zabbix psql zabbix cat /usr/share/zabbix-sql-scripts/postgresql/timescaledb/option-patches/without-compression/history_upgrade_text.sql | sudo -u zabbix psql zabbix cat /usr/share/zabbix-sql-scripts/postgresql/timescaledb/option-patches/without-compression/trends_upgrade.sql | sudo -u zabbix psql zabbix
- Wenn die Komprimierung aktiviert ist (bei der Standardinstallation), führen Sie die Skripte aus
Siehe auch: Tipps zur Verbesserung der INSERT-Performance.
- Befolgen Sie die Anweisungen nach der Migration, um die alten Tabellen zu löschen.
Oracle
Die Unterstützung für Oracle DB ist seit Zabbix 7.0 veraltet.
Export und Import müssen in tmux/screen ausgeführt werden, damit die Sitzung nicht getrennt wird. Der Zabbix Server sollte während des Upgrades heruntergefahren sein.
Siehe auch: Wichtige Hinweise
Tabellen-Upgrade
- Installieren Sie Oracle Data Pump (verfügbar im Instant Client Tools-Paket).
Siehe die Dokumentation zu Oracle Data Pump für Leistungstipps.
- Benennen Sie Tabellen mit
history_upgrade_prepare.sqlum.
cd /path/to/zabbix-sources/database/oracle/option-patches
sqlplus zabbix/password@oracle_host/service
sqlplus> @history_upgrade_prepare.sql
Batch-Migration von History-Tabellen
- Bereiten Sie Verzeichnisse für Data Pump vor.
Data Pump muss Lese- und Schreibrechte für diese Verzeichnisse haben.
Beispiel:
mkdir -pv /export/history
chown -R oracle:oracle /export
- Erstellen Sie ein Verzeichnisobjekt und gewähren Sie dem Benutzer, der für die Zabbix-Authentifizierung verwendet wird (im folgenden Beispiel
zabbix), Lese- und Schreibrechte für dieses Objekt. Führen Sie unter der Rolle sysdba Folgendes aus:
create directory history as '/export/history';
grant read,write on directory history to zabbix;
- Exportieren Sie Tabellen. Ersetzen Sie N durch die gewünschte Thread-Anzahl.
expdp zabbix/password@oracle_host/service \
DIRECTORY=history \
TABLES=history_old,history_uint_old,history_str_old,history_log_old,history_text_old \
PARALLEL=N
- Importieren Sie Tabellen. Ersetzen Sie N durch die gewünschte Thread-Anzahl.
impdp zabbix/password@oracle_host/service \
DIRECTORY=history \
TABLES=history_uint_old \
REMAP_TABLE=history_old:history,history_uint_old:history_uint,history_str_old:history_str,history_log_old:history_log,history_text_old:history_text \
data_options=SKIP_CONSTRAINT_ERRORS table_exists_action=APPEND PARALLEL=N CONTENT=data_only
- Folgen Sie den Anweisungen nach der Migration, um die alten Tabellen zu löschen.
Individuelle Migration von Verlaufstabellen
- Bereiten Sie Verzeichnisse für Data Pump für jede Verlaufstabelle vor. Data Pump muss Lese- und Schreibrechte für diese Verzeichnisse haben.
Beispiel:
mkdir -pv /export/history /export/history_uint /export/history_str /export/history_log /export/history_text
chown -R oracle:oracle /export
- Erstellen Sie ein Verzeichnisobjekt und gewähren Sie dem für die Zabbix-Authentifizierung verwendeten Benutzer Lese- und Schreibrechte für dieses Objekt (im folgenden Beispiel 'zabbix'). Führen Sie unter der Rolle sysdba Folgendes aus:
create directory history as '/export/history';
grant read,write on directory history to zabbix;
create directory history_uint as '/export/history_uint';
grant read,write on directory history_uint to zabbix;
create directory history_str as '/export/history_str';
grant read,write on directory history_str to zabbix;
create directory history_log as '/export/history_log';
grant read,write on directory history_log to zabbix;
create directory history_text as '/export/history_text';
grant read,write on directory history_text to zabbix;
- Exportieren und importieren Sie jede Tabelle. Ersetzen Sie N durch die gewünschte Anzahl von Threads.
expdp zabbix/password@oracle_host:1521/xe DIRECTORY=history TABLES=history_old PARALLEL=N
impdp zabbix/password@oracle_host:1521/xe DIRECTORY=history TABLES=history_old REMAP_TABLE=history_old:history data_options=SKIP_CONSTRAINT_ERRORS table_exists_action=APPEND PARALLEL=N CONTENT=data_only
expdp zabbix/password@oracle_host:1521/xe DIRECTORY=history_uint TABLES=history_uint_old PARALLEL=N
impdp zabbix/password@oracle_host:1521/xe DIRECTORY=history_uint TABLES=history_uint_old REMAP_TABLE=history_uint_old:history_uint data_options=SKIP_CONSTRAINT_ERRORS table_exists_action=APPEND PARALLEL=N CONTENT=data_only
expdp zabbix/password@oracle_host:1521/xe DIRECTORY=history_str TABLES=history_str_old PARALLEL=N
impdp zabbix/password@oracle_host:1521/xe DIRECTORY=history_str TABLES=history_str_old REMAP_TABLE=history_str_old:history_str data_options=SKIP_CONSTRAINT_ERRORS table_exists_action=APPEND PARALLEL=N CONTENT=data_only
expdp zabbix/password@oracle_host:1521/xe DIRECTORY=history_log TABLES=history_log_old PARALLEL=N
impdp zabbix/password@oracle_host:1521/xe DIRECTORY=history_log TABLES=history_log_old REMAP_TABLE=history_log_old:history_log data_options=SKIP_CONSTRAINT_ERRORS table_exists_action=APPEND PARALLEL=N CONTENT=data_only
expdp zabbix/password@oracle_host:1521/xe DIRECTORY=history_text TABLES=history_text_old PARALLEL=N
impdp zabbix/password@oracle_host:1521/xe DIRECTORY=history_text TABLES=history_text_old REMAP_TABLE=history_text_old:history_text data_options=SKIP_CONSTRAINT_ERRORS table_exists_action=APPEND PARALLEL=N CONTENT=data_only
- Befolgen Sie die Anweisungen nach der Migration, um die alten Tabellen zu löschen.
Nach der Migration
Führen Sie für alle Datenbanken nach Abschluss der Migration Folgendes durch:
-
Überprüfen Sie, dass alles wie erwartet funktioniert.
-
Löschen Sie die alten Tabellen:
DROP TABLE history_old;
DROP TABLE history_uint_old;
DROP TABLE history_str_old;
DROP TABLE history_log_old;
DROP TABLE history_text_old;
- Löschen Sie bei TimescaleDB zusätzlich die folgende alte Tabelle:
DROP TABLE trends_old;