Manuelles Konfigurieren von Master-Datenbanken

NOTE
Diese Funktion ist nur für Adobe Commerce-Instanzen verfügbar.
IMPORTANT
Die Funktion der geteilten Datenbank war in Version 2.4.2 von Adobe Commerce veraltet. Siehe Von einer geteilten Datenbank auf eine einzelne Datenbank zurücksetzen.

Wenn die Commerce-Anwendung bereits in Produktion ist oder Sie bereits benutzerdefinierten Code oder Komponenten installiert haben, müssen Sie die Aufspaltungsdatenbanken möglicherweise manuell konfigurieren. Wenden Sie sich vor dem Fortfahren an den Adobe Commerce-Support , um zu erfahren, ob dies für Ihren Fall erforderlich ist.

Die manuelle Aufspaltung von Datenbanken beinhaltet:

  • Erstellen Sie die Datenbanken des Checkout- und Order Management Systems (OMS).

  • Führen Sie eine Reihe von SQL-Skripten aus, die:

    • Fremdschlüssel ablegen
    • Sichern von Verkaufs- und Anführungsdatentabellen
    • Verschieben Sie Tabellen aus Ihrer Hauptdatenbank in die Verkaufs- und Kursdatenbanken.
WARNING
Wenn ein benutzerdefinierter Code JOINs mit Tabellen in den Verkaufs- und Anführungsdatenbanken verwendet, können Sie keine Split-Datenbanken verwenden. Wenden Sie sich im Zweifelsfall an die Autoren von benutzerdefiniertem Code oder Erweiterungen, um sicherzustellen, dass ihr Code keine JOINs verwendet.

Dieses Thema verwendet die folgenden Benennungskonventionen:

  • Der Hauptdatenbankname lautet magento und sein Benutzername und Kennwort lauten jeweils magento

  • Der Name der Anführungsdatenbank ist magento_quote und der Benutzername und das Kennwort lauten jeweils magento_quote

    Die Anführungsdatenbank wird auch als Checkout -Datenbank bezeichnet.

  • Der Name der Verkaufsdatenbank ist magento_sales und sein Benutzername und Kennwort lauten jeweils magento_sales

    Die Verkaufsdatenbank wird auch als OMS-Datenbank bezeichnet.

INFO
In diesem Handbuch wird davon ausgegangen, dass sich alle drei Datenbanken auf demselben Host wie die Commerce-Anwendung befinden. Sie können jedoch selbst entscheiden, wo die Datenbanken zu finden sind und wie sie benannt sind. Wir hoffen, dass unsere Beispiele die Befolgung der Anweisungen erleichtern.

Sichern des Commerce-Systems

Adobe empfiehlt dringend, dass Sie Ihre aktuelle Datenbank und Ihr Dateisystem sichern, damit Sie diese wiederherstellen können, wenn während des Vorgangs Probleme auftreten.

So sichern Sie Ihr System:

  1. Melden Sie sich bei Ihrem Commerce-Server als Dateisysteminhaber an oder wechseln Sie zu ihm.

  2. Geben Sie die folgenden Befehle ein:

    code language-bash
    magento setup:backup --code --media --db
    
  3. Fahren Sie mit dem nächsten Abschnitt fort.

Einrichten zusätzlicher Master-Datenbanken

In diesem Abschnitt wird beschrieben, wie Sie Datenbankinstanzen für Verkaufs- und Anführungstabellen erstellen.

So erstellen Sie Verkaufs- und OMS-Anführungsdatenbanken:

  1. Melden Sie sich bei Ihrem Datenbankserver als ein beliebiger Benutzer an.

  2. Geben Sie den folgenden Befehl ein, um zu einer MySQL-Eingabeaufforderung zu gelangen:

    code language-bash
    mysql -u root -p
    
  3. Geben Sie bei Aufforderung das Kennwort des MySQL root-Benutzers ein.

  4. Geben Sie die folgenden Befehle in der angezeigten Reihenfolge ein, um Datenbankinstanzen mit den Namen magento_quote und magento_sales mit denselben Benutzernamen und Passwörtern zu erstellen:

    code language-shell
    create database magento_quote;
    GRANT ALL ON magento_quote.* TO magento_quote@localhost IDENTIFIED BY 'magento_quote';
    
    code language-shell
    create database magento_sales;
    GRANT ALL ON magento_sales.* TO magento_sales@localhost IDENTIFIED BY 'magento_sales';
    
  5. Geben Sie exit ein, um die Eingabeaufforderung zu beenden.

  6. Überprüfen Sie die Datenbanken einzeln:

    Anführungsdatenbank:

    code language-bash
    mysql -u magento_quote -p
    
    code language-shell
    exit
    
    code language-bash
    mysql -u magento_quote -p
    
    code language-bash
    mysql -u magento_sales -p
    
    code language-shell
    exit
    

    Wenn der MySQL-Monitor angezeigt wird, haben Sie die Datenbank ordnungsgemäß erstellt. Wenn ein Fehler angezeigt wird, wiederholen Sie die vorherigen Befehle.

  7. Fahren Sie mit dem nächsten Abschnitt fort.

Verkaufsdatenbank konfigurieren

In diesem Abschnitt wird beschrieben, wie Sie SQL-Skripte erstellen und ausführen, die Kursdatenbanktabellen ändern und Daten aus diesen Tabellen sichern.

Tabellennamen der Verkaufsdatenbank beginnen mit:

  • salesrule_
  • sales_
  • magento_sales_
  • Die magento_customercustomattributes_sales_flat_order -Tabelle ist ebenfalls betroffen.
INFO
Dieser Abschnitt enthält Skripte mit bestimmten Datenbanktabellennamen. Wenn Sie Anpassungen vorgenommen haben oder eine vollständige Liste der Tabellen anzeigen möchten, bevor Sie Aktionen daran durchführen, finden Sie weitere Informationen unter Referenzskripte.

Weitere Informationen finden Sie unter

SQL-Scripts für Verkaufsdatenbank erstellen

Erstellen Sie die folgenden SQL-Skripte an einem Speicherort, auf den der Benutzer zugreifen kann, der sich bei Ihrem Commerce-Server anmeldet. Wenn Sie sich beispielsweise anmelden oder Befehle als root ausführen, können Sie die Skripte im Verzeichnis /root/sql-scripts erstellen.

Fremdschlüssel entfernen

Dieses Skript entfernt ausländische Schlüssel, die auf nicht verkaufte Tabellen verweisen, aus der Verkaufsdatenbank.

Erstellen Sie das folgende Skript und geben Sie ihm einen Namen wie 1_foreign-sales.sql. Ersetzen Sie <your main DB name> durch den Namen Ihrer Datenbank.

use <your main DB name>;
ALTER TABLE salesrule_coupon_aggregated_order DROP FOREIGN KEY SALESRULE_COUPON_AGGREGATED_ORDER_STORE_ID_STORE_STORE_ID;
ALTER TABLE salesrule_coupon_aggregated DROP FOREIGN KEY SALESRULE_COUPON_AGGREGATED_STORE_ID_STORE_STORE_ID;
ALTER TABLE salesrule_coupon_aggregated_updated DROP FOREIGN KEY SALESRULE_COUPON_AGGREGATED_UPDATED_STORE_ID_STORE_STORE_ID;
ALTER TABLE salesrule_coupon_usage DROP FOREIGN KEY SALESRULE_COUPON_USAGE_CUSTOMER_ID_CUSTOMER_ENTITY_ENTITY_ID;
ALTER TABLE salesrule_customer_group DROP FOREIGN KEY SALESRULE_CSTR_GROUP_CSTR_GROUP_ID_CSTR_GROUP_CSTR_GROUP_ID;
ALTER TABLE salesrule_customer DROP FOREIGN KEY SALESRULE_CUSTOMER_CUSTOMER_ID_CUSTOMER_ENTITY_ENTITY_ID;
ALTER TABLE salesrule_label DROP FOREIGN KEY SALESRULE_LABEL_STORE_ID_STORE_STORE_ID;
ALTER TABLE salesrule_product_attribute DROP FOREIGN KEY SALESRULE_PRD_ATTR_ATTR_ID_EAV_ATTR_ATTR_ID;
ALTER TABLE salesrule_product_attribute DROP FOREIGN KEY SALESRULE_PRD_ATTR_CSTR_GROUP_ID_CSTR_GROUP_CSTR_GROUP_ID;
ALTER TABLE salesrule_product_attribute DROP FOREIGN KEY SALESRULE_PRODUCT_ATTRIBUTE_WEBSITE_ID_STORE_WEBSITE_WEBSITE_ID;
ALTER TABLE salesrule_website DROP FOREIGN KEY SALESRULE_WEBSITE_WEBSITE_ID_STORE_WEBSITE_WEBSITE_ID;
ALTER TABLE sales_bestsellers_aggregated_daily DROP FOREIGN KEY SALES_BESTSELLERS_AGGRED_DAILY_PRD_ID_CAT_PRD_ENTT_ENTT_ID;
ALTER TABLE sales_bestsellers_aggregated_monthly DROP FOREIGN KEY SALES_BESTSELLERS_AGGRED_MONTHLY_PRD_ID_CAT_PRD_ENTT_ENTT_ID;
ALTER TABLE sales_bestsellers_aggregated_yearly DROP FOREIGN KEY SALES_BESTSELLERS_AGGRED_YEARLY_PRD_ID_CAT_PRD_ENTT_ENTT_ID;
ALTER TABLE sales_bestsellers_aggregated_daily DROP FOREIGN KEY SALES_BESTSELLERS_AGGREGATED_DAILY_STORE_ID_STORE_STORE_ID;
ALTER TABLE sales_bestsellers_aggregated_monthly DROP FOREIGN KEY SALES_BESTSELLERS_AGGREGATED_MONTHLY_STORE_ID_STORE_STORE_ID;
ALTER TABLE sales_bestsellers_aggregated_yearly DROP FOREIGN KEY SALES_BESTSELLERS_AGGREGATED_YEARLY_STORE_ID_STORE_STORE_ID;
ALTER TABLE sales_creditmemo_grid DROP FOREIGN KEY SALES_CREDITMEMO_GRID_STORE_ID_STORE_STORE_ID;
ALTER TABLE sales_creditmemo DROP FOREIGN KEY SALES_CREDITMEMO_STORE_ID_STORE_STORE_ID;
ALTER TABLE sales_invoiced_aggregated_order DROP FOREIGN KEY SALES_INVOICED_AGGREGATED_ORDER_STORE_ID_STORE_STORE_ID;
ALTER TABLE sales_invoiced_aggregated DROP FOREIGN KEY SALES_INVOICED_AGGREGATED_STORE_ID_STORE_STORE_ID;
ALTER TABLE sales_invoice_grid DROP FOREIGN KEY SALES_INVOICE_GRID_STORE_ID_STORE_STORE_ID;
ALTER TABLE sales_invoice DROP FOREIGN KEY SALES_INVOICE_STORE_ID_STORE_STORE_ID;
ALTER TABLE sales_order_aggregated_created DROP FOREIGN KEY SALES_ORDER_AGGREGATED_CREATED_STORE_ID_STORE_STORE_ID;
ALTER TABLE sales_order_aggregated_updated DROP FOREIGN KEY SALES_ORDER_AGGREGATED_UPDATED_STORE_ID_STORE_STORE_ID;
ALTER TABLE sales_order DROP FOREIGN KEY SALES_ORDER_CUSTOMER_ID_CUSTOMER_ENTITY_ENTITY_ID;
ALTER TABLE sales_order_grid DROP FOREIGN KEY SALES_ORDER_GRID_CUSTOMER_ID_CUSTOMER_ENTITY_ENTITY_ID;
ALTER TABLE sales_order_grid DROP FOREIGN KEY SALES_ORDER_GRID_STORE_ID_STORE_STORE_ID;
ALTER TABLE sales_order_item DROP FOREIGN KEY SALES_ORDER_ITEM_STORE_ID_STORE_STORE_ID;
ALTER TABLE sales_order_status_label DROP FOREIGN KEY SALES_ORDER_STATUS_LABEL_STORE_ID_STORE_STORE_ID;
ALTER TABLE sales_order DROP FOREIGN KEY SALES_ORDER_STORE_ID_STORE_STORE_ID;
ALTER TABLE sales_refunded_aggregated_order DROP FOREIGN KEY SALES_REFUNDED_AGGREGATED_ORDER_STORE_ID_STORE_STORE_ID;
ALTER TABLE sales_refunded_aggregated DROP FOREIGN KEY SALES_REFUNDED_AGGREGATED_STORE_ID_STORE_STORE_ID;
ALTER TABLE sales_shipment_grid DROP FOREIGN KEY SALES_SHIPMENT_GRID_STORE_ID_STORE_STORE_ID;
ALTER TABLE sales_shipment DROP FOREIGN KEY SALES_SHIPMENT_STORE_ID_STORE_STORE_ID;
ALTER TABLE sales_shipping_aggregated_order DROP FOREIGN KEY SALES_SHIPPING_AGGREGATED_ORDER_STORE_ID_STORE_STORE_ID;
ALTER TABLE sales_shipping_aggregated DROP FOREIGN KEY SALES_SHIPPING_AGGREGATED_STORE_ID_STORE_STORE_ID;
ALTER TABLE magento_sales_creditmemo_grid_archive DROP FOREIGN KEY MAGENTO_SALES_CREDITMEMO_GRID_ARCHIVE_STORE_ID_STORE_STORE_ID;
ALTER TABLE magento_sales_invoice_grid_archive DROP FOREIGN KEY MAGENTO_SALES_INVOICE_GRID_ARCHIVE_STORE_ID_STORE_STORE_ID;
ALTER TABLE magento_sales_order_grid_archive DROP FOREIGN KEY MAGENTO_SALES_ORDER_GRID_ARCHIVE_CSTR_ID_CSTR_ENTT_ENTT_ID;
ALTER TABLE magento_sales_order_grid_archive DROP FOREIGN KEY MAGENTO_SALES_ORDER_GRID_ARCHIVE_STORE_ID_STORE_STORE_ID;
ALTER TABLE magento_sales_shipment_grid_archive DROP FOREIGN KEY MAGENTO_SALES_SHIPMENT_GRID_ARCHIVE_STORE_ID_STORE_STORE_ID;
ALTER TABLE downloadable_link_purchased_item DROP FOREIGN KEY DL_LNK_PURCHASED_ITEM_ORDER_ITEM_ID_SALES_ORDER_ITEM_ITEM_ID;
ALTER TABLE downloadable_link_purchased DROP FOREIGN KEY DOWNLOADABLE_LINK_PURCHASED_ORDER_ID_SALES_ORDER_ENTITY_ID;
ALTER TABLE paypal_billing_agreement_order DROP FOREIGN KEY PAYPAL_BILLING_AGREEMENT_ORDER_ORDER_ID_SALES_ORDER_ENTITY_ID;

Verkaufsdatenbank konfigurieren

Führen Sie das vorherige Skript aus:

  1. Melden Sie sich bei Ihrer MySQL-Datenbank als root oder Administrator an:

    code language-bash
    mysql -u root -p
    
  2. Führen Sie an der Eingabeaufforderung mysql> das Skript wie folgt aus:

    code language-shell
    source <path>/<script>.sql
    

    Beispiel:

    code language-shell
    source /root/sql-scripts/1_foreign-sales.sql
    
  3. Geben Sie nach Ausführung des Skripts exit ein.

Verkaufsdaten sichern

In diesem Abschnitt wird beschrieben, wie Sie Verkaufstabellen aus der Commerce-Hauptdatenbank sichern, damit Sie sie in einer separaten Verkaufsdatenbank wiederherstellen können.

Wenn Sie sich derzeit an der mysql>-Eingabeaufforderung befinden, geben Sie exit ein, um zur Befehlszeile zurückzukehren.

Führen Sie die folgenden mysqldump-Befehle nacheinander aus der Befehlszeile aus. Ersetzen Sie jeweils Folgendes:

  • <your database root username> mit dem Namen Ihres Datenbankstammbenutzers
  • <your database root user password> mit dem Kennwort des Benutzers
  • <your main Commerce DB name> mit dem Namen Ihrer Commerce-Datenbank
  • <path> mit einem beschreibbaren Dateisystempfad

Script 1

mysqldump -u <your database root username> -p <your main Commerce DB name> sales_bestsellers_aggregated_daily sales_bestsellers_aggregated_monthly sales_bestsellers_aggregated_yearly sales_creditmemo sales_creditmemo_comment sales_creditmemo_grid sales_creditmemo_item sales_invoice sales_invoice_comment sales_invoice_grid sales_invoice_item sales_invoiced_aggregated sales_invoiced_aggregated_order sales_order sales_order_address sales_order_aggregated_created sales_order_aggregated_updated sales_order_grid sales_order_item sales_order_payment sales_order_status sales_order_status_history sales_order_status_label sales_order_status_state sales_order_tax sales_order_tax_item sales_payment_transaction sales_refunded_aggregated sales_refunded_aggregated_order sales_sequence_meta sales_sequence_profile sales_shipment sales_shipment_comment sales_shipment_grid sales_shipment_item sales_shipment_track sales_shipping_aggregated sales_shipping_aggregated_order > /<path>/sales.sql

Script 2

mysqldump -u <your database root username> -p <your main Commerce DB name> magento_sales_creditmemo_grid_archive magento_sales_invoice_grid_archive magento_sales_order_grid_archive magento_sales_shipment_grid_archive > /<path>/salesarchive.sql

Script 3

mysqldump -u <your database root username> -p <your main Commerce DB name> magento_customercustomattributes_sales_flat_order magento_customercustomattributes_sales_flat_order_address > /<path>/customercustomattributes.sql

Script 4

mysqldump -u <your database root username> -p <your main Commerce DB name> sequence_creditmemo_0 sequence_creditmemo_1 sequence_invoice_0 sequence_invoice_1 sequence_order_0 sequence_order_1 sequence_rma_item_0 sequence_rma_item_1 sequence_shipment_0 sequence_shipment_1 > /<path>/sequence.sql

Verkaufsdaten wiederherstellen

Dieses Skript stellt Verkaufsdaten in Ihrer Anführungsdatendatenbank wieder her.

NDB-Anforderung

Wenn Sie einen Cluster Netzwerkdatenbank (NDB) verwenden:

  1. Konvertieren Sie Tabellen aus InnoDb in NDB-Typ in Dump-Dateien:

    code language-bash
    sed -ei 's/InnoDb/NDB/' <file name>.sql
    
  2. Entfernen Sie Zeilen mit einem FULLTEXT-Schlüssel aus Dumps, da NDB-Tabellen FULLTEXT nicht unterstützen.

Daten wiederherstellen

Führen Sie die folgenden Befehle aus:

mysql -u <root username> -p <your sales DB name> < /<path>/sales.sql
mysql -u <root username> -p <your sales DB name> < /<path>/sequence.sql
mysql -u <root username> -p <your sales DB name> < /<path>/salesarchive.sql
mysql -u <root username> -p <your sales DB name> < /<path>/customercustomattributes.sql

Wo

  • <your sales DB name> mit dem Namen Ihrer Verkaufsdatenbank.

    In diesem Thema lautet der Beispiel-Datenbankname magento_sales.

  • <root username> mit Ihrem MySQL-Stamm-Benutzernamen

  • <root user password> mit dem Kennwort des Benutzers

  • Überprüfen Sie den Speicherort der zuvor erstellten Sicherungsdateien (z. B. /var/sales.sql).

Angebotsdatenbank konfigurieren

In diesem Abschnitt werden die Aufgaben zum Ablegen von Fremdschlüsseln aus den Tabellen der Verkaufsdatenbank und zum Verschieben von Tabellen in die Verkaufsdatenbank erläutert.

INFO
Dieser Abschnitt enthält Skripte mit bestimmten Datenbanktabellennamen. Wenn Sie Anpassungen vorgenommen haben oder eine vollständige Liste der Tabellen anzeigen möchten, bevor Sie Aktionen daran durchführen, finden Sie weitere Informationen unter Referenzskripte.

Anführungszeichen für Datenbanktabellennamen: Beginn mit quote. Die Tabellen magento_customercustomattributes_sales_flat_quote und magento_customercustomattributes_sales_flat_quote_address sind ebenfalls betroffen

Fremdschlüssel aus Anführungszeichen ablegen

Dieses Skript entfernt Fremdschlüssel, die auf nichtkursive Tabellen verweisen, aus Anführungszeichentabellen. Ersetzen Sie <your main Commerce DB name> durch den Namen Ihrer Commerce-Datenbank.

Erstellen Sie das folgende Skript und geben Sie ihm einen Namen wie 2_foreign-key-quote.sql:

use <your main DB name>;
ALTER TABLE quote DROP FOREIGN KEY QUOTE_STORE_ID_STORE_STORE_ID;
ALTER TABLE quote_item DROP FOREIGN KEY QUOTE_ITEM_PRODUCT_ID_CATALOG_PRODUCT_ENTITY_ENTITY_ID;
ALTER TABLE quote_item DROP FOREIGN KEY QUOTE_ITEM_STORE_ID_STORE_STORE_ID;

Führen Sie das Skript wie folgt aus:

  1. Melden Sie sich bei Ihrer MySQL-Datenbank als Root- oder Administratorbenutzer an:

    code language-bash
    mysql -u root -p
    
  2. Führen Sie an der Eingabeaufforderung mysql > das Skript wie folgt aus:
    source <path>/<script>.sql

    Beispiel:

    code language-shell
    source /root/sql-scripts/2_foreign-key-quote.sql
    
  3. Geben Sie nach Ausführung des Skripts exit ein.

Sichern von Anführungszeichentabellen

In diesem Abschnitt wird beschrieben, wie Sie Angebote aus der Hauptdatenbank sichern und in Ihrer Anführungsdatenbank wiederherstellen können.

Führen Sie den folgenden Befehl an einer Eingabeaufforderung aus:

mysqldump -u <your database root username> -p <your main Commerce DB name> magento_customercustomattributes_sales_flat_quote magento_customercustomattributes_sales_flat_quote_address quote quote_address quote_address_item quote_item quote_item_option quote_payment quote_shipping_rate quote_id_mask > /<path>/quote.sql;

NDB-Anforderung

Wenn Sie einen Cluster Netzwerkdatenbank (NDB) verwenden:

  1. Konvertieren Sie Tabellen aus InnoDb in NDB-Typ in Dump-Dateien:

    code language-bash
    sed -ei 's/InnoDb/NDB/' <file name>.sql
    
  2. Entfernen Sie Zeilen mit einem FULLTEXT-Schlüssel aus Dumps, da NDB-Tabellen FULLTEXT nicht unterstützen.

Tabellen in der Anführungsdatenbank wiederherstellen

mysql -u root -p magento_quote < /<path>/quote.sql

Verkaufs- und Zitatentabellen aus der Datenbank löschen

Dieses Skript verkauft und zitiert Tabellen aus der Commerce-Datenbank. Ersetzen Sie <your main DB name> durch den Namen Ihrer Commerce-Datenbank.

Erstellen Sie das folgende Skript und geben Sie ihm einen Namen wie 3_drop-tables.sql:

use <your main DB name>;
SET foreign_key_checks = 0;
DROP TABLE magento_customercustomattributes_sales_flat_quote;
DROP TABLE magento_customercustomattributes_sales_flat_quote_address;
DROP TABLE quote;
DROP TABLE quote_address;
DROP TABLE quote_address_item;
DROP TABLE quote_item;
DROP TABLE quote_item_option;
DROP TABLE quote_payment;
DROP TABLE quote_shipping_rate;
DROP TABLE quote_id_mask;
DROP TABLE sales_bestsellers_aggregated_daily;
DROP TABLE sales_bestsellers_aggregated_monthly;
DROP TABLE sales_bestsellers_aggregated_yearly;
DROP TABLE sales_creditmemo;
DROP TABLE sales_creditmemo_comment;
DROP TABLE sales_creditmemo_grid;
DROP TABLE sales_creditmemo_item;
DROP TABLE sales_invoice;
DROP TABLE sales_invoice_comment;
DROP TABLE sales_invoice_grid;
DROP TABLE sales_invoice_item;
DROP TABLE sales_invoiced_aggregated;
DROP TABLE sales_invoiced_aggregated_order;
DROP TABLE sales_order;
DROP TABLE sales_order_address;
DROP TABLE sales_order_aggregated_created;
DROP TABLE sales_order_aggregated_updated;
DROP TABLE sales_order_grid;
DROP TABLE sales_order_item;
DROP TABLE sales_order_payment;
DROP TABLE sales_order_status;
DROP TABLE sales_order_status_history;
DROP TABLE sales_order_status_label;
DROP TABLE sales_order_status_state;
DROP TABLE sales_order_tax;
DROP TABLE sales_order_tax_item;
DROP TABLE sales_payment_transaction;
DROP TABLE sales_refunded_aggregated;
DROP TABLE sales_refunded_aggregated_order;
DROP TABLE sales_sequence_meta;
DROP TABLE sales_sequence_profile;
DROP TABLE sales_shipment;
DROP TABLE sales_shipment_comment;
DROP TABLE sales_shipment_grid;
DROP TABLE sales_shipment_item;
DROP TABLE sales_shipment_track;
DROP TABLE sales_shipping_aggregated;
DROP TABLE sales_shipping_aggregated_order;
DROP TABLE magento_sales_creditmemo_grid_archive;
DROP TABLE magento_sales_invoice_grid_archive;
DROP TABLE magento_sales_order_grid_archive;
DROP TABLE magento_sales_shipment_grid_archive;
DROP TABLE magento_customercustomattributes_sales_flat_order;
DROP TABLE magento_customercustomattributes_sales_flat_order_address;
DROP TABLE sequence_creditmemo_0;
DROP TABLE sequence_creditmemo_1;
DROP TABLE sequence_invoice_0;
DROP TABLE sequence_invoice_1;
DROP TABLE sequence_order_0;
DROP TABLE sequence_order_1;
DROP TABLE sequence_rma_item_0;
DROP TABLE sequence_rma_item_1;
DROP TABLE sequence_shipment_0;
DROP TABLE sequence_shipment_1;
SET foreign_key_checks = 1;

Führen Sie das Skript wie folgt aus:

  1. Melden Sie sich bei Ihrer MySQL-Datenbank als Root- oder Administratorbenutzer an:

    code language-bash
    mysql -u root -p
    
  2. Führen Sie an der Eingabeaufforderung mysql> das Skript wie folgt aus:

    code language-shell
    source <path>/<script>.sql
    

    Beispiel:

    code language-shell
    source /root/sql-scripts/3_drop-tables.sql
    
  3. Geben Sie nach Ausführung des Skripts exit ein.

Aktualisierung der Bereitstellungskonfiguration

Der letzte Schritt beim manuellen Aufteilen von Datenbanken besteht darin, der Commerce-Bereitstellungskonfiguration env.php Verbindungs- und Ressourceninformationen hinzuzufügen.

So aktualisieren Sie die Bereitstellungskonfiguration:

  1. Melden Sie sich bei Ihrem Commerce-Server als Dateisysteminhaber an oder wechseln Sie zu ihm.

  2. Sichern Sie Ihre Bereitstellungskonfiguration:

    code language-bash
    cp <magento_root>/app/etc/env.php <magento_root>/app/etc/env.php.orig
    
  3. Öffnen Sie <magento_root>/app/etc/env.php in einem Texteditor und aktualisieren Sie ihn mithilfe der in den folgenden Abschnitten beschriebenen Richtlinien.

Datenbankverbindungen aktualisieren

Suchen Sie den Block, der mit 'default' beginnt (unter 'connection') und fügen Sie die Abschnitte 'checkout' und 'sales' hinzu. Ersetzen Sie die Beispielwerte durch die für Ihre Site geeigneten Werte.

 'default' =>
      array (
'host' => 'localhost',
'dbname' => 'magento',
'username' => 'magento',
'password' => 'magento',
'model' => 'mysql4',
'engine' => 'innodb',
'initStatements' => 'SET NAMES utf8;',
'active' => '1',
      ),
      'checkout' =>
      array (
'host' => 'localhost',
'dbname' => 'magento_quote',
'username' => 'magento_quote',
'password' => 'magento_quote',
'model' => 'mysql4',
'engine' => 'innodb',
'initStatements' => 'SET NAMES utf8;',
'active' => '1',
      ),
      'sales' =>
      array (
'host' => 'localhost',
'dbname' => 'magento_sales',
'username' => 'magento_sales',
'password' => 'magento_sales',
'model' => 'mysql4',
'engine' => 'innodb',
'initStatements' => 'SET NAMES utf8;',
'active' => '1',
      ),
    ),

Ressourcen aktualisieren

Suchen Sie den Block, der mit 'resource' beginnt, und fügen Sie ihm die Abschnitte 'checkout' und 'sales' wie folgt hinzu:

'resource' =>
  array (
    'default_setup' =>
    array (
      'connection' => 'default',
    ),
    'checkout' =>
    array (
      'connection' => 'checkout',
    ),
    'sales' =>
    array (
      'connection' => 'sales',
    ),

Referenzskripte

In diesem Abschnitt finden Sie Skripte, mit denen Sie eine vollständige Liste der betroffenen Tabellen drucken können, ohne Aktionen daran vornehmen zu müssen. Sie können sie verwenden, um zu sehen, welche Tabellen betroffen sind, bevor Sie Datenbanken manuell aufteilen. Dies kann nützlich sein, wenn Sie Erweiterungen verwenden, die das Datenbankschema anpassen.

So verwenden Sie diese Skripte:

  1. Erstellen Sie ein SQL-Skript mit dem Inhalt jedes Skripts in diesem Abschnitt.

  2. Ersetzen Sie in jedem Skript <your main DB name> durch den Namen Ihrer Commerce-Datenbank.

    In diesem Thema lautet der Beispiel-Datenbankname magento.

  3. Führen Sie jedes Skript aus der mysql>-Eingabeaufforderung als source <script name> aus

  4. Überprüfen Sie die Ausgabe.

  5. Kopieren Sie das Ergebnis jedes Skripts in ein anderes SQL-Skript und entfernen Sie die Pipe-Zeichen (|).

  6. Führen Sie jedes Skript aus der mysql>-Eingabeaufforderung als source <script name> aus.

    Beim Ausführen dieses zweiten Skripts werden die Aktionen in Ihrer Commerce-Hauptdatenbank ausgeführt.

Fremdschlüssel entfernen (Verkaufstabellen)

Dieses Skript entfernt ausländische Schlüssel, die auf nicht verkaufte Tabellen verweisen, aus der Verkaufsdatenbank.

select concat(
    'ALTER TABLE ',
    replace(for_name, '<your main DB name>/', ''),
    ' DROP FOREIGN KEY ',
    replace(id, '<your main DB name>/', ''),
    ';'
    )
from information_schema.INNODB_SYS_FOREIGN
where for_name like  '<your main DB name>/|sales_%' escape '|'
    and ref_name not like  '<your main DB name>/|sales_%' escape '|'
union all
select concat(
    'ALTER TABLE ',
    replace(for_name, '<your main DB name>/', ''),
    ' DROP FOREIGN KEY ',
    replace(id, '<your main DB name>/', ''),
    ';'
    )
from information_schema.INNODB_SYS_FOREIGN
where for_name like  '<your main DB name>/|magento_sales|_%' escape '|'
    and ref_name not like  '<your main DB name>/|sales|_%' escape '|'
;

Fremdschlüssel entfernen (Anführungszeichen)

Dieses Skript entfernt Fremdschlüssel, die auf nichtkursive Tabellen verweisen, aus Anführungszeichentabellen.

select concat(
    'ALTER TABLE ',
    replace(for_name, '<your main DB name>/', ''),
    ' DROP FOREIGN KEY ',
    replace(id, '<your main DB name>/', ''),
    ';'
    )
from information_schema.INNODB_SYS_FOREIGN
where for_name like '<your main DB name>/%'
    and ref_name like '<your main DB name>/sales\_%'
union all
select concat(
    'ALTER TABLE ',
    replace(for_name, '<your main DB name>/', ''),
    ' DROP FOREIGN KEY ',
    replace(id, '<your main DB name>/', ''),
    ';'
    )
from information_schema.INNODB_SYS_FOREIGN
where for_name like '<your main DB name>/%'
    and ref_name like '<your main DB name>/magento_sales\_%'
union all
select concat(
    'ALTER TABLE ',
    replace(for_name, '<your main DB name>/', ''),
    ' DROP FOREIGN KEY ',
    replace(id, '<your main DB name>/', ''),
    ';'
    )
from information_schema.INNODB_SYS_FOREIGN
where for_name like '<your main DB name>/%'
    and ref_name like '<your main DB name>/magento_customercustomattributes\_%'
;

Absatztabellen ablegen

Dieses Skript entfernt Verkaufstabellen aus der Commerce-Datenbank.

use <your main DB name>;
select ' SET foreign_key_checks = 0;' as querytext
union all
select
    concat('DROP TABLE IF EXISTS ' , table_name, ';')
from information_schema.tables
where table_schema = '<your main DB name>'
and table_name like 'sales/_%' escape '/'
union all
select
    concat('DROP TABLE IF EXISTS ' , table_name, ';')
from information_schema.tables
where table_schema = '<your main DB name>'
and table_name like 'magento_sales/_%' escape '/'
union all
select
    concat('DROP TABLE IF EXISTS ' , table_name, ';')
from information_schema.tables
where table_schema = '<your main DB name>'
and table_name like 'magento_customercustomattributes_sales_flat_order%' escape '/'
union all
select
    concat('DROP TABLE IF EXISTS ' , table_name, ';')
from information_schema.tables
where table_schema = '<your main DB name>'
and table_name like 'sequence/_%' escape '/'
union all
select 'SET foreign_key_checks = 1;';

Löschen von Anführungszeichentabellen

Legen Sie alle Tabellen ab, die mit quote_ beginnen.

recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c