MySQL の日次バックアップおよび増分バックアップ スクリプト
適したオブジェクト
この記事は、Linux の mysql 4.1.14 バージョンでテストされており、適切な修正を加えた後、mysql 4.0、5.0 およびその他のバージョンにも適している可能性があります。
この記事は、レプリケーション機能を持たない mysql に適しています。レプリケーションが有効になっている場合、このバックアップ戦略を採用したり、関連するパラメーターを変更したりする必要はありません。
バックアップ戦略は人によって異なる可能性があるため、実際の状況に応じて変更し、1 つの例から推測してください。不必要な損失が発生する可能性があるため、コピーしてください。
このスクリプトの動作を理解していただければ幸いです!
スクリプトの説明
すべてのデータを 7 日ごとにバックアップし、binlog を毎日バックアップします。これは増分バックアップです。
(データは少ないので、1 日 1 回完全なデータをバックアップするだけです。増分バックアップを行う必要はないかもしれません)
作者はシェル スクリプトにあまり慣れていないため、多くの場所が非常に愚かに書かれています:)
有効にするbin ログ
mysql のバージョン 4.1 では、デフォルトではエラー ログのみが存在し、他のログはありません。設定を変更することで bin ログを開くことができます。その 1 つは、
[mysqld] を追加することです。
log-bin
このログの主な機能は増分バックアップまたはレプリケーションです (他の用途がある場合もあります)。
増分バックアップが必要な場合は、このログを開く必要があります。
頻繁にデータベース操作を行う mysql の場合、このログはデータベースのログに複数の
フラッシュが存在する可能性があります。または、mysqladmin、mysqldump を使用してフラッシュログを呼び出し、パラメータ delete-master-logs を使用すると、これらのログ ファイルは消え、新しいログ ファイルが表示されます。
そのため、バックアップしたことがない場合は有効にします。ログは必要ない場合があります。
完全バックアップと同時にフラッシュ ログを呼び出し、増分バックアップの前にフラッシュ ログを呼び出すことができます。最新のデータをバックアップするためのバックアップです。
完全なバックアップ スクリプト
データベースに大量のデータがある場合、通常は数日かかるか、データ量が多い場合はアプリケーションの動作への影響を避けるためにデータを週に 1 回バックアップします。比較的小さい場合は、1 日に 1 回データをバックアップしても問題ありません
#!/bin/sh
# by scud http://www. 2005-10-30
#
# use mysqldump --help、詳細を取得します。
#
BakDir=/backup/mysql
DATE=` date +%Y% m%d`
echo " " >> $LogFile
echo " " >> $LogFileecho " ------ ----------" >> $LogFile
echo $(date +"%y-%m-%d %H :%M:% S") >> $LogFile
echo "--------------------------" >> $LogFile
DumpFile=$DATE.sql
mysqldump --quick --all-databases --flush-logs
> $DumpFile
echo "ダンプ完了" >> $LogFile
tar czvf $GZDumpFile $DumpFile >>&1
echo "[$GZDumpFile]バックアップ成功! " >> $LogFile
rm -f $DumpFile
#delete 以前の毎日のバックアップ ファイル: ファイルが完全にバックアップされると、増分バックアップ ファイルは削除されます。
cd $BakDir/daily
rm -f *
cd $BakDir
echo "バックアップが完了しました!"
echo "$BakDir ディレクトリを確認してください!"
echo "ローカル ディスクにコピーするか、ftp でどこかにコピーしてください !!!"
ls -al $BakDir
上記のスクリプトは、mysql をローカルの /backup/mysql ディレクトリにバックアップし、増分バックアップ ファイルは /backup/mysql/daily ディレクトリに配置されます。
注: 上記のスクリプトは、バックアップされたファイルを保存しません。他のリモート コンピューターに送信する場合、数日前のバックアップ ファイルは削除されません。ユーザーは、関連するスクリプトを追加するか、手動操作を実行する必要があります。
増分バックアップのデータ量は比較的少ないですが、削除する必要があります。完全バックアップに基づいてください。ユーザーは時間とコストを比較検討して、自分にとって最も有益な方法を選択できます。
増分バックアップは bin ログを使用します。スクリプトは次のとおりです:
#!/bin/sh
#
#
/usr/bin/mysqladmin flash-logs
DATADIR=/var/lib/mysql
BAKDIR=/backup/mysql/daily
###特別な設定を行った場合ここを変更するか、この変数を適用する行を変更してください: デフォルトではマシン名が使用され、mysql もデフォルトではマシン名を使用します
cd $DATADIR
FILELIST=`cat $HOSTNAME-bin.index`
# #行数、つまりファイルの数を計算します
COUNTER=0$FILELISTのファイルに対して
do
COUNTER=`expr $COUNTER + 1 `
done
$FILELIST のファイルの NextNum=0
base=`basename $file`
NextNum=`expr $NextNum + 1`
if [ $NextNum -eq $COUNTER ]
then
echo "skip lastest"
else
dest=$BAKDIR/$base
if(test -e $dest )
then
echo "$base の存在をスキップ"
else
echo "$base をコピーしています"
cp $base $BAKDIR
fi
fi
done
echo "backup mysql binlog ok"
増分バックアップ スクリプトは、バックアップ前にログをフラッシュし、メモリ内のログを自動的にファイルに保存し、新しいログ ファイルを生成するため、最初のログ ファイルのみをバックアップする必要があります。つまり、最後のバックアップはバックアップされていません
前回のバックアップから今回のバックアップまでに複数のログ ファイルが生成される可能性があるため、バックアップされている場合はそのファイルを検出する必要があります。
注: 同様に、ユーザー自身がリモートで送信する必要がありますが、完全なバックアップ後にプログラムが自動的に生成されます
。スクリプトを実行できるようにするには、対応するユーザー名とパスワード、mysqladmin と mysqldump を設定する必要があります。もちろん、これらはすべてスクリプト内に記述することができます。システムの root ユーザーを使用してこのスクリプトを実行すると仮定すると、変更するのは不便なので、/root (つまり、root ユーザーのホーム ディレクトリ) に .my.cnf ファイルを作成する必要があります。次の内容
[mysqladmin]
password =password
user= root
[mysqldump]
user=root
password=password
注: このファイルは root のみが読み取れるように設定してください (chmod 600 .my.cnf. )
このファイルは、プログラムがデータのバックアップに mysql の root ユーザーを使用することを説明しており、パスワードは対応する設定です。このように、スクリプトにユーザー名とパスワードを記述する必要はありません。自動的に実行する
バックアッププログラムを自動的に実行するには、crontabに追加する必要があります
1つは、/etc/cron.dailyや/etc/などのディレクトリにスクリプトを置く方法です。 1 つは、crontab -e を使用して、root ユーザーのスケジュールされたタスクに追加することです。たとえば、完全バックアップは毎週日曜日の午前 3 時に実行され、毎日のバックアップは毎週月曜日から土曜日まで実行されます。午前3時

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









MySQLは、インストールが簡単で、強力で管理しやすいため、初心者に適しています。 1.さまざまなオペレーティングシステムに適した、単純なインストールと構成。 2。データベースとテーブルの作成、挿入、クエリ、更新、削除などの基本操作をサポートします。 3.参加オペレーションやサブクエリなどの高度な機能を提供します。 4.インデックス、クエリの最適化、テーブルパーティション化により、パフォーマンスを改善できます。 5。データのセキュリティと一貫性を確保するために、バックアップ、リカバリ、セキュリティ対策をサポートします。

NAVICAT自体はデータベースパスワードを保存せず、暗号化されたパスワードのみを取得できます。解決策:1。パスワードマネージャーを確認します。 2。NAVICATの「パスワードを記憶する」機能を確認します。 3.データベースパスワードをリセットします。 4.データベース管理者に連絡してください。

NAVICATプレミアムを使用してデータベースを作成します。データベースサーバーに接続し、接続パラメーターを入力します。サーバーを右クリックして、[データベースの作成]を選択します。新しいデータベースの名前と指定された文字セットと照合を入力します。新しいデータベースに接続し、オブジェクトブラウザにテーブルを作成します。テーブルを右クリックして、データを挿入してデータを挿入します。

Passwordが暗号化された形式で保存されているため、MariadbのNavicatはデータベースパスワードを直接表示できません。データベースのセキュリティを確保するには、パスワードをリセットするには3つの方法があります。NAVICATを介してパスワードをリセットし、複雑なパスワードを設定します。構成ファイルを表示します(推奨されていない、高リスク)。システムコマンドラインツールを使用します(推奨されません。コマンドラインツールに習熟する必要があります)。

MySQLは、オープンソースのリレーショナルデータベース管理システムです。 1)データベースとテーブルの作成:createdatabaseおよびcreateTableコマンドを使用します。 2)基本操作:挿入、更新、削除、選択。 3)高度な操作:参加、サブクエリ、トランザクション処理。 4)デバッグスキル:構文、データ型、およびアクセス許可を確認します。 5)最適化の提案:インデックスを使用し、選択*を避け、トランザクションを使用します。

NAVICATでSQLを実行する手順:データベースに接続します。 SQLエディターウィンドウを作成します。 SQLクエリまたはスクリプトを書きます。 [実行]ボタンをクリックして、クエリまたはスクリプトを実行します。結果を表示します(クエリが実行された場合)。

NAVICATがデータベースとそのソリューションに接続できない一般的な理由:1。サーバーの実行ステータスを確認します。 2。接続情報を確認します。 3.ファイアウォール設定を調整します。 4.リモートアクセスを構成します。 5.ネットワークの問題のトラブルシューティング。 6.許可を確認します。 7.バージョンの互換性を確保します。 8。他の可能性のトラブルシューティング。

手順に従って、NAVICATで新しいMySQL接続を作成できます。アプリケーションを開き、新しい接続(CTRL N)を選択します。接続タイプとして「mysql」を選択します。ホスト名/IPアドレス、ポート、ユーザー名、およびパスワードを入力します。 (オプション)Advanced Optionsを構成します。接続を保存して、接続名を入力します。
