2018/03/10 PHPerKaigi 2018 https://phperkaigi.jp/2018/Read less
2. 2 自己紹介+所属会社紹介 • 渡部 亮太(わたべ りょうた) – JPOUG 共同創設者、ボードメンバー – Oracle ACE – 著書「プロとしてのOracleアーキテクチャ入門 [第2版]」 「プロとしてのOracle運用管理入門」 – ブログ「コーソルDatabaseエンジニアのBlog」 http://cosol.jp/techdb/ • 株式会社コーソル – 「CO-Solutions=共に解決する」の理念のもと、Oracle技術に特 化した事業を展開中。心あるサービスの提供とデータベースエン ジニアの育成に注力している – 社員数: 131名 (2016年7月時点) – ORACLE MASTER Platinum 11g 取得者数 45名 ORACLE MASTER Platinum 12c 取得者数 28名 (現時点でおそらく)取得者数 日本 No.1
久々にXtraBackupの話題です。 以前に紹介した基本手順では、tarアーカイブをgzip圧縮していました。 実はこれよりもっと速い方法がありまして、データサイズが大きくなると必須になってくるのではないかと思います。その、計測内容と結果について紹介していきたいと思います。 リンク 本件に関係ありそうなドキュメントのリンクになります。 The xtrabackup Option Reference Streaming and Compressing Backups The xbstream Binary Accelerating with –parallel copy and –compress-threads Making a Compressed Backup (qpress) 本家ブログのベンチマークもあります。 Compression for InnoDB backup – My
目黒川の桜きれいですね〜(*^^*)…なーんてガラじゃないことを言いたくなるくらい良い咲きっぷりでしたよ、エエ。で、来週末、花見に行くんだけど、まだ散らないでほしいっすねー。 えーっと、久しぶりにMySQLの記事。binlogを使ったリストア手法について。ネットを漁るとMySQLの運用に関する記事は多くヒットするんだけど、障害からのデータリカバリ、特にロールフォワードを扱った記事が思ったより多くない。おれは運が良いのか悪いのかMySQLのデータリカバリをしなければならないような局面に何度か直面しているので、手順について書いてみようかな、と。ここではMySQL〜5.5を対象にしている。直近での最新のメジャーバージョンはMySQL5.6なんだけど、おれはまだ5.6について大して知らない。5.6ならもっとイケてるやりかたがあるかもしれない。あったらいいな。 0. 環境 次のような環境を前提として
mysqldump利用上の注意点 バックアップデータの整合性 デフォルトオプション(--opt)に含まれる--lock-tablesでは複数DB内のテーブルを同時にロックできない→どうする? InnoDBのみの場合:single-transactionを使えば、整合性を保ちつつテーブルの更新も可能な状態でバックアップできる MyISAMも利用している場合:--lock-all-tablesを使えば整合性を保てる…が、MySQLサーバ全体がReadOnlyになる LOAD DATAでリストアを高速化する mysqldumpはデータがINSERTコマンドで表現されておりリストアに時間が掛かる データをタブ区切りデータで出力し、LOAD DATAコマンドでリストアすることで高速にリストアできる tabオプションを利用することで、テーブル名.sql(テーブル定義、CREATEコマンド)とテーブル名
総合的なスピードを見ると、リストアでXtraBackupがかなりの差をつけました。 Mydumperはスレッド数4で試しましたが、CPUコア数の多いサーバでスレッド数を上げたらもっとよい結果になりそうです。 以下、テストデータの準備とそれぞれツールのインストール方法を記述しています。 参考になれば幸いです。 使用したサーバ サーバ さくらのクラウド プラン7-HC CPU仮想5コア メモリ12GB HDD250GB OS CentOS 5.7 64bit MySQL 5.5のインストール remiレポジトリから検証用のMySQLをyumからインストールします。 # rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm # yum --enablerepo=remi install mysql.x86_64
「ニフティクラウドユーザーブログ」は、移転しました。 自動でページを移動しない場合は、下記のリンクをクリックし、 新しい「ニフティクラウドユーザーブログ」をご覧ください。 今後とも「ニフティクラウドユーザーブログ」をよろしくお願いいたします。 > ニフティクラウドユーザーブログ
この間、多数のテーブルを持つデータベースのダンプファイル生成に失敗しているサーバを発見した。ダンプファイルの生成にはmysqldumpコマンドを用いているのであるが、 mysqldump: Got error: 23: Out of resources when opening file './***/***.MYD' (Errcode: 24) when using LOCK TABLES という具合にエラーメッセージを発して機嫌を損ねるのでどうもいけない。メッセージの内容もいまいちピンと来ないため途方に暮れながらGoogleで調べるとどうもテーブルの数が多すぎるのが怪しからん様子であることが分かった。このままではどうにも立ち行かないので解決策を探ると、 open_files_limit の値を増やせばよいということである。open_files_limit の値を調べると mysql>
これまでちょこちょことXtraBackupについて紹介してきましたが、MyISAMなども一緒に取得する必要があるため結局利用するのはinnobackupexになります。で、そのinnobackupexをどう使うかという説明はすっ飛ばして、実際にどのような方法でバックアップ/リストアしているかを紹介したいと思います。 が、要は私が書いて実際に利用しているスクリプトを公開するだけの質素な内容になります。 はじめにおことわり 変更した場合はブログやスクリプト内コメントにも書くつもりですが、gistに上げるのでその辺はよしなに 具体的な使い方、処理内容はスクリプト内に書いてあるのでそちらを参照してください 動作確認は、DebianとCentOSで行っています 概要 バージョンについて XtraBackupのバージョンは2系の最新を利用してください。 結構頻繁にバグフィックスされているので、こまめに
mysqlbinlogは今まで(バックアップ用途で)リモートからバイナリログを読ませようとしても、 ・SQLテキスト形式にエンコードした後のものを出力させるだけ。 ・その時点の最後のエントリまでしか読み込めない。 ・出力先ファイル名は1つしか指定できないので、 読み込み元のバイナリログが複数でも出力は1つ。 だったのが、5.6のmysqlbinlogでは ・エンコードする前の状態のまま書き出せる。 ・tail -fぽく待機して、更新があれば続けて書き出せる。 ・ファイル名はマスターのものと同じものにできる。 スイッチしたらmysqlbinlog側のファイル名も変わる。 と、スレーブに--log-slave-updatesを付けた様な動作が出来る様になった。 バックグラウンドにして常駐させておけば、暇そうなサーバにバイナリログをリアルタイムにバックアップ出来る。 マスターから見るとレプリケー
タイトルのまんまのプチトリビアを紹介しようと思う。mysqlの--one-databaseオプションを使えば「mysqldumpで--all-databasesとか--databasesオプションを使って作成したダンプファイルに含まれる複数のデータベースから、一つのデータベースだけを選択してリストアする」という操作ができるけど、毎回ダンプファイル全体を読み込むのは無駄じゃないか?と思われることもあるだろう。だったら事前にダンプファイルを分けちゃいたい!と考えるのが人情というもの。そんなときはawkコマンドを使うといい。 #!/usr/bin/awk -f BEGIN { dump_current_db = 0; num_db = split(databases, db_arr, ",") for (i = 1; i <= num_db; i++) { db_arr[i] = "`" db_
XtraBackupとは Percona社 が開発しているオープンソースのMySQLのバックアップツールです。InnoDB, XtraDBとMyISAMストレージエンジンをブロックすることなくバックアップをする事が出来ます。ライセンスはGPLv2で無料で使えます。 MySQLのバックアップ方法としてよく使われているmysqldumpというツールが有りますが、 大量のデータを保存しているデータベースからダンプしたデータをリストア(復旧)する時に非常に時間が掛かってしまうという欠点があります。 ここでは、mysqldumpとXtraBackupを使ってバックアップを取り、両者のバックアップとリストアのスピードの違いを比較してみます。 使用するサーバは以下の通りです サーバ さくらのクラウド プラン8 CPU仮想4コア メモリ24GB HDD100GB OS CentOS 5.7 64bit M
大規模なコードベースでリファクタリングを省エネ化するためにcodemodを最近調べていて、軽く試行錯誤したのでそのメモ。 やりたいこと 例えば以下のようなTable Driven TestなコードをBEFOREからAFTERに書き換えたい。コード量が多いため人間がやるのは現実的ではなく、codemodで機械的に書き換えたい。 BEFORE package main import ( "slices" "testing" ) func TestContains(t *testing.T) { type args struct { ss []string s string } tests := []struct { name string args args want bool }{ { name: "empty: false", args: args{[]string{}, ""}, wan
一昨日に開催された hbstudy #7 にバックアップの話を聞きに行ってきました。Amanda を中心にした話で、とても勉強になりました。が、設定がめんどくさそうだなぁ、とも。自分の需要にはあわない感じでした。 勉強会が終わったあとで、自作のバックアップスクリプト blockdiff に関する話を何人かの方とさせていただいたのですが、思いのほか反応が良かったので、あらためて紹介したいと思います。 blockdiff は、一言でいうと、パーティションやデータベースのデータファイルの差分バックアップツールです。rsnapshot に似ていますが、rsnapshot ではデータベースのホットバックアップ不可能です。逆に blockdiff はディレクトリ単位でのバックアップには対応していないかわり、ファイルシステムやデータベースを、一貫性を保ちつつ実質無停止で差分バックアップすることができます
スナップショットを使えばとある瞬間のディスクやファイルシステムのデータをいつでも後から参照することができる。しかもスナップショットの作成は一瞬だ。スナップショット機能を活用すれば最強のオンラインバックアップソリューションが出来るだろう。 しかし、スナップショットでバックアップを取るなんて危険な操作じゃないのか?!と不安に思われる方もいらっしゃるかも知れない。MySQL Serverが稼働中にいきなりデータだけをとってくるのだから、そのような疑問を持たれるのは頷ける。しかし仕組みさえ分かればスナップショットによるバックアップは怖くないということが分かるはずだ。そこで、まずはスナップショットによるバックアップの仕組みについて説明する。スナップショットを取る際の要件は次の通りである。 全てのデータを単一のボリュームに置くこと。つまり、一回のスナップショット操作でバックアップが取れることだ。 ディ
AutoMySQLBackup with a basic configuration will create Daily, Weekly and Monthly backups of one or more of your MySQL databases from one or more of your MySQL servers. Other Features include: - Email notification of backups - Backup Compression and Encryption - Configurable backup rotation - Incremental database backups Time for a new maintainer.. I first created AutoMySQLBackup in 2002 and since
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く