テーブルの 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構文は正しいですか?洞察をありがとう