Linux設置數據庫自動備份

本文爲轉載,最末端爲原地址html

CentOS 7.6系統與Oracle 11g爲例:linux

一.先找到數據庫的環境變量數據庫

若是是在root帳戶下,須先登陸到數據庫所在帳戶  bash

su oracle
cat ~/.bash_profileoracle

export PATH
export ORACLE_BASE=/home/nnc_db/app
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=orclapp

環境變量就已經找到了!編輯器

二.編輯備份的腳本文件測試

vi bak.shspa

先把環境變量複製粘貼到bak.sh文件,命令行

而後定義一個變量date(它的做用是爲天天備份的文件命名便於識別),使用expdp命令導出數據庫,代碼以下:

date=$(date +%Y%m%d)
expdp 數據庫帳號/數據庫密碼@數據庫實例名 dumpfile=${date}_db_auto_backup.dmp schemas=數據庫帳號名 compression=all

退出保存。

三.使用Linux的crontab命令設置定時任務

crontab -e

crontab -e的做用是使用文本編輯器設置定時任務(crontab具體用法在此不贅述);

輸入後在文本編輯器輸入

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

以上代碼意爲天天的0點0分執行/home/nnc_db下的bak.sh文件,也就是第二步所建立的文件,需根據自身的備份時間以及文件目錄調整;

而後重啓crond服務便可

service crond restart

四.測試任務是否成功運行

根據我在網上收集的資料來看,有朋友說crontab -e設置成功後三分鐘不會生效!也就是說假如你在上午10:00設置好任務,想要測試可否成功,把下次的定時任務設到10:02分,有可能會出現問題!可是這裏我用
* * * * * /home/nnc_db/bak.sh
設置爲每一分鐘運行一次,發現沒有問題。
還有一個新手大坑就是你直接運行腳本文件會在命令行輸出詳細過程,而設置定時任務運行是沒有反應的!因此想要看本身的腳本是否自動運行了須要到/var/spool/mail/下看日誌文件,如圖

Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx

原文地址以下:https://www.linuxidc.com/Linux/2019-09/160731.html

相關文章
相關標籤/搜索