3. Yahoo! JAPANのRDB環境 • 11g RAC Enterprise Edition • 約200DB • サーバ 200台, Exadata もあるよ • MySQL 5.1 (RR,Mixed) Percona 5.5 (RR,Mixed) Percona 5.6 (RC,RBR,GTID) • 約500DB • サーバ 300台 Oracle Database MySQL Percona

MySQLを本番で運用する場合、ヘルスチェック(監視)は欠かせません。ヘルスチェックには大きく分けて死活監視(MySQLのプロセスが稼働しているかどうか)と傾向監視(レスポンスを悪化させるような兆候が表れていないか)の2点に分けられると思います。 今回はこの2点のうち死活監視、中でも「MySQLのプロセスが稼働しているかどうか」について説明します。 mysqldのプロセス確認 まずはシンプルに「プロセスが起動しているかどうか」を確認する例を考えてみましょう。MySQLのプロセスの実体はmysqldプロセスですので、これが存在しない場合当然ながらMySQLから応答は返ってきません。 $ ps auxww | grep mysqld root 275 0.0 0.1 106192 1536 pts/0 S 09:29 0:00 /bin/sh /usr/bin/mysqld_safe --da
はじめに結論 wait_timeout のデフォルト値はクライアントの接続モードによって変わる。 接続が対話型の場合は interactive_timeout のグローバル変数値 接続が非対話型の場合は wait_timeout のグローバル変数値 (対話型である)mysql コマンドのプロンプトで確認した設定値が、(非対話型の)プログラムでも同じであるとは限らないので注意! wait_timeout とは 接続のアイドルタイムアウト秒数。 この秒数クライアントからの反応がない場合、MySQL サーバはクライアントとの接続を切る。 接続が切られた状態でクエリを送った場合、"Lost connection to server during query" や "MySQL server has gone away" のエラーが発生する。 #【ワナ】wait_timeout のデフォルト値(in
Python3.4 && mysql-connector-python2.0.2で起きたこのエラー。 表題の通り、コネクションプールをしているオブジェクトが利用できないと申される。接続は死んでないっぽいのが謎。活きているのに死んでいるみたいな、そんな感じのエラー。MySQL Server has gone awayではないメッセージが返ってきているのが気になる。SQLAlchemyでは活きている(Valid)なコネクションを利用しようとしたら死んでいた可能性もあるから、mysqlのwait_timeout、interactive_timeout系の時間を長くして、flask-sqlalchemyのSQLALCHEMY_POOL_RECYCLEの時間をタイムアウトより小さくしたんだけど、1日おいてもまだこのエラーが消えなかった。 MySQLのコネクション自体は活きているのにSQLAlchem
mysql Connector/J を使う時に色々効きそう (あるいは効かなそう) な設定項目を調べたのでまとめておくこととします.なお,対象としている mysql のバージョンは5.6 (以降),Connector/J のバージョンは5.1.34 (以降) です. Connector/J は設定できる項目が多くて迷ってしまうんですが,道標となる資料も幾つかあるのでそれについてもまとめておきます. 何か追記すべき事項があったら適宜追加してゆきたいと思っています.「これも入れたほうが良いのでは無いか」というようなご指摘ありましたらご一報ください. 設定項目 characterEncoding おなじみの文字コード.要設定. ちなみに以下の様なテクがある. Driver doesn't support utf8mb4 for servers 5.5.2 and newer. The drive
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? システムエンジニア Advent Calendar 2015 - Qiita 20日目の記事です。 システム開発をしていると、他システムのマスタやトランザクションデータが必要となる場合がよくありますね。 システム間のデータ連携としては、 リソース共有(データベース共有、ディスク共有) アプリケーション連携(RPC、Web API、MOM1) ファイル連携(CSV連携、etc) などの方法がありますが、ここではデータベース共有を実現するためのデータベース連携方式について考えてみたいと思います。 データベース連携方式について 既存システムが
このエントリはMySQL Casual Advent Calendar 2015の10日目のエントリです。 先日のMySQL Casual Talks Vol8で@karupaneruraさんがパラメータの振り返りのような発表をされていたので、昨今あまり書かれなくなったMySQLに絡む設定パラメータについて書きます。それなりのメモリ(32GBとか)やSSDとか使ってる事を前提にしたような内容となります。 依存して変更した方が良いパラメータもあるので内容が前後に飛びますがご容赦下さい。またソースコードをがっつり読んだわけではなく、ベンチマーク中の挙動から推測している箇所が多分にあります。MyISAMのテーブルがサービス用データベースに同居する事を考慮していません。 結構突貫で書いているので後から微妙に修正する可能性があります。 InnoDBのパラメータ innodb_buffer_pool_
※このエントリはMySQL Casual Advent Calendar 2015の5日目のエントリです。 openark-kit というものについて ここまで読んでわかった方は、この先を読む必要はありません。 openark-kitとは、mysqlの運用に便利なツールキットを14個あつめたソフトウェアパッケージです。 Shlomi Noachという方がPythonで開発しており、少なくとも2009年に発表されているようです。 2015-12-05時点での最新版は196.1となっており、.tar.gz および .deb で配布されております。 このエントリを書いた背景事情 そもそも僕自身、50を超えるクラスタ化されたmysqlノードと一緒に業務生活を送っております。 ところが、システムが非常に古くさい構成のため、合計レコード数が2億から3億程度ある垂直分割されたテーブルに対しALTERを投
このエントリはMySQL Casual Advent Calendar 2015の3日目です。 で、これです。 github.com ざっと調べた感じだと、openssl 1.0.1eあたりからDiffie-Hellman (DH) key length 1024bit以上を要求するようになったかなんかで、MySQLが512bitとかいうかなり短いkey lengthを使ってるせいでopensslに怒られる感じらしい。 MySQL 5.7からデフォルトsslオプションが有効なのでRDSとかみたいなSSL接続受け付けてるホストに5.7のクライアントでそらで接続しようとするとコケるっぽい。 $ mysql --help ... --ssl If set to ON, this option enforces that SSL is established before client attem
GitHubのエンジニアがデータベースのスローログから見つけた、LIKE句を使ったクエリーのパフォーマンス問題につながる可能性のある文字列。問題の仕組みと、それを回避するためのスニペット。 先日、例外情報のトラッカーを見回していたら、目を引くスロークエリーログを発見しました。SELECT ... WHERE ... LIKEといったクエリーのLIKE句にたくさんのパーセントが付いているのです。この部分はユーザが入力した部分なのは明らかで、最初私はSQLインジェクションを疑いました。 [3.92 sec] SELECT ... WHERE (profiles.email LIKE '%64%68%6f%6d%65%73@%67%6d%61%69%6c.%63%6f%6d%') LIMIT 10 コードを見てみると、ここで解釈されるメタ文字(%や_や\)のチェックをまったくせずにユーザが指定し
9年以上前投稿 修正ありMySQL 5.6と5.7における高度なクエリチューニングのQ&A(The Percona Performance Blogより) 出典について この記事はThe Percona Performance Blog内のAlexander Rubin氏による「Advanced Query Tuning in MySQL 5.6 and MySQL 5.7 Webinar: Q&A」(2015/8/24)を翻訳したものである。 8月22日のオンラインセミナー「MySQL 5.6および5.7における高度なクエリーチューニング」に参加していただいてありがとう(私のスライドおよび動画はここで確認できる)。ここでは質問とその回答の一覧を紹介する(いい質問をありがとう) 。 Q: ここにexplainの例がある mysql> explain extended select id,
kamipoさんOracle ACEおめでとうございます。 MyNA(MySQLユーザ会)会 2015年8月 でメルカリのデータベース戦略とPHPについて喋って来たので、資料を公開します。 内容はWEB+DB PRESS Vol.88の記事に書いたこと+新ネタと、PHP(PDO)の話です。MySQL 5.7のところにみなさん驚かれていたようです。 他の方の発表では、dimSTATが面白かったですね。あのグラフをどうやって作っているのか全くしらなかったので、勉強になりました。あれはベンチマークしたくなります。また、MySQLで困っている人をみつけて助けてあげようとするkamipoさんの情熱も、どこから沸いてくるのか不思議ですが、さすがでした。 開場のyoku0825さんありがとうございました。みなさまお疲れさまでした。 実は、この会で喋る事をすっかり忘れていて、YAPC::Asiaの懇親会の
31. レプリケーションスレーブに注意 (FIXED by 5.7.9) REPLICATION SLAVE権限の *他に* SELECT ON performance̲schema.* が必要 mysql> show slave statusG *************************** 1. row *************************** .. Last_IO_Errno: 1142 Last_IO_Error: The slave I/O thread stops becaus e a fatal error is encountered when it try to get the value of SE RVER_ID variable from master. Error: SELECT command denied to use r 'replic
Engineering Building the platform where people around the world come to search, save and shop Our Engineering team is at the core of bringing our platform to life for Pinners worldwide. Working collaboratively and cross-functionally with teams across the company, our engineers tackle growth-driving challenges to build an inspired and inclusive platform for all. Natasha Magliui Engineering Manager,
MySQL 5.7でのデフォルト値の変更について簡単に紹介する。レプリケーション、InnoDB、パフォーマンススキーマ、セキュリティー、オプティマイザ、その他全般の改善など様々な改善がされている。 免責事項 この記事はMatt Lord氏によるMySQL Server Blogの投稿「Improved Server Defaults in 5.7」(2015/7/22)をユーザが翻訳したものであり、Oracle公式の文書ではありません。 Morganと私はしばらく前にMySQLの"今やもう良くない(out of the box)"設定および挙動のデフォルト値を改善する計画を開始した。コミュニティーと密接に実施することにより、すばらしい改善の一覧が作成できた。これはMySQL 5.7.7のリリースから成果を出し始めた。私は何が変わったか、通常のユーザーおよびインストールの場合、なぜMySQL
免責事項 この記事はErlend Dahl氏によるMySQL Server Blogの投稿(2015/6/17)をユーザが翻訳したものであり、Oracle公式の文書ではありません。 MySQL 5.7の最初のリリース候補版(RC)のリリースから、次のサーバーのメジャーバージョンが急速に形になってきています。5.6がGAとなってからおよそ2年半にわたって、巨大な製品とコードベースを開発し維持する負担を軽減する為に、サーバーのコードの効率化に取組んできました。 この仕事の重要なところは、廃止予定(deprecation)と削除(removal)です。 機能を廃止予定とする(deprecating)ということは、我々が外部に「この機能は現在のところ利用可能である一方、将来のリリースで廃止されるため、利用の仕方にあわせて適応して欲しい」とお知らせしていることになります。機能を削除する(removi
ALTER TABLE実行する時は注意しましょう、、という事で。 ##ALTER TABLE ALTER TABLEすると以下のような挙動でカラム変更されるようです 他のセッションからのREADを許可し、WRITEをブロック 新しいtable定義の一時テーブルを作成 一時tableに元tableのデータをすべてコピー 一時tableを元table名にリネームして元tableを削除 ブロックされていたWRITE系クエリを反映 全コピしてるので、ALTER TABLEを実行する時にどでかいtableのサイズの場合は長い時間WRITEがブロックされるので注意が必要です。 ##ALTER TABLEを実行した環境 上記を踏まえた上で、以下のようなテーブルにALTER TABLEを実行してカラム追加する事にした レコード数はちょっとしかない READはものすごいくるけど、WRITEはない こんなテー
kamipo traditional (というかSTRICT_ALL_TABLES) では防げないMyISAMという名の化け物 TL;DR kamipo traditionalですら完全に防ぎきれないアレがあるので、そこを気にするなら出来る限りさっさとMyISAMからInnoDBに引っ越しましょう。 これらの記事を読んだ人向けです。 ルーク!MySQLではkamipo TRADITIONALを使え! | おそらくはそれさえも平凡な日々 Javaでkamipo traditionalを有効にする - その手の平は尻もつかめるさ アプリでミスって不正なデータが入るくらいだった500になったほうがマシ。というのが個人的な考えです。 +激しく同意+ さて、激しく同意したところで、kamipo traditionalでは倒せないMyISAMという名の化け物の話をしたいと思います。 kamipo tr
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く