0

テーブルの 1 つに 4,000,000 を超えるレコードがあるため、BigDump を使用して復元できる MySQL データベースの毎日のバックアップを実行したいと考えています。問題は、彼らのウェブサイトで説明されているように、拡張挿入を使用できないことです。

注 1: BigDump は、拡張挿入を含む大きなテーブルの処理に失敗します。拡張挿入には、1 つの SQL クエリ内のすべてのテーブル エントリが含まれます。BigDump は、そのような SQL クエリを分割できません。ほとんどの場合、いくつかのクエリに多くの行が含まれている場合、BigDump は停止します。

このスクリプトと互換性があるように、ChronJob から SQL ダンプを作成しようとしていますか? FAQ ページから、phpmyadmin を使用して必要な結果を手動で取得できます。

古いバージョンの phpMyAdmin では、エクスポート設定で拡張挿入スイッチを探し、オフに設定します。新しい phpMyAdmin バージョンでは、エクスポート ダイアログのデータ ダンプ オプションで使用する構文のすべての INSERT ステートメントに列名を含めるを選択します。

これを行うためにPHPを手伝ってくれる人はいますか?シェル コマンドの使用経験がまったくありません。私はmysqldumpのドキュメントに従おうとしましたが、これは私がすでに得たものです:

<?php
set_time_limit(86000);
include($_SERVER['DOCUMENT_ROOT']."/pagetop.php");
$db = new dbsettings;
$filename = date("d-m-Y");
exec("
    mysqldump 
        --user=".$db->username." 
        --password=".$db->password." 
        --host=".$db->hostname." 
        --add-drop-database 
        --add-drop-table 
        --skip-extended-insert 
        --disable-keys 
        --add-locks 
        --force 
        ".$db->databaseName." 
        > 
    /backups/".$filename.".sql
    ");
?>

使用すべき引数がありませんか? 私のexec構文は正しいですか?洞察をありがとう

4

0 に答える 0