← ShimoDocs Suite Bereitstellungsdokumentation
Dieses Dokument soll dem Personal als Leitfaden dienen, das implementiert, wartet oder integriert. Dameng Datenbank zum ersten Mal, um die Dameng DM8 Datenbankinitialisierung, MySQL Konfigurationsmodus-Kompatibilität, Dienststart und Verbindungsüberprüfung Schritt für Schritt.
Die Beispiele in diesem Dokument verwenden die folgende Planung:
| Artikel | Beispielwert |
|---|---|
| Datenbank-Installationsverzeichnis | /opt/dmdbms |
| Datenbank-Speicherverzeichnis | /dmdata/data |
| DATABASE_NAME | DMTEST |
| Instanzname | DBSERVER |
| Datenbankport | 5236 |
| Administrator-Konto | SYSDBA |
| Administrator PASSWORD | <SYSDBA_PASSWORD> |
Hinweis:
<SYSDBA_PASSWORD>und<SYSAUDITOR_PASSWORD>in dem Dokument sind Platzhalter. Während der tatsächlichen Operationen ersetzen Sie sie bitte durch echte Passwörter, die den PASSWORD Komplexitätsanforderungen entsprechen.
1. Bestätigung vor dem Betrieb
1. Bestätigen Sie, dass Dameng bereits installiert ist
Auf dem Server ausführen:
ls /opt/dmdbms/bin
Wenn Sie Dateien wie dminit, dmserver, disqlsehen, zeigt dies an, dass die Dameng Software wurde bereits installiert.
Sie können auch die Version überprüfen:
/opt/dmdbms/bin/dmserver
Inhalt wie dieser kann im Ausgabe erscheinen:
dmserver V8
version: 03134284194-20240920-243574-20108
2. Systembenutzer bestätigen
Dameng führt normalerweise die Datenbank mit dem dmdba Benutzer aus. Überprüfen Sie, ob der Benutzer existiert:
id dmdba
Wenn er nicht existiert, kann er von dem root Benutzer erstellt werden:
groupadd dinstall
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
passwd dmdba
3. Bereiten Sie das Datenverzeichnis vor
Führen Sie mit dem root Benutzer erstellt werden:
mkdir -p /dmdata/data
chown -R dmdba:dinstall /dmdata
chmod -R 775 /dmdata
Zweck dieses Schrittes ist es, ein Verzeichnis zum Speichern von Datenbankdateien zu erstellen und dem dmdba Benutzer Berechtigungen zu erteilen.
2. Datenbank initialisieren
Wechseln Sie zu dem dmdba Benutzer erstellt werden:
su - dmdba
Führen Sie den Initialisierungsbefehl aus:
/opt/dmdbms/bin/dminit \
PATH=/dmdata/data \
PAGE_SIZE=32 \
EXTENT_SIZE=32 \
CASE_SENSITIVE=0 \
UNICODE_FLAG=1 \
DB_NAME=DMTEST \
INSTANCE_NAME=DBSERVER \
PORT_NUM=5236 \
SYSDBA_PWD=<SYSDBA_PASSWORD> \
SYSAUDITOR_PWD=<SYSAUDITOR_PASSWORD>
Wenn die Initialisierung erfolgreich ist, sehen Sie eine ähnliche Ausgabe wie:
create dm database success
Nach erfolgreicher Initialisierung wird das Datenbankverzeichnis erstellt:
/dmdata/data/DMTEST
Die wichtigste Konfigurationsdatei darunter ist:
/dmdata/data/DMTEST/dm.ini
3. Ändern MySQL Kompatibilitätskonfiguration
Bearbeiten Sie die Konfigurationsdatei mit dem root oder dmdba Benutzer erstellt werden:
vi /dmdata/data/DMTEST/dm.ini
Suchen und ändern Sie die folgenden zwei Konfigurationen:
COMPATIBLE_MODE = 4
ORDER_BY_NULLS_FLAG = 0
Wenn die Datei bereits diese beiden Konfigurationen enthält, können Sie die vorhandenen Zeilen direkt ändern.
Fügen Sie nicht am Ende der Datei eine weitere Konfiguration mit demselben Namen hinzu, da sonst doppelte Konfigurationen auftreten können, wodurch der tatsächlich wirksame Wert vom erwarteten Wert abweichen kann.
Nach Abschluss der Änderung können Sie mit dem folgenden Befehl überprüfen:
grep -Ein 'COMPATIBLE_MODE|ORDER_BY_NULLS_FLAG' /dmdata/data/DMTEST/dm.ini
Erwartet wird:
COMPATIBLE_MODE = 4
ORDER_BY_NULLS_FLAG = 0
4. Datenbankdienst registrieren
Zurückwechseln zu dem root Benutzer erstellt werden:
exit
Datenbankdienst registrieren:
/opt/dmdbms/script/root/dm_service_installer.sh \
-t dmserver \
-p DBSERVER \
-dm_ini /dmdata/data/DMTEST/dm.ini
Nach erfolgreicher Registrierung ist der Dienstname normalerweise:
DmServiceDBSERVER.service
Auf Autostart setzen und Dienst starten:
systemctl daemon-reload
systemctl enable DmServiceDBSERVER.service
systemctl start DmServiceDBSERVER.service
Dienststatus überprüfen:
systemctl status DmServiceDBSERVER.service --no-pager
Wenn Sie Folgendes sehen:
Active: active (running)
Zeigt an, dass der Datenbankdienst gestartet wurde.
5. Überprüfen, ob die Datenbank verfügbar ist
1. Den Port überprüfen
Ausführen:
ss -lntp | grep ':5236'
Wenn Sie sehen dmserver hört auf 5236, zeigt dies, dass der Datenbankport normal ist.
2. Lokaler Login-Test
Wechseln Sie zu dem dmdba Benutzer erstellt werden:
su - dmdba
In die Datenbank einloggen:
/opt/dmdbms/bin/disql SYSDBA/<SYSDBA_PASSWORD>@127.0.0.1:5236
Nach erfolgreichem Login ausführen:
select 1 as OK;
Wenn zurückgegeben wird:
OK
-----------
1
Zeigt an, dass die Datenbankverbindung normal ist.
3. Überprüfen, ob es sich um MySQL Kompatibilitätsmodus handelt
Ausführen in disql:
select para_name, para_value
from v$dm_ini
where para_name in (
'COMPATIBLE_MODE',
'ORDER_BY_NULLS_FLAG',
'INSTANCE_NAME',
'PORT_NUM'
);
Erwartetes Ergebnis:
INSTANCE_NAME DBSERVER
PORT_NUM 5236
COMPATIBLE_MODE 4
ORDER_BY_NULLS_FLAG 0
Daraus:
COMPATIBLE_MODE = 4
Zeigt an, dass der aktuelle Datenbanklaufzeitstatus den MySQL Kompatibilitätsmodus aktiviert hat.
Anhang 1, Detaillierte Beschreibung der Konfigurationselemente
1. PATH
Beispiel:
PATH=/dmdata/data
Bedeutung:
PATH ist das Stammverzeichnis der Datenbankdateien. Während der Initialisierung Dameng wird das Datenbankverzeichnis unter diesem Verzeichnis erstellt.
Wenn DB_NAME=DMTEST, das endgültige Verzeichnis ist normalerweise:
/dmdata/data/DMTEST
Dieses Verzeichnis speichert Datendateien, Protokolldateien, Steuerdateien und die dm.ini Konfigurationsdatei.
Empfehlungen:
- Es wird empfohlen, es in einer Produktionsumgebung auf einer Datenfestplatte mit ausreichender Kapazität und stabiler Leistung zu platzieren.
- Es wird nicht empfohlen, es in temporären Verzeichnissen zu platzieren, wie z.B.
/tmp. - Verschieben Sie das Verzeichnis nach der Initialisierung nicht leichtfertig.
2. DB_NAME
Beispiel:
DB_NAME=DMTEST
Bedeutung:
DB_NAME ist der Name des DATABASE_NAME. Es wird den Datenbankverzeichnisnamen, den Protokolldateinamen usw. beeinflussen.
Zum Beispiel, wenn DB_NAME=DMTEST, erzeugt es normalerweise:
/dmdata/data/DMTEST
/dmdata/data/DMTEST/DMTEST01.log
/dmdata/data/DMTEST/DMTEST02.log
Empfehlungen:
- Verwenden Sie einen einzigen klaren DATABASE_NAME im gesamten Projekt.
- Es wird nicht empfohlen, es nach der Initialisierung zu ändern.
3. INSTANCE_NAME
Beispiel:
INSTANCE_NAME=DBSERVER
Bedeutung:
INSTANCE_NAME ist der Name der Datenbankinstanz. Er wird normalerweise verwendet, um den Servicenamen beim Registrieren eines Dienstes zu generieren.
Zum Beispiel:
INSTANCE_NAME=DBSERVER
Der Dienstname nach der Registrierung ist normalerweise:
DmServiceDBSERVER.service
Empfehlung:
- Für einen einzelnen Computer mit einer einzelnen Instanz können Sie verwenden
DBSERVER. - Beim Bereitstellen mehrerer Instanzen auf einem Computer muss jeder Instanzname unterschiedlich sein.
4. PORT_NUM
Beispiel:
PORT_NUM=5236
Bedeutung:
PORT_NUM ist der Datenbank-Listening-Port. Anwendungen müssen auf diesen Port zugreifen, wenn sie eine Verbindung zur Datenbank herstellen.
Der auf der Programmseite eingegebene Port muss mit diesem übereinstimmen:
HOST:172.17.9.84
PORT:5236
Empfehlungen:
- Der Standardport für Dameng ist normalerweise
5236. - Wenn es mehrere gibt Dameng Instanzen auf derselben Maschine können die Ports nicht dupliziert werden.
- Nach dem Ändern des Ports muss der Datenbankdienst neu gestartet werden.
5. PAGE_SIZE
Beispiel:
PAGE_SIZE=32
Bedeutung:
PAGE_SIZE ist die Seitengröße der Datenbank in KB. Wenn die Datenbank Daten liest und schreibt, organisiert sie Daten basierend auf Seiten.
PAGE_SIZE=32 bedeutet, dass jede Datenseite 32KB groß ist.
Auswirkung:
- Es beeinflusst die Datenspeicherung, Indexierung und das IO-Verhalten.
- Es wird nicht empfohlen, nach der Initialisierung Änderungen vorzunehmen.
- Wenn eine Anpassung erforderlich ist, erfordert dies normalerweise das Neuinitialisieren der Datenbank und die Migration der Daten.
Empfehlungen:
- Wenn es ein SOP für das Szenario gibt, konfigurieren Sie entsprechend dem SOP.
- Wenn keine besonderen Anforderungen bestehen, ändern Sie es nicht willkürlich.
6. EXTENT_SIZE
Beispiel:
EXTENT_SIZE=32
Bedeutung:
EXTENT_SIZE ist die Clustergröße, gemessen in Seiten. Sie kann als die Grundeinheit der Speicherzuweisung verstanden werden, die von der Datenbank auf einmal verwendet wird.
Wenn:
PAGE_SIZE=32
EXTENT_SIZE=32
Dann beträgt ein Cluster ungefähr:
32KB * 32 = 1024KB
Das sind ungefähr 1 MB.
Auswirkung:
- Wird die Granularität der Speicherzuweisung der Datendatei beeinflussen.
- Es wird nicht empfohlen, nach der Initialisierung Änderungen vorzunehmen.
7. CASE_SENSITIVE
Beispiel:
CASE_SENSITIVE=0
Bedeutung:
CASE_SENSITIVE zeigt an, ob die Namen der Datenbankobjekte groß-/klein-geschrieben werden.
Gängige Werte:
0:CASE_INSENSITIVE
1:CASE_SENSITIVE
Beispielsweise können bei Groß-/Kleinschreibungsunempfindlichkeit die folgenden beiden Tabellennamen als dasselbe Objekt betrachtet werden:
user
USER
Auswirkung:
- Wird die Erkennung von Tabellennamen, Feldnamen und Objektnamen beeinflussen.
- Für MySQL Migration oder MySQL-kompatible Szenarien, es wird normalerweise bevorzugt, es als
0. - Es wird nicht empfohlen, es nach der Initialisierung zu ändern.
8. UNICODE_FLAG
Beispiel:
UNICODE_FLAG=1
Bedeutung:
UNICODE_FLAG ist eine Zeichensatzkonfiguration.
Gängige Werte:
0:GB18030
1:UTF-8
2:EUC-KR
UNICODE_FLAG=1 zeigt an, dass die Datenbank den UTF-8 Zeichensatz verwendet.
Empfehlung:
- Es wird empfohlen, UTF-8 für neue Systeme.
- Bessere Kompatibilität mit chinesischen, englischen und mehrsprachigen Zeichen.
- Es wird nicht empfohlen, nach der Initialisierung Änderungen vorzunehmen.
9. SYSDBA_PWD
Beispiel:
SYSDBA_PWD=<SYSDBA_PASSWORD>
Bedeutung:
SYSDBA_PWD ist das PASSWORD für das SYSDBA Administrator-Konto.
SYSDBA ist ähnlich wie ein Datenbank-Superadministrator und hat hochrangige Berechtigungen.
Empfehlung:
- Verwenden Sie ein starkes PASSWORD.
- Verwenden Sie keine einfachen PASSWORTe wie
SYSDBA,123456,password. - PASSWORD Die Länge sollte mindestens 8 Zeichen betragen und Buchstaben und Zahlen enthalten.
- Schreiben Sie das tatsächliche PASSWORD nicht in externe Dokumente.
10. SYSAUDITOR_PWD
Beispiel:
SYSAUDITOR_PWD=<SYSAUDITOR_PASSWORD>
Bedeutung:
SYSAUDITOR_PWD ist das PASSWORD von dem SYSAUDITOR Audit-Administratorkonto.
SYSAUDITOR Wird hauptsächlich für auditbezogene Verwaltungsmöglichkeiten verwendet.
Empfehlung:
- Verwenden Sie ein PASSWORD anders als
SYSDBA. - Verwenden Sie ein starkes PASSWORD das die Komplexitätsanforderungen erfüllt.
11. COMPATIBLE_MODE
Beispiel:
COMPATIBLE_MODE = 4
Bedeutung:
COMPATIBLE_MODE ist die Kompatibilitätsmodus-Konfiguration der Dameng Datenbank, die verwendet wird, um zu steuern, mit welchem Typ von Datenbank die Datenbank in Bezug auf SQL Syntax, Funktionen und bestimmte Verhaltensweisen übereinstimmt.
Gängige Bedeutungen der Werte:
0:DEFAULT_MODE
1:SQL92
2:Oracle
3:MS SQL Server
4:MySQL
5:DM6
6:Teradata
7:PostgreSQL
8:DB2
Dieser Text ist konfiguriert als:
COMPATIBLE_MODE = 4
Zeigt die Aktivierung von MySQL Kompatibilitätsmodus aktiviert hat.
Funktion:
- Verbessert die Kompatibilität der MySQL SQL Syntax in Dameng.
- Reduziert die Transformationskosten beim Migrieren von MySQL oder Anpassen an Dameng.
Hinweis:
- Diese Konfiguration bedeutet nicht, dass Dameng unterstützt das MySQL Protokoll.
- Programme müssen den Dameng Treiber intern weiterhin verwenden; wenn es auf der Seite keine Treiberkonfigurationsoption gibt, müssen Benutzer diese nicht separat ausfüllen.
- Nach der Änderung ist ein Neustart des Datenbankdienstes erforderlich.
- Ob es letztendlich wirksam wird, sollte auf den
v$dm_iniAbfrageergebnissen basieren.
12. ORDER_BY_NULLS_FLAG
Beispiel:
ORDER_BY_NULLS_FLAG = 0
Bedeutung:
ORDER_BY_NULLS_FLAG wird verwendet, um zu steuern, ob NULL Werte am Anfang oder Ende erscheinen, wenn nach ORDER BY.
sortiert wird. Warum es wichtig ist:
Verschiedene Datenbanken können unterschiedliche Standardverhaltensweisen für das Sortieren von NULL-Werten haben. Beim Migrieren einer Anwendung von MySQL zu Dameng, wenn die Sortierergebnisse von der Position der NULL-Werte abhängen, kann dieser Parameter die Reihenfolge der Abfrageergebnisse beeinflussen.
Dieser Artikel ist wie folgt konfiguriert:
ORDER_BY_NULLS_FLAG = 0
Zweck ist es, das Sortierverhalten näher an die MySQL Nutzungsgewohnheiten anzupassen.
Hinweis:
- Nach der Änderung ist ein Neustart des Datenbankdienstes erforderlich.
- Wenn das Unternehmen SQL bereits ausdrücklich angibt
NULLS FIRSToderNULLS LAST, sollte das im SQL angegebene Verhalten Vorrang haben.
Anhang 2, Häufig gestellte Fragen
1. Warum kann ich mich nicht verbinden mit einem MySQL Client auch nach dem Einstellen des MySQL Kompatibilitätsmodus?
Weil MySQL der Kompatibilitätsmodus nur SQL Syntax und einige Datenbankverhalten beeinflusst, ändert er Damengdas Netzwerkprotokoll nicht.
Wenn Anwendungen oder Werkzeuge sich verbinden mit Dameng, muss der Dameng Treiber weiterhin verwendet werden:
dm.jdbc.driver.DmDriver
jdbc:dm://<host>:5236
kann nicht verwendet werden:
com.mysql.cj.jdbc.Driver
jdbc:mysql://<host>:5236
2. Wie kann man bestätigen, dass die Konfiguration wirklich wirksam geworden ist?
Schauen Sie nicht nur auf die dm.ini Datei; es wird empfohlen, sich in die Datenbank einzuloggen, um den Laufzeitstatus zu überprüfen:
select para_name, para_value
from v$dm_ini
where para_name in ('COMPATIBLE_MODE', 'ORDER_BY_NULLS_FLAG');
Der laufende Zustand ist nur dann wirksam, wenn die folgenden Ergebnisse gesehen werden:
COMPATIBLE_MODE 4
ORDER_BY_NULLS_FLAG 0
3. Warum wird die Änderung nach der Modifikation nicht wirksam dm.ini?
Häufige Gründe:
- Der Datenbankdienst wurde nach der Änderung nicht neu gestartet.
- Es gibt doppelte Konfigurationseinträge in der Datei.
- Die geänderte Datei ist nicht die
dm.iniaktuell von der Instanz verwendet.
Sie können bestätigen, welche Konfigurationsdatei die aktuelle Instanz verwendet, über den Befehl zum Starten des Dienstes:
systemctl status DmServiceDBSERVER.service --no-pager
In der Ausgabe sehen Sie im Allgemeinen etwas wie das Folgende:
dmserver path=/dmdata/data/DMTEST/dm.ini -noconsole
4. Was soll ich tun, wenn ein PASSWORD Komplexitätsfehler während der Initialisierung auftritt?
Zeigt an, dass der PASSWORD zu einfach ist. Bitte ändern Sie zu einem komplexeren PASSWORD, zum Beispiel:
AT_LEAST 8 POSITION
CONTAINS_LETTERS_AND_NUMBERS
AVOID_USING_THE_ACCOUNT_NAME_ITSELF
5. Können diese Parameter später geändert werden?
Nein.
Initialisierungsparameter sollten im Allgemeinen später nicht geändert werden, zum Beispiel:
- ‘PAGE_SIZE’
- ‘EXTENT_SIZE’
- ‘CASE_SENSITIVE’
- ‘UNICODE_FLAG’
- ‘DB_NAME’
- ‘INSTANCE_NAME’
Wenn diese Parameter falsch konfiguriert sind, wird normalerweise empfohlen, die Datenbank neu zu initialisieren und die Daten erneut zu migrieren. Der
‘dm.ini’ Parameter kann später angepasst werden, zum Beispiel:
- ‘COMPATIBLE_MODE’
- ‘ORDER_BY_NULLS_FLAG’
- ‘PORT_NUM’
Nach einer Änderung muss der Datenbankdienst in der Regel neu gestartet werden.
Anhang 3: Endgültige Checkliste
- Das Datenverzeichnis ‘/dmdata/data’ wurde erstellt.
- Der Host des Datenverzeichnisses ist ‘dmdba:dinstall’.
- Die Datenbank wurde erfolgreich initialisiert.
- ‘/dmdata/data/DMTEST/dm.ini’ existiert.
COMPATIBLE_MODE = 4.ORDER_BY_NULLS_FLAG = 0.- Datenbankdienst
DmServiceDBSERVER.serviceistactive. - Port
5236wird überwacht. SYSDBAkann sich bei der Datenbank anmelden.- In
v$dm_ini, der Laufzeitwert vonCOMPATIBLE_MODEist4.