【AWS CLI】DBエンジンごとのパラメーターグループの差異を簡単にチェックしてみた

記事タイトルとURLをコピーする

こんにちは。AWS CLIが好きな福島です。

前回、以下のブログを記載しました。

blog.serverworks.co.jp

ということで今回は、タイトル通りですが、 DBエンジンごとのパラメーターグループの差異を簡単にチェックするスクリプトを作成したので、ご紹介いたします。

スクリプト

早速ですが、作成したスクリプトは以下の通りです。

#!/bin/bash

## 全DBエンジンファミリーを出力
aws rds describe-db-engine-versions \
--query "DBEngineVersions[].DBParameterGroupFamily" \
--output yaml | uniq

echo "## 比較したいバージョンAを上記から選択してください。##"

read a

echo "## 比較したいバージョンBを上記から選択してください。##"

read b

## 設定したDBエンジンファミリーごとのパラメーターを取得
for i in ${a} ${b}
do
   aws rds create-db-parameter-group \
   --db-parameter-group-name tmp-pg \
   --db-parameter-group-family ${i} \
   --description default.${i}_tmp > /dev/null

   aws rds describe-db-parameters --db-parameter-group-name tmp-pg \
   --query "Parameters[].[ParameterName,ParameterValue]" \
   --output text > ${i}.txt

   aws rds delete-db-parameter-group \
   --db-parameter-group-name tmp-pg

done

cat << EOF
#################################################################################
##
## 差分は、以下の通りです(左:${a}、右:${b})
##
#################################################################################
EOF
sdiff -s ${a}.txt ${b}.txt
rm ${a}.txt ${b}.txt

上記内容を「version-param-differences.sh」などと任意のファイルに保存し、実行権限を付与します。

chmod 744 version-param-differences.sh

後は、スクリプトを実行し、指示に従えばOKです。

./version-param-differences.sh

実行例)

# ./version-param-differences.sh
- aurora-mysql5.7
- docdb3.6
- docdb4.0
- neptune1
- aurora-postgresql9.6
- aurora-postgresql10
- aurora-postgresql11
- aurora-postgresql12
- mariadb10.2
- mariadb10.3
- mariadb10.4
- mariadb10.5
- mysql5.6
- mysql5.7
- mysql8.0
- oracle-ee-12.1
- oracle-ee-12.2
- oracle-ee-19
- oracle-ee-cdb-19
- oracle-se2-12.1
- oracle-se2-12.2
- oracle-se2-19
- oracle-se2-cdb-19
- aurora5.6
- postgres9.6
- postgres10
- postgres11
- postgres12
- postgres13
- sqlserver-ee-11.0
- sqlserver-ee-12.0
- sqlserver-ee-13.0
- sqlserver-ee-14.0
- sqlserver-ee-15.0
- sqlserver-ex-11.0
- sqlserver-ex-12.0
- sqlserver-ex-13.0
- sqlserver-ex-14.0
- sqlserver-ex-15.0
- sqlserver-se-11.0
- sqlserver-se-12.0
- sqlserver-se-13.0
- sqlserver-se-14.0
- sqlserver-se-15.0
- sqlserver-web-11.0
- sqlserver-web-12.0
- sqlserver-web-13.0
- sqlserver-web-14.0
- sqlserver-web-15.0
## 比較したいバージョンAを上記から選択してください。##
default.mysql5.6
## 比較したいバージョンBを上記から選択してください。##
default.mysql5.7
#################################################################################
##
## 差分は、以下の通りです(左:mysql5.6、右:mysql5.7)
##
#################################################################################
                                                              > auto_generate_certs     None
                                                              > avoid_temporal_upgrade  None
binlogging_impossible_mode      None                          | binlog_group_commit_sync_delay  None
                                                              > binlog_group_commit_sync_no_delay_count None
                                                              > binlog_gtid_simple_recovery     None
                                                              > check_proxy_users       None
                                                              > default_authentication_plugin   None
                                                              > default_password_lifetime       0
                                                              > disabled_storage_engines        None
                                                              > disconnect_on_expired_password  None
gtid-mode       OFF                                           | gtid_executed_compression_period        None
                                                              > gtid-mode       OFF_PERMISSIVE
                                                              > gtid_purged     None
                                                              > innodb_adaptive_hash_index_parts        None
                                                              > innodb_buffer_pool_chunk_size   None
                                                              > innodb_buffer_pool_dump_pct     None
                                                              > innodb_deadlock_detect  None
                                                              > innodb_default_row_format       None
                                                              > innodb_disable_sort_file_cache  None
                                                              > innodb_fill_factor      None
                                                              > innodb_flush_sync       None
                                                              > innodb_ft_enable_diag_print     None
                                                              > innodb_ft_total_cache_size      None
                                                              > innodb_log_checksums    None
                                                              > innodb_log_write_ahead_size     None
                                                              > innodb_max_dirty_pages_pct_lwm  None
                                                              > innodb_max_undo_log_size        None
                                                              > innodb_page_cleaners    None
innodb_purge_threads    None                                  | innodb_purge_rseg_truncate_frequency    None
                                                              > innodb_purge_threads    1
                                                              > innodb_status_output    None
                                                              > innodb_status_output_locks      None
                                                              > innodb_temp_data_file_path      None
                                                              > innodb_undo_log_truncate        None
                                                              > internal_tmp_disk_storage_engine        None
                                                              > log_builtin_as_identified_by_password   None
                                                              > log_error_verbosity     None
                                                              > log_statements_unsafe_for_binlog        0
                                                              > log_syslog      None
                                                              > log_syslog_facility     None
                                                              > log_syslog_include_pid  None
                                                              > log_syslog_tag  None
                                                              > log_timestamps  None
                                                              > max_execution_time      None
                                                              > max_points_in_geometry  None
                                                              > mecab_rc_file   None
                                                              > mysql_native_password_proxy_users       None
                                                              > ngram_token_size        None
                                                              > offline_mode    None
                                                              > performance_schema_events_transactions_history_long_size
                                                              > performance_schema_events_transactions_history_size     None
                                                              > performance_schema_max_index_stat       None
                                                              > performance_schema_max_memory_classes   None
                                                              > performance_schema_max_metadata_locks   None
                                                              > performance_schema_max_prepared_statements_instances    None
                                                              > performance_schema_max_program_instances        None
                                                              > performance_schema_max_sql_text_length  None
                                                              > performance_schema_max_statement_stack  None
                                                              > performance_schema_max_table_lock_stat  None
                                                              > range_optimizer_max_mem_size    None
                                                              > require_secure_transport        None
                                                              > rpl_semi_sync_master_wait_for_slave_count       None
                                                              > rpl_semi_sync_master_wait_point None
                                                              > rpl_stop_slave_timeout  None
simplified_binlog_gtid_recovery None                          | session_track_gtids     None
                                                              > session_track_schema    None
                                                              > session_track_state_change      None
                                                              > session_track_system_variables  None
                                                              > session_track_transaction_info  None
                                                              > sha256_password_auto_generate_rsa_keys  None
                                                              > sha256_password_proxy_users     None
                                                              > show_compatibility_56   None
                                                              > show_old_temporals      None
                                                              > slave_allow_batching    None
                                                              > slave_parallel_type     None
                                                              > slave_preserve_commit_order     None
                                                              > slave_rows_search_algorithms    None
                                                              > slave_transaction_retries       None
sql_mode        None                                          | sql_mode        NO_ENGINE_SUBSTITUTION
                                                              > ssl_cipher      None
                                                              > super_read_only None
timed_mutexes   None                                          <
                                                              > tls_version     None
                                                              > transaction_write_set_extraction        None

終わりに

今回は、DBエンジンごとのパラメーターグループの差異を簡単にチェックするスクリプトをご紹介しました。
どなたかのお役に立てれば幸いです。

福島 和弥 (記事一覧)

SRE3課

2019/10 入社

AWS CLIが好きです。