oracle自動備份linux
如果是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里看出到底有沒有正確運行。
⑵ linux系統上怎麼備份oracle資料庫
exp適合oracle10g,從oracle 11g開始使用expdp工具。
⑶ oracle中怎麼設置資料庫自動備份
Oracle自動備份的三種方法:x0dx0aOracle自動備份資料庫不外乎以下三種方式:x0dx0aWINDOWS下的任務計劃(At命令)x0dx0aUNIX下的Crontab x0dx0a第三方工具如Viritasx0dx0a在以上三種方式中Viritas屬於第三方工具,很多人可能都沒有接觸,主要說一下windows的任務計劃與unix的cronx0dx0a1、生成腳本文件,如backup.rcv 假定文件內容如下:x0dx0a$>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; }x0dx0ax0dx0a2、生成執行文件在windows上生成backup_archive.bat,內容包括rman cmdfile = backup.rcv 在unix下生成 backup_archive.sh,內容包括oracle/ramn/rman cmdfile = backup.rcvx0dx0a3、加入調度在windows中用任務計劃向導即可,或使用at命令。在unix中,在目標機器上編寫一個文件,用以啟動Oracle自動備份進程。假定文件名為ORACLE,文件將放在/var/spool/cron/crontabs目錄下x0dx0a$>cat oracle x0dx0a0 23 * * 0 backup_archive.sh x0dx0a#表示星期天23點對資料庫備份 x0dx0a0 12,18 * * * backup_archive.sh x0dx0a #表示每天12點,18點備份 x0dx0aCrontab文件的每一行由六個域(minutes,hours,day of month,month,day of week,command)組成,域之間用空格或Tab分隔開來。
⑷ linux系統上怎樣備份oracle資料庫
步驟以下:1、編寫備份資料庫的shell
1、創建保存shell文件的文件夾,2、文件內容為:#!/bin/sh
PATH=$PATH:$HOME/bin
export
PATH
ORACLE_BASE=/u01/app/oracle
export
ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/proct/10.2.0/db_1
export
ORACLE_HOME
ORACLE_SID=HRDB
export
ORACLE_SID
PATH=/usr/sbin:$PATH
PATH=$ORACLE_HOME/bin:$PATH
export
PATH
exp
fact/fact
file=/backup/fact`date
+%y%m%d`.dmp
log=/backup/factlog`date
+%y%m%d`.log
shell文件編寫終了1、運行以上的shell文件看是不是能生成備份的.dmp文件,如果能則表示shell文件編寫成功
2、然後在此shell文件的所在終端輸入命令,將此文件授權讓root用戶可以履行:
3、命令為:chmod
+x
backup.sh
4、然後到root終端編寫定時備份的語句5、語句為:crontab
–e
6、輸入i
7、輸入10
17
,,,/home/backupscript/backup.sh
8、按下esc建,輸入:wq
退出並保存便可。
⑸ 菜鳥求助:linux下oracle資料庫自動備份腳本,腳本可實現資料庫自動備份功能,並刪除三天前的備份
這個好辦。 cp 你的資料庫`date +'%y%m%d'` 指定目錄 這個是以年月日來命名備份 刪除的命令是
rm -f 你的資料庫名字`date -d "3 days ago" +'%y%m%d'` 這個是刪除匹配你資料庫的備份名日期前3天的備份文件 他會按照日期-3天匹配3天前的日期來刪除備份的
⑹ linux oracle 怎麼備份
步驟如下:
一、編寫備份資料庫的shell
1、創建保存shell文件的文件夾,
2、文件內容為:
#!/bin/sh
PATH=$PATH:$HOME/bin
export PATH
ORACLE_BASE=/u01/app/oracle
export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/proct/10.2.0/db_1
export ORACLE_HOME
ORACLE_SID=HRDB
export ORACLE_SID
PATH=/usr/sbin:$PATH
PATH=$ORACLE_HOME/bin:$PATH
export PATH
exp fact/fact file=/backup/fact`date +%y%m%d`.dmp
log=/backup/factlog`date +%y%m%d`.log
shell文件編寫完畢
一、運行以上的shell文件
看是否能生成備份的.dmp文件,如果能則表示shell文件編寫成功
二、然後在此shell
文件的所在終端輸入命令,將此文件授權讓root用戶可以執
⑺ oracle資料庫自動備份系統
Oracle Database,又名Oracle RDBMS,或簡稱Oracle。是甲骨文公司的一款關系資料庫管理系統。它是在資料庫領域一直處於領先地位的產品。下面我為大家分享一下oracle資料庫自動備份系統的 方法 ,有需要的可以參考一下!
oracle資料庫自動備份系統
實現過程:
1. 建立文件 backup.bat (自定義文件名.bat)
@echo off
REM ###########################################################
REM # Windows Server 2003下Oracle資料庫自動備份批處理腳本
REM ###########################################################
REM 取當前系統時間,可能因 操作系統 不同而取值不一樣
set CURDATE=%date:~0,4%%date:~5,2%%date:~8,2%
set CURMON=%date:~0,4%%date:~5,2%
set CURTIME=%time:~0,2%
REM 小時數如果小於10,則在前面補0
if "%CURTIME%"==" 0" set CURTIME=00
if "%CURTIME%"==" 1" set CURTIME=01
if "%CURTIME%"==" 2" set CURTIME=02
if "%CURTIME%"==" 3" set CURTIME=03
if "%CURTIME%"==" 4" set CURTIME=04
if "%CURTIME%"==" 5" set CURTIME=05
if "%CURTIME%"==" 6" set CURTIME=06
if "%CURTIME%"==" 7" set CURTIME=07
if "%CURTIME%"==" 8" set CURTIME=08
if "%CURTIME%"==" 9" set CURTIME=09
set CURTIME=%CURTIME%%time:~3,2%%time:~6,2%
REM 設置所有者、用戶名和密碼
set OWNER=orcl
set USER=bktcgl
set PASSWORD=bktcgl
REM 創建備份用目錄,目錄結構為oraclebak/YYYYMMDD/
if not exist "oraclebak" mkdir oraclebak
cd oraclebak
if not exist "%CURMON%" mkdir %CURMON%
set FILENAME=%CURMON%/%OWNER%_%CURDATE%_%CURTIME%.DMP
set EXPLOG=%CURMON%/%OWNER%_%CURDATE%_%CURTIME%_log.log
REM 調用ORACLE的exp命令導出用戶數據
exp %USER%/%PASSWORD%@%OWNER% file=%FILENAME% log=%EXPLOG% owner=%USER% grants=n
exit
註:
1.bat文件可雙擊或直接在命令行執行,檢查正確與否
2.檢查時可注釋掉exit
3.以上文件實現按月份創建文件夾,按時間生成備份文件
2.建立windows任務
步驟:
開始 -> 所有程序 -> 附件 -> 系統工具 -> 任務計劃程序 -> 操作 -> 創建基本任務
-> 任務名輸入"oracle_backup"(自定義任務名),執行這個任務選擇每天,下一步
-> 起始時間下午12:00,起始日期2012-7-11,下一步 ->(啟動程序)下一步
->在 瀏覽 中查找剛剛寫好的 backup.bat 文件 >下一步 > 完成
註:
1.在任務計劃欄目下新增一個名為"oracle_backup"的任務計劃,表明已經配置完畢。
2.不同系統的任務計劃略有不同,但基本換湯不換葯,不做一一例舉
問題:系統警告"已創建新任務,但可能不能運行,因為無法設置賬戶信息。指定的錯誤是:Ox80041315:任務計劃程序服務沒有運行"
原因:電腦的任務計劃程序服務沒有啟動起來。
解決:開始 > 所有程序 > 管理工具 > 服務,找到"Task Scheler"服務,發現啟動類型為"已禁用",
右鍵單擊更改為"自動",並把它啟動起來,然後重新添加一次任務計劃就可以了。
3.簡單解釋
1. bat:是dos下的批處理文件。批處理文件是無格式的文本文件,它包含一條或多條命令。在命令提示下鍵入批處理文件的名稱,或者雙擊該批處理文件,系統就會調用 Cmd.exe按照該文件中各個命令出現的順序來逐個運行它們。
2. Echo 命令:打開回顯或關閉請求回顯功能,或顯示消息。
3. @ 命令:表示不顯示@後面的命令
4. Rem 命令:注釋命令
5. If命令:if表示將判斷是否符合規定的條件,從而決定執行不同的命令。
6. exit :退出命令行
7. GRANTS: 是許可權的意思,在你導出的目標資料庫中可能會有一些表的如select 許可權等賦給了別的用戶。
【GRANTS=Y】導出的時候將這些許可權導出,導入的時候將這些許可權導入。
【GRANTS=N】許可權不被導入。
⑻ linux oracle 自動備份詳解
寫個備份腳本,然後將腳本添加到crontab中,就可以自動執行備份了。