데이터베이스 플래그 구성

이 페이지에서는 Cloud SQL에 데이터베이스 플래그를 구성하는 방법을 설명하고 인스턴스에 설정할 수 있는 플래그를 알아봅니다. 데이터베이스 플래그는 MySQL 매개변수 조정, 옵션 조정, 인스턴스 구성 및 조정을 포함한 여러 작업에 사용합니다.

경우에 따라 한 플래그를 설정할 때 원하는 기능을 완전히 활성화하기 위해 다른 플래그를 설정해야 할 수도 있습니다. 예를 들어 느린 쿼리 로깅을 사용 설정하여 Google Cloud Console 로그 뷰어를 통해 로그를 보려면 slow_query_log 플래그를 on으로, log_output 플래그를 FILE로 설정해야 합니다.

데이터베이스 인스턴스의 플래그를 설정, 삭제, 수정하면 데이터베이스가 다시 시작될 수 있습니다. 플래그 값은 인스턴스를 삭제하기 전까지 유지됩니다. 인스턴스가 복제본의 소스이며 인스턴스를 다시 시작하는 경우 복제본은 인스턴스의 현재 구성에 맞게 다시 시작됩니다.

데이터베이스 플래그 구성

데이터베이스 플래그 설정

Console

  1. Google Cloud Console에서 새 Cloud Console 프로젝트를 만들거나 프로젝트 이름을 선택하여 기존 프로젝트를 엽니다.
  2. 인스턴스를 열고 수정을 클릭합니다.
  3. 플래그 섹션까지 아래로 스크롤합니다.
  4. 이전에 인스턴스에 설정되지 않은 플래그를 설정하려면 항목 추가를 클릭하고 드롭다운 메뉴에서 플래그를 선택한 다음 값을 설정합니다.
  5. 저장을 클릭하여 변경사항을 저장합니다.
  6. 개요 페이지의 플래그에서 변경사항을 확인합니다.

gcloud

인스턴스를 수정합니다.

gcloud sql instances patch [INSTANCE_NAME] --database-flags [FLAG1=VALUE1,FLAG2=VALUE2]

이 명령어는 이전에 설정한 모든 데이터베이스 플래그를 덮어씁니다. 이전에 설정된 플래그를 유지하고 새 플래그를 추가하려면 인스턴스에 설정하려는 모든 플래그의 값을 포함합니다. 명확하게 포함되지 않은 플래그는 기본값으로 설정됩니다. 값을 가지지 않는 플래그의 경우 플래그 이름 뒤에 등호('=')를 지정합니다.

예를 들어 general_log, skip_show_database, wait_timeout 플래그를 설정하려면 다음 명령어를 사용하면 됩니다.

gcloud sql instances patch [INSTANCE_NAME] --database-flags \
    general_log=on,skip_show_database=on,wait_timeout=200000

REST v1

기존 데이터베이스에 플래그를 설정하려면 다음 안내를 따르세요.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • project-id: 프로젝트 ID
  • instance-id: 인스턴스 ID

HTTP 메서드 및 URL:

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

JSON 요청 본문:

{
  "settings":
  {
    "databaseFlags":
    [
      {
        "name": "flag_name",
        "value": "flag_value"
      }
    ]
  }
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 유사한 JSON 응답이 표시됩니다.

예를 들어 기존 데이터베이스에 general_log 플래그를 설정하려면 다음을 사용하세요.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • project-id: 프로젝트 ID
  • instance-id: 인스턴스 ID

HTTP 메서드 및 URL:

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

JSON 요청 본문:

{
  "settings":
  {
    "databaseFlags":
    [
      {
        "name": "general_log",
        "value": "on"
      }
    ]
  }
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 유사한 JSON 응답이 표시됩니다.

데이터베이스에 기존에 구성된 플래그가 있는 경우 이전 명령어를 수정하여 해당 플래그를 포함할 수 있습니다. PATCH 명령어는 기존 플래그를 요청에 지정된 플래그로 덮어씁니다.

REST v1beta4

기존 데이터베이스에 플래그를 설정하려면 다음 안내를 따르세요.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • project-id: 프로젝트 ID
  • instance-id: 인스턴스 ID

HTTP 메서드 및 URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

JSON 요청 본문:

{
  "settings":
  {
    "databaseFlags":
    [
      {
        "name": "flag_name",
        "value": "flag_value"
      }
    ]
  }
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 유사한 JSON 응답이 표시됩니다.

예를 들어 기존 데이터베이스에 general_log 플래그를 설정하려면 다음을 사용하세요.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • project-id: 프로젝트 ID
  • instance-id: 인스턴스 ID

HTTP 메서드 및 URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

JSON 요청 본문:

{
  "settings":
  {
    "databaseFlags":
    [
      {
        "name": "general_log",
        "value": "on"
      }
    ]
  }
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 유사한 JSON 응답이 표시됩니다.

데이터베이스에 기존에 구성된 플래그가 있는 경우 이전 명령어를 수정하여 해당 플래그를 포함할 수 있습니다. PATCH 명령어는 기존 플래그를 요청에 지정된 플래그로 덮어씁니다.

모든 플래그를 기본값으로 지정

Console

  1. Google Cloud Console에서 새 Cloud Console 프로젝트를 만들거나 프로젝트 이름을 선택하여 기존 프로젝트를 엽니다.
  2. 인스턴스를 열고 수정을 클릭합니다.
  3. 데이터베이스 플래그 섹션을 엽니다.
  4. 표시된 모든 플래그 옆에 있는 X를 클릭합니다.
  5. 저장을 클릭하여 변경사항을 저장합니다.

gcloud

인스턴스의 모든 플래그를 기본값으로 지정합니다.

gcloud sql instances patch INSTANCE_NAME \
--clear-database-flags

인스턴스를 다시 시작할지 묻는 메시지가 표시됩니다.

REST v1

기존 인스턴스의 모든 플래그를 삭제하려면 다음을 사용합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • project-id: 프로젝트 ID
  • instance-id: 인스턴스 ID

HTTP 메서드 및 URL:

PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

JSON 요청 본문:

{
  "settings":
  {
    "databaseFlags": []
  }
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 유사한 JSON 응답이 표시됩니다.

REST v1beta4

기존 인스턴스의 모든 플래그를 삭제하려면 다음을 사용합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • project-id: 프로젝트 ID
  • instance-id: 인스턴스 ID

HTTP 메서드 및 URL:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

JSON 요청 본문:

{
  "settings":
  {
    "databaseFlags": []
  }
}

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 유사한 JSON 응답이 표시됩니다.

데이터베이스 플래그의 현재 값 보기

MySQL 시스템 변수의 모든 현재 값을 보려면 mysql 클라이언트에서 인스턴스에 로그인하고 다음 문을 입력합니다.

 SHOW VARIABLES;

지원되는 플래그(아래 참조)의 값만 변경할 수 있습니다.

인스턴스에 설정된 데이터베이스 플래그 확인

Cloud SQL 인스턴스에 설정된 플래그를 확인하려면 다음 안내를 따르세요.

Console

  1. Google Cloud Console에서 새 Cloud Console 프로젝트를 만들거나 프로젝트 이름을 선택하여 기존 프로젝트를 엽니다.
  2. 인스턴스를 선택하여 인스턴스 개요 페이지를 엽니다.

    데이터베이스 플래그 섹션에 설정된 데이터베이스 플래그가 나열됩니다.

gcloud

인스턴스 상태를 가져옵니다.

gcloud sql instances describe INSTANCE_NAME

출력에서 데이터베이스 플래그는 databaseFlags 컬렉션으로 settings 아래에 나열됩니다. 출력에서 플래그 표시에 대한 자세한 내용은 인스턴스 리소스 표시를 참조하세요.

REST v1

인스턴스에 구성된 플래그를 나열하려면 다음을 사용합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • project-id: 프로젝트 ID
  • instance-id: 인스턴스 ID

HTTP 메서드 및 URL:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 유사한 JSON 응답이 표시됩니다.

출력에서 databaseFlags 필드를 확인합니다.

REST v1beta4

인스턴스에 구성된 플래그를 나열하려면 다음을 사용합니다.

요청 데이터를 사용하기 전에 다음을 바꿉니다.

  • project-id: 프로젝트 ID
  • instance-id: 인스턴스 ID

HTTP 메서드 및 URL:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

다음과 유사한 JSON 응답이 표시됩니다.

출력에서 databaseFlags 필드를 확인합니다.

Cloud SQL에서 관리하는 플래그

Cloud SQL은 인스턴스 머신 유형에 따라 특정 시스템 플래그를 조정합니다. 이 값은 조정할 수 없습니다.

innodb_buffer_pool_instances
  • db-f1-micro 및 db-g1-small인 경우 1개
  • RAM < 7.5GB인 경우 1개
  • 7.5GB <= RAM < 13GB인 경우 2개
  • 13GB <= RAM < 26GB인 경우 4개
  • RAM >= 26GB인 경우 8개

지원되는 플래그

Cloud SQL에서 지원되는 플래그는 MySQL에 가장 많이 요청되는 플래그입니다. 아래에 언급되지 않은 플래그는 지원되지 않습니다.

특정 플래그의 경우 Cloud SQL은 MySQL과는 다른 범위의 매개변수 또는 옵션을 지원합니다.

플래그는 명시된 경우를 제외하고는 Cloud SQL에서 지원하는 모든 버전의 MySQL에 적용됩니다.

A | B | C | D | E | F | G | I | L | M | N | O | P | Q | R | S | T | U | W

Cloud SQL 플래그 유형
허용 값 및 참고사항
다시 시작
필요
activate_all_roles_on_login boolean
on | off
기본값: off
아니요
auto_increment_increment integer
1 ... 65535
아니요
auto_increment_offset integer
1 ... 65535
아니요
binlog_cache_size integer
4096 ... 9223372036854775807
아니요
binlog_expire_log_seconds integer
0 또는 86400 (1 day) ... 4294967295 (max value)
기본값은 2592000이며 30일에 해당합니다.

이 플래그에 대한 자세한 내용은 섹션을 참조하세요.

아니요
binlog_group_commit_sync_delay 0 ... 1000000

MySQL 5.7, 8.0에서 지원됨

기본값은 0입니다.

아니요
binlog_group_commit_sync_no_delay_count 0 ... 1000000

MySQL 5.7, 8.0에서 지원됨

기본값은 0입니다.

아니요
binlog_row_image enumeration
full(기본값), minimal 또는 noblob
아니요
binlog_stmt_cache_size 4096 ... 9223372036854775807 아니요
binlog_transaction_dependency_history_size integer

이 플래그 및 허용되는 값을 사용하는 방법에 대한 자세한 내용은 병렬 복제 구성을 참조하세요.

아니요
binlog_transaction_dependency_tracking enumeration

이 플래그 및 허용되는 값을 사용하는 방법에 대한 자세한 내용은 병렬 복제 구성을 참조하세요.

아니요
character_set_server string
utf8 또는 utf8mb4 (권장)
default_password_lifetime integer 0...65535
기본값: 0
아니요
default_time_zone string
값을 -12:59에서 +13:00까지의 시간대 오프셋으로 지정합니다. 앞에 0이 와야 합니다.

예를 들어 런던은 UTC 시간대이며, 이는 이 플래그에 지원되는 값에서 +00:00입니다. 'Europe/London'과 같은 이름이 있는 영역은 Cloud SQL에서 지원되지 않습니다.

disconnect_on_expired_password boolean on | off
기본값: on
eq_range_index_dive_limit integer
0 ... 2147483647
아니요
event_scheduler boolean
on | off

이벤트 스케줄러를 사용하는 경우 활성화 정책이 ALWAYS인 인스턴스를 구성하여 예약된 이벤트가 실행되도록 합니다.

아니요
expire_log_days integer
0 ... 99
기본값은 0이며 자동으로 삭제되지 않습니다.

이 플래그에 대한 자세한 내용은 섹션을 참조하세요.

아니요
explicit_defaults_for_timestamp boolean
on | off
ft_max_word_len integer
10 ... 252
ft_min_word_len integer
1 ... 16
ft_query_expansion_limit integer
0 ... 1000
general_log boolean
on | off

일반 로그에 대한 자세한 내용은 섹션을 참조하세요.

아니요
generated_random_password_length integer 5-255
기본값: 20
아니요
group_concat_max_len integer
4 ... 17179869184
아니요
init_connect string 아니요
innodb_adaptive_hash_index boolean
on | off
아니요
innodb_adaptive_hash_index_parts integer
1 ... 512
innodb_adaptive_max_sleep_delay integer
0 ... 1000000
아니요
innodb_autoinc_lock_mode integer
0 ... 2
innodb_buffer_pool_size integer

MySQL 5.6에 이 플래그를 설정하면 다시 시작해야 합니다. 이 플래그에 대한 자세한 내용은 도움말 섹션을 참조하세요.

아니요
innodb_change_buffer_max_size integer
0 ... 50
아니요
innodb_concurrency_tickets integer
1 ... 4294967295
아니요
innodb_file_per_table boolean
on | off

이 플래그에 대한 자세한 내용은 섹션을 참조하세요.

아니요
innodb_fill_factor integer
10 ... 100
아니요
innodb_flush_log_at_trx_commit integer
1, 2
기본값: 1.

이 플래그에 대한 자세한 내용은 섹션을 참조하세요.

아니요
innodb_ft_cache_size integer
1600000 ... 80000000
innodb_ft_enable_diag_print boolean
on | off
아니요
innodb_ft_enable_stopword boolean
on | off
아니요
innodb_ft_max_token_size integer
10 ... 252

MySQL 5.6 이상 버전에서만 지원됩니다.

innodb_ft_min_token_size integer
0 ... 16

MySQL 5.6 이상 버전에서만 지원됩니다.

innodb_ft_num_word_optimize integer
1000 ... 10000
아니요
innodb_ft_result_cache_limit integer
1000000 ... 4294967295
아니요
innodb_ft_server_stopword_table string

MySQL 5.6 이상 버전에서만 지원됩니다.

아니요
innodb_ft_sort_pll_degree integer
1 ... 32
innodb_ft_total_cache_size integer
32000000 ... 1600000000
innodb_ft_user_stopword_table string 아니요
innodb_large_prefix boolean
on | off

MySQL 5.6에서만 지원됩니다.

아니요
innodb_lock_wait_timeout integer
1 ... 1073741824
아니요
innodb_log_buffer_size integer
262144 ... 4294967295
innodb_log_file_size integer
MySQL 5.6: 1048576 ... 274877906944
MySQL 5.7: 4194304 ... 274877906944
innodb_lru_scan_depth integer
100 ... 9223372036854775807
아니요
innodb_old_blocks_pct integer
5 ... 95
아니요
innodb_old_blocks_time integer
0 ... 4294967295
아니요
innodb_online_alter_log_max_size integer
65536 ... 9223372036854775807
아니요
innodb_optimize_fulltext_only boolean
on | off
아니요
innodb_print_all_deadlocks boolean
on | off
아니요
innodb_purge_threads 1 ... 32

MySQL 5.6., 5.7, 8.0에서 지원됨

기본값은 1입니다.

innodb_random_read_ahead boolean
on | off
아니요
innodb_read_ahead_threshold integer
0 ... 64
아니요
innodb_read_io_threads integer
1 ... 64
innodb_replication_delay integer
0 ... 4294967295
아니요
innodb_rollback_on_timeout boolean
on | off
innodb_rollback_segments integer
1 ... 128
아니요
innodb_sort_buffer_size integer
65536 ... 67108864
innodb_stats_auto_recalc boolean
on | off
아니요
innodb_stats_method enumeration
nulls_equal | nulls_unequal | nulls_ignored
아니요
innodb_stats_on_metadata boolean
on | off
아니요
innodb_stats_persistent boolean
on | off
아니요
innodb_stats_persistent_sample_pages integer
1 ... 9223372036854775807
아니요
innodb_stats_sample_pages integer
1 ... 9223372036854775807
아니요
innodb_stats_transient_sample_pages integer
1 ... 9223372036854775807
아니요
innodb_status_output boolean
on | off
아니요
innodb_status_output_locks boolean
on | off
아니요
innodb_strict_mode boolean
on | off
아니요
innodb_sync_array_size 1 ... 1024

MySQL 5.6., 5.7, 8.0에서 지원됨

기본값은 1입니다.

innodb_thread_concurrency integer
0 ... 1000
아니요
innodb_thread_sleep_delay integer
0 ... 1000000
아니요
innodb_write_io_threads integer
1 ... 64
interactive_timeout integer
1 ... 31536000
아니요
internal_tmp_mem_storage_engine enumeration
MEMORY, TempTable
이 플래그는 MySQL 8.0에서만 사용됩니다.
아니요
join_buffer_size integer
128 ... 9223372036854775807
아니요
local_infile boolean
on | off
아니요
lock_wait_timeout integer
1 ... 31536000
아니요
log_bin_trust_function_creators boolean
on | off
아니요
log_output set
FILE | TABLE | NONE
아니요
log_queries_not_using_indexes boolean
on | off
아니요
log_throttle_queries_not_using_indexes integer
0 ... 9223372036854775807
아니요
long_query_time float
0 ... 30000000

Cloud SQL에서는 필요한 경우 이 플래그를 1 미만으로 설정할 수 있습니다.

log_queries_not_using_indexes 플래그도 사용 설정된 경우 여기에 지정된 시간보다 짧은 쿼리가 표시될 수 있습니다.

아니요
lower_case_table_names integer
0 또는 1

대부분의 경우 테이블 및 데이터베이스 이름의 대소문자를 구분하기 위해 기본값인 0을 사용합니다. 이 플래그 값을 변경해야 하는 경우 변경사항이 기존 테이블 및 데이터베이스에 미치는 영향을 이해하고 있어야 합니다.

mandatory_roles string role name
기본값: empty string
아니요
max_allowed_packet integer
16384 ... 1073741824

sql_mode=TRADITIONAL 또는 sql_mode=STRICT_ALL_TABLES인 경우 이 값은 1024의 배수여야 합니다.

아니요
max_binlog_size integer
4096 ... 1073741824
아니요
max_connections integer
14 ... 262143
max_digest_length integer
0 ... 1048576
max_execution_time integer
0 ... 9223372036854775807
아니요
max_heap_table_size integer
16384 ... 67108864

이 플래그에 대한 자세한 내용은 섹션을 참조하세요.

아니요
max_join_size integer
16 ... 9223372036854775807
아니요
max_length_for_sort_data integer
4 ... 8388608
아니요
max_points_in_geometry integer
3 ... 1048576
아니요
max_prepared_stmt_count integer
0 ... 1048576
아니요
max_seeks_for_key integer
1 ... 9223372036854775807
아니요
max_sort_length integer
4 ... 8388608
아니요
max_sp_recursion_depth integer
0 ... 255
아니요
max_user_connections integer
0 ... 4294967295
아니요
max_write_lock_count integer
1 ... 9223372036854775807
아니요
net_read_timeout integer
30 ... 4294967295
아니요
net_retry_count integer
10 ... 4294967295
아니요
net_write_timeout integer
60 ... 4294967295
아니요
optimizer_prune_level integer
0 ... 1
아니요
optimizer_search_depth integer
0 ... 62
아니요
optimizer_trace_max_mem_size integer
0 ... 9223372036854775807
아니요
optimizer_trace_offset integer
-9223372036854775808 ... 9223372036854775807
아니요
parser_max_mem_size integer
10000000 ... 9223372036854775807
아니요
password_history integer 0-4294967295
기본값: 0
아니요
password_require_current boolean on | off
기본값: off
아니요
password_reuse_interval integer 0-4294967295
기본값: 0
아니요
performance_schema boolean
on | off(기본값)

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_accounts_size integer
-1 ... 1048576

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_digests_size integer
-1 ... 1048576

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_events_stages_history_long_size integer
-1 ... 1048576
performance_schema_events_stages_history_size integer
-1 ... 1024

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_events_statements_history_long_size integer
-1 ... 1048576

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_events_statements_history_size integer
-1 ... 1024

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_events_transactions_history_long_size integer
-1 ... 1048576

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_events_transactions_history_size integer
-1 ... 1024

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_events_waits_history_long_size integer
-1 ... 1048576

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_events_waits_history_size integer
-1 ... 1024

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_hosts_size integer
-1 ... 1048576

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_max_cond_classes integer
0 ... 256

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_max_cond_instances integer
-1 ... 1048576

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_max_digest_length integer
0 ... 1048576

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_max_file_classes integer
0 ... 256

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_max_file_handles integer
0 ... 1048576

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_max_file_instances integer
-1 ... 1048576

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_max_index_stat integer
-1 ... 1048576

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_max_memory_classes integer
0 ... 1024

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_max_metadata_locks integer
-1 ... 104857600

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_max_mutex_classes integer
0 ... 256

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_max_mutex_instances integer
-1 ... 104857600

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_max_prepared_statements_instances integer
-1 ... 1048576

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_max_program_instances integer
-1 ... 1048576

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_max_rwlock_classes integer
0 ... 256

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_max_rwlock_instances integer
-1 ... 104857600

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_max_socket_classes integer
0 ... 256

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_max_socket_instances integer
-1 ... 1048576

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_max_sql_text_length integer
0 ... 1048576

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_max_stage_classes integer
0 ... 256

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_max_statement_classes integer
0 ... 256

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_max_statement_stack integer
1 ... 256

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_max_table_handles integer
-1 ... 1048576

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_max_table_instances integer
-1 ... 1048576

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_max_table_lock_stat integer
-1 ... 1048576

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_max_thread_classes integer
0 ... 256

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_max_thread_instances integer
-1 ... 1048576

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_session_connect_attrs_size integer
-1 ... 1048576

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_setup_actors_size integer
-1 ... 1048576

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_setup_objects_size integer
-1 ... 1048576

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

performance_schema_users_size integer
-1 ... 1048576

performance_schema 플래그에 대한 자세한 내용은 섹션을 참조하세요.

query_alloc_block_size integer
1024 ... 4294967295
아니요
query_cache_limit integer
0 ... 223338299392

이 플래그는 MySQL 8.0에서 사용할 수 없습니다. 쿼리 캐시가 MySQL 5.7.20부터 지원 중단되었으며 MySQL 8.0에서 제거되었습니다.

아니요
query_cache_min_res_unit integer
0 ... 9223372036854775807

이 플래그는 MySQL 8.0에서 사용할 수 없습니다. 쿼리 캐시가 MySQL 5.7.20부터 지원 중단되었으며 MySQL 8.0에서 제거되었습니다.

아니요
query_cache_size integer
0 ... 223338299392

이 플래그는 MySQL 8.0에서 사용할 수 없습니다. 쿼리 캐시가 MySQL 5.7.20부터 지원 중단되었으며 MySQL 8.0에서 제거되었습니다. 이 플래그에 대한 자세한 내용은 섹션을 참조하세요.

아니요
query_cache_type enumeration
0 ... 2

이 플래그는 MySQL 8.0에서 사용할 수 없습니다. 쿼리 캐시가 MySQL 5.7.20부터 지원 중단되었으며 MySQL 8.0에서 제거되었습니다. 이 플래그에 대한 자세한 내용은 섹션을 참조하세요.

query_cache_wlock_invalidate boolean
on | off

이 플래그는 MySQL 8.0에서 사용할 수 없습니다. 쿼리 캐시가 MySQL 5.7.20부터 지원 중단되었으며 MySQL 8.0에서 제거되었습니다.

아니요
query_prealloc_size integer
8192 ... 9223372036854775807
아니요
range_alloc_block_size integer
4096 ... 4294967295
아니요
range_optimizer_max_mem_size integer
0 ... 9223372036854775807
아니요
read_buffer_size integer
8192 ... 2147483647
아니요
read_only boolean
on | off

복제본에 영향을 주지 않습니다.

아니요
read_rnd_buffer_size integer
1 ... 2147483647
아니요
show_compatibility_56 boolean
on | off

MySQL 5.7에서만 지원됩니다.

아니요
skip_show_database flag
on | off
slave_parallel_type enumeration

이 플래그 및 허용되는 값을 사용하는 방법에 대한 자세한 내용은 병렬 복제 구성을 참조하세요.

아니요
slave_parallel_workers integer

이 플래그 및 허용되는 값을 사용하는 방법에 대한 자세한 내용은 병렬 복제 구성을 참조하세요.

아니요
slave_preserve_commit_order boolean

이 플래그 및 허용되는 값을 사용하는 방법에 대한 자세한 내용은 병렬 복제 구성을 참조하세요.

아니요
slave_pending_jobs_size_max integer

이 플래그 및 허용되는 값을 사용하는 방법에 대한 자세한 내용은 병렬 복제 구성을 참조하세요.

아니요
slow_query_log boolean
on | off

느린 쿼리 로그에 대한 자세한 내용은 섹션을 참조하세요.

아니요
sort_buffer_size integer
32768 ... 9223372036854775807
아니요
sql_mode string

ANSI와 같은 결합 모드를 포함하여 허용되는 값은 MySQL 문서의 서버 SQL 모드를 참조하세요. NO_DIR_IN_CREATE는 지원되지 않습니다.

MySQL용 Cloud SQL은 sql_mode 플래그에 빈 값을 지원하지 않습니다. 빈 값을 사용하는 대신 이 플래그를 NO_ENGINE_SUBSTITUTION 모드로 설정합니다.

아니요
stored_program_cache integer
16 ... 524288
아니요
sync_binlog integer
0 ... 4294967295

MySQL 5.7 및 8.0의 읽기 복제본과 외부 서버 복제본에서만 지원됩니다.

기본 설정인 1은 트랜잭션이 커밋되기 전에 디스크에 바이너리 로그 동기화를 사용 설정합니다.

기본 인스턴스 또는 기존 HA 장애 조치 복제본에서는 이 플래그가 지원되지 않습니다. 이 플래그를 사용하는 복제본이 승격되면 플래그가 삭제됩니다.

아니요
table_definition_cache integer
400 ... 524288
아니요
table_open_cache integer
1 ... 524288
아니요
table_open_cache_instances integer
1 ... 64
thread_cache_size integer
0 ... 16384
아니요
thread_stack integer
131072 ... 9223372036854775807
tmp_table_size integer
1024 ... 67108864

이 플래그에 대한 자세한 내용은 섹션을 참조하세요.

아니요
transaction_alloc_block_size integer
1024 ... 131072
아니요
transaction_isolation enumeration
READ-UNCOMMITTED | READ-COMMITTED | REPEATABLE-READ | SERIALIZABLE
transaction_prealloc_size integer
1024 ... 131072
아니요
transaction_write_set_extraction enumeration

이 플래그 및 허용되는 값을 사용하는 방법에 대한 자세한 내용은 병렬 복제 구성을 참조하세요.

아니요
updatable_views_with_limit integer
0 ... 1
아니요
wait_timeout integer
1 ... 31536000
아니요

플래그 작업 도움말

general_log, slow_query_log

general 또는 slow query 로그를 사용하려면 해당 플래그를 사용 설정하고 log_output 플래그를 FILE로 설정합니다. 이렇게 하면 Google Cloud Console의 로그 뷰어를 사용하여 로그를 출력할 수 있습니다. Google Cloud 운영 제품군 로깅 요금이 적용됩니다. 인스턴스 스토리지 비용을 최소화하기 위해 로그 파일이 24시간(그리고 이 기간 동안 변경사항이 없는 경우) 또는 100MB를 초과하면 인스턴스 디스크의 generalslow query 로그가 순환됩니다. 이전 로그 파일은 순환 후에 자동으로 삭제됩니다.

log_outputNONE으로 설정된 경우 로그에 액세스할 수 없습니다. log_outputTABLE로 설정하면 로그 출력이 데이터베이스의 테이블에 표시됩니다. 이 테이블이 커지면 인스턴스 재시작 시간에 영향을 주거나 인스턴스에 SLA가 적용되지 않을 수 있습니다. 이러한 이유로 TABLE 옵션은 권장되지 않습니다. 필요한 경우 API를 사용하여 로그 테이블을 자를 수 있습니다. 자세한 내용은 instances.truncateLog 참조 페이지를 확인하세요.

expire_logs_days, binlog_expire_logs_seconds
point-in-time recovery를 사용 설정하면 트랜잭션 로그 보관 기간과 이 플래그의 값 중 더 작은 값에 따라 바이너리 로그의 만료 기간이 결정됩니다. 자세한 내용은 트랜잭션 로그 보관 페이지를 참조하세요.
innodb_buffer_pool_size

innodb_buffer_pool_size 값은 버퍼 풀 크기(바이트)입니다. RAM이 3,840MiB 미만인 인스턴스에는 이 플래그를 사용 설정할 수 없습니다.

공유 코어 머신 유형(f1_micro 및 g1_small)에는 이 플래그를 구성할 수 없습니다. MySQL 5.6에서 이 플래그를 변경하려면 다시 시작해야 합니다.

Cloud SQL에서 innodb_buffer_pool_size 플래그의 기본값, 최소 허용 값, 최대 허용 값은 인스턴스의 메모리에 따라 다릅니다. 이러한 값은 인스턴스 RAM의 백분율로 대략 계산될 수 있습니다. 기본적으로 이 플래그 값은 일반적으로 최대 허용 값에 가깝게 설정됩니다. 인스턴스 크기에 따라 허용되는 최대 할당 비율이 증가합니다. 최소 허용 값은 일반적으로 인스턴스 RAM의 약 20%입니다.

이 플래그의 대략적인 값:

인스턴스 RAM 범위최소 %기본 %최대 %
RAM 0 - 4.0GB~34%
4.0GB - 7.5GB~20%~34%~34%
7.5GB - 12GB~20%~52%~52%
12GB - 24GB~20%~67%~67%
24GB 이상~20%~72%~72%

정확한 값은 다를 수 있습니다. 인스턴스의 현재 값을 계산하려면 쿼리를 실행하면 됩니다.

  show global variables like 'innodb_buffer_pool_size'
  

참고로 아래의 사전 정의된 머신 유형에 허용되는 최솟값, 기본값, 최댓값이 제공됩니다.

사전 정의된 머신 유형 인스턴스 RAM(GB) 최소(GB)
(전체 대비 %)
기본값(GB)
(전체 대비 %)
최대(GB)
(전체 대비 %)
f1-micro 0.6 - 0.053 -
g1-small 1.7 - 0.625 -
db-custom-1-3840 3.75 0.875
(23%)
1.375
(37%)
1.375
(37%)
db-custom-2-7680 7.5 1.5
(20%)
4
(53%)
4
(53%)
db-custom-4-15360 15 3
(20%)
10.5
(70%)
10.5
(70%)
db-custom-8-30720 30 6
(20%)
22
(73%)
22
(73%)
db-custom-16-61440 60 12
(20%)
44
(73%)
44
(73%)
db-custom-32-122880 120 24
(20%)
87
(73%)
87
(73%)
db-custom-64-245760 240 48
(20%)
173
(72%)
173
(72%)
db-custom-96-368640 360 72
(20%)
260
(72%)
260
(72%)
db-custom-2-13312 13 3
(23%)
9
(69%)
9
(69%)
db-custom-4-26624 26 6
(23%)
19
(73%)
19
(73%)
db-custom-8-53248 52 11
(21%)
38
(73%)
38
(73%)
db-custom-16-106496 104 21
(20%)
75
(72%)
75
(72%)
db-custom-32-212992 208 42
(20%)
150
(72%)
150
(72%)
db-custom-64-425984 416 84
(20%)
300
(72%)
300
(72%)
db-custom-96-638976 624 125
(20%)
450
(72%)
450
(72%)

innodb_file_per_table

모든 MySQL 버전 5.6 이상에서 기본값은 ON입니다.

innodb_flush_log_at_trx_commit
더 높은 성능이 필요한 경우 값을 2로 설정하는 것이 좋습니다. Cloud SQL은 이 플래그의 값을 0으로 설정할 수 없습니다. 플래그 값을 2로 설정하면 복제본에서 바이너리 로그를 사용 중지하거나 sync_binlog를 1이 아닌 다른 값으로 설정해야 합니다.

읽기 복제본과 외부 서버 복제본에만 이 플래그를 사용 설정할 수 있습니다. 외부 서버 복제본의 경우 전체 ACID 규정 준수를 위해 이 플래그를 기본값 1로 설정해야 합니다. 기본 인스턴스 또는 장애 조치 복제본에서는 이 플래그를 사용 설정할 수 없습니다.

max_heap_table_size, tmp_table_size

tmp_table_sizemax_heap_table_size를 인스턴스가 처리하는 동시 실행 쿼리 수보다 너무 높게 설정하면 사용 가능한 인스턴스 메모리가 소진될 수 있습니다. 메모리가 소진되면 인스턴스가 비정상적으로 종료되며 다시 시작됩니다.

이러한 플래그의 사용 방법에 대한 자세한 내용은 MySQL의 내부 임시 테이블 사용법MEMORY 스토리지 엔진을 참조하세요.

performance_schema

RAM이 26,624MiB 미만인 인스턴스에는 이 플래그를 사용 설정할 수 없습니다. 이 플래그를 사용 설정하면 머신 유형을 플래그를 지원하지 않는 크기로 변경할 수 없습니다. 먼저 이 플래그를 사용 중지해야 합니다.

Cloud SQL에서 변경된 시스템 플래그

지원되는 플래그 섹션에 나열되지 않은 다른 모든 데이터베이스 시스템을 관리형 플래그라고 부릅니다. 특정 관리형 플래그의 경우 Cloud SQL은 Cloud SQL 인스턴스가 안정적으로 실행될 수 있도록 기본 설정 이외의 값으로 플래그를 설정합니다. 이러한 시스템 플래그에서는 값을 변경할 수 없습니다.

기본값이 아닌 설정의 관리형 플래그가 아래에 나열되어 있습니다.

변수 이름 Cloud SQL의 설정 참고
binlog_format ROW MySQL 5.6에서만 다름
binlog_error_action ABORT_SERVER MySQL 5.6에서만 다름
innodb_file_format Barracuda MySQL 5.6에서만 다름
innodb_flush_method O_DIRECT
innodb_flush_neighbors 0(MySQL 5.6) 및 2(MySQL 5.7 및 8.0)
innodb_io_capacity 5000
innodb_buffer_pool_instances
인스턴스 크기
(첫 번째 일치)
innodb_buffer_pool_instances
< 1024 1
< 2048 1
< 7680 1
< 13312 2
< 26624 4
기본값 8
memlock
skip_name_resolve 사용
relay_log_info_repository 테이블
relay_log_recovery 사용
slave_net_timeout 30
master_info_repository 테이블
rpl_semi_sync_master_enabled 1
rpl_semi_sync_master_timeout 3000
innodb_page_cleaners 8 MySQL 5.7, 8.0에서만 다름
admin_address 127.0.0.1 MySQL 8.0에서만 다름
create_admin_listener_thread 사용
port-open-timeout 120 MySQL 8.0에서만 다름
innodb_io_capacity_max 10000

문제 해결하기

문제 문제 해결하기
플래그를 사용 설정한 후 인스턴스가 공황과 비정상 종료 간에 순환됩니다. 고객지원에 연락하여 플래그 삭제 후 hard drain을 요청합니다. 이렇게 하면 원하지 않는 플래그 또는 설정 없이 새 구성으로 인스턴스가 다른 호스트에서 강제로 다시 시작됩니다.
플래그를 설정하려고 하면 오류 메시지 Bad syntax for dict arg가 표시됩니다. 쉼표로 구분된 목록과 같은 복잡한 매개변수 값은 gcloud 명령어에 사용할 때 특수 처리되어야 합니다.
시간대가 자동으로 변경되지 않습니다. 자동 시간대 변경은 MySQL용 Cloud SQL에서 지원되지 않으므로 문자열이 아닌 시간대 오프셋 값으로 직접 수행해야 합니다.

인스턴스를 수정하여 default_time_zone 플래그를 변경합니다. 이름 영역은 지원되지 않습니다. 예를 들면 다음과 같습니다.

Europe/London런던은 UTC 시간대이며 default_time_zone 플래그에 지원되는 +00:00 값입니다.

다음 단계