こんにちは。AWS CLIが好きな福島です。
前回、以下のブログを記載しました。
ということで今回は、タイトル通りですが、 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エンジンごとのパラメーターグループの差異を簡単にチェックするスクリプトをご紹介しました。
どなたかのお役に立てれば幸いです。