Ändern Sie Ihre Bereitstellungskonfiguration
IBM Cloud® Databases for MySQL ermöglicht es Ihnen, einige der MySQL Konfigurationseinstellungen zu ändern, damit Sie Ihre MySQL Datenbanken auf Ihren Anwendungsfall abstimmen können. Wenn Sie permanente Änderungen an der Datenbankkonfiguration vornehmen möchten, können Sie das Cloud Databases CLI-Plug-in oder die API verwenden, um die Änderungen in die Konfigurationsdatei für Ihre Bereitstellung zu schreiben.
Die Konfiguration ist in einem Schema definiert. Um eine Änderung vorzunehmen, senden Sie ein JSON-Objekt mit den Einstellungen und ihren neuen Werten an die API oder die CLI. Setzen Sie beispielsweise in der Befehlszeilenschnittstelle oder API
max_connections
mit einem Befehl wie dem folgenden auf 150:
{"configuration":{"max_connections":150}}
Weitere Informationen finden Sie unter Verwalten von MySQL Connections.
Wie wird die MySQL ' max_connections
berechnet?
max_connections
ist ein Konfigurationsparameter in MySQL, der die maximale Anzahl gleichzeitiger Verbindungen bestimmt, die mit dem Datenbankserver hergestellt werden können.
MySQL max_connections
Basisformel
Die Grundformel für die Berechnung von max_connections
lautet:
Available RAM = Global Buffers + (Thread Buffers x `max_connections`)
Verwenden Sie einen Befehl wie den folgenden, um eine Liste der Puffer und ihrer Werte abzurufen:
SHOW VARIABLES LIKE '%buffer%';
Verwendung des Cloud Databases CLI-Plug-ins
Überprüfen Sie die aktuelle Konfiguration Ihrer Implementierung mit einem Befehl wie dem folgenden:
ibmcloud cdb deployment-configuration-schema <deployment name or CRN>
Um Ihre Konfiguration über das Cloud Databases CLI-Plugin zu ändern, verwenden Sie den Befehl deployment-configuration
:
ibmcloud cdb deployment-configuration <deployment name or CRN> [@JSON_FILE | JSON_STRING]
Der Befehl liest die Änderungen, die Sie vornehmen wollen, aus dem JSON-Objekt oder einer JSON-Datei. Weitere Informationen finden Sie auf der CLI-Referenzseite.
API Cloud Databases verwenden
Es gibt zwei Bereitstellungskonfigurations-Endpunkte: einen für die Anzeige des Konfigurationsschemas und einen zum Ändern der Konfiguration. Um das Konfigurationsschema anzuzeigen, senden Sie eine GET
-Anforderung an /deployments/{id}/configuration/schema
.
Wenn Sie die Konfiguration ändern möchten, senden Sie die Einstellungen, die Sie als JSON-Objekt ändern möchten, im Anforderungshauptteil einer PATCH
-Anforderung an /deployments/{id}/configuration
.
Weitere Informationen finden Sie unter API-Referenz.
Databases for MySQL-Zeitzoneneinstellungen
Die Zeitzone für Databases for MySQL-Implementierungen ist immer die koordinierte Weltzeit. Konfigurieren Sie Ihre Zeitzone mit der API Cloud Databases oder ändern Sie Ihre Zeitzone in eine benannte Zeitzone (empfohlen) oder in eine Zeitzonendifferenz.
Sie müssen die Zeitzone für wiederhergestellte Instanzen und Lesereplikate erneut konfigurieren. Obwohl die Zeitzonentabellen wiederhergestellt (im Falle eines Restores) und repliziert (im Falle eines Lesereplikats) werden, ist der Wert für
@@global.time_zone
nicht. Um diesen Wert festzulegen, verwenden Sie dieselben API-Aufrufe wie zuvor, aber mit den neuen CRNs.
Zeitzoneneinstellungen für Databases for MySQL konfigurieren
Bei der Bereitstellung wird eine Cloud Databases-Bereitstellung mit Coordinated Universal Time konfiguriert. Die Rekonfiguration Ihrer Zeitzone ist eine persistente Änderung, die für jede Ihrer Cloud Databases-Implementierungen vorgenommen werden muss.
Durch Konfigurieren Ihrer Zeitzone wird die globale Zeitzone in Ihrer MySQL-Instanz festgelegt. In dem Fall, dass ein Failover auftritt, wird Ihre Zeitzoneneinstellung im Rahmen der Replikation weitergegeben, da die Zeitzoneneinstellung in die MySQL-Konfigurationsdatei geschrieben wird. Eine Ausnahme ist, wenn Sie eine Instanz bis zu einem bestimmten Zeitpunkt wiederherstellen, bevor Sie Ihre bevorzugte Zeitzone konfiguriert haben.
Wenn Sie Ihre Zeitzone für eine Zeitzone mit Sommerzeit konfigurieren, sind Anpassungen Teil der Konfiguration. Es ist keine Aktion von Ihrer Seite erforderlich. Die Verwendung einer bestimmten Zeitzone ist besser als die Verwendung einer Offsetzeit.
Cloud Databases validiert den Wert des Parameters time_zone
. Wenn Sie Ihre Implementierung mit einem ungültigen Wert konfigurieren, schlägt die Konfiguration fehl. Den gültigen Namen time_zone values
finden Sie
hier.
Zeitzone in der API Cloud Databases ändern
Beispiel-Offset:
curl -v -XPATCH -H "Authorization: Bearer $token" -H "Content-Type: application/json" https://api.<region>.databases.cloud.ibm.com/v5/ibm/deployments/<crn>/configuration -d '{"configuration": {"time_zone": "<EXAMPLE OFFSET"}}'
Beispiel für benannte Zeitzone:
curl -v -XPATCH -H "Authorization: Bearer $token" -H "Content-Type: application/json" https://api.<region>.databases.cloud.ibm.com/v5/ibm/deployments/<crn>/configuration -d '{"configuration": {"time_zone": "<EXAMPLE TIME ZONE"}}'
Zeitzone in der Befehlszeilenschnittstelle von Cloud Databases ändern
Beispiel für benannte Zeitzone
ibmcloud cdb deployment-configuration <crn> '{"time_zone": "US/Pacific"}'
Verfügbare Databases for MySQL Konfigurationseinstellungen
- Standard -
sha256_password
- Zulässige Werte:
sha256_password
,mysql_native_password
- Startet die Datenbank neu? -
true
Verwenden Sie mysql_native_password
nur, wenn dies unbedingt erforderlich ist.
innodb_buffer_pool_size_percentage
- Beschreibung: Der Prozentsatz des für
innodb_buffer_pool_size
zu verwendenden Speichers. Der Standardwert von 50% ist ein konservativer Wert und funktioniert für Datenbanken beliebiger Größe. Wenn Ihre Datenbank mehr Arbeitsspeicher benötigt, kann dieser Wert erhöht werden. Ein zu hoher Wert kann die Speicherbegrenzungen Ihrer Datenbank überschreiten, was zu einem Absturz führen kann. - Standardwert:
50
- Mindestens:
10
- Höchstwert:
100
- Startet die Datenbank neu? -
true
innodb_flush_log_at_trx_commit
- Beschreibung: Steuert die Balance zwischen strikter ACID-Konformität für commit-Operationen und höherer Leistung, die möglich ist, wenn festschreibungsbezogene E/A-Operationen neu angeordnet und in Batches ausgeführt werden. Sie können eine bessere Leistung erzielen, indem Sie den Standardwert ändern, aber dann können Sie Transaktionen bei einem Absturz verlieren.
- Standardwert:
2
- Mindestens:
0
- Höchstwert:
2
- Startet die Datenbank neu? -
false
- Beschreibung: Die Größe des Puffers in Byte, den InnoDB verwendet, um in die Protokolldateien auf der Platte zu schreiben.
- Standardwert:
33554432
- Mindestens:
1048576
- Höchstwert:
4294967295
- Startet die Datenbank neu? -
true
- Beschreibung: Die Größe jeder Protokolldatei in einer Protokollgruppe in Bytes.
Innodb_log_file_size
und "innodb_log_files_in_group
sind durch "innodb_redo_log_capacity
ersetzt worden. Das Setzen von "innodb_log_file_size
setzt auch "innodb_redo_log_capacity
. - Standardwert:
2147483648
- Mindestens:
4194304
- Höchstwert:
274877906900
- Startet die Datenbank neu? -
false
- Beschreibung: Ein Parameter, der die Algorithmen und Heuristiken für die Operation flush für den Pufferpoolvon InnoDB beeinflusst. Eine Einstellung, die kleiner als der Standardwert ist, ist im Allgemeinen für die meisten Workloads geeignet. Ein Wert, der viel höher als erforderlich ist, kann die Leistung beeinträchtigen. Sie sollten den Wert nur erhöhen, wenn Sie über freie E/A-Kapazität unter einer typischen Workload verfügen.
- Standardwert:
256
- Mindestens:
128
- Höchstwert:
2048
- Startet die Datenbank neu? -
false
- Beschreibung: Die Anzahl der E/A-Threads für Schreibvorgänge in InnoDB.
- Standardwert:
4
- Mindestens:
1
- Höchstwert:
64
- Startet die Datenbank neu? -
true
- Standard -
1073741824
- Minimum -
1024
- Maximum -
1073741824
- Startet die Datenbank neu? -
false
- Beschreibung-Gibt die Gesamtzahl der vorbereiteten Anweisungen auf dem Server an
- Standard -
16382
- Minimum -
0
- Maximum-(Version ≤ 8.0.17)
1048576
, (Version ≥ 8.0.18)4194304
- Startet die Datenbank neu? -
false
- Standard -
200
- Startet die Datenbank neu? -
false
Möglicherweise müssen Sie skalieren, bevor Sie die maximale Anzahl von Verbindungen erhöhen.
- Standard -
1800
- Startet die Datenbank neu? -
false
- Beschreibung: Die Anzahl der Sekunden, die auf das Schreiben eines Blocks in eine Verbindung gewartet wird, bevor der Schreibvorgang abgebrochen wird.
- Standardwert:
60
- Mindestens:
1
- Höchstwert:
7200
- Startet die Datenbank neu? -
false
- Zulässige Werte:
ALLOW_INVALID_DATES
ANSI_QUOTES
ERROR_FOR_DIVISION_BY_ZERO
HIGH_NOT_PRECEDENCE
IGNORE_SPACE
NO_AUTO_CREATE_USER
NO_AUTO_VALUE_ON_ZERO
NO_BACKSLASH_ESCAPES
NO_DIR_IN_CREATE
NO_ENGINE_SUBSTITUTION
NO_FIELD_OPTIONS
NO_KEY_OPTIONS
NO_TABLE_OPTIONS
NO_UNSIGNED_SUBTRACTION
NO_ZERO_DATE
NO_ZERO_IN_DATE
ONLY_FULL_GROUP_BY
PAD_CHAR_TO_FULL_LENGTH
PIPES_AS_CONCAT
REAL_AS_FLOAT
STRICT_ALL_TABLES
STRICT_TRANS_TABLES
- Startet die Datenbank neu? -
false
- Beschreibung: Die Zeitzone, die derzeit auf dem Server festgelegt ist, ist standardmäßig '+ 00:00' (Coordinated Universal Time). Sie kann aber auch auf einen bestimmten Offset von der koordinierten Weltzeit im Format [HH]:MM mit einem + oder - Präfix eingestellt werden, z. B. '+10:00', '-6:00' oder '+05:30'. Benannte Zeitzonen wie 'MET' oder' US/Pazifik ' können ebenfalls verwendet werden.
- Standardwert:
+00:00
- Typ:
string
- Startet die Datenbank neu? -
false
- Beschreibung: Die Anzahl Sekunden, die der Server auf Aktivitäten in einer nicht interaktiven Verbindung wartet, bevor er sie schließt.
- Standardwert:
28800
- Mindestens:
1
- Höchstwert:
31536000
- Startet die Datenbank neu? -
false
- Beschreibung: Die Anzahl der E/A-Threads für Leseoperationen in InnoDB.
- Standardwert:
4
- Mindestens:
1
- Höchstwert:
64
- Startet die Datenbank neu? -
true
- Beschreibung: Die Anzahl der Sekunden, die auf weitere Daten aus einer Verbindung gewartet wird, bevor der Lesevorgang abgebrochen wird.
- Standardwert:
30
- Mindestens:
1
- Höchstwert:
7200
- Startet die Datenbank neu? -
false