Ältere Plattform

Datenbanktabellen manuell erstellen

Informationen zu diesem Vorgang

Wenn Sie während der Foundation-Installation keine Datenbanktabellen erstellt haben, kann ein Datenbankadministrator diese Tabellen jetzt manuell erstellen. Das Dienstprogramm dbverify generiert SQL-Scripts zum Verwalten der Datenbanktabellenerstellung und -änderung. Abhängig von der Task können Sie alle von dbverify generierten SQLs oder bestimmte SQLs anwenden. Wenn Sie beispielsweise eine Spalte zu einer Tabelle hinzufügen möchten, müssen Sie nur die relevante SQL-Anweisung "Create Column" anwenden.

Wenn Sie eine Installation im Upgrademodus ausführen, wird ein neues XML-Entitätsrepository installiert, aber dbverify wird nicht ausgeführt. Eine Datenbank, die dem XML-Repository der alten Entität entspricht, ist bereits vorhanden. Während des Upgradeprozesses vergleicht das Ziel initupgrade die XML-Entitätsrepositorys aus den alten und neuen Laufzeiten und generiert Änderungsscripts für die Shardmigration. Die Änderungsscripts werden auf die Datenbank angewendet, die dann die neue Installation und die Kundenänderungen aus der alten Laufzeit widerspiegelt.

Manchmal enthalten die Änderungsscripts nicht alle erforderlichen Datenbankänderungen. In diesen Fällen wird dbverify verwendet, um Korrekturen an der Datenbank vorzunehmen.

Sie können dbverify wie folgt ausführen:

Vorgehensweise

  1. (nurOracle ) Wenn Sie die Oracle -Datenbank verwenden, fügen Sie der Datei <INSTALL_DIR>/properties/sandbox.cfg einen Eintrag ORA_TS_CONTEXT hinzu. Dieser Eintrag bestimmt den Textsuchindextyp für Oracle.

    Weisen Sie ORA_TS_CONTEXT einen der folgenden Werte zu:

    • KONTEXT

      Für den schnellen Abruf von unstrukturiertem Text.

    • CTXCAT (Standardwert)

      Zum Abrufen von strukturiertem Text wie Zahlen und Datumsangaben.

  2. (NurOracle ) Wenn Sie die Datenbank Oracle verwenden, fügen Sie einen Eintrag ORACLE_NLS_LENGTH_SEMANTICS zur Datei sandbox.cfg im Unterverzeichnis 'properties' Ihres Installationsverzeichnisses hinzu. Dieser Eintrag legt den Typ der Semantik für die Länge fest, die für die Oracle -Datenbank verwendet werden soll, wenn das Tool dbverify verwendet wird.

    Weisen Sie ORACLE_NLS_LENGTH_SEMANTICS einen der folgenden Werte zu:

    • CHAR
    • BYTE (Standardwert)
    Hinweis: Wenn die Datenbank oder die Sitzung, in der die Datenbank erstellt wurde, die Semantik für die Länge als CHAR hat, muss diese Eigenschaft auf CHAR gesetzt werden, bevor das Tool dbverify ausgeführt wird.
  3. Sie können verhindern, dass dbverify "IndexAdds" SQLs für Indizes generiert, die aus der Datenbank entfernt wurden; z.B. wenn Sie einen Index in einer früheren Version entfernt haben und nun dbverify verwenden, um eine Korrektur in der Datenbank vorzunehmen. Um zu verhindern, dass dbverify "IndexAdds" SQLs für Indizes generiert, die aus der Datenbank gelöscht wurden, erstellen Sie mit einem Texteditor die Datei indexes_not_created.txt und legen Sie die Datei im Verzeichnis <INSTALL_DIR>/extensions/schemagenerator/ ab. Dies ist der Standardname und die Standardposition der Datei zur Unterdrückung der Indexerstellung. Stellen Sie beim Erstellen der Datei sicher, dass Sie gelöschte Indizes in separaten Zeilen der Datei angeben. Wenn Sie einen anderen Namen und eine andere Position für die Datei verwenden wollen, geben Sie die Eigenschaft INDEXES_NOT_CREATED in der Datei <INSTALL_DIR>/properties/sandbox.cfg an und setzen Sie den Wert der Eigenschaft auf den vollständigen Pfad, aus dem die Datei zur Unterdrückung der Indexerstellung gelesen werden soll.
  4. Wenn Sie eine nicht gemeinsam genutzte Implementierung haben, überspringen Sie diesen Schritt und fahren Sie mit Schritt 5 fort.

    Wenn Sie über eine Sharded-Implementierung verfügen und die Installation im Upgrademodus erfolgt, führen Sie das Script dbverify im Ordner <INSTALL_DIR>/bin/ aus und übergeben Sie die Datei multischema.xml , die Datenbankinformationen angibt und Typen von Sharded-Tabellen konfiguriert:

    
       
    dbverify.sh -colonyxml <INSTALL_DIR>/multischema.xml (on UNIX
    and Linux) 
    

    oder

    
    dbverify.cmd -colonyxml <INSTALL_DIR>/multischema.xml (on
    Windows)
       
    

    Wenn Sie den Befehl dbverify ausführen, ohne die Datei multischema.xml zu übergeben, wird dbverify für alle Kolonien ausgeführt.

    Hinweis: Die Eigenschaft multischema.applyddl ist standardmäßig auf 'true' gesetzt, sodass das Script dbverify die zugehörigen Scripts automatisch ausführen kann. Wenn Sie den Wert auf "false" setzen, generiert das Script dbverify DDLs, wendet diese aber nicht an. In diesem Fall müssen Sie diese Scripts manuell ausführen.

    Um dbverify für eine bestimmte Kolonie auszuführen, übergeben Sie die Kolonie-ID wie folgt in der Befehlszeile:

    
       dbverify.sh -ColonyId <Colony_Id> (on UNIX and Linux) 
    

    oder

    
       dbverify.cmd -ColonyId <Colony_Id> (on Windows) 
    
  5. Wenn Sie die Installation im Modus "nonsharded" durchführen, führen Sie das Script dbverify im Ordner <INSTALL_DIR>/bin/ wie folgt aus:
    
       dbverify.sh (on UNIX and Linux) 
    

    oder

    
       dbverify.cmd (on Windows)
       
    
  6. Wenn Sie die Textsuchfunktion aktiviert haben und den Textsuchindextyp in Oracle von 'ctxcat' in den Kontext oder umgekehrt ändern, finden Sie die aktualisierten SQL-Scripts zum Erstellen und Löschen in der Datei <INSTALL_DIR>/bin/EFrame_TextIndexUpdates.sql .

    In Sharded-Bereitstellungen sind die aktualisierten SQL-Skripte zum Erstellen und Ablegen in der Datei <INSTALL_DIR>/bin/EFrame_<Pool_Id>_<TableType>.sql zu finden, wobei:

    • <Pool-ID> durch den Namen des JDBC-Pools, für den die SQL-Scripts wie in der Datei jdbc.properties oder multischema.xml angegeben ausgeführt werden sollen.
    • <FileType> bezieht sich auf einen aus einer Reihe von fest kodierten Namen, die verwendet werden, um verschiedene Typen von SQL-Anweisungen zu enthalten. Folgende Werte sind gültig:
      • UpdateQueries
      • TableChanges
      • Reihenfolge
      • IndexDrops
      • IndexAdds
      • TextIndexDrops
      • TextIndexAdds
      • TextIndexUpdates
      • TextIndexModify

      Das Script für Tabellenänderungen für den Metadatenpool für eine Oracle -Installation würde beispielsweise wie folgt heißen: EFrame_oraclePool_TableChanges.sql

  7. Die Unterschiede zwischen den Entitäts-XMLs und der Datenbank werden in Form von SQL-Scripts generiert, die zur Korrektur der Unterschiede für die Datenbank ausgeführt werden können.

    Wenn beispielsweise die Größe eines Datentyps für eine Spalte [varchar2(20) zu varchar2(40)], der ein Index zugeordnet ist, nicht übereinstimmt, generiert dbverify SQL-Anweisungen für:

    • Löschen des Index
    • Größe des Datentyps für die Spalte ändern
    • Neuen Index erstellen

    Die drei in der vorherigen Liste beschriebenen SQL-Anweisungen werden in verschiedenen *.sql -Dateien angezeigt. Die entsprechenden *.sql -Dateien müssen in der folgenden Reihenfolge ausgeführt werden:

    1. Führen Sie <INSTALL_DIR>/repository/scripts/EFrame_IndexDrops.sql aus, um den Index zu löschen.
    2. Führen Sie <INSTALL_DIR>/repository/scripts/EFrame_TableChanges.sql aus, um die Größe des Datentyps für eine Spalte zu ändern.
    3. Führen Sie den Befehl <INSTALL_DIR>/repository/scripts/EFrame_IndexAdds.sql aus, um einen neuen Index zu erstellen.

    Wenn die SQL-Anweisungen nicht in der oben genannten Reihenfolge ausgeführt werden, führt dies zu einem Scriptfehler.

    Die in Tabelle 1 aufgeführten Scripts werden generiert.

    Hinweis: Alle unten aufgelisteten Scripts befinden sich im Verzeichnis <INSTALL_DIR>/bin .
    Tabelle 1. Generierte Scripts
    Name des nicht gemeinsam genutzten Scripts Name des gemeinsam genutzten Scripts Beschreibung des Scripts
    
    EFrame_Sequence.sql
     
    
    
    EFrame_<Pool_Id>_<Tab
    leType>_Sequence.sql
     
    
    Enthält alle zusätzlichen Sequenzen, die erstellt werden müssen
    
    EFrame_TableChanges.s
    ql
    
    
    EFrame_<Pool_Id>_<Tab
    leType>_TableChanges.
    sql
     
    
    Enthält alle Tabellenspaltenunterschiede, die auf das Datenbankshard angewendet werden müssen. Ändern Sie diese Datei, um auf Ihre Tabellenbereiche zu verweisen.
    
    EFrame_Drops.lst
    
    
    EFrame_<Pool_Id>_<Tab
    leType>_Drops.lst
    
    Diese Datei enthält Muster-und/oder Informationsänderungen, die vom Entitätsimplementierer nicht auf die Datenbank angewendet werden, da sie zu Datenverlust führen können. Überprüfen Sie die Datei gründlich und ergreifen Sie die erforderlichen Maßnahmen für die Einträge in Ihrer Umgebung.
    Hinweis: Die Systemsoftware „ Sterling™ Order Management “ enthält keine.sql-Datei zum Entfernen von Tabellen aus der Datenbank, sondern nur die Drop-Anweisungen in der.lst-Datei. Wenn Sie diese Tabellen löschen möchten, müssen Sie dies manuell tun. Überprüfen Sie die Einträge in der Datei sorgfältig, bevor Sie Maßnahmen ergreifen.
    
    EFrame_IndexAdds.sql
    
    
    EFrame_<Pool_Id>_<Tab
    leType>_IndexAdds.sql
    
    Fügt alle Indizes hinzu, die in der Datenbank erstellt werden müssen. Ändern Sie diese Datei, um auf Ihre Tabellenbereiche zu verweisen.
    
    EFrame_IndexDrops.sql
    
    
    EFrame_<Pool_Id>_<Tab
    leType>_IndexDrops.sq
    l
     
    
    Entfernt alle zusätzlichen Indizes in der Datenbank.
    
    EFrame_TextIndexAdds.
    sql
    
    
    EFrame_<Pool_Id>_<Tab
    leType>_TextIndexAdds
    .sql
    
    Fügt neue Textsuchindizes hinzu, die in der Datenbank erstellt werden müssen
    
    EFrame_TextIndexDrops
    .sql
    
    
    EFrame_<Pool_Id>_<Tab
    leType>_TextIndexDrop
    s.sql
    
    Entfernt Textsuchindizes aus der Datenbank.
    
    EFrame_TextIndexModif
    y.sql
    
    
    EFrame_<Pool_Id>_<Tab
    leType>_TextIndexModi
    fy.sql
    
    Aktualisiert die Textsuchindizes in der Datenbank.
    
    EFrame_TextIndexUpdat
    es.sql
    
    
    EFrame_<Pool_Id>_<Tab
    leType>_TextIndexUpda
    tes.sql
    
    Bei der Ausführung wird der Inhalt der Textindizes aktualisiert.
    
    EFrame_UpdateQueries.
    sql
    
    
    EFrame_<Pool_Id>_<Tab
    leType>_UpdateQueries
    .sql
    
    Bei Upgrades werden die Tabellenspaltenwerte aktualisiert, um weitere Änderungen an den Spalten anzuwenden. Wenn beispielsweise eine Tabellenspalte in der Installation eines früheren Release von 'nullfähig' in 'nicht nullfähig' geändert wird, müssen die Spaltenwerte aktualisiert werden, bevor die Spalte im aktuellen Release als nicht null definiert werden kann, da die Spaltenstandardwerte für das aktuelle Release Nullwerte enthalten können.
    Hinweis: In nicht gemeinsam genutzten Implementierungen gibt <INSTALL_DIR>/bin/EFrame_Drops.lst zusätzliche Objekte in der Datenbank an. In gemeinsam genutzten Implementierungen lautet dieser Dateiname <INSTALL_DIR>/bin/EFrame_<Pool_Id>_<TableType>_Drops.lst. .

    Diese zusätzlichen Objekte können angepasste Objekte oder Objekte sein, die als Ergebnis einer Shardänderung oder eines Upgrades gelöscht werden. Überprüfen Sie dieses Script sorgfältig.

    Dieses Script kann auch reduzierte Spalten enthalten. Dies sind Spalten, die geändert wurden, um in der neueren Version eine kleinere Größe zu haben. Diese Änderungen werden aus folgenden Gründen unterdrückt:

    • Nicht alle Datenbanken ermöglichen Ihnen, die Änderungen anzuwenden.
    • Datenbanken, in denen Sie die Änderungen anwenden können, können sich unvorhersehbar verhalten, wenn die Tabelle bereits Werte enthält, die die neue Länge überschreiten.
  8. Führen Sie die für Ihren Datenbanktyp angegebenen Scripts aus, wie in den folgenden Abschnitten beschrieben. Sie müssen diese Scripts nur ausführen, wenn Sie die Ansichten nach der Installation manuell erstellen (REINIT_DB=no). Im normalen Installationsmodus (REINIT_DB=yes) werden die Ansichten automatisch angewendet.

Beispiel

Als erweitertes Beispiel könnten Sie die folgenden Scripts nach der Installation in dieser Reihenfolge ausführen:
  • EFrame_TextIndexDrops.sql
  • EFrame_IndexDrops.sql
  • EFrame_TableChanges.sql
  • EFrame_IndexAdds.sql
  • EFrame_TextIndexAdds.sql
  • EFrame_Sequence.sql
  • EFrame_TextIndexModify.sql
  • EFrame_TextIndexUpdates.sql
  • EFrame_TextIndexUpgrade.sql
  • EFrame_Static.sql
Gehen Sie wie folgt vor, um diese über die Befehlszeile db2 auszuführen:
  1. Stellen Sie eine Verbindung zur Datenbank her, indem Sie Folgendes eingeben:db2 "connect to <SERVER> user <USER> using <PASSWORD>"
  2. Gehen Sie dann für jede Datei wie folgt vor: db2 -v -f <SQLFILE>
  3. Geben Sie anschließend Folgendes ein: db2 "connect reset"