배포 구성 변경하기

IBM Cloud® Databases for MySQL MySQL 의 일부 구성 설정을 변경할 수 있도록 하여, 사용 사례에 맞게 MySQL 데이터베이스를 조정할 수 있습니다. 데이터베이스 구성을 영구적으로 변경하려면 Cloud Databases cli-plugin 또는 API를 사용하여 배치의 구성 파일에 변경사항을 작성하십시오.

구성은 스키마에 정의됩니다. 변경하려면 설정과 새 값이 포함된 JSON 객체를 API 또는 CLI로 전송하십시오. 예를 들어, CLI 또는 API에서 다음과 같은 명령을 사용하여 max_connections 를 150으로 설정하십시오.

{"configuration":{"max_connections":150}}

자세한 정보는 MySQL Connections 관리를 참조하십시오.

MySQL ' max_connections ' 변수 계산 방법

max_connections 는 데이터베이스 서버와 설정할 수 있는 최대 동시 연결 수를 판별하는 MySQL 의 구성 매개변수입니다.

MySQL max_connections 기본 공식

max_connections 를 계산하기 위한 기본 공식은 다음과 같습니다.

Available RAM = Global Buffers + (Thread Buffers x `max_connections`)

버퍼 및 해당 값의 목록을 검색하려면 다음과 같은 명령을 사용하십시오.

SHOW VARIABLES LIKE '%buffer%';

Cloud Databases 의 CLI 플러그인 사용

다음과 같은 명령을 사용하여 배포의 기본 구성을 확인합니다:

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

이 명령은 기본 구성만 반환합니다. 기본 구성에 대한 변경 사항은 표시되지 않습니다.

Cloud Databases CLI 플러그인을 통해 구성을 변경하려면 다음 명령을 deployment-configuration 사용하십시오:

ibmcloud cdb deployment-configuration <deployment name or CRN> [@JSON_FILE | JSON_STRING]

이 명령은 JSON 오브젝트 또는 파일에서 수행하려는 변경사항을 읽습니다. 자세한 정보는 CLI 참조 페이지 를 참조하십시오.

Cloud Databases API 사용

두 가지 배치 구성 엔드포인트가 있습니다. 하나는 구성 스키마를 보기 위한 것이고 다른 하나는 구성을 변경하기 위한 것입니다. 구성 스키마를 보려면 GET 요청을 /deployments/{id}/configuration/schema에 보내십시오.

구성을 변경하려면 PATCH의 요청 본문에서 JSON 오브젝트로 변경하려는 설정을 /deployments/{id}/configuration로 전송하십시오.

자세한 정보는 API 참조를 참조하십시오.

Databases for MySQL 시간대 설정

Databases for MySQL 배치의 시간대는 항상 협정 세계시 (UTC) 입니다. Cloud Databases API를 사용하여 시간대를 구성하거나 CLI에서 시간대를 이름 지정된 시간대 (권장) 또는 시간대의 오프셋으로 변경하십시오.

복원된 인스턴스 및 읽기-복제본 모두에서 시간대를 다시 구성해야 합니다. 시간대 테이블이 복원되고 (복원의 경우) 복제되지만 (읽기-복제본의 경우) @@global.time_zone 값은 복원되지 않습니다. 이 값을 설정하려면 새 CRN을 사용하여 이전과 동일한 API 호출을 사용하십시오.

Databases for MySQL 시간대 설정 구성

프로비저닝 시 Cloud Databases 배치가 협정 세계시 (UTC) 로 구성됩니다. 시간대 재구성은 지속적인 변경이며 각 Cloud Databases 배치에 대해 수행해야 합니다.

시간대를 구성하면 MySQL 인스턴스 내에 글로벌 시간대가 설정됩니다. 장애 복구가 발생하는 인스턴스에서는 시간대 설정이 MySQL 구성 파일에 기록되므로 시간대 설정이 복제의 일부로 전파됩니다. 이에 대한 예외는 선호하는 시간대를 구성하기 전에 특정 시점으로 인스턴스를 복원하는 경우입니다.

시간대를 일광 절약 시간이 적용되는 시간대로 구성하는 경우 조정은 구성의 일부입니다. 사용자의 경우에는 조치가 필요하지 않습니다. 특정 시간대를 사용하는 것이 오프셋 시간을 사용하는 것보다 좋습니다.

Cloud Databases 매개변수 time_zone 값을 검증합니다. 올바르지 않은 값으로 배치를 구성하는 경우 구성이 실패합니다. 올바른 이름의 time_zone values여기에서 찾을 수 있습니다.

Cloud Databases API에서 시간대 변경

오프셋 예:

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"}}'

이름 지정된 시간대의 예:

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"}}'

Cloud Databases CLI에서 시간대 변경

이름 지정된 시간대의 예

ibmcloud cdb deployment-configuration <crn> '{"time_zone": "US/Pacific"}'

사용 가능한 Databases for MySQL 구성 설정

innodb_buffer_pool_size_percentage

  • 설명: innodb_buffer_pool_size 에 사용할 메모리의 백분율입니다. 기본값 50%는 보수적인 값이며 모든 크기의 데이터베이스에 대해 작동합니다. 데이터베이스에 추가 RAM이 필요한 경우 이 값을 늘릴 수 있습니다. 이 값을 너무 높게 설정하면 데이터베이스의 메모리 한계를 초과하여 충돌이 발생할 수 있습니다.
  • 기본값: 50
  • 최소: 10
  • 최대: 100
  • 데이터베이스를 재시작합니까? - true

innodb_log_buffer_size

  • 설명: InnoDB 가 디스크에서 로그 파일 에 쓰는 데 사용하는 버퍼의 크기 (바이트) 입니다.
  • 기본값: 33554432
  • 최소: 1048576
  • 최대: 4294967295
  • 데이터베이스를 재시작합니까? - true

innodb_log_file_size

  • 설명: 로그 그룹에 있는 각 로그 파일의 바이트 단위 크기입니다. Innodb_log_file_size 및 ' innodb_log_files_in_group '가 ' innodb_redo_log_capacity'로 대체되었습니다. ' innodb_log_file_size '을 설정하면 ' innodb_redo_log_capacity'도 설정됩니다.
  • 기본값: 2147483648
  • 최소: 4194304
  • 최대: 274877906900
  • 데이터베이스를 재시작합니까? - false

innodb_lru_scan_depth

  • 설명: InnoDB 버퍼 풀에 대한 플러시 조작의 알고리즘 및 휴리스틱에 영향을 주는 매개변수입니다. 기본값보다 작은 설정은 일반적으로 대부분의 워크로드에 적합합니다. 필요한 값보다 훨씬 높은 값은 성능에 영향을 줄 수 있습니다. 일반 워크로드에서 예비 I/O 용량이 있는 경우에만 값을 늘리는 것을 고려하십시오.
  • 기본값: 256
  • 최소: 128
  • 최대: 2048
  • 데이터베이스를 재시작합니까? - false

innodb_write_io_threads

  • 설명: InnoDB 에서 쓰기 작업에 사용되는 I/O 스레드 수.
  • 기본값: 4
  • 최소: 1
  • 최대: 64
  • 데이터베이스를 재시작합니까? - true

max_allowed_packet

  • 기본값- 1073741824
  • 최소 - 1024
  • 최대 - 1073741824
  • 데이터베이스를 재시작합니까? - false

max_prepared_stmt_count

  • 설명-서버에서 준비된 명령문의 총 수를 지정합니다.
  • 기본값- 16382
  • 최소 - 0
  • 최대값 - (버전 ≤ 8.0.17) 1048576, (버전 ≥ 8.0.18) 4194304
  • 데이터베이스를 재시작합니까? - false

max_connections

  • 기본값- 200
  • 데이터베이스를 재시작합니까? - false

최대 연결 수를 늘리기 전에 확장 해야 할 수도 있습니다.

mysql_max_binlog_age_sec

  • 기본값- 1800
  • 데이터베이스를 재시작합니까? - false

net_write_timeout

  • 설명: 쓰기를 중단하기 전에 블록이 연결에 기록될 때까지 대기하는 시간(초)입니다.
  • 기본값: 60
  • 최소: 1
  • 최대: 7200
  • 데이터베이스를 재시작합니까? - false

sql_mode

  • 허용 가능한 값:
    • 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
  • 데이터베이스를 재시작합니까? - false

time_zone

  • 설명: 현재 서버에 설정된 시간대는 기본적으로 '+00:00' (협정 세계시) 입니다. 그러나 '+10:00', ''-6:00' 또는 '+05:30'과 같이 + 또는 - 접두사를 사용하여 협정 세계시로부터 특정 오프셋을 [HH] :MM 형식으로 설정할 수도 있습니다(예: '+10:00' 또는 '+05:30'). 'MET' 또는 'US/Pacific' 과 같은 이름 지정된 시간대도 사용할 수 있습니다.
  • 기본값: +00:00
  • 유형: string
  • 데이터베이스를 재시작합니까? - false

wait_timeout

  • 설명: 서버가 비대화식 연결을 닫기 전에 활동을 대기하는 시간 (초) 입니다.
  • 기본값: 28800
  • 최소: 1
  • 최대: 31536000
  • 데이터베이스를 재시작합니까? - false

innodb_read_io_threads

  • 설명: InnoDB에서 읽기 조작을 위한 I/O 스레드 수입니다.
  • 기본값: 4
  • 최소: 1
  • 최대: 64
  • 데이터베이스를 재시작합니까? - true

net_read_timeout

  • 설명: 읽기를 중단하기 전에 연결에서 추가 데이터를 기다리는 시간(초)입니다.
  • 기본값: 30
  • 최소: 1
  • 최대: 7200
  • 데이터베이스를 재시작합니까? - false