1. 程式人生 > >WINDOWS 伺服器下自動備份oracle資料庫

WINDOWS 伺服器下自動備份oracle資料庫

一、window下自動備份資料庫的步驟

1、建立自動備份資料庫bat檔案

2、在window下建立定時器任務,定時執行1中的bat檔案

二、自動備份資料庫bat檔案

1、建立備份檔案及日誌檔案的資料夾(路徑)

建立資料夾的命令:md <路徑名>

因為是在bat檔案中,會執行不止一次,可以加上一個判斷條件,命令:if not exist <路徑名> md <路徑名>

2、匯出資料庫資料

備份整個庫:exp <使用者名稱>/<密碼>@<例項名> file=<備份檔案路徑 .dmp檔案> log=<日誌檔案路徑 .log檔案>full=y

 備份某個使用者的所有表:exp <使用者名稱>/<密碼>@<例項名> file=<備份檔案路徑 .dmp檔案> log=<日誌檔案路徑 .log檔案> owner=(<user1>,<user2>)

備份某個使用者的某幾張表:exp <使用者名稱>/<密碼>@<例項名> file=<備份檔案路徑 .dmp檔案> log=<日誌檔案路徑 .log檔案> tables=(<table1>,<table2>) 

注意:許可權的問題

3、定時刪除過期的備份檔案及日誌

定時刪除檔案的命令格式:forfiles /p "<目錄資料夾>" /s /m <篩選條件> /d -<天數> /c "cmd /c del @path"

三、 window下建立定時器任務

1、進入window管理工具->任務計劃程式

2、點選右上角部分的“建立基本任務”,在彈出的選項卡中填入任務的名稱及描述,然後“下一步”

3、然後建立定時器,先選擇週期,在選擇執行的具體時間,然後“下一步”

4、選擇要執行的操作,這裡選擇第一項“執行程式”,然後“下一步”

5、選擇要執行的程式或bat檔案,完成

四、注意要點

1、因為是自動備份,所以檔名以日期自動命名,

set var1=%date%     #這樣得到的是日期,格式為 yyyy-mm-dd

set var2=%time% #這樣得到的是時間,格式為 hh:mm:ss

set var=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%  #這樣得到的是日期時間字串 格式yyyyMMddhhmmss

這個字串可以用來給自動生成的檔案命名嗎?不能,這裡有一個坑 日期格式是固定的,但是時間格式是不固定的,hh的位數可能為1(小於10點的時候),它不會在簽名自動補零,而是空格佔位

我就在這裡卡了好幾天,因為我測試是在白天,一點問題沒有,定時器設定的是凌晨,所以,測試一點問題沒有,但就是正式應用執行不成功,定時器返回(0x1)

所以需要處理一下,將得到的日期時間字串處理一下,將空格替換為0

set var=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%

set var=%var: =0%

        這樣就可以得到可以作為檔名的日期字串

2、oracle匯出命令exp

如果資料庫的密碼含有特殊字元,則需要將命令處理一下,如使用者名稱是test,密碼是[email protected],例項名是orcl,匯出為d盤下1.dmp,日誌為d盤下1.log,則匯出test使用者所有表的命令為

exp test/"""[email protected]"""@orcl file=D:\1.dmp log=D:\1.log owner=test

2、定時器的許可權問題

五、完整的bat檔案

@echo off 
echo 開始備份資料庫
if not exist D:\oraclebackup\files md D:\oraclebackup\files
if not exist D:\oraclebackup\logs md D:\oraclebackup\logs
 
set var=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%
set var=%var: =0%
exp test/"""[email protected]"""@orcl file=D:\oraclebackup\files\hn_%var%.dmp log=D:\oraclebackup\logs\hn_%var%.log owner=test
 
echo 刪除7天前的備份記錄
forfiles /p "D:\oraclebackup" /s /m  *.dmp /d -7 /c "cmd /c del @path"
forfiles /p "D:\oraclebackup" /s /m  *.log /d -7 /c "cmd /c del @path"

rem 下面兩行是用來除錯用的,阻止命令列視窗自動關閉,保留bat檔案的執行結果及錯誤資訊,正式時可以去掉
echo 請按任意鍵開始或結束
pause>nul

echo 任務完成!
exit

相關推薦

WINDOWS 伺服器自動備份oracle資料庫

一、window下自動備份資料庫的步驟 1、建立自動備份資料庫bat檔案 2、在window下建立定時器任務,定時執行1中的bat檔案 二、自動備份資料庫bat檔案 1、建立備份檔案及日誌檔案的資料夾(路徑) 建立資料夾的命令:md <路徑名> 因為是在bat檔

linux自動備份oracle資料庫並上傳到備份伺服器 指令碼實現

實際專案中,備份資料是不可缺少的一步,完成資料的自動備份減少個人的工作量,是我們的目標。之前很少寫過指令碼,不過這些簡單的操作還是可以做到的!話不多說,開始具體介紹: oracle版本:10.2.0 作業系統:linuxredhat6.3 具體操作: (1)在伺服器上建立備

LINUX 自動備份mysql資料庫

mysql自動備份分為兩個部分,一個部分是shell指令碼的編寫,另外一個部分是新增自動執行命令到crontab。 1.首先是shell指令碼的編寫,每天自動備份的的做法如下所示,shell指令碼首先用#!/bin/bash指定直譯器的路徑,接下來設定儲存路徑的變數。我們利用mysqldump這

伺服器定時自動備份MySQL資料庫

本文記錄了伺服器資料庫備份、壓縮、加密、傳送記錄郵件的一套流程。 需求:伺服器的資料庫自動在增長,但是難保某個時候發生意外導致資料庫崩潰。所以需要做定時備份。 使用要點:利用MySQL中提供的mysqldump功能匯出資料庫,利用gzip進行壓縮,利用gpg進行對稱

分享一個定時自動備份oracle資料庫的指令碼

分享一個定時自動備份oracle的指令碼 #!/bin/sh export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 export PATH=${ORACLE_HOME}:${PATH} workDIR=`pwd`

在linux定期備份oracle資料庫

http://hi.baidu.com/tianfu_xue/blog/item/c26c501ce6bd319286d6b6eb.html 2011-06-29 15:42 在/u01/app/oracle/product/11.2.0/db_1下建立back.sh備份資

windows自動備份mysql和oracle資料庫

rem ******Oracle backup start********  @echo off      forfiles /p "C:\DatabaseBackup\egov\essucap" /m essucap_backup_*.dmp -d -7

windows使用bat批處理文件定時自動備份oracle數據庫並上傳ftp服務器

upd 使用 pup bye upload ora file ftp服務器 .bat 使用bat批處理文件備份oracle(前提是配置好oracle數據庫客戶端)在D盤目錄下創建個dbbackup目錄建個dbbak.bat @echo off echo ======

windows伺服器新增系統任務---自動備份mysql資料庫

1、參考http://jingyan.baidu.com/article/6181c3e0435026152ef153d0.html 建立任務計劃程式-》建立基本任務-》“名稱”“描述”下一步-》“每

如何在生產環境實現每天自動備份mysql資料庫

www.syncnavigator.cn SyncNavigator 做資料同步時所支援的資料庫型別: 支援sqlserver 2000-2014所有版本,全相容,和MYsql 4.x 、MYsql 5.x 、MYsql 6.x版本。 來源資料庫和目標資料庫可以版本不同,比如:來源資料庫

Windows定時任務備份Oracle資料庫(批處理bat)

參考文獻: http://www.jb51.net/article/98732.htm https://blog.csdn.net/woshixuye/article/details/18050769   auto_back_tie.bat REM 建立目錄 set

Windows-計劃任務-自動備份資料庫和檔案

開始->程式->附件->系統工具->計劃任務 .bat檔案如下: ::資料庫+檔案備份 @echo off ::日期時間 set yyyymmdd=%date:~0,4%%date:~5,2%%date:~8,2% set curtime=%time% IF "%curtime

Windows自動備份mongodb的bat指令碼

假裝置份目錄為D:\MongoDB\BackupDB,因為一天備份一次就好了,所以我們按日期來分類建立資料夾。 在D盤建立bat檔案,會自動進入到D盤,bat檔案我放在了MongoDB目錄下 @echo off rem *********** 這行算是註

windows自動備份mysql指令碼

@echo off  echo -------------------------  echo mysql backup  echo -------------------------  mysqld

Linux使用expdp定時備份Oracle資料庫

使用Xshell連線伺服器輸入使用者名稱密碼 建立備份資料庫儲存路徑 在根目錄下建立oradata目錄 在oradata目錄下建立databak用於存放shell指令碼 在oradata下建立dum

Linux備份oracle資料庫

轉自:https://blog.csdn.net/li951383937/article/details/52475982今天遇到需要備份oracle資料庫在Linux環境下,以前沒有弄過,今天嘗試了一次,特此記錄。 首先1:我們需要連結到安裝oracle的機器上,我是使用的

Linux伺服器新增系統任務---自動備份mysql資料庫

1、用root登入linus伺服器。輸入命令crontab -e回車,輸入如下圖命令: ---》 注意這裡(00 02 * * *)需要空格做分隔符,每天凌晨2點0分執行一次指定目錄下的backup.sh 命令。 2、backup.sh指令碼內容 ===========

Linux自動備份資料庫和刪除歷史備份檔案

一、Linux下自動備份資料庫通常情況下,檔案備份大家喜歡名稱+備份日誌來命名備份檔案。下面以此為例說明:(1)建立備份指令碼檔案,並編寫備份指令碼。[root@test02 backup]# touch backup.sh #建立指令碼檔案 [root@test02 ba

(轉)linux自動備份oracle數據庫並上傳到備份服務器 腳本實現

oralce 查看 cal .com 中間 term star 開始 library 實際項目中,備份數據是不可缺少的一步,完成數據的自動備份減少個人的工作量,是我們的目標。之前很少寫過腳本,不過這些簡單的操作還是可以做到的!話不多說,開始具體介紹:oracle版本:10.

自動備份Oracle 11g數據庫

str 數據庫 字段 1-1 xxx left 下午 bject log 采用Linux提供的crontab定時任務觸發器。實施過程如下: 一、使用oracle帳號登錄 二、在/home/oracle目錄下添加XXXXX.sh腳本。 內容:export ORACLE_SID