Die AE-Datenbank vorbereiten - Oracle
Dieses Thema führt Sie durch die notwendigen Schritte zum Einrichten einer Oracle-Datenbank für die Automation Engine.
Hinweise:
-
Für die Durchführung dieses Schrittes sind Datenbankadministrationsrechte erforderlich.
-
Lesen Sie den Referenzabschnitt der AE-Datenbank, um die Leistung zu optimieren. Weitere Informationen finden Sie unter Empfehlungen für Oracle.
-
Änderungen an Datenbankinhalten führen zu einer inkonsistenten Datenbank.
-
Sie können die AE-Datenbank pflegen, indem Sie die Partitionierung mit ILM (Information Lifecycle Management) verwenden. Weitere Informationen finden Sie unter Automation Engine Datenbank, bevor Sie die Datenbank einrichten.
-
Wenn Sie die Datenbank für eine Container-basierte Installation vorbereiten, stellen Sie sicher, dass Sie auch die Datei values.yaml nach Bedarf anpassen. Weitere Informationen finden Sie unter Die AE- und Analytics-Datenbanken für die Container-Installation vorbereiten.
-
Wenn Sie Cloud-gehostete Datenbanken verwenden, haben Sie möglicherweise nicht die erforderlichen Berechtigungen, um Tablespaces zu erstellen oder umzubenennen. In diesem Fall können Sie die Standard-Tablespaces angeben, die als Alternativen in Automic Automation und Automic Automation Kubernetes Edition bereitgestellt sind.
Mehr Informationen:
- Kompatibilitätsinformationen
- Empfehlungen für Oracle
- Oracle-Parameter
- Automation Engine Datenbank
- ILM - Information Lifecycle Management
- UC_SYSTEM_SETTINGS - Systemübergreifende Einstellungen
Diese Seite beinhaltet Folgendes:
Erforderlicher Speicherplatz
Der anfänglich benötige Datenbank-Speicherplatz, der für eine Automation Engine-Installation benötigt wird, hängt vom Typ und von der Größe des Systems ab:
-
Testsysteme: 1 GB
-
Produktionssysteme
-
Kleine Systeme: 5–20 GB
-
Mittlere Systeme: 20–50 GB
-
Große Systeme: > 50 GB
-
Weitere Informationen finden Sie unter Automic Automation Systemanforderungen und Dimensionierung.
Einstellung der Codepage
Wichtig! Die Codepage-Einstellung des DB-Mandanten muss mit den Datenbankeinstellungen übereinstimmen. Die drei Codepages, zwischen denen Sie wählen können, sind WE8ISO8859P1, WE8ISO8859P15 und WE8MSWIN1252. Welche Sie wählen, hängt davon ab, welchen Zeichensatz Sie in der Datenbank speichern müssen. Stellen Sie daher sicher, dass der in XML_ENCODING definierte Zeichensatz in der Variablen UC_SYSTEM_SETTINGS dem Zeichensatz der Datenbank entspricht. Weitere Informationen finden Sie unter XML_ENCODING.
So scheint beispielsweise WE8ISO8859P15 die bessere Wahl zu sein, da WE8ISO8859P1 das Eurozeichen (€) nicht unterstützt. WE8MSWIN1252 unterstützt das Eurozeichen sowie mehrere zusätzliche Zeichen. Verwenden Sie diese Codepage, wenn Sie Ihre Datenbank neu einrichten.
Hinweis: Eine Umstellung Ihrer Datenbank auf einen neuen Zeichensatz ist nicht erforderlich, wenn sie WE8ISO8859P1 verwendet und Sie keines der zusätzlichen Zeichen benötigen.
Bei der Verwendung von 8-Bit-Zeichensätzen können Sie das gleiche Code-Set für die Datenbank und den Datenbank-Client verwenden. In diesem Fall findet keine Datenkonvertierung statt. Allerdings müssen auch das User Interface, der Server und die Dienstprogramme mit dem 8-Bit-Zeichensatz kompatibel sein.
Mit dem folgenden Befehl können Sie Ihre Datenbankeinstellungen abfragen:
SELECT * FROM NLS_DATABASE_PARAMETERS
Sie können auch Ihre Codepage-Einstellung angeben:
-
Windows
Setzen Sie HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\...\NLS_LANG in der Registry in Übereinstimmung mit Ihrer Datenbankeinstellung fest.
-
UNIX
Sie können die Umgebungsvariable NLS_LANG wie unten gezeigt einstellen:
NLS_LANG =<NLS_LANGUAGE>_<NLS_TERRITORY>.<CHARACTER SET>;export NLS_LANG
Beispiel
NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P15;export NLS_LANG
Sie können die Einstellungen der Codepage auch in den INI-Dateien der jeweiligen Komponenten ([ODBC] Abschnitt) definieren.
Oracle UTF-8 und die Automation Engine
Das Automation Engine verwendet ANSI/ASCII. Der DB-Mandant muss mit einem 8-Bit-Zeichensatz richtig konfiguriert werden, da sonst die Daten nicht korrekt konvertiert werden können.
Die Benutzeroberfläche verwendet UTF-8 und konvertiert Daten entsprechend der angegebene Codepage in ANSI/ASCII, bevor sie zum Server transportiert werden. Verwenden Sie andere Zeichensätze nur in enger Zusammenarbeit mit dem CA Automic-Support.
Wenn Sie Ihre Datenbank für den Betrieb in UTF-8 benötigen, müssen Sie sicherstellen, dass die Daten korrekt konvertiert werden, da die Datenbank sonst nicht ordnungsgemäß funktioniert.Daher ist es unerlässlich, dass die Codepages des DB-Mandanten und das User Interface übereinstimmen. Im Verbindungs- setzen Sie die dritte Ziffer auf "1", damit die String-Daten nicht geprüft werden (andernfalls kann die Automation Engine nicht booten). In den Log-Dateien können Sie die Zeichen sehen die Oracle in ? konvertiert hat, die daher nicht verfügbar sind.
Die folgenden Anforderungen sind entscheidend:
Wenn die Datenbank mit UTF-8 eingestellt werden soll, definieren Sie NLS_LENGTH_SEMANTICS = CHAR.
Der Datenbank-Client muss einen 8-Bit-Zeichensatz (WE8ISO8859P15 oder ähnlich) verwenden und Sie müssen NLS_LENGTH_SEMANTICS = CHAR definieren.
Geben Sie in der Variablen UC_SYSTEM_SETTINGS im Schlüssel XML_ENCODING die gleiche Codepage an, die auch vom Datenbank-Client verwendet wird.
Verwenden Sie im INI-Dateiparameter SQLDRIVERCONNECT= (Abschnitt [ODBC] die gleichen Einstellungen für die Automation Engine und die Dienstprogramme, auch mit dem gleichen Zeichensatz).
Sonstige Anforderungen
Datenbank Computer
Es muss ein 64-Bit-Client installiert sein.
-
Installieren Sie die Oracle-Client-Software auf dem Automation Engine-Computer, um den Zugriff auf die Datenbank zu ermöglichen.
Wichtig! Der Oracle Instant Client ist nicht ausreichend für die Arbeit mit der AE-Datenbank. Die Oracle-Client-Version muss der verwendeten Oracle-Version entsprechen.
-
Geben Sie den Datenbanknamen in die Datei TNSNAMES.ORA ein.
-
Ändern Sie die Blockgröße bei der Installation der Datenbank auf 8192 Bytes und verwenden Sie Ihren bevorzugten Zeichensatz wie oben beschrieben.
-
Installieren Sie das Paket DBMS_LOB.
Voraussetzungen für ILM
Sie können Ihre Datenbank mit ILM partitionieren, um die optimale Leistung Ihres Automation Engine-Systems zu gewährleisten. Oracle benötigt die Berechtigung für USER_OBJECTS, um mit ILM zu arbeiten.
Oracle RAC
-
Setzen Sie in der Datei INIT.ORA den Parameter _lm_dd_interval auf <= 10 Sekunden. Sie können den Wert "0" auch verwenden, um Deadlocks früher zu erkennen.
-
Sie benötigen eine Datenbank-Benutzer-ID für die Automation Engine mit ausreichenden Rechten.
-
Alle Automation Engine-Prozesse dürfen sich nur mit einem Element verbinden. Verwenden Sie Oracle-Dienste, um sicherzustellen, dass nur ein Element verwendet wird und der Dienst jeweils nur auf einem Element verfügbar ist.
-
Automation Engine unterstützt Oracle RAC in einer Automation Engine aktiv/aktiv-Konfiguration, funktioniert aber nur mit einem Knoten. Oracle-Dienste müssen verwendet und so eingerichtet werden, dass nur ein Element verwendet wird.
-
Die Automation Engine hat einen eingebauten Software-Cluster. Daher erfordert das Aufstellen der Automation Engine auf mehreren Boxen für hohe Verfügbarkeit (HA) keine zusätzlichen manuellen Schritte.
-
DATA GUARD ist nicht HA, daher sind manuelle Schritte erforderlich. Abhängig vom verwendeten Modus kann es zu einer Leistungsabnahme kommen (SYNC-Commit,...).
Eine Oracle-Datenbank einrichten
Im Datenbank Computer:
-
Definieren Sie die Tablespaces.
-
Ermöglichen Sie unlimitierte Extents (MAXEXTENTS), anstatt sie zu limitieren.
-
Die Tablespace-Größen können individuell angepasst werden (mindestens 1 GB UC4_DATA, 500 MB UC4_INDEX für eine Testumgebung).
-
Tablespace-Administration durch ASSM (Automatic Segment Space Management): SEGEMENT_SPACE_MANAGEMENT=AUTO.
-
Melden Sie sich mit einer Benutzer-ID mit DBA-Rechten der Oracle-Datenbank an und definieren Sie die Tablespaces:
CREATE TABLESPACE UC4_DATA
DATAFILE 'Pfad zu uc4_data.ora'
SIZE 1024M
AUTOEXTEND ON NEXT 1024M MAXSIZE 2048M
DEFAULT STORAGE (INITIAL 512K NEXT 2048K MAXEXTENTS UNLIMITED);
CREATE TABLESPACE UC4_INDEX
DATAFILE 'Pfad zu uc4_index.ora'
SIZE 512M
AUTOEXTEND ON NEXT 512M MAXSIZE 1024M
DEFAULT STORAGE (INITIAL 512K NEXT 512K MAXEXTENTS UNLIMITED);
Hinweis:
Wenn Sie Cloud-gehostete Datenbanken verwenden und keine Rechte zum Erstellen oder Umbenennen von Tablespaces haben, verwenden Sie die Standardwerte für die Tablespace-Definition.
In Automic Automation können Sie dies auf der Benutzeroberfläche des Dienstprogramms DB Load erledigen, während die Datenbank geladen wird, oder unter Verwendung der Kommandozeile, siehe .
In Automic Automation Kubernetes Edition erledigen Sie es in der Datei values.yaml:
databases: automationEngine: ... dataTablespaceName: <AE-Daten-Tablespace-Name> indexTablespaceName: <AE-Index-Tablespace-Name> ... analytics: ... dataTablespaceName: <Analytics-Daten-Tablespace-Name> indexTablespaceName: <Analytics-Index-Tablespace-Name> ...
-
-
Legen Sie einen Datenbankbenutzer an. Es wird empfohlen, einen zusätzlichen Datenbankbenutzer für AE anzulegen. Dieser Benutzer muss über die erforderlichen Privilegien verfügen.
-
Ändern Sie die Speicherparameter für große Tabellen:
-
Erhöhen Sie die Anfangswerte, wie sie für produktive Umgebungen und große Tabellen erforderlich sind. Dies gilt für die folgendie Registerkarteellen:
-
Um die Werte zu erhöhen, müssen Sie die Installationsdatei UC_DDL.SQL für die folgendie Registerkarteellen ändern:
INI, MELD, ODOC, OT, AH, AJPP, AJPPA, RH und RT.
CREATE TABLE MELD (
MELD_Idnr INTEGER NOT NULL,
MELD_USR_Idnr INTEGER NOT NULL,
MELD_Seen SMALLINT NULL,
MELD_TimeStamp DATE NULL,
MELD_MsgNr INTEGER NULL,
MELD_MsgInsert VARCHAR2 (255) NULL,
MELD_DeleteFlag SMALLINT NULL,
MELD_Client SMALLINT NULL,
MELD_Source INTEGER NULL,
MELD_Category INTEGER NULL,
MELD_Type INTEGER NULL,
MELD_Host VARCHAR2 (200) NULL,
MELD_ArchiveFlag SMALLINT NULL,
CONSTRAINT PK_MELD PRIMARY KEY
(
MELD_Idnr
) USING INDEX TABLESPACE UC4_INDEX
) TABLESPACE UC4_DATA
STORAGE (INITIAL 51200K NEXT 7168K MAXEXTENTS UNLIMITED);
-
-
Definieren Sie ein großes Rollback-Segment für die Automation Engine. Die Größe sollte 10-25 % der Automation Engine-Daten betragen.
Oracle-Datenbankverbindungen sichern
Mit TLS/SSL können Sie die Verbindung zwischen der Oracle-Datenbank und Ihrer Automic Automation-Installation sichern.
Hinweise:
-
Stellen Sie sicher, dass Sie mit Oracle DB Server 12 oder höher arbeiten.
-
Beachten Sie, dass Sie für die Einrichtung des Zertifikats verantwortlich sind. Wenn Sie TLS/SSL verwenden, um Ihre Datenbank mit der Automation Engine zu verbinden, stellen Sie sicher, dass das entsprechende Zertifikat korrekt eingerichtet ist. Andernfalls schlägt die Verbindung möglicherweise fehl.
Weitere Informationen und ein Beispiel, wie Sie die Datenbankverbindung mit TLS/SSL sichern, finden Sie unter Automic Automation-Datenbankverbindungen sichern.
Szenarien
Szenario 1: RAC
Die Automation Engine ist nicht vollständig RAC-fähig, da sie nur von der erhöhten Verfügbarkeit eines RAC-Systems profitiert. Seine Leistung verbessert sich jedoch nicht durch den Einsatz der RAC-Technologie. Im Gegenteil, Sie müssen sicherstellen, dass Ihr System nur mit einem Knoten des RAC-Systems kommuniziert, um den Datenverkehr durch das Cluster Interconnect und die administrative Arbeitsbelastung zu minimieren. Auf diese Weise reduzieren Sie auch die Wahrscheinlichkeit von Deadlocks, die in der Datenbank auftreten können, da Datenbankknoten versuchen, gleichzeitig auf die Datenbank zuzugreifen.
Hinweis: Innerhalb eines RAC-Elements verwendet Oracle in der Regel eine Sperre auf Zeilenebene. Allerdings werden die Übertragung auf Blockebene und die Ressourcensperre zwischen den RAC-Knoten verwendet. Um sicherzustellen, dass die AE immer nur mit einem Knoten verbunden ist, wird die Verwendung von Cluster Managed Services empfohlen. Sie müssen sie so konfigurieren, dass der Dienst nur auf einem Knoten läuft und die Cluster-Software ihn bei Bedarf auf den zweiten Knoten verschiebt.
Beispiel für die Einrichtung eines Clusterdienstes:
srvctl add service –d <DB NAME> -s <SERVICE NAME> -r <Node 1> -a <Node 2>
srvctl start service –d <DB NAME> -s <SERVICE NAME>
Ebenso muss in TNSNAMES.ORA unter CONNECT_DATA=(SERVICE-NAME=<SERVICENAME<) der mit srvctl erzeugte Dienstname verwendet werden.
Stellen Sie sicher, dass die folgenden Datenbankparameter gesetzt sind, wenn Sie ein RAC-System mit der AE verwenden:
INIT.ORA
-
active_instance_count = 1
Dieser Parameter ist nur relevant, wenn ein RAC-System mit genau zwei Elementen verwendet wird und stellt sicher, dass alle Datenbank-Sessions immer nur mit einem Element verbunden sind. Sie ist nicht erforderlich, wenn Cluster Managed Services verwendet werden.
-
_lm_dd_interval <= 10
Dieser Parameter bestimmt das Intervall für das Erkennen oder Entfernen von Deadlocks in der Datenbank.
-
Filesystemio_options = SETALL
Dieser Parameter stellt sicher, dass die Datenbankinstanz sowohl ASYNC I/O als auch DIRECTION verwendet. Auf diese Weise erreichen Sie die optimale Leistung bei einer sinnvollen Puffercache-Größe.
-
local_listener
Dieser Parameter stellt sicher, dass sich die Datenbankinstanz beim lokalen Listener registriert.
-
remote_listener – only in RAC
Dieser Parameter stellt sicher, dass sich die Datenbankinstanz mit dem anderen Listener im RAC registriert.
TNSNAMES.ORA
-
LOAD_BALANCE=ON (gültig für den Datenbank-Client)
Der Effekt ist, dass die CONNECT-Load gleichmäßig auf alle Listener im RAC verteilt ist.
-
FAILOVER=ON (gültig für den Datenbank-Client)
Dieser Parameter stellt sicher, dass ein Verbindungsausfall der Datenbank-Session stattfindet, wenn das primäre RAC-Element nicht mehr verfügbar ist.
Beispiel für eine entsprechende tnsnames.ora für den RAC-Eintrag:
UC4P =
(DESCRIPTION =
(ENABLE=BROKEN)
(ADDRESS = (PROTOCOL = TCP)(HOST = knoten1-VIP)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = knoten2-VIP)(PORT = 1521))
(LOAD_BALANCE = on
(FAILOVER = on)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = UC4P) ### Cluster Managed Service-Name
)
)
Szenario 2: Data Guard
Im Folgenden werden die Merkmale der Oracle-Data-Guard-Konfiguration beschrieben, die für die Verwendung mit der AE relevant sind. Welche Konfiguration Sie verwenden werden, hängt von der verfügbaren Infrastruktur und Ihren Anforderungen ab.
Konfiguration 1 (Maximaler Schutz - Garantierter Schutzmodus)
Die Primärdatenbank registriert eine Transaktion nur dann als bestätigt, wenn diese Transaktion auch in mindestens eine Standby-Datenbank durchgeführt wurde. Wenn die Transaktion nicht in eine Standby-Datenbank übertragen werden konnte, stoppt die Primärdatenbank.
Der Vorteil dieser Konfiguration ist, dass die Produktion nach einem kurzen manuellen Eingriff sofort fortgesetzt werden kann, wenn die Primärdatenbank ausgefallen ist. Überprüfen Sie, ob die Standby-Datenbank zum Zeitpunkt des Ausfalls mit der Primärdatenbank synchronisiert wurde. Wenn ja, können Sie die Standby-Datenbank aktivieren und fortfahren.
Maximaler Schutz - Stoppt die Primärdatenbank, wenn die letzte Standby-Datenbank nicht mehr verfügbar ist:
Konfiguration 2 (Maximale Verfügbarkeit - Instant/Rapid Protection Modus)
Diese Konfiguration stellt sicher, dass die Standby-Datenbank(en) rechtzeitig synchronisiert werden. Die Primärdatenbank beginnt jedoch mit der Verarbeitung der nächsten Transaktion, obwohl noch nicht bestätigt wurde, dass die vorherige Transaktion auch in mindestens eine Standby-Datenbank übertragen wurde. Daher stoppt die Primärdatenbank nicht, wenn keine Standby-Datenbank mehr verfügbar ist. Änderungen in der Primärdatenbank werden automatisch in der Standby-Datenbank aktualisiert, sobald sie wieder verfügbar sind. In dieser Konfiguration müssen Sie immer manuell prüfen, ob die Standby-Datenbank zum Zeitpunkt des Ausfalls mit der Primärdatenbank synchronisiert wurde.
Maximale Verfügbarkeit - Der Wechsel in den verzögerten Modus ist möglich, wenn die Standby-Datenbank nicht verfügbar ist:
Konfiguration 3 (Maximale Leistung)
In dieser Konfiguration werden Änderungen nur dann in die Standby-Datenbank übertragen, wenn das online Redo-Log geändert wird. Daher können Sie nicht erwarten, dass die Standby-Datenbank aktuelle Daten enthält, wenn die Primärdatenbank ausfällt. Sie müssen immer alle AE-Aktivitäten, die seit der letzten Änderung des Protokolls stattgefunden haben, manuell überprüfen.
Maximale Leistung - Änderungen werden propagiert, wenn das Online-Protokoll gefüllt wird:
Vergleich von Data-Guard-Konfigurationen
In der Regel erfordern alle Konfigurationen, dass die gleiche Menge an Benutzerdaten zwischen Primär- und Standby-Datenbank übertragen wird. Der erforderliche Workload bei Ausfall der Primärdatenbank ist immer unterschiedlich. Je geringer der Workload bei einem Ausfall, desto höher die Belastung in Form von längeren Reaktionszeiten im täglichen Betrieb.
Aus den oben genannten Gründen muss für jeden Fall berechnet werden, wie der Anspruch auf Verfügbarkeit mit der aktuell verfügbaren Infrastruktur realisiert werden kann.
Maximaler Schutz
-
Failover-Aufwand: Mittel
Starten: COLD (unter bestimmten Umständen)
-
Bedarf an Infrastruktur: Hoch
-
Leistung: Verhält in Hinsicht auf die AE ähnlich wie in einer Einzelinstanz, aber die Anforderungen an die Datenbankhardware und -infrastruktur (Netzwerk) sind deutlich höher.
Maximale Verfügbarkeit
-
Failover-Aufwand: Niedrig
Starten: NORMAL
-
Bedarf an Infrastruktur: Sehr hoch
-
Leistung: Nur für Systeme mit geringem Durchsatz geeignet
Maximale Leistung
-
Failover-Aufwand: Niedrig
Starten: NORMAL
-
Bedarf an Infrastruktur: Sehr hoch
-
Leistung: Nur für Systeme mit geringem Durchsatz geeignet
Die untenstehende Abbildung zeigt den Zusammenhang zwischen Leistung und Verfügbarkeit der Data-Guard-Konfigurationen im Vergleich zu einer einzelnen Instanz (ohne Hardware-Cluster). Für eine einzelne Instanz ist die Verfügbarkeit im Vergleich zu einer Data-Guard-Lösung immer minimal. Die Leistung wird jedoch kaum beeinträchtigt. Im Gegenteil, für Data-Guard im Maximalverfügbarkeitsmodus ist die Verfügbarkeit sehr hoch, aber die negativen Auswirkungen auf die Leistung befinden sich auf dem Maximum. Wenn Sie AE-Data-Guard installieren möchten, konzentrieren Sie sich auf die verfügbare Infrastruktur, um sicherzustellen, dass Sie nicht mit Leistungsengpässen konfrontiert werden.
Fehlerbehebung
Oracle DB – AAKE
Job "initial-data-[version]" konnte nicht ausgeführt werden
Wenn Sie eine solche Fehlermeldung erhalten, z. B. initial-data-21-0-0-1629271798342-c7k6g konnte nicht ausgeführt werden, ist die Datenbank möglicherweise nicht richtig definiert oder sie ist vom Kubernetes-Cluster aus nicht erreichbar.
Wenn Sie mehrere Pods für den betreffenden Job sehen und mindestens ein Pod den Status Abgeschlossen hat, können Sie die anderen einfach ignorieren. Andernfalls stellen Sie sicher, dass der Zugriff auf die Datenbank vom Kubernetes-Cluster aus möglich ist und dass sich die Datenbank in einem konsistenten Zustand für eine Installation oder ein Upgrade befindet.
Sie können auch die Logs abrufen, um weitere Details darüber zu erhalten, warum der Job nicht ausgeführt werden konnte. Führen Sie dazu folgenden Befehl aus:
kubectl logs <pod-name>
Häufige Fehler
Fehler: ORA-12514: TNS: Listener kann in Connect-Deskriptor angegebenen Service aktuell nicht auflösen.
Vorschlag: Überprüfen Sie, ob der in der Datei values.yaml definierte Datenbankname/-port einem konfigurierten Dienstnamen für Oracle entspricht. Für das Debugging könnten Sie Oracle Tools wie sqlplus oder tnsping verwenden.
Siehe auch: