Linux で毎日データベースの自動バックアップを設定する方法

Linux で毎日データベースの自動バックアップを設定する方法

この記事では、Centos7.6 システムと Oracle11g を例に挙げます。

1. まずデータベース環境変数を見つける

ルートアカウントの場合は、まずデータベースが配置されているアカウントにログインする必要があります。

suオラクル
猫 ~/.bash_profile 

エクスポートPATH
エクスポート ORACLE_BASE=/home/nnc_db/app
エクスポート ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
PATH=$PATH:$ORACLE_HOME/bin をエクスポートします。
エクスポート ORACLE_SID=orcl

環境変数が見つかりました!

2. バックアップスクリプトファイルを編集する

vi bak.sh

まず環境変数をコピーしてbak.shファイルに貼り付けます。

次に、変数 date (毎日のバックアップ ファイルに簡単に識別できる名前を付ける機能) を定義し、expdp コマンドを使用してデータベースをエクスポートします。コードは次のとおりです。

日付=$(日付 +%Y%m%d)
expdp データベース アカウント/データベース パスワード@データベース インスタンス名 dumpfile=${date}_db_auto_backup.dmp schemas=データベース アカウント名 compression=all

保存して終了します。

3. Linuxのcrontabコマンドを使用してスケジュールされたタスクを設定する

crontab -e

crontab -e の機能は、テキスト エディターを使用してスケジュールされたタスクを設定することです (crontab の具体的な使用法についてはここでは説明しません)。

テキストエディタに入力

0 0 * * * /home/nnc_db/bak.sh

上記のコードは、2 番目の手順で作成されたファイルである/home/nnc_db内の bak.sh ファイルが毎日 0:00 に実行されることを意味します。これは、独自のバックアップ時間とファイル ディレクトリに応じて調整する必要があります。

次にcrondサービスを再起動します

service crond restart

4. タスクが正常に実行されるかどうかをテストする

ネットで集めた情報によると、crontab -e は設定後 3 分経たないと有効にならないという友人もいました。つまり、午前 10 時にタスクを設定し、それが成功するかどうかをテストしたい場合、次のスケジュールされたタスクを 10:02 に設定すると、問題が発生する可能性があります。しかし、ここでは

* * * * * /home/nnc_db/bak.sh

1 分ごとに実行するように設定しましたが、問題は見つかりませんでした。

初心者にとってもう一つの大きな落とし穴は、スクリプトファイルを直接実行すると、詳細なプロセスがコマンドラインに出力されるものの、スケジュールされたタスクを実行するように設定しても応答がないことです。したがって、スクリプトが自動的に実行されているかどうかを確認したい場合は、図に示すように、 /var/spool/mail/のログファイルを確認する必要があります。

要約する

上記は、Linux で毎日データベースの自動バックアップを設定するために私が紹介した方法です。お役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • LinuxはMySQLデータベースの自動バックアップとスケジュールバックアップを毎日実装しています
  • Linux で MySQL データベースを毎日自動的にバックアップする方法
  • Linux で MySQL データベースのスケジュールされたバックアップを実装する簡単な方法
  • Linux は定期的に MySQL データベースをバックアップし、以前のバックアップ ファイルを削除します (推奨)
  • Linux でのデータベースのスケジュールバックアップの実装スクリプト

<<:  要素複数フォーム検証の実装

>>:  mysql5.7 のエンコーディングを utf8mb4 に設定する方法

推薦する

Linux CentOS 7.4 で mysql5.7.20 のパスワードを変更する方法

MySQL がバージョン 5.7 にアップグレードされた後、セキュリティが大幅に向上しました。しかし...

MYSQL大規模書き込み問題の最適化の詳細な説明

概要: MySQL のパフォーマンス最適化について話すとき、誰もがクエリ パフォーマンスを向上させる...

Vueを使用してタイマー機能を実装する

この記事の例では、タイマー機能を実装するためのVueの具体的なコードを参考までに共有しています。具体...

CSS の境界線を通して三角形と矢印を実装するサンプルコード

1. CSS ボックスモデルボックスには、余白、境界線、パディング、コンテンツが含まれます境界線の接...

ウェブページからテキスト透かしを削除する2つの簡単な方法

<br /> 特定の Web サイトを閲覧して、優れた Web ページを見つけた場合、そ...

ファイルをアップロードするための HTML フォームの「参照」ボタンを変更する方法

コードをコピーコードは次のとおりです。 <!DOCTYPE HTML PUBLIC "...

MySQL 8.0.13 手動インストールチュートリアル

この記事では、MySQL 8.0.13の手動インストールチュートリアルを参考までに紹介します。具体的...

vue cli3は環境ごとにパッケージ化の手順を実装します

cli3 でビルドされた vue プロジェクトは、ゼロ構成ファイルとして知られています。パッケージ化...

Mac 環境での Nginx 構成とローカル静的リソースへのアクセスの実装

ローカル開発では、直接アクセスできない静的ファイル リソースのデバッグが必要になる場合があります。こ...

設計仕様に準拠した設計は良い設計でしょうか?

これまでの数年間、私はいわゆる「設計仕様」についてかなりの数の執筆やコンサルティングを行ってきました...

要素の属性を削除する JS removeAttribute() メソッド

JavaScript では、要素の removeAttribute() メソッドを使用して、指定され...

MySQL シリーズ 13 MySQL レプリケーション

目次1. MySQLレプリケーション関連の概念2. シンプルな1マスター1スレーブアーキテクチャの実...

MySQL の最適化: 高品質の SQL 文を書く方法

序文インターネット上にはデータベースの最適化に関する情報や方法が数多くありますが、その多くは品質にば...

Linuxにソフトウェアをインストールするいくつかの方法の詳細な説明

1. RPM パッケージのインストール手順: 1. soft.version.rpm などの対応する...

nginxフロー制御とアクセス制御の実装

nginx トラフィック制御レート制限は非常に便利ですが、Nginx では誤解され、誤って設定される...