FAT47の底辺インフラ議事録

学んだことのメモ帳です

2013-01-01から1年間の記事一覧

Cassandra2.0のインストールと用語メモ

Cassandraとは オープンソースの分散データベース。 元々Facebook社が開発し、現在はApache Software Foundationが開発中で、2013年12月現在の最新版は2.0.3です。ノードがP2P通信でクラスタを組む非中央管理型のシステムであり、 スケーラビリティ、高可用…

MySQL5.1からdumpしたデータをMySQL5.5に入れたらレプリ組んで死んだ日

MySQL5.1からdumpしたデータをMySQL5.5に入れてレプリを組んで、試しに更新クエリ流したらスレーブが死にました。 Last_SQL_Error: Query caused different errors on master and slave. Error on master: message (format)='Cannot load from mysql.%s. The…

MySQL5.5で意図的にレプリケーションを遅延させるpt-slave-delay

サービス運用している時にレプリケーション遅延が発生してアプリケーションがバグった。 という事態にならないように、開発環境のDBは遅延を発生させてを遅延を考慮したアプリケーションが開発できるようにします。※MySQL5.6の場合は↓をするだけです。 STOP …

該当レコードがなければINSERT、あったらUPDATEをするON DUPLICATE KEY UPDATE

普段はまったくSQL書かないんですが、ちょっと必要なタスクができたので書きました。 要件は下記。 ・挿入データのPRIMARY KEYが重複していなければINSERT(新規追加) ・PRIMARY KEYが重複していればUPDATE(以下条件のときのみ) ・条件:挿入データの更新…

MySQL5.6からdumpしたデータをMySQL5.5に入れたらエラー出た

mysql5.6からdumpして mysqldump -uroot --all-databases > /tmp/20131031.dumpmysql5.5にリストアしたら mysql -uroot < /tmp/20131031.dumpSTATS_PERSISTENT=0がなんとかかんとか!っていうエラーが出てしまう。 5.5にはこのパラメータがないので、外して…

【今更】MySQLのInnoDB利用時のウォームアップ方法

Webサービスを運用していると、メンテナンス時にDBサーバの再起動が必要になるケースがいつか出てきます。 その際、再起動後そのままの状態でDBサーバをサービスインしてしまうと障害が起きてしまうことがあるので、 その対処法をメモしておきます。(InnoDB…

稼働中のDBからmysqldumpとってスレーブをつくる

参照が外せるDBがない状態で、MySQLのスレーブを増やしたいときは 以下のコマンドでdumpを取得する。 mysqldump -uroot --single-transaction --master-data=2 --all-databases\--single-transactionは dump時にsnapショットを取得してそこかデータを取得す…

他サーバからのMySQLへの接続を一時的に遮断する

本番DBサーバ構築中で、万が一他のサーバから参照されたら困るような時には、 iptablesで他サーバからの接続を遮断しておきました。 vim /etc/sysconfig/iptables *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -s 127.…

apacheのPUT,DELETEメソッドの制限

PUTとかDELETEとかまぁ普通使わないし、とりあえず防いでおこう。 <Limit PUT DELETE> Order deny,allow Deny from all </Limit>バーチャルホスト切ってたら、こんな感じにLocationの中へ <Location /> <Limit PUT DELETE> Order deny,allow Deny from all </Limit> </Location>確認方法 libwww-perlを使うのでインストール yum -y instal…

MySQL5.6でGTIDレプリケーションの導入手順と解除手順

MySQL5.6GAが出てから大分経っちゃいましたが、 皆様プロダクト環境でガンガン使っておりますでしょうか。今更ながら手順を整理したので記述しておきます。■GTIDとは Global Transaction Identifiers 今までのMySQLのレプリケーションで行なっていた、「Mast…

VMの仮想マシンを立ち上げようとしたらVMware Authorization Serviceが出て起動しない

表題どおりなんですが、 VMを立ち上げようとしたら、 「VMware Authorization Serviceが起動していません」 と表示され立ち上がりませんでした。ググったら、手順がでてきたのでまとめておきます。 (1)スタートメニューを起動し、プログラムとファイル検…

monによるMySQLのデッドロック検知 〜ロック秒数閾値設定編〜

先日、monでデッドロック検知をする記事を書きました。monによるMySQLのデッドロック検知とロギング ちょっとスクリプトの内容を改修して、 クエリによるロックの秒数が〜秒超えたらアラート検知するということをできるようにしました。 基本的な準備とかは↑…

MySQLでテーブルにindex貼るときbufferに載せる

まずはテーブルのデータサイズ確認。 mysql >show table status like 'テーブル名' \G; *************************** 1. row *************************** Name: テーブル名 Engine: InnoDB Version: 10 Row_format: Compact Rows: 798021 Avg_row_length: 1…

【メモ】MySQLでレプリしたくないクエリ流すとき

よく忘れる。 mysql> set sql_log_bin=0; mysql > #レプリしたくないクエリ(ユーザ追加とか) mysql> set sql_log_bin=1;

monによるMySQLのデッドロック検知とロギング

更新が激しいDB(MySQL)でInnoDBのロック競合が発生し、アプリケーションサーバが詰まる状況が発生してしまいました。 障害監視はmonというアプリケーションで行なっているのですが、 今回はこのmonを使ってMySQLデッドロックの検知とロギングを行いたいと思…

サーバが物理かVMwareの仮想かを見分ける方法

サクッと。 # dmesg | grep -i virtual hdc: VMware Virtual IDE CDROM Drive, ATAPI CD/DVD-ROM drive Vendor: VMware Model: Virtual disk Rev: 1.0 VMware vmxnet virtual NIC driver VMware vmxnet3 virtual NIC driver - version 1.0.10.0-NAPI便利ーで…

CentOS6.2にscala2.10とplayframework2.1.0をインストール

環境:CentOS6.2入れるもの apache 2.2.22-1 jdk1.7 scala2.10 playframework2.1.0 apacheとJDKを先にいれておく (yum でもなんでもいいので)playを動かすユーザつくっておく groupadd -g 30000 play useradd -u 30000 -d /home/play -g play -s /bin/bash…

mysqldumpでnot found (Errcode: 24)が出た話

テーブルが大量にあるDBの運用でmysqldumpをした際に、 mysqldump -uroot hoge > /tmp/hoge_20130227.dump mysqldump: Got error: 1105: File './hoge/hoge80_201304.MYD' not found (Errcode: 24) when using LOCK TABLESのようなエラーメッセージが表示さ…