PHP、Smarty、ケータイサイトについて発信中。書籍 「Smarty動的webサイト構築入門」(技術評論社) 好評発売中
RSS icon Home icon
  • phpMySplitDump


    ダウンロード

    ======================================================================
    ■phpMySplitDumpとは
    ======================================================================

    MySQLのテーブルが大きすぎると、phpMyAdminやmysqldumpでエクスポートできない場合があります。
    ・phpMyAdminでエクスポート中、タイムアウトしてしまった。
    ・mysqldumpでファイル保存しようとしても、ディスク容量が不足。

    phpmyadmin、mysqldumpは、範囲指定して、一部分をエクスポートできますが、
    分割数が多くなると手動操作は難しくなります。

    そこで、自動で分割エクスポートするために、phpMySplitDumpを作りました。

    ★サイトを「メンテナンス中」にしてから、本ソフトを実行することを前提にしています。★
    ★サイトを停止せず運用中のまま、MySQLバックアップを目的としていません。★

    きっかけは、OpenPNE2系のサーバ引越しでした。
    c_imageテーブルが2500行、3GB以上あり、phpMyAdminのエクスポートはタイムアウト。
    SSHログインしてのmysqldump出力は3GB以上になるはずですが、
    レンタルサーバ(1GBプラン)のディスク容量の残りは500MBでした。

    ======================================================================
    ■対象ユーザ
    ======================================================================

    サイト管理者向けのソフトです。

    次のスキルがあると、おもしろくも何ともない、このリードミーでも、
    インストール、確認、実行がスムーズに進む可能性が高まります。

    ・MySQLの接続パラメータ
    ・PHPスクリプトの簡単な編集
    ・phpMyAdminの操作
    ・wgetの操作
    ・コマンドプロンプトの操作

    ======================================================================
    ■動作環境
    ======================================================================
    これ以前であっても動いたり、これ以降であっても動かなかい可能性があることをご理解ください。

    □サーバー側
    ・Apache
    ・MySQL4以上
    ・PHPのsystem関数で、mysqldumpを実行できること。
    ・PHP4以上
    ・PEAR

    □クライアント側
    ・Windows XP
    ・GNU wget
    ・ディスク容量の余りが充分にあること
    DB使用容量の2倍が目安です。

    ※DB使用量は、phpMyAdminで確認してください。
    ・phpMyAdminにログインしてください
    ・左側のデータベース一覧から、目的のデータベースを選択します。
    ・右側のテーブル一覧のサイズ列の一番下の欄が、DB使用量です。

    ======================================================================
    ■インストール
    ======================================================================

    1) .htmysql.ini
    1-1) .htmysql.ini.sampleをコピーして、.htmysql.iniを作成してください。
    1-2) 目的のデータベースに合わせて編集してください。

    [client]
    host=localhost
    user=dummy_1234
    password=dummy_F4opGiCf
    database=dummy_openpne

    2) config.php
    2-1) config.php.sampleをコピーして、config.phpを作成してください。
    2-2) BASIC認証のユーザ名とパスワードを設定してください。

    $GLOBALS['BASIC_AUTH_USER'] = ”;
    $GLOBALS['BASIC_AUTH_PW'  ] = ”;

    2-3) サーバのmysqldumpのパスに合わせて、設定してください。

    $GLOBALS['MYSQLDUMP_EXE'] = ‘/usr/bin/mysqldump’;

    3) ファイルのアップロード
    *.sampleを除く全ファイルを、サーバ上へアップロードしてください。
    ファイル属性、ディレクトリ属性の設定はありません。
    ここでは、http://localhost/phpMySplitDump/index.php へ設置したと仮定します。

    ======================================================================
    ■確認
    ======================================================================

    1) .htmysql.ini を表示できないことを確認してください。
    Webブラウザで http://localhost/phpMySplitDump/.htmysql.ini を表示してください。
    このとき、
    Access forbbidden
    Error 403
    となることを確認してください。

    2) Webブラウザで http://localhost/phpMySplitDump/ を表示してください。
    エラーが表示されている場合は、インストールの .htmysql.ini と config.php の設定を確認してください。

    3) 次に、http://localhost/phpMySplitDump/ の次のリンクをクリックして、ページ移動できるか確認してください。
    エラーが表示されている場合は、インストールの .htmysql.ini と config.php の設定を確認してください。

    2-1) Step1 の「wgetrc.txt」リンク
    2-2) Step2 の「phpMySplitDump.txt」リンク
    2-3) Menuの「Table Status(before dump)」リンク
    2-4) Menuの「mysqldump list」リンク
    2-5) Menuの「Table Status(after dump)」リンク

    4) http://localhost/phpMySplitDump/ で、Menuの「mysqldump list」リンクをクリックして、
    http://localhost/phpMySplitDump/list.php を表示してください。

    次のリンクをクリックしてください。

    4-1) 先頭行の create_table.sql
    ・ダウンロードが始まること
    ・保存ファイルが、空(から)でないこと
    ・保存ファイルをテキストエディタで開き、目視確認で、mysqldumpの結果として正しいこと
    ・保存ファイルをテキストエディタで開き、「error」「warning」を検索し、みつからないこと
    を確認してください。

    4-2) 2行目の xxxx.sql
    ・ダウンロードが始まること
    ・保存ファイルが、空(から)でないこと
    ・保存ファイルをテキストエディタで開き、目視確認で、mysqldumpの結果として正しいこと
    ・保存ファイルをテキストエディタで開き、「error」「warning」を検索し、みつからないこと
    を確認してください。

    ======================================================================
    ■実行
    ======================================================================

    サイトを運用したまま、練習できます。
    本番前に練習して、ファイル数、ディスク容量、所要時間を調べておいてください。

    (引越しの)本番では、サイトに「メンテナンス中」表示をして、
    ユーザや管理者をサイトから追い出してから、この作業をします。

    1) Webブラウザで http://localhost/phpMySplitDump/ を表示してください

    2) Step1にある wgetrc.txt のリンクを右クリックして、保存してください。
    保存場所は、D:\host_db\wgetrc.txt と仮定します。

    3) Step2にある phpMySplitDump.txt のリンクを右クリックして、保存してください。
    保存場所は、D:\host_db\phpMySplitDump.txt と仮定します。
    次に、拡張子を .txt から .bat へ変更してください。
    これで、D:\host_db\phpMySplitDump.bat ができました。

    4) D:\host_db\phpMySplitDump.batを実行します。
    エクスプローラの場合は、D:\host_db\phpMySplitDump.batのアイコンをダブルクリックします。
    コマンドプロンプトの場合は、
    D:
    cd \host_db
    phpMySplitDump.bat
    と入力してください。

    5) D:\host_db\local_save\ の下に、sqlファイルが保存されていきます。
    最後に、何かキーを押してください。
    参考記事:
    Usagi Project Mynets>[質問] 1.1.1から1.2.0のコンバートエラー (2008/09/15)
    ターズの備事録>Openpne 移設 (2008-09-29)

    2009-11-06 aoki 2 comments 02.PHP
     

    2 responses to “phpMySplitDump”

    1. じてんしゃ操太郎

      いつもおせわになっております。ついにできましたか!

    2. コメントありがとうございます。
      需要は少ないと思いますが、せっかくなので、公開することにしました。
      ちなみに、早朝に練習で試したところ、約30分、約400ファイル、3.5GBになりました。

    Leave a reply