Ändern Sie Ihre Bereitstellungskonfiguration

IBM Cloud® Databases for MySQL ermöglicht es Ihnen, einige der Konfigurationseinstellungen von MySQL zu ändern, damit Sie Ihre MySQL-Datenbanken an Ihren Anwendungsfall anpassen 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 CLI-Plug-ins „ Cloud Databases “

Überprüfen Sie die Standardkonfiguration Ihrer Bereitstellung mit einem Befehl wie diesem:

ibmcloud cdb deployment-configuration-schema <deployment name or CRN>

Dieser Befehl gibt nur die Standardkonfiguration zurück. Änderungen an der Standardkonfiguration werden nicht angezeigt.

Um Ihre Konfiguration über das CLI-Plugin „ Cloud Databases “ zu ändern, verwenden Sie deployment-configuration den Befehl:

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 time_zone Parameterwert. 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

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
  • Datenbank neu starten? - true

innodb_log_buffer_size

  • 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
  • Datenbank neu starten? - true

innodb_log_file_size

  • 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
  • Datenbank neu starten? - false

innodb_lru_scan_depth

  • 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
  • Datenbank neu starten? - false

innodb_write_io_threads

  • Beschreibung: Die Anzahl der E/A-Threads für Schreibvorgänge in „ InnoDB “.
  • Standardwert: 4
  • Mindestens: 1
  • Höchstwert: 64
  • Datenbank neu starten? - true

max_allowed_packet

  • Standard - 1073741824
  • Minimum - 1024
  • Maximum - 1073741824
  • Datenbank neu starten? - false

max_prepared_stmt_count

  • 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
  • Datenbank neu starten? - false

max_connections

  • Standard - 200
  • Datenbank neu starten? - false

Möglicherweise müssen Sie skalieren, bevor Sie die maximale Anzahl an Verbindungen erhöhen können.

mysql_max_binlog_age_sec

  • Standard - 1800
  • Datenbank neu starten? - false

net_write_timeout

  • 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
  • Datenbank neu starten? - false

sql_mode

  • 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
  • Datenbank neu starten? - false

time_zone

  • 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
  • Datenbank neu starten? - false

wait_timeout

  • 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
  • Datenbank neu starten? - false

innodb_read_io_threads

  • Beschreibung: Die Anzahl der E/A-Threads für Leseoperationen in InnoDB.
  • Standardwert: 4
  • Mindestens: 1
  • Höchstwert: 64
  • Datenbank neu starten? - true

net_read_timeout

  • 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
  • Datenbank neu starten? - false