なからなLife

geekに憧れと敬意を抱きながら、SE、ITコンサル、商品企画、事業企画、管理会計、総務・情シス、再び受託でDB屋さんと流浪する人のブログです。

MySQLのサーバーステータス変数の監視の話

mysqlクライアントから定期実行してたし、計算は別途やってた。 SHOW [GLOBAL ]STATUSで取れるのは、「サーバー起動からの累積値」または「コマンド発行時の瞬間値」という仕様のため、前者について推移を知りたいときは、 ・定間隔でコマンド発行してファイ…

一旦おしまい - Kibanaを立ててみた

Kibanaを立ててみた - なからなLifeにて当初予定していたもの全部は記事化できなかったのですが、一旦締めさせていただこうと思います。 以下テーマは、間に合わなかったので後ほど Amazon Elasticsearch連携 AWS契約して、マネジメントコンソールからAmazon…

JDBCでInputする - Kibanaを立ててみた

ファイルではなくDBの中身を取得 これまで、Logstashやfluentdが、「ファイル」を読み込んでelasticsearchに流し込む事例を扱ってきましたが、どちらも、「データベース」から直接読み取って、elasticsearchに流し込むことができます。 今回は、MySQLの中身…

Embulkを使ってみる - Kibanaを立ててみた

Embulkとは 「Fruentdのバッチ版」と呼ばれることが多いツールで、FruentdやLogstashが逐次生成されるデータをストリームとして扱って転送するのに対し、Embulkはほぼ変化のないデータの塊を転送するのに向いているエージェント、という位置付けになります。…

fluentdを使ってみる - Kibanaを立ててみた

fluentdとは 別名「td-agent」であることからわかるように、Tresure Dataのフロントとなるログ収集エージェントという位置付けですが、やはり様々なプラグインを通じて柔軟な処理が可能となっており、こと日本においては、ログ収集管理のエージェントとしてL…

Logstashを使ってみる - Kibanaを立ててみた

Logstashとは さまざまなデータソースから情報を収集し、さまざまなstash=格納庫にデータを投入する機能を提供するツールです。 Elaticsearchの文脈で語る上では、「Elasticsearchにデータを投入するためのエージェント」という位置付けになりますが、Logst…

Filebeatを使ってみる - Kibanaを立ててみた

Filebeatとは beatをインストールしたマシン上のファイルを監視し、その内容を収集するbeatです。 いわゆる一般的なログファイル監視・収集ツールという位置付けですが、syslog、Apache2、nginx、mysqlについてはelasticsearchのインデックス生成テンプレー…

Packetbeatを使ってみる - Kibanaを立ててみた

Packetbeatとは beatをインストールしたマシンのネットワーク・インターフェースを監視し、その内容を収集するbeatです。 ネットワークパケットの内容は、プロトコル毎に整理されます。 今回も、システム一般とMySQLの情報を取得することを目的としています…

Metricbeatを使ってみる - Kibanaを立ててみた

Metricbeatとは システムの統計情報(Metric)を収集するbeatです。 いわゆるOSで取得できるCPUやメモリなどの情報、および、モジュールを通してApacheやMySQLその他の統計情報も、ちょっとした設定をするだけで収集できる様になっています。 今回は、System…

エージェント概要 - Kibanaを立ててみた

データ収集の先鋒をどうするか 概要のところで説明したとおり、エージェント経由でElasticsearchに情報を収集するのですが、選択肢が結構多いですね。 よくある事例、記事だと、日本ではFluentdが圧倒的に多くて、次にLogstash。 FluentdもLogstashも、ファ…

Kibana+Elasticsearchセットアップ - Kibanaを立ててみた

まずは器を用意する Kibanaを使うには、分析・可視化対象のデータを入れる器としてのElasticsearchを立て、それを参照させるようにKibanaを立て、また、器にデータを入れる仕組みを用意する、という順番で進んでいきます。よって、ここでは、器としてのElast…

Kibanaって何よ、って話 - Kibanaを立ててみた

外から見たKibana www.elastic.coがあっさりとしていますが、要はオープンソースのログデータ解析/可視化ツールです。基本的に、リアルタイム検索エンジン「Elasticsearch」とセットで使われます。 独自のNode.js Webサーバーも付いている、ということで、別…

Kibanaを立ててみた

きっかけ なんかKibanaが流行っているみたいなので、今更感はありますが、とりあえずいじってみることにしました。 多分、AWSでフルマネージドにおまかせの方がラクチンなんだろうなー、と思いつつ、RDSと同様、ローカルにそのまんま立ててイロイロ比較する…

LANケーブルのツメ折れ対策品も意外と役立つ件

だいぶ前に上げたエントリの影響で、LAN関係のお買い上げがボチボチ観測される弊ブログです。 atsuizo.hatenadiary.jpエントリ自体が3年前ってのが驚きですが、この零細ブログでも今も月に数個はお買上げ頂いている模様。 詳しく調べてないけれど、金額では…

JavaのOutOfMemoryErrorを追いかけてみた

だいたいのことは、ネットに書いてある Java自体、すでに歴史ある技術ですし、今回のOutOfMemoryErrorも、その解析方法も確立されているようで、ネットでかなりの情報が手に入り、10年くらい前、Java1.4の案件でちょっとコード書いた程度にしかJavaと接点の…

RDSのStopからの復旧ログが不思議

AWS

RDSの「stop」がサポートされました。 AWS Relational Database Service(以下RDS)は、いわゆるDatabase as a serviceで、EC2とは違い、インスタンスのStop/Startが出来ず、停止・起動に相当するのはTerminate(最終スナップショットを取得して、インスタン…

MySQLでmetadata lockにハマりやすいパターン

しばらくブログエントリあげてませんでしたが、引き続きMySQL関係のお仕事していたので、復活弾もやっぱりMySQLネタです。 そもそも 「metadata lockって何よ?」 とか 「Waiting for Table metadata lockでハマったらどうしたら良いの?」 って話は、過去に…

人に仕事を依頼する立場に立ったら

自分でやった場合の手順を想像する そのとき、必要になる情報、前提条件、完了条件が何かはっきりさせる。 どれくらいの時間が掛かりそうか見積もる。 これを疎かにすると 依頼の際に被依頼人との調整に必要以上に時間がかかる 被依頼人の作業が滞る 被依頼…

MySQLのセッションタイムアウトの制御

timeout系パラメータはいくつかあるけれど 新規接続時のタイムアウト(connect_timeout)ではなく、一度確立した接続がタイムアウトで切断される現象に影響するタイムアウト設定のお話。 ERROR 2013 (HY000): Lost connection to MySQL server during query…

MySQLの文字列型の扱い

先日、この記事が公開されていたので gihyo.jp アレ?って思ってドキュメント見直して、手元の環境でも実行してみました。 確かに「その通り」だったのだけど、ドキュメントに書いてあるとおりのこと、かつ、「その一部」の話だなーとおもったので、もうちょ…

ノートPCと愛称の良い「USBハブ+優先LANアダプタ」

ノートPCの薄型化の影響で 有線LANポートが無い機種、増えてますよね。クラムシェル、2-in-1の折りたたみタイプ、セパレートタイプなど、薄さを追求するデザインを求める傾向に拍車がかかっています。MacBookみたいに「USB TypeC」だけ、みたいな尖ったヤツ…

MySQLでキャラクタセットを変更する

キャラクタセットはカラムレベルで持っている Oracleの場合はデータベースレベルで持っているキャラクタセット定義ですが、MySQLの場合、キャラクタセットはカラムレベルで持っています。ですので、同じデータベース、テーブルの中で、カラムによって別々の…

MySQLで幸せになれるヤツの続き-CloudWatchLogsを入れるとき、時々トラブる

AWS

atsuizo.hatenadiary.jp この絡みで、AWS EC2に後からCloudWatchLogsを入れると時々トラブるので、その解消法。 今回はMySQL一切出てきません。 普通に進めれば、以下手順でデフォルト設定終わるはず、なんだけど。 docs.aws.amazon.com に書いてあるんです…

MySQLで幸せになれるヤツの続き-列名の行は都度いらなくない?

atsuizo.hatenadiary.jp で挙げたワンライナーを見て、タイトルのような疑問を持った人もいるかと思いますので、そのへんの補足です。 お好みでどうぞ 「-N」オプションを付与すると、SQL実行毎に表示される列名の行を除外して出力させることができます。 な…

MySQLで幸せになれるヤツの続き-パスワードを隠蔽する方法

パスワードをゴニョゴニョする前に atsuizo.hatenadiary.jpで パスワードを生テキストで書くなって人はゴニョゴニョしてください。 って書いた話の件ですが、なんでこんな話になるの、ってところをまず押さえましょう。 mysqlクライアントでのログイン方法あ…

MySQLに対して定期的に実行して結果を保存しておくと幸せになれるアレ

ワンライナー mysql -u ユーザ -pパスワード -h 接続先 -e "SQL文" | sed -e 's/\t/\" \"/g' | sed -e 's/^/\"/g' | sed -e 's/$/\"/g' | sed -e "s/^/$(date '+%Y%m%d %H:%M:%S') /g" >> ファイル パスワードを生テキストで書くなって人はゴニョゴニョして…

「AWS 認定ソリューションアーキテクト - アソシエイト」合格した

どんな試験 すでにたくさんの方が受験し、レポっているので、今更感たっぷりですが。 AWS 認定ソリューションアーキテクト ? アソシエイト試験は、AWS プラットフォームでの分散アプリケーションとシステムの設計経験がある個人を対象としています。この試験…

Kindleよりも紙で読む方が向いてる本

Kindle版、便利だよね 先日、ダンボールにして10箱、300冊近い蔵書を処分したのを機に、なるべく電子書籍、なるべくKindle版で購入しようと思い始めています。 保管場所の問題が最大の理由ですが、処分する際の中古引取価格を見て、「Kindle版と紙版の価格差…

Dell Inspiron 11 3000(3162)エントリープラスを買いました(到着後)

到着後、と言いつつ、到着までの話から。 納期の件 BTOなので、発注後に海外工場で組立工程に入り、運送フェーズに入ったところで到着予定日が見えるシステム。 最初に表示されたのが、発注日+7日。 お、MyNA間に合うじゃん、ってウキウキしてたら、船便が…

Dell Inspiron 11 3000(3162)エントリープラスを買いました(検討~購入編)

こんなPCです。 Dell ノートパソコン Inspiron 11 Pentiumモデル ホワイト 17Q12W/Windows10/11.6インチ/4GB/128GB出版社/メーカー: Dell Computers発売日: 2016/02/19メディア: Personal Computersこの商品を含むブログを見る 液晶:11.6インチ WXGA (1366x…

新年あけまして2017

仕事始めということで、年頭所感を残しておきたいと思います。 2016年初のエントリもかなり手短なエントリでしたが、今年も手短に。 昨年は プライベートの方は、身内の不幸が立て続けに起こってなかなか大変な前厄でした。 仕事の方は、昨年の転職以来、ほ…

お兄さんとの約束は守ろう!(MySQLのtx_isolationとbinlogの話)

MySQL Casual Advent Calendar 2016 - Qiita 21日目の記事です。 穴があったら埋めたいタイプの人です。5回目。。。 なお、大トリの25日が空いているみたいですが、3年連続であの方でしょうか?(・_|襖| ある日、MySQLおじさんお兄さんに、、、 って言われた…

MySQLのChar型のデータサイズについて小ネタ

MySQL Casual Advent Calendar 2016 - Qiita の 18日目です。がんばった。もう小ネタしか出てこない。 MySQLのchar型宣言時の数字は「データサイズ」ではなくて、「文字数」 っていうのは、ワリと有名。 Oracleからやってくると戸惑うところではあるけど、ワ…

JOIN ON で絞り込み条件を入れるのと、JOIN ONの後WHERE句で絞り込み条件を入れるのとでは、結果が違う件

MySQL Casual Advent Calendar 2016 - Qiita 12日目の記事です。 まさかの3回目。もうムリ。。。 JOIN ON句で結合条件ではなく絞込条件を書くことができることを、知らなかったのです。 具体的な名称がわからない&検索にもヒットしにくいので、勝手に名前を…

SQLを繰り返し実行したら段階的に応答速度が上がった話

MySQL Casual Advent Calendar 2016 - Qiitaの6日目の記事です。 AdventCalendar自体初参加でドキドキ、してたら、成り行きで2日連続。 コレ用のきれいなエビデンス取れるような環境要していなかったので、普段より荒っぽいですが、Casualな感じで失礼します…

MySQLのトランザクション制御がキモい話

MySQL Casual Advent Calendar 2016 - Qiitaの5日目の記事です。AdventCalendar自体初参加でドキドキ。 トランザクションの開始は、BEGINしたときじゃない! MySQLでは、BEGIN(START TRANSACTION。長いので、以下、特筆すべき場合以外は「BEGIN」で)を宣言…

MySQLで複合列PKなテーブルに対するWHERE条件でINを使うと、実行計画が変わる?

何言っているかわかんねえよ。 と思うので、事例で語る。なお、この事象が出たのは、MySQL5.6.23です。 実験1:PK列が1つのケース 準備 こんな感じでテーブルとデータを用意します。 mysql > create table test_in_exp_tbl( -> col1 int(11) not null, -> co…

本を処分することになりました。

部屋を奪われる 小学生の子供が2人いて、小学校入学時には誤魔化して?学習机も子供部屋も与えずに、「リビング学習」済ませていましたが、いよいよ娘達に一部屋奪われる与え、2人分の机と2段ベッドをることになりました。 そのうち「勝手に入ってくんなオヤ…

MySQLで接続(use)しているDB(スキーマ)が、他セッションからDROPされたときって、どうなるんだっけ?

タイトルの通りなんですが USE文って、所詮デフォルトデータベースの宣言(データベース名無宣言でオブジェクト名を扱うときに、どこを指しているとみなすか)にすぎないと思っていて、「じゃあ、その状態で指している先がDROP DATABASEされたらどうなるんよ…

詳解MySQL5.7出版記念イベント参加してきた

久しぶりのイベント参加 この手のイベント参加、久々だなー。 この手のイベント参加レポ書くの、久々だなー。 イベント、勉強会の類は、勉強会ブームを経て、毎日色々な所で開催されるようになっているわけだけど、自分も参加してなかったし、観測範囲で見て…

MySQL5.6以前でmetadata lock発生の犯人を後追いする

大事な機構「metadata lock」 MySQL5.5.3から導入された「metadata lock」。 その目的は、 「トランザクション実行中に触ったテーブルについて、DDLによるテーブル構成情報の変更から守る」 ということ。 そうしないと、ロールバックしようとしたら「テーブ…

RDS MySQLで、パラメータグループ指定したCollationでデータベースが作られないバグを踏んだ件

公式ドキュメント通りに操作しても、その通りに作られません MySQLのCollationはどのように決まるか。そして、3つの落とし穴。 - なからなLifeの「3:Amazon RDSのデフォルトデータベースは、さらにルールを破る」のところで書いたとおりなんですが、大事な…

MySQLからDumpできないんだけど、っていう問い合わせ

闇雲にdumpなんかされてもこまるんだけどさ 「DBから勝手にデータ引っこ抜いて、どこへ売りに行くんだい?」っていう野暮なツッコミもしたくなるくらい、唐突に問い合わせを受けることがあります。 第一声では、「何(手段)でデータを取り出そうとしたか?…

「詳解MySQL 5.7」はMySQL 5.6を使い続ける人も読むべき!

機能追加、機能進化の解説メインではあるけれど 詳解MySQL 5.7 止まらぬ進化に乗り遅れないためのテクニカルガイド (NEXT ONE)作者: 奥野幹也出版社/メーカー: 翔泳社発売日: 2016/08/26メディア: 大型本この商品を含むブログを見るはじめに、のところで 本…

MySQL WorkbenchでData Exportするとエラーになるのが直ってた

MySQL Workbench、便利だよね MySQL Workbench、色々な作業をGUIで操作できるので、MySQLベースで開発している人はかなりの確率で利用しているんじゃないかと思います。 標準的なSQLなら覚えている人でも、Export/Importユーティリティ系のコマンドまでは覚…

MySQLで、SQLレベルでCollationを指定する

Collation、色々な所で指定できる Oracle脳には馴染みの薄い、MySQLの「Collation」にまつわる挙動の話 - なからなLife MySQLのCollationはどのように決まるか。そして、3つの落とし穴。 - なからなLife と、立て続けにMySQLのCollationの話をしています。 …

MySQLのCollationはどのように決まるか。そして、3つの落とし穴。

今回は、設定値(パラメータ)の話 Oracle脳には馴染みの薄い、MySQLの「Collation」にまつわる挙動の話atsuizo.hatenadiary.jp の続きです。 前回は、Collation設定についてMySQLのデフォルトで使用される「_general_ci」だと「大文字小文字を区別せず」と…

Oracle脳には馴染みの薄い、MySQLの「Collation」にまつわる挙動の話

Collationとは 直訳すると「照合」。 MySQL的には、「照合順序」と訳されます。 ただでさえ面倒くさい文字コードの問題ですが、データを保存する際の文字コードとは別に、データを照合するときの方法を指定することができます。 照合って何かっていうと、=…

スケジュール遅延は取り戻せない!

極論ではあるけれど ここまで断定的な悲観論は、あまり見かけないと思いますが、個人的には、かなり確信をもってこう考えています。 もちろん、「遅延をしっかりリカバリして当初の締め切りを守った!」という意見・経験ものはあると思います。 ただし、そう…

ORDER BYで、単純な昇順降順「以外」で並べる!

いやー、知らないって怖いね。 なんだこのキモいSQLは、って思ってしまったけど、調べているウチに、これちゃんとSQL構文に則ってる!こちらが間違ってた!って事がわかっていきました。 あえて、知らなかった所から勢いで書いていたのを、そのままにしてみ…