當前位置:首頁 » 編程軟體 » linuxoracle定時備份腳本

linuxoracle定時備份腳本

發布時間: 2022-09-18 10:45:32

1. ORACLE伺服器定時備份怎麼做

  1. 編寫備份資料庫腳本。新建文本文檔,粘貼如下內容:

    echo 開始備份資料庫

    if not exist F:db_bakfiles md F:db_bakfiles

    if not exist F:db_baklogs md F:db_baklogs

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

    exp ora_user/ora_pwd@ora_conn file=F:db_bakfilesxxxx_%var%.dmp log=F:db_baklogsxxxx_%var%.log owner=(user1,user2)

    echo 刪除過久的備份記錄

    forfiles /p "F:db_bak" /s /m *.dmp /d -60 /c "cmd /c del @path"

    forfiles /p "F:db_bak" /s /m *.log /d -60 /c "cmd /c del @path"

    exit

  2. 使用任務計劃程序「創建基本任務」。,下一步:

  3. 選擇任務何時開始執行,(選擇每天),下一步:

  4. 設置任務開始執行的具體時間,(設置成零晨3點),下一步:

  5. 選擇任務執行的具體操作,(啟動程序),下一步:

  6. 選擇程序或腳本,通過「瀏覽」按鈕把我們在第1、2步驟編寫好的bat文件指定好。,下一步:

  7. 任務創建好了。點擊完成即可。至此,定時備份oracle資料庫的操作已經完成

2. oracle中怎麼設置資料庫自動備份

Oracle自動備份的三種方法:
Oracle自動備份資料庫不外乎以下三種方式:
WINDOWS下的任務計劃(At命令)
UNIX下的Crontab
第三方工具如Viritas
在以上三種方式中Viritas屬於第三方工具,很多人可能都沒有接觸,主要說一下windows的任務計劃與unix的cron
1、生成腳本文件,如backup.rcv 假定文件內容如下:
$>cat backup.rcv connect target sys/password rcvcat rman/rman@localname; run{ allocate channel c1 type disk; allocate channel c2 type disk; allocate channel c3 type disk; backup fileaperset 3 format 『/u01/oradata/backup/arch%u_%s_%p』 archivelog all delete input; release channel c1; release channel c2; release channel c3; }

2、生成執行文件在windows上生成backup_archive.bat,內容包括rman cmdfile = backup.rcv 在unix下生成 backup_archive.sh,內容包括oracle/ramn/rman cmdfile = backup.rcv
3、加入調度在windows中用任務計劃向導即可,或使用at命令。在unix中,在目標機器上編寫一個文件,用以啟動Oracle自動備份進程。假定文件名為ORACLE,文件將放在/var/spool/cron/crontabs目錄下
$>cat oracle
0 23 * * 0 backup_archive.sh
#表示星期天23點對資料庫備份
0 12,18 * * * backup_archive.sh
#表示每天12點,18點備份
Crontab文件的每一行由六個域(minutes,hours,day of month,month,day of week,command)組成,域之間用空格或Tab分隔開來。

3. linux下怎麼定時備份oracle資料庫

如果是sql server,定期備份可以利用sql server的management studio來做,比較方便。但要做oracle的定期備份,那就需要我們寫導出命令,並設置linux的定時任務。
首先創建一個資料庫作為測試。
--創建數據表空間
create tablespace test_data
logging
datafile '/u01/app/oradata/test/TEST.dbf'
size 32m
autoextend on
next 32m maxsize 2048m
extent management local;

--創建用戶並指定表空間
create user TEST identified by 123
default tablespace test_data
temporary tablespace temp;

--給用戶授予許可權
grant connect,resource to TEST;
用Test用戶登錄,創建一個表,並插入兩條數據:
create table t1(
Id varchar(50) primary key,
title varchar(50)
);

insert into t1 values(sys_guid(),'t1');
insert into t1 values(sys_guid(),'t2');
commit;
先寫一個導出的腳本文件:
export ORACLE_BASE=/u01/app
export ORACLE_HOME=/u01/app/oracle
export ORACLE_SID=TEST
export PATH=$ORACLE_HOME/bin:$PATH
d=$(date '+%Y%m%d')
exp TEST/123@TEST file=/home/oracle/backup/$d.dmp log=/home/oracle/backup/$d.log owner=TEST
zip -m /home/oracle/backup/$d.zip /home/oracle/backup/$d.dmp /home/oracle/backup/$d.log
前4句是設置環境變數,因為crontab定時調用時,不會使用oracle用戶的環境變數,所以要先把它們導進來。第6行以當前日期作為導出的文件名,例如20120626.dmp和20120626.log。第7行把這兩個文件打成一個zip包,並刪掉這兩個文件。
要用chmod命令把這個sh標記為可執行:
chmod +x backup.sh

用oracle用戶,輸入crontab -e命令,編輯oracle用戶的任務計劃:
[oracle@localhost backup]$ crontab -e
42 13 * * * /home/oracle/backup/backup.sh
這樣就添加了一個計劃,在每天的13點42分運行/home/oracle/backup/backup.sh。

另外,每天運行完之後,會收到mail通知,可以在mail里看出到底有沒有正確運行。

4. 實現oracle定時備份

實現定時備份需要編寫備份腳本
Linux 和 AIX 系統可以使用crontab 設置腳本執行時間;
Window有計劃任務來設置腳本執行時間。
難度在於你寫備份腳本,crontab 和windows 計劃任務網上資料一大堆。

5. linux系統上怎麼備份oracle資料庫

exp適合oracle10g,從oracle 11g開始使用expdp工具。

6. linux oracle 定時備份計劃問題

crontab 執行的腳本是以root用戶來調用的,所以必須要加上oracle用戶的環境變數如ORACLE_HOME、ORACLE_BASE、ORACLE_SID,ORACLE_HOME/bin也要加到path裡面
另外expdp_oracle.sh其他用戶也要有執行許可權
example:
vi expdp_oracle.sh
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/proct/10.2/db_1
export ORACLE_SID=orcl
export PATH=/u01/app/oracle/proct/10.2/db_1/bin;$PATH

expdp system/oracle directory=DDPDATA21 mpfile=rrq.dmp schemas= 'MMS';
wq:

7. 菜鳥求助:linux下oracle資料庫自動備份腳本,腳本可實現資料庫自動備份功能,並刪除三天前的備份

這個好辦。 cp 你的資料庫`date +'%y%m%d'` 指定目錄 這個是以年月日來命名備份 刪除的命令是
rm -f 你的資料庫名字`date -d "3 days ago" +'%y%m%d'` 這個是刪除匹配你資料庫的備份名日期前3天的備份文件 他會按照日期-3天匹配3天前的日期來刪除備份的

8. linux 下 oracle 10g 使用rman 每周執行一次 自動備份腳本如何編寫 希望能有解釋。

crontab -e
0 0 0 0 0 /script_path/your_backup_script.sh

每周日零時自動執行

9. linux執行定時備份數據腳本

對tomcat目錄,每隔4個小時進行一次備份,以當前時間進行命名

1.創建備份目錄:

mkdir:創建目錄

rmdir:刪除目錄


5.重啟crontab:

service crond restart

!!!!(*^__^*) 嘻嘻……!!!!到這里就完了!

10. oracle 自動備份的腳本 望高手給解釋

很好理解的,一句一句來:
exp CJHDJ/CJHDJ file=E:\QIAOs環境備份\資料庫每日備份\oa\gzql_oa_%date:~0,10%.dmp:

導出 CJHDJ用戶數據, 導出文件路徑為 E:\QIAOs環境備份\資料庫每日備份\oa\ ,導出文件名為gzql_oa_%date:~0,10%.dmp ,其中%date:~0,10%是取系統時間精確到日,

dir *.dmp /O:-D >dir.txt :
列出所有後綴為.dmp文件的信息記錄到dir.txt 文件中,/O:-D 是dir命令的參數,排序和顯示目錄名和文件名的順序,按日期和時間,最晚的優先。

for /F "skip=20 tokens=4" %%a in (dir.txt) do @if exist %%a del %%a:
讀取dir.txt文件中的第4列的文件名(.dmp文件)並進行刪除文件操作

在說一下為什麼要"skip=20 tokens=4" 讀取dir.txt文件中從首行開始跳過20行 ,dir.txt的第4列

因為dir.txt中前5行是驅動器,目錄等信息,所以需要跳過。而前3列為日期,時間等信息,第4列為文件名,所以取第4列

你可以試一下,執行 dir * /O:-D >d:\dir.txt
d:\dir.txt 文件內容如下:

驅動器 C 中的卷是 OS
卷的序列號是 541D-F538

C:\ 的目錄

2011-02-18 08:14 <DIR> WINDOWS
2011-02-12 18:41 <DIR> TEMP
2011-02-03 15:24 <DIR> Program Files
2011-01-18 10:16 <DIR> UXLOG

熱點內容
scratch少兒編程課程 發布:2025-04-16 17:11:44 瀏覽:620
榮耀x10從哪裡設置密碼 發布:2025-04-16 17:11:43 瀏覽:350
java從入門到精通視頻 發布:2025-04-16 17:11:43 瀏覽:64
php微信介面教程 發布:2025-04-16 17:07:30 瀏覽:290
android實現陰影 發布:2025-04-16 16:50:08 瀏覽:783
粉筆直播課緩存 發布:2025-04-16 16:31:21 瀏覽:335
機頂盒都有什麼配置 發布:2025-04-16 16:24:37 瀏覽:199
編寫手游反編譯都需要學習什麼 發布:2025-04-16 16:19:36 瀏覽:793
proteus編譯文件位置 發布:2025-04-16 16:18:44 瀏覽:351
土壓縮的本質 發布:2025-04-16 16:13:21 瀏覽:579