首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

MySQL 與 Oracle 資料庫自動備份 Shell 腳本實戰指南

     編輯:Oracle 資料庫基礎

一、Oracle 資料庫備份策略 (使用 exp 傳統匯出)

適用於中小型資料庫,採用邏輯備份方式。核心腳本內容如下:

環境變數設定

export ORACLE_BASE=/home/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db
export ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs
export PATH=$PATH:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin
export ORACLE_SID=test1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib32
export LD_LIBRARY_PATH_64=$ORACLE_HOME/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

備份與壓縮流程

# 執行匯出 (direct=y 直寫模式提升效能)
exp test/test@test1 file=/data/backup/test_15day.dmp direct=y

# exp 不支援覆蓋,採用重命名方式輪替
mv -f /data/backup/test_15day.dmp /data/backup/test.dmp

# 壓縮歸檔,檔名含時間戳
gzip -c /data/backup/test.dmp > /data/backup/test_`date +%y%m%d%H%M`.gz

遠端備份檔案拉取

使用 expect 自動化 SCP 下載:

#!/usr/bin/expect -f
set passWord "oracle"
spawn scp oracle@10.0.0.1:/data/backup/test.dmp /data/oracle_backup_test/
set timeout 200
expect "password:"
send "$passWord\r"
expect eof

二、MySQL 資料庫備份策略 (使用 mysqldump)

# 完整備份指定資料庫 (可多個,空格分隔)
mysqldump -h 10.0.0.9 -ubackup -p123456 test > /data/mysql_backup/test.sql

# 複製並加時間戳歸檔
cp /data/mysql_backup/test.sql /data/mysql_backup/backup-`date +%y%m%d%H%M`.sql

三、通用壓縮歸檔與 FTP 上傳自動化

打包壓縮 (保留權限屬性)

tar -zcvpf /data/NAME.tgz file1 file2 ...

FTP 自動上傳腳本範例

#!/bin/sh
DATE=`date +%Y%m%d`
# 打包指定目錄/檔案
tar -zcvpf /data/FTP/db_$DATE.tgz /data/MySQL/test.sql /data/other/ /data/Oracle/

# FTP 連線資訊
host="10.0.0.21"
id="admin"
pwd="666666"
basedir="/data/FTP"

# 自動上傳
ftp -n "$host" << EOC
user $id $pwd
binary
prompt
lcd $basedir
cd backup
mput db_$DATE.tgz
bye
EOC

四、定時任務排程

使用 crontab -e 編輯排程,常見範例:

排程表達式執行時間說明
30 21 * * *每晚 21:30
45 4 1,10,22 * *每月 1、10、22 號 04:45
10 1 * * 6,0每週六、日 01:10
0,30 18-23 * * *每天 18:00-23:00 每 30 分鐘
0 4 1 1 *每年 1 月 1 號 04:00

建議:將上述備份腳本存為獨立 .sh 檔案並賦予執行權限 (chmod +x),再在 crontab 中呼叫絕對路徑。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved