Linux 下db2 自動遠端備份
linux版本
uname -a
Linux 2.6.28.10-vs2.1.4 #1 SMP Fri Jul 17 15:51:11 EDT 2015 ia64 ia64 ia64 GNU/Linux
db2版本
db2licm -l Product name: "DB2 Advanced Enterprise Server Edition" License type: "CPU Option" Expiry date: "Permanent" Product identifier: "db2aese" Version information: "10.5" Enforcement policy: "Soft Stop"
備份策略
週日:全備
週一:迭代增量備份
週二:迭代增量備份
週三:累積增量備份
週四:迭代增量備份
週五:迭代增量備份
週六:累積增量備份
備份指令碼
資料庫列表檔案:
dblist.txt
TEST_DB
週日備份指令碼
#!/bin/sh #params base_path=/db2backup dblist=$base_path/script/dblist.txt backup_date=`date +%Y%m%d` backup_file_path=$base_path/backup/$backup_date backup_log=$base_path/$backup_date.log ftp_path=ftp://user_name:
[email protected]:21/ # 函式:輸出日誌 function logmsg(){ echo "`date +'%Y-%m-%d %H:%M:%S'` $1" >> $backup_log } # 函式:通過curl上傳檔案到ftp function batch_upload(){ for element in `ls $1 | grep $2` do logmsg "3.begin upload file:$element" # 上傳檔案 curl -T $1/$element $3 # 如果上傳失敗,退出 if [ $? -gt 0 ]; then logmsg "upload $element error." exit 1 fi logmsg "upload $element success" done } if [ -f ${HOME}/sqllib/db2profile ]; then . ${HOME}/sqllib/db2profile fi logmsg "-----------------------------------------" logmsg "1.db backup init." # 建立備份目錄 if [ -w "${backup_file_path}" ];then { logmsg "db dir is already exist!" } else { mkdir -p "$backup_file_path" chmod 777 -R "$backup_file_path" logmsg "db dir create Successful:$backup_file_path" } fi # 讀取資料庫列表,並備份資料庫 while read db_name do logmsg "2.begin backup :$db_name" db2 backup db $db_name online to $backup_file_path compress include logs if [ $? -gt 0 ]; then logmsg "db backup error." exit 1 else logmsg "db backup success." fi batch_upload $backup_file_path $db_name $ftp_path done < $dblist # 刪除資料備份目錄 logmsg "4.begin rm backup folder:$backup_file_path" rm -rf $backup_file_path if [ $? -gt 0 ]; then logmsg "rm error." exit 1 else logmsg "rm success." fi logmsg "db backup success." logmsg "-----------------------------------------" exit
周1,2,4,5指令碼
#!/bin/sh
#params
base_path=/db2backup
dblist=$base_path/script/dblist.txt
backup_date=`date +%Y%m%d`
backup_file_path=$base_path/backup/$backup_date
backup_log=$base_path/$backup_date.log
ftp_path=ftp://user_name:[email protected]:21/
# 函式:輸出日誌
function logmsg(){
echo "`date +'%Y-%m-%d %H:%M:%S'` $1" >> $backup_log
}
# 函式:通過curl上傳檔案到ftp
function batch_upload(){
for element in `ls $1 | grep $2`
do
logmsg "3.begin upload file:$element"
# 上傳檔案
curl -T $1/$element $3
# 如果上傳失敗,退出
if [ $? -gt 0 ]; then
logmsg "upload $element error."
exit 1
fi
logmsg "upload $element success"
done
}
if [ -f ${HOME}/sqllib/db2profile ]; then
. ${HOME}/sqllib/db2profile
fi
logmsg "-----------------------------------------"
logmsg "1.db backup init."
# 建立備份目錄
if [ -w "${backup_file_path}" ];then {
logmsg "db dir is already exist!"
} else {
mkdir -p "$backup_file_path"
chmod 777 -R "$backup_file_path"
logmsg "db dir create Successful:$backup_file_path"
}
fi
# 讀取資料庫列表,並備份資料庫
while read db_name
do
logmsg "2.begin backup :$db_name"
db2 backup db $db_name online incremental delta to $backup_file_path compress include logs
if [ $? -gt 0 ]; then
logmsg "db backup error."
exit 1
else
logmsg "db backup success."
fi
batch_upload $backup_file_path $db_name $ftp_path
done < $dblist
# 刪除資料備份目錄
logmsg "4.begin rm backup folder:$backup_file_path"
rm -rf $backup_file_path
if [ $? -gt 0 ]; then
logmsg "rm error."
exit 1
else
logmsg "rm success."
fi
logmsg "db backup success."
logmsg "-----------------------------------------"
exit
周3,6指令碼
#!/bin/sh
#params
base_path=/db2backup
dblist=$base_path/script/dblist.txt
backup_date=`date +%Y%m%d`
backup_file_path=$base_path/backup/$backup_date
backup_log=$base_path/$backup_date.log
ftp_path=ftp://user_name:[email protected]:21/
# 函式:輸出日誌
function logmsg(){
echo "`date +'%Y-%m-%d %H:%M:%S'` $1" >> $backup_log
}
# 函式:通過curl上傳檔案到ftp
function batch_upload(){
for element in `ls $1 | grep $2`
do
logmsg "3.begin upload file:$element"
# 上傳檔案
curl -T $1/$element $3
# 如果上傳失敗,退出
if [ $? -gt 0 ]; then
logmsg "upload $element error."
exit 1
fi
logmsg "upload $element success"
done
}
if [ -f ${HOME}/sqllib/db2profile ]; then
. ${HOME}/sqllib/db2profile
fi
logmsg "-----------------------------------------"
logmsg "1.db backup init."
# 建立備份目錄
if [ -w "${backup_file_path}" ];then {
logmsg "db dir is already exist!"
} else {
mkdir -p "$backup_file_path"
chmod 777 -R "$backup_file_path"
logmsg "db dir create Successful:$backup_file_path"
}
fi
# 讀取資料庫列表,並備份資料庫
while read db_name
do
logmsg "2.begin backup :$db_name"
db2 backup db $db_name online incremental to $backup_file_path compress include logs
if [ $? -gt 0 ]; then
logmsg "db backup error."
exit 1
else
logmsg "db backup success."
fi
batch_upload $backup_file_path $db_name $ftp_path
done < $dblist
# 刪除資料備份目錄
logmsg "4.begin rm backup folder:$backup_file_path"
rm -rf $backup_file_path
if [ $? -gt 0 ]; then
logmsg "rm error."
exit 1
else
logmsg "rm success."
fi
logmsg "db backup success."
logmsg "-----------------------------------------"
exit
排程計劃
crontab -e
0 0 * * 0 nohup sh /db2backup/script/backup7.sh &
0 0 * * 1,2,4,5 nohup sh /db2backup/script/backup1.sh &
0 0 * * 3,6 nohup sh /db2backup/script/backup3.sh &
相關推薦
Linux 下db2 自動遠端備份
linux版本 uname -a Linux 2.6.28.10-vs2.1.4 #1 SMP Fri Jul 17 15:51:11 EDT 2015 ia64 ia64 ia64 GNU/Linux db2版本 db2licm -l Product nam
Linux下DB2資料庫的備份及還原
背景: 放資料庫DB2的伺服器是windows server作業系統,又在上面安裝了Linux虛擬機器,然後在虛擬機器上安裝了DB2。應用伺服器上裝的是Tomcat。 要求: 在本地電腦上備份資料庫。本操作是離線全備份。 操作前提: 在本地電腦上安裝了SSH,並且已經連線了遠端的伺服器。 步驟
Linux下db2配置遠端連線
1. 配置service root下執行 vi /etc/services,新增對外服務,格式為:服務名 埠/連線方式 DB2_db2inst1 50000/tcp 2. 更新db2配置,以db2管理員身份執行 db2set DB2COMM=tcpip db2 upda
Linux下定時自動備份遠端主機mysql資料庫並拷貝到其他主機
環境: 作業系統CentOS6.5、mysql5.1 主資料庫伺服器(A)、備資料庫伺服器(B)、異地備份伺服器(C) 主、備資料庫伺服器的mysql資料庫完全一致,異地備份伺服器用於儲存備份檔案。 實
Linux下Oracle自動備份指令碼
#!/bin/bash export ORACLE_HOME=/usr/local/instantclient_11_2export PATH=$ORACLE_HOME:$PATHexport TNS_ADMIN=$ORACLE_HOME/network/adminexport LD_LIBRARY_PAT
Linux下mysql自動備份壓縮
本文要實現的內容自動備份mysql指定的資料庫壓縮備份的資料庫刪除舊有的備份(7天前)實現是方法編寫一個備份指令碼,然後使用crontab定時執行指令碼達到自動備份的目的。 本次配置的環境目錄如下:mysql安裝目錄: /usr/local/mysql mysql備份目
Linux下DB2的TCP配置
service sin 文件 com 服務 切換 fig star using 1切換到db2實例用戶下(uppdb) su - uppdb 2查看db2是否開啟tcp服務 db2set -all 設置tcp服務:db2set DB2COMM=TCPIP 3查看是否配置db
31.Linux下的數據備份工具rsync
傳輸 authent 沒有 tmp 包含 passwd 推出 過濾 send 八周二次課(1月30日) 10.28 rsync工具介紹 10.29/10.30 rsync常用選項 10.31 rsync通過ssh同步 一、rsync工具介紹 Linux系統下有很多數據備份工
Linux下的數據備份工具rsync
遠程 glin rsn file passwd dup 判斷 x86_64 linux下 rsync(remote sync): 遠程同步,可以本地同步數據,不會覆蓋以前的數據,而是先判斷已經存在的數據和新數據的差異,只有數據不同時才會把不相同的部分覆蓋。# yum ins
Linux下Mysql的資料庫備份(基於 CentOS 7.4 64位)
在做專案的時候,經常會需要對資料庫進行備份,基於Linux系統下的操作我還是第一次做,所以在網上查詢了很多資料,分別參考了https://www.cnblogs.com/batsing/p/4938986.html 和 ht
linux下匯出匯入遠端資料庫中的資料
1.在linux終端輸入以下命令進行資料庫的匯出: ls : 查詢所在資料夾中的檔案 mysqldump -h 所要連線的資料庫的IP地址(如果是本機的話就是:127.0.0.1) -u使用者名稱 -p使用者密碼 在連線的資料庫中所要匯出的資料庫的名字 >
linux下mysql數據備份和導入
roo mysq bsp linu linux p12 usr 進入 table 導出整個數據庫結構和數據 mysqldump -h 127.0.0.1 -uroot -p database > /usr/local/dump.sql 導出單個數據表結構和數據mysq
Linux下rsync 資料映象備份 client / server 模式
Linux下rsync 資料映象備份 rsync特性: 可以映象儲存整個目錄樹和檔案系統可以增量同步資料,檔案傳輸效率高,因而同步時間很短。可以保持原有檔案的許可權、時間等屬性。加密傳輸資料,保證了資料的安全性 兩種模式: client / serverclient / clien
Linux 下mysql的定時備份
在實際專案中,資料庫是要經常備份的,就是為了防止突發情況,前段時間,我的資料庫就遭遇了入侵要支付B特比的,結果資料全沒了,哎,還好當時只是個測試庫,不過有了這次危機,也就開始意識到了這個問題了。 先寫個測試的資料庫備份命令: #!/bin/sh DB_USER="root" DB_PASS="123
Linux下通過rdesktop遠端登陸Windows系統圖文詳解
rdesktop是一種客戶端程式,可以通過它在Linux系統下遠端訪問Windows桌面,而且支援多種版本,諸如NT 4 Terminal Server, 2000, XP, 2003, 2003 R2, Vista, 2008, 7, and 2008 R2等。(自動掛載以及YUM倉庫的建立詳細步驟如下)
linux下tftp自動傳輸指定字尾檔案並刪除
因為專案需要,自己寫的一個檢測當前目錄下是否存在指定字尾名的檔案,若有,則通過tftp命令依次將所有檔案傳輸到指定tftp伺服器,成功後刪除對應檔案(空間有限) !/bin/sh fcounts=ls -l|grep "^-"|grep .bin|wc
linux下使用ssh遠端連線免密登入
在hadoop中有很多元件可能在多個伺服器上。而在啟動hdfs的時候都會提醒使用者是否連線以及輸入伺服器密碼。一臺、兩臺伺服器手動輸入還不算麻煩。但是一般情況下都是有很多太伺服器。這時候就會導致操作上的麻煩,那如何才能ssh免密登入呢? 其實很簡單。我相信很多人在工作中都使
32. linux下oracle資料庫定時備份
這裡以oradatabak.sh(裡面的內容要根據實際修改)指令碼放在/u01/11g/datapump下為例: #1.新增指令碼執行許可權 chmod +x /u01/11g/datapump/oradatabak.sh #2.在oracle使用者下新增定時任務,每天晚上23點,以or
CentOS Linux下VNC Server遠端桌面配置詳解
一、安裝相應桌面環境與vnc服務端和客戶端: # yum groupinstall "GNOME Desktop Environment"(CentOS 5.x安裝GNOME桌面環境) # yum groupinstall "X Window System" "Desktop"(CentOS 6.
linux下mysql允許遠端連線
1.檢視linux防火牆是否開放3306埠 執行iptables -nL --line-number 這裡顯示DROP代表防火牆阻止了3306埠。 2.新增防火牆例外