Skip to content

Instantly share code, notes, and snippets.

@osamu
Created January 29, 2021 00:20
Show Gist options
  • Save osamu/4c654852173b77f5c8a5648d40ee062d to your computer and use it in GitHub Desktop.
Save osamu/4c654852173b77f5c8a5648d40ee062d to your computer and use it in GitHub Desktop.
require 'mysql2'
begin
client = Mysql2::Client.new(:host => "db1-proxy.proxy-hogehoge.amazonaws.com", :username => "root", :password => '')
while true
query = "SHOW GLOBAL VARIABLES WHERE Variable_Name IN ('innodb_read_only', 'server_uuid', 'aurora_server_id');"
client.query(query).each do |row|
puts row
end
sleep(0.2)
end
rescue => e
puts e
retry
end
@osamu
Copy link
Author

osamu commented Jan 29, 2021

0.2秒単位でクエリしながら、Failoverさせると、clientがエラーを起こしWriterへの接続が切れて再接続する必要が出てくる。
際接続すると新しいwriterへ繋がる。繋がったままread_onlyにはならない。

{"Variable_name"=>"server_uuid", "Value"=>"d9a929b1-9d76-3cfc-8b7c-7f87a871eee0"}
{"Variable_name"=>"aurora_server_id", "Value"=>"database-1-instance-1"}
{"Variable_name"=>"innodb_read_only", "Value"=>"OFF"}
{"Variable_name"=>"server_uuid", "Value"=>"d9a929b1-9d76-3cfc-8b7c-7f87a871eee0"}
{"Variable_name"=>"aurora_server_id", "Value"=>"database-1-instance-1"}
{"Variable_name"=>"innodb_read_only", "Value"=>"OFF"}
{"Variable_name"=>"server_uuid", "Value"=>"d9a929b1-9d76-3cfc-8b7c-7f87a871eee0"}
{"Variable_name"=>"aurora_server_id", "Value"=>"database-1-instance-1"}
{"Variable_name"=>"innodb_read_only", "Value"=>"OFF"}
{"Variable_name"=>"server_uuid", "Value"=>"d9a929b1-9d76-3cfc-8b7c-7f87a871eee0"}
Lost connection to MySQL server during query
{"Variable_name"=>"aurora_server_id", "Value"=>"database-1-writer"}
{"Variable_name"=>"innodb_read_only", "Value"=>"OFF"}
{"Variable_name"=>"server_uuid", "Value"=>"d9a929b1-9d76-3cfc-8b7c-7f87a871eee0"}
{"Variable_name"=>"aurora_server_id", "Value"=>"database-1-writer"}
{"Variable_name"=>"innodb_read_only", "Value"=>"OFF"}
{"Variable_name"=>"server_uuid", "Value"=>"d9a929b1-9d76-3cfc-8b7c-7f87a871eee0"}
{"Variable_name"=>"aurora_server_id", "Value"=>"database-1-writer"}
{"Variable_name"=>"innodb_read_only", "Value"=>"OFF"}
{"Variable_name"=>"server_uuid", "Value"=>"d9a929b1-9d76-3cfc-8b7c-7f87a871eee0"}

@osamu
Copy link
Author

osamu commented Jan 29, 2021

もっと速度を落としてqueryしている場合、切り替わり時にRDS Proxyとの接続が維持される。

{"Variable_name"=>"server_uuid", "Value"=>"d9a929b1-9d76-3cfc-8b7c-7f87a871eee0"}
{"Variable_name"=>"aurora_server_id", "Value"=>"database-1-writer"}
{"Variable_name"=>"innodb_read_only", "Value"=>"OFF"}
{"Variable_name"=>"server_uuid", "Value"=>"d9a929b1-9d76-3cfc-8b7c-7f87a871eee0"}
{"Variable_name"=>"aurora_server_id", "Value"=>"database-1-writer"}
{"Variable_name"=>"innodb_read_only", "Value"=>"OFF"}
{"Variable_name"=>"server_uuid", "Value"=>"d9a929b1-9d76-3cfc-8b7c-7f87a871eee0"}

{"Variable_name"=>"aurora_server_id", "Value"=>"database-1-instance-1"}
{"Variable_name"=>"innodb_read_only", "Value"=>"OFF"}
{"Variable_name"=>"server_uuid", "Value"=>"d9a929b1-9d76-3cfc-8b7c-7f87a871eee0"}
{"Variable_name"=>"aurora_server_id", "Value"=>"database-1-instance-1"}
{"Variable_name"=>"innodb_read_only", "Value"=>"OFF"}
{"Variable_name"=>"server_uuid", "Value"=>"d9a929b1-9d76-3cfc-8b7c-7f87a871eee0"}
{"Variable_name"=>"aurora_server_id", "Value"=>"database-1-instance-1"}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment