2015/06/10 db tech showcase 2015 Tokyo ログを貼り付けている部分が見にくくなっていますので、 http://yoku0825.blogspot.jp/search/label/5.7 などでも同じような内容が見られたりしますRead less

こんにちは、@yoheiMuneです。 本日はAmazonLinuxやCentOSにMySQL5.7をインストールする方法をブログに残したいと思います。 目次 yumレポジトリの追加とインストール 今回はyum経由でMySQLをインストールします。最初から入っているyumのレポジトリは少し古いので、MySQL5.7のレポジトリを追加します。 yum -y install http://dev.mysql.com/get/mysql57-community-release-el6-7.noarch.rpm なおこの記事以降で、さらに新しいMySQLが出ているかもしれませんので、最新のrpmはこちらより確認してください。 レポジトリの追加ができたら、インストール可能な内容を確認します。 $ yum repolist enabled | grep "mysql.*-community.*" my
まえがき これは、とあるウェブプログラマーがやらかした事件の手記である。 返事がない ある日、Railsでmigrationを書いて、デプロイしたときに、ブラウザ氏からこう言われた。 502 Bad Gateway nginx/1.4.3 _人人人人人人_ > 突然の死 <  ̄Y^Y^Y^Y^Y ̄ まったくシャレにならないので、なんとかしよう。 原因を究明しよう まず、原因を探ろう。 よくよく思い出してみると、マイグレーションが重すぎて途中停止してるっぽかった。その頃からアクセスが死んだようにも思える。 ということは、何かの拍子にDBをロックしてしまった可能性が高い。 ロック、聴くぶんには大好きだけどハメられるとすごく辛い。しかも死んでるし。 で、mysqlのprocesslistを確認する。原因となる作業プロセスがいるはずだ。 processlistの探り方 基本はUNIXのpsとかとだ
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はない こんなテーブルだと
Waiting for table metadata lockって何? 8.10.4. Metadata Locking Within Transactions 日本語ページにこの説明は無いので、頑張って翻訳してみます。 To ensure transaction serializability, the server must not permit one session to perform a data definition language (DDL) statement on a table that is used in an uncompleted transaction in another session. トランザクションの直列化を確保するため、他セッションによる処理が完了するまでの間、DDLの実行は許可しません。 As of MySQL 5.5.3, the serv
RDSではslow query logはテーブルに書きだされる。 Amazon RDSのMySQLでは、デフォルトではslow query logはmysqlデータベースのslow_logというテーブルに保存される(※)。 今までの普通のMySQLであれば、slow query logを有効化するとデフォルトではファイルに書きだされて、それをmysqldumpslowで集計・解析するってのが一般的だったと思うけど、テーブルに書きだされると、それにもう一手間必要になってくる。 ※以前は、slow_logテーブルに書き出す以外に選択肢は無かったと思うけど、最近はファイルに書き出すことも出来るらしい。 大まかな方針 slow_logテーブルから通常のslow query logファイル形式にエクスポート mysqldumpslowで集計 slow_logをエクスポートするツール2つ python
はじめに アクセスが急増すると、応答時間が著しく悪化するサイトはありませんか? 普段は200ミリ秒以内で安定してアクセスをさばいているのに、イベントやらキャンペーンやらを開始した瞬間から、普段の2倍や3倍のアクセスが殺到し、その結果、レスポンスタイムが3秒とか9秒とかかかるようになってしまうことってありますよね。 あるサイトの実状 つい先日まで、そんなサイトが私の目の前にもありました。自社で運営している某ソーシャル系のサイトなんですが、イベント開始時刻と同時にアクセス数が急増するのです。とはいえ、所詮は普段の2倍とか3倍程度の数なのだから、少なくとも1秒以内にレスポンスを返せるくらいの性能は維持したいものです。 しかし実際は困ったことに、応答に3秒以上もかかってしまう処理が大量に発生してしまう状況に陥ってしまっていました。これはきっと、どこかにボトルネックがあるに違いありません。 仮説を立
2014年01月07日13:52 AWS Ruby RDSのデータをmysqldumpしてS3に保存する 弊社ではデータを AWS の RDS を使って管理しています。バックアップは自動で取ってくれるんですが、RDS では残せるバックアップのスナップショット数が決まっているのでもう少し過去のバックアップも取りたい。気軽にバックアップを S3 に保存することは出来ないものか。 追記:14:12 RDS のスナップショットを手動で取ったりすれば良いんですけど、アカウントが悪用されたりして全部消えちゃったら怖いなぁと。そういう背景もあって念のため S3 上にも置いておきたいなぁと思った次第です(*゚∀゚) 追記:14:17 バックアップのスナップショット数増やすことも可能みたいですね。 @sasata299 あとAmazonに申請すればRDSのスナップショットの上限値を増やせるらしいので参考にど
CakePHP3で一つのコントローラないでお互い独立したテーブルを扱うには単純にTableRegistry::getするだけです。 下記サンプルはbakeした際に自動生成されるコードをベースに作成しました。useに「use Cake\ORM\TableRegistry;」を追加すると上記のTableRegistryが使用できるようになります。 自動生成されるコントローラをベースにすると 1.use Cake\ORM\TableRegistry;を追加 2.TableRegistry::getでテーブルをインスタンス化(例ではinitialize内で2つのテーブルを生成) 3.ビューに渡す(例ではindexアクション内) (ビュー内で両者を表示) コントローラ例 <?php namespace App\Controller; use App\Controller\AppController;
メモと言う名のコピペ ちょっと古い、5.1 だけど日本語ドキュメントがそこしか無かったのと、英語読む気力ないけど、とりあえずめも 動作とかごにょごにょ クエリ キャッシュは、SELECT SQL_CALC_FOUND_ROWS ... のクエリで動作し、後続する SELECT FOUND_ROWS() クエリで返る値を格納します。FOUND_ROWS() は前のクエリがキャッシュからフェッチしていても、正確な値を返します。これは、検索したレコードの数をキャッシュで保管しているためです。SELECT FOUND_ROWS() クエリ自体はキャッシュの対象ではありません。 クエリをキャッシュする設定である場合、その結果 (クライアントに送信したデータ) を、結果の読み出し中に、クエリ キャッシュに格納します。そのため、データの扱いは、ひとまとめではありません。つまり、クエリ キャッシュで、デー
4/25追記: innodb_support_xa=0 はクラッシュ時以外にも binlog と innodb の整合性が取れなくなる問題がありました。 innodb_support_xa と binlog の危ない関係 もご覧ください。 KLab でも最近は AWS を使ったプロジェクトがかなり増えてきました。 AWS で問題になりがちなのが、 RDB の性能が DSAS 環境に比べて低いことです。 DSAS ではバッテリーバックアップ付きのRAID + 非同期レプリケーションを使っているのですが、 RDS では Multi-AZ を使って耐障害性を確保しています。 この違いによって書き込み性能のチューニングのポイントが変わってきます。RAIDカードはデータが書き込みバッファに乗っている間は fsync が高速なのに対して、 Multi-AZ では別のAZにあるブロックデバイスに対して同
こんにちは! JQです。 前回までのレシピでは『Amazon VPCを使ってWEBサーバを構築しよう!パート①、パート② 』と称して、VPC上でのWEBサーバ構築についてご紹介していたかと思います。 今回は『Amazon RDSのログに関するお話』をしたいと思いますが、その前に『Amazon RDS』に関する情報をご紹介します! 先日、WEBコンソールから今まで確認出来なかったRDSのmysql_errorのログが確認出来る様になりました。 RDSもさらに便利になっていきますね! さて、それでは本題であるAmazon RDSのログに関してお話していきます。 まずは、RDSのerror.logの設定方法をしていきます。 1.RDSの画面に移動して、ログを見たいRDSを選択します。 2.画面下部のタブに「Logs」という項目があるので、そちらをクリックします。 3.error/mysql-er
前回は、AWSのRDSサービスでのリードレプリカ機能についてご紹介しましたが、今回も同じくRDSサービス(ここではAmazon RDS for MySQLのみが対象)のログ機能に関するソリューションをご紹介します。 さてこのログ機能、Parameter Groupsにて設定することでスロークエリログやジェネラルログを取得することが可能となるのですが、少々癖のある仕様となっており、主に以下のような点が挙げられます。 WEBブラウザ上でいちいち見なければいけない 一時間ごとにローテートされる 1時間でローテートされ、24時間しか保持されないため、数日前のログが見たい時に詰む 1時間でファイルが切れるので、調査しづらい こういった不便により、「もうEC2上でMySQL動かしちゃえばいいや」と判断した方がいらっしゃるのではないでしょうか。 ログ至上主義、CUI至上主義の私にとってはこれがいささか不
Aurora を使いたいのだが、まだまだ MySQL にもお世話になっている。 ログについて確認したのでまとめ。 概要 RDS(MySQL)では以下のログを出力可能。 error.log general.log slowquery.log デフォルトでテーブルに記録されるが ParamaterGroup で設定すればログファイルに記録される。 また、1はデフォルトで出力されており、2,3については ParamaterGroup で設定が必要。 保管場所 テーブルでもファイルでもRDS のストレージ内 どちらでも勝手にローテートされる ファイルの場合 1時間ごとにファイルが切り替わる 24時間でローテートされる 容量がストレージの2%を超えている場合、ローテート時に2%以下に収まるように削除されるので注意 テーブルの場合 ストレージの使用容量によってローテートタイミングが決まる 使用容量 <
はじめに インフラ監視について今一度再学習している過程で、MySQLに関しての内容において面白そうな一文がありました。 “接続数は、MySQLサーバに接続している接続数を監視します。接続数は、ご自身がmy.cnfに定義した値を上限としてください。また、あらかじめチューニングを施し、接続数が増えることによるメモリ不足が起こらないように備えてください。チューニングにあたっては、MySQLに関する書籍を参照するか、mysqltuner.plを活用するとよいでしょう。” mysqltuner.plってなんだ? 参考リンク github.com MySQLTunerでMySQLのチューニングを診断する方法│株式会社イー・エージェンシー 構成 ケチケチして最小の構成で実施します。すべて東京リージョンで構築します。 EC2 t2.nano RDS for MySQL db.t2.micro RDSのパラ
MySQL Performance Blogの翻訳。MySQL 5.6とAmazon RDSの設定パラメータの違いと、その理由について解説する。 過去数年にわたってずっと耳にし続けていて、現在でもよく聞く不満と言えば、Amazon RDSが、MySQLをEC2インスタンスで動かした時と比べて設定の柔軟性がないことだ。と同時に、MySQLインスタンスをチューニングするために非常に重要なパラメータへアクセスできるようにしているという、一貫してAmazonのやってきたことを無視してもいる(所詮、bind_addressをRDSインスタンスで設定することが顧客にとってどの程度関連があるかによる)。 視覚的に見てみよう。 MySQLは、523のオプションを提供している(うち35がNDB関連なのでRDSとは関係ない)。一方で、RDSは(Web UIからは)283のオプションを提供しており、うち58が変
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く