1. 程式人生 > >Linux 下db2 自動遠端備份

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

LinuxDB2資料庫的備份及還原

背景: 放資料庫DB2的伺服器是windows server作業系統,又在上面安裝了Linux虛擬機器,然後在虛擬機器上安裝了DB2。應用伺服器上裝的是Tomcat。 要求: 在本地電腦上備份資料庫。本操作是離線全備份。 操作前提: 在本地電腦上安裝了SSH,並且已經連線了遠端的伺服器。 步驟

Linuxdb2配置遠端連線

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資料庫完全一致,異地備份伺服器用於儲存備份檔案。 實

LinuxOracle自動備份指令碼

#!/bin/bash export ORACLE_HOME=/usr/local/instantclient_11_2export PATH=$ORACLE_HOME:$PATHexport TNS_ADMIN=$ORACLE_HOME/network/adminexport LD_LIBRARY_PAT

Linuxmysql自動備份壓縮

本文要實現的內容自動備份mysql指定的資料庫壓縮備份的資料庫刪除舊有的備份(7天前)實現是方法編寫一個備份指令碼,然後使用crontab定時執行指令碼達到自動備份的目的。 本次配置的環境目錄如下:mysql安裝目錄: /usr/local/mysql mysql備份目

LinuxDB2的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

LinuxMysql的資料庫備份(基於 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使用者密碼  在連線的資料庫中所要匯出的資料庫的名字 >

linuxmysql數據備份和導入

roo mysq bsp linu linux p12 usr 進入 table 導出整個數據庫結構和數據 mysqldump -h 127.0.0.1 -uroot -p database > /usr/local/dump.sql 導出單個數據表結構和數據mysq

Linuxrsync 資料映象備份 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倉庫的建立詳細步驟如下)

linuxtftp自動傳輸指定字尾檔案並刪除

因為專案需要,自己寫的一個檢測當前目錄下是否存在指定字尾名的檔案,若有,則通過tftp命令依次將所有檔案傳輸到指定tftp伺服器,成功後刪除對應檔案(空間有限) !/bin/sh fcounts=ls -l|grep "^-"|grep .bin|wc

linux使用ssh遠端連線免密登入

在hadoop中有很多元件可能在多個伺服器上。而在啟動hdfs的時候都會提醒使用者是否連線以及輸入伺服器密碼。一臺、兩臺伺服器手動輸入還不算麻煩。但是一般情況下都是有很多太伺服器。這時候就會導致操作上的麻煩,那如何才能ssh免密登入呢? 其實很簡單。我相信很多人在工作中都使

32. linuxoracle資料庫定時備份

這裡以oradatabak.sh(裡面的內容要根據實際修改)指令碼放在/u01/11g/datapump下為例:   #1.新增指令碼執行許可權 chmod +x /u01/11g/datapump/oradatabak.sh #2.在oracle使用者下新增定時任務,每天晚上23點,以or

CentOS LinuxVNC Server遠端桌面配置詳解

一、安裝相應桌面環境與vnc服務端和客戶端: # yum groupinstall "GNOME Desktop Environment"(CentOS 5.x安裝GNOME桌面環境) # yum groupinstall "X Window System" "Desktop"(CentOS 6.

linuxmysql允許遠端連線

1.檢視linux防火牆是否開放3306埠 執行iptables -nL --line-number 這裡顯示DROP代表防火牆阻止了3306埠。 2.新增防火牆例外