次の要件でMySQLのデータをバックアップする方法を考える。 MySQLのテーブルはInnoDBテーブルオンラインバックアップで、MySQLサーバーを止めずにバックアップするmysqldプロセスの冗長化にはLifeKeeperなどの共有ストレージ型のクラスタリングを採用する この要件に従ってバックアップ方法の検証の手間、管理のし易さなどを検討すると、表の通りとなる。 表 . バックアップ構成検討時の予想検証工数と管理のし易さ
クラウドのように大規模なシステムでは、ソフトウェアの開発と同等以上に、大規模運用の巧拙が、システム全体の成功を大きく左右します。 6月22日から、米サンタクララで行われていたWebサイトのパフォーマンスと運用に関するオライリーのイベント「Velocity 2010」で、FacebookのTechnical Operations teamを担当するTom Cook氏が「A Day in the Life of Facebook Operations」(Facebook運用のある1日)と題したセッションで、Facebookがふだんどのような運用を行っているか、紹介しています。 世界でトップクラスの大規模サイトが、普段どのようなツールを用い、どのような方法で運用しているのか、セッションの内容を紹介しましょう。 6年で4億アクティブユーザー、3カ所のデータセンター Tom Cook氏。Facebo
MySQL 5.1で追加されたメジャーな機能の影に隠れた、地味だが便利な改善がある。それがスロークエリログに関する仕様である。MySQL 5.0まではスロークエリログは1秒未満のクエリを捕捉することが出来なかった。が、MySQL 5.1では1マイクロ秒までのクエリを記録できるようになっている。従って、0.5秒かかるけど大量に実行されてパフォーマンスに大きな影響を与えている!というようなクエリの発見が出来るようになった。1秒未満のクエリを追跡したい場合、例えば以下のような設定をする。 [mysqld] slow_query_log=ON slow_query_log_file=mysql-slow.log long_query_time=0.1 MySQL 5.0まではlog_slow_queryというオプションだったのが、MySQL 5.1ではslow_query_logというオプション名
MobageなどのデータベースとしてMySQLを採用しているDeNAは、このほどMySQLコミュニティ最大のイベントで、「Corporate Contributor of the Year 2011」を受賞した。そこで示されたDeNAの世界に通用する技術力とは──。 オープンソース・データベースとして世界中で使われているMySQL。大規模なトランザクションを処理するサイト構築には不可欠の技術だが、株式会社ディー・エヌ・エー(DeNA)はMySQLを徹底して使い倒し、独自の拡張技術を開発することを通して、その可用性を高めてきた、日本を代表するユーザー企業の一つとして知られている。現在、Mobage(モバゲー)サービスを動かすために、約700台のMySQLサーバーが稼働しており、その数は世界的にも有数のものだ。 4月中旬に米サンタクララで開かれたMySQLコミュニティ最大のイベント、MySQL
mysqlhotcopy はもともと Tim Bunce によって書かれ、提供された Perl スクリプトです。FLUSH TABLES、LOCK TABLES、および cp または scp を使用してデータベースのバックアップを作成します。データベースまたは単一のテーブルのバックアップを作成するための高速な方法ですが、データベースディレクトリが置かれているのと同じマシンでしか実行できません。mysqlhotcopy は MyISAM テーブルおよびARCHIVE テーブルのみに機能します。Unix で実行されます。 mysqlhotcopy を使用するには、バックアップを行うテーブルのファイルへの読み取りアクセス、これらのテーブルの SELECT 権限、RELOAD 権限 (FLUSH TABLES を実行できるように)、および LOCK TABLES 権限 (テーブルをロックできるよう
モバゲーで知られるDeNAは、バックエンドデータベースにNoSQLを使っていません。なぜか? それはMySQL/InnoDB 5.1の環境で秒間75万クエリという、多くのNoSQLでも実現できないような高性能を実現しているから。DeNAの松信嘉範(まつのぶよしのり)氏は、自身のブログにこんな内容のエントリ「Using MySQL as a NoSQL - A story for exceeding 750,000 qps on a commodity server」(英語)をボストしています。 Yoshinori Matsunobu's blog: Using MySQL as a NoSQL - A story for exceeding 750,000 qps on a commodity server 松信氏が指摘するように、大規模なネットサービスを提供している企業の多くは分散環境で
CentOS5.3の初期リポジトリにはPHP5.1.6までしかないため、追加リポジトリを設定します。 yum-prioritiesをインストール yum-prioritiesは、サードパーティのリポジトリを追加した場合に、各リポジトリの優先度を設定できるようにするプラグインです。 CentOS 5.3で構築した自宅サーバーに「root」アカウントでログインし下記コマンドを入力して、yum-prioritiesをインストールします。 # yum install yum-priorities 次に「/etc/yum.repos.d/CentOS-Base.repo」の修正を行います。 # vim /etc/yum.repos.d/CentOS-Base.repo 「priority=優先度」の形式でプライオリティを設定します。優先度は1~99で、値が小さいほど優先度が高くなります。priori
はじめに この記事では、MySQL を使って簡単なメッセージキューを手軽に実装する方法を解説します。 メッセージキューとは、メッセージを一時的に溜めておき、順次処理するための仕組みです。迅速なレスポンスが必要な Web アプリケーションにおいて、時間のかかる処理を非同期に行うために、バックグラウンドで順次処理していくような場合に利用できます。 簡単なメッセージキューと言っても、大規模な運用にも耐えられる程度の速度と堅牢性を持ちます。 また、ここで解説している方法で作られたメッセージキューは、弊社ウェブサービスであるニコニコ動画に最近追加されたtwitter連携機能でも利用しています。 メッセージキューを作るにあたって 今回実装するメッセージキューは メッセージの追加(push)を高速に行う事ができる メッセージの取得(pop)はある程度高速に行う事ができる 多くのクライアントから同時に p
連休中はWiiのマリオカートをやりまくってやっとVR7000越えたmikioです。愛車はマッハ・バイクとインターセプターです。さて今回は、分散ハッシュデータベースサーバTokyo Tyrantでmixiの最終ログイン時刻を管理するようにした時の苦労話を書きます。 ログイン処理は負荷地獄 mixiでは、全てのユーザについて、各々の最終ログイン時刻を管理しています。「マイミクシィ一覧」や「お気に入り」などの画面で、友人が近い時間にログインしていてコミュニケーションがとりやすい状態にあるかどうか確認できるようにするためです。 mixiのほぼ全てのページはログインしないと見られないページなので、ほぼ全てのページにアクセスされるたびにログイン確認が行われます。したがって、最終ログイン時刻はほぼ全てのページにアクセスされる度に更新されることになります。mixiの中で最も重いデータベースのひとつとして「
拡張され続ける InnoDB のデータファイルのサイズを小さくする方法 2006-07-07-2: [MySQL] MySQL でトランザクションを可能にするストレージエンジンとして InnoDB があります. InnoDB のデータファイルは,MyISAM テーブルと異なって,デフォルトでは ibdata1 というファイルにデータが蓄積されていくとこになります. MySQL の datadir に自動拡張する 10 MB の ibdata1 ファイルが 1 つと、5 MB の ib_logfile ログファイルが 2 つ作成されます - 7.5.3. InnoDB 起動オプション http://dev.mysql.com/doc/refman/4.1/ja/innodb-start.html この ibdata1 は,大量のデータを追加していくと,自動的にサイズを拡張していきます. ただ
森川です。恥ずかしながらmemcacheを使うくらいならtmpfsとかMySQLのHEAPテーブルを使えばいいじゃん、などと思っていたのですが、今回簡単なベンチマークをやってみて心を入れ替えました。 はい、memcacheは偉大です。すごく速いです。 テストとして10万件のデータをINSERTして、そこから該当するデータを10万件取得します。まずはmemcacheを使用した場合です。 今回はdagレポジトリのRPM版memcachedとソースからインストールしたPHP 5.2.3を使用してpecl installでmemcacheエクステンションをインストールしています。memcachedの設定はデフォルトのままです。 # yum install memcached # pecl install memcache # vi /usr/local/lib/php.ini extension=
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く