❶ 異地備份的實現方式
異地備份的數據復制目前有如下實現方式:
基於主機。基於主機的數據復制技術,可以不考慮存儲系統的同構問題,只要保持主機是相同的操作系統即可,而目前也存在支持異構主機之間的數據復制軟體,如BakBone NetVault Replicator就可以支持異構伺服器之間的數據復制,可以支持跨越廣域網的遠程實時復制。缺點是需要佔用一點主機資源。
基於存儲系統。利用存儲系統提供的數據復制軟體,復制的數據流通過存儲系統之間傳遞,和主機無關。這種方式的優勢是數據復制不佔用主機資源,不足之處是需要災備中心的存儲系統和生產中心的存儲系統有嚴格的兼容性要求,一般需要來自同一個廠家的存儲系統,這樣對用戶的災備中心的存儲系統的選型帶來了限制。
基於光纖交換機。這項技術正在發展中,利用光纖交換機的新功能,或者利用管理軟體控制光纖交換機,對存儲系統進行虛擬化,然後管理軟體對管理的虛擬存儲池進行卷管理、卷復制、卷鏡像等技術,來實現數據的遠程復制。比較典型的有Storag-age,Falcon等。
基於應用的數據復制。這項技術有一定局限性,都是針對具體的應用。主要利用資料庫自身提供的復制模塊來完成,比如OracleDataGuard,Sybase Replication 等。
❷ oracle備份能不能異地備份
可以,備份方式多種多樣,根據環境帶寬制定備份方案
❸ 如何實現oracle自動將資料庫備份到內網中另一台機器
首先准備一台執行備份命令的伺服器(可以是資料庫伺服器,也可以是待備份伺服器,也可以是其他機器),執行備份命令的伺服器上要需要安裝oracle伺服器客戶端,然後在這台機器上配置好待備份的資料庫的本地服務名。這樣即可執行exp命令,將該用戶下的資料庫備份到指定的本地文件夾。注意在exp命令中要使用本地服務名。如:exp
userid=userName/PassWord@localServerName
file=...
compress=y
grants=y
indexes=y
rows=y
constraints=y
owner=userName
userName:用戶名
PassWord:密碼
localServerName
:配置好的本地服務名
❹ orecal 如何進行遠程備份
你是要實時的熱備呢,還是定時備份呢,
實時熱備的話最好是選取一些軟體比如 UPM等 ,
定時備份的話那就簡單一些了,再對方的機器上開FTP,定時作備份後再上傳到遠程的主機就好了。
Oracle數據導入導出imp/exp命令
Oracle數據導入導出imp/exp就相當於oracle數據還原與備份。exp命令可以把數據從遠程資料庫伺服器導出到本地的dmp文件,imp命令可以把dmp文件從本地導入到遠處的資料庫伺服器中。 利用這個功能可以構建兩個相同的資料庫,一個用來測試,一個用來正式使用。
執行環境:可以在sqlPLUS.EXE或者DOS(命令行)中執行,
DOS中可以執行時由於 在oracle 8i 中 安裝目錄ora81BIN被設置為全局路徑,
該目錄下有EXP.EXE與IMP.EXE文件被用來執行導入導出。
oracle用java編寫,SQLPLUS.EXE、EXP.EXE、IMP.EXE這兩個文件有可能是被包裝後的類文件。
SQLPLUS.EXE調用EXP.EXE、IMP.EXE所包裹的類,完成導入導出功能。
下面介紹的是導入導出的實例。
數據導出:
1 將資料庫TEST完全導出,用戶名system 密碼manager 導出到D:chu.dmp中
exp system/manager@TEST file=d:chu.dmp full=y
2 將資料庫中system用戶與sys用戶的表導出
exp system/manager@TEST file=d:chu.dmp owner=(system,sys)
3 將資料庫中的表inner_notify、notify_staff_relat導出
exp aichannel/aichannel@TESTDB2 file= d:datanewsmgnt.dmp tables=(inner_notify,notify_staff_relat)
4 將資料庫中的表table1中的欄位filed1以"00"打頭的數據導出
exp system/manager@TEST file=d:chu.dmp tables=(table1) query=" where filed1 like '00%'"
上面是常用的導出,對於壓縮,既用winzip把dmp文件可以很好的壓縮。
也可以在上面命令後面 加上 compress=y 來實現。
數據的導入
1 將D:chu.dmp 中的數據導入 TEST資料庫中。
imp system/manager@TEST file=d:chu.dmp
imp aichannel/aichannel@HUST full=y file=d:datanewsmgnt.dmp ignore=y
上面可能有點問題,因為有的表已經存在,然後它就報錯,對該表就不進行導入。
在後面加上 ignore=y 就可以了。
2 將d:chu.dmp中的表table1 導入
imp system/manager@TEST file=d:chu.dmp tables=(table1)
基本上上面的導入導出夠用了。不少情況要先是將表徹底刪除,然後導入。
注意:
操作者要有足夠的許可權,許可權不夠它會提示。
資料庫時可以連上的。可以用tnsping TEST 來獲得資料庫TEST能否連上。
附錄一:
給用戶增加導入數據許可權的操作
第一,啟動sql*puls
第二,以system/manager登陸
第三,create user 用戶名 IDENTIFIED BY 密碼 (如果已經創建過用戶,這步可以省略)
第四,GRANT CREATE USER,DROP USER,ALTER USER ,CREATE ANY VIEW ,
DROP ANY VIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,
DBA,CONNECT,RESOURCE,CREATE SESSION TO 用戶名字
第五, 運行-cmd-進入dmp文件所在的目錄,
imp userid=system/manager full=y file=*.dmp
或者 imp userid=system/manager full=y file=filename.dmp
執行示例:
F:WorkOracle_Databackup>imp userid=test/test full=y file=inner_notify.dmp
屏幕顯示
Import: Release 8.1.7.0.0 - Proction on 星期四 2月 16 16:50:05 2006
(c) Copyright 2000 Oracle Corporation. All rights reserved.
連接到: Oracle8i Enterprise Edition Release 8.1.7.0.0 - Proction
With the Partitioning option
JServer Release 8.1.7.0.0 - Proction
經由常規路徑導出由EXPORT:V08.01.07創建的文件
已經完成ZHS16GBK字元集和ZHS16GBK NCHAR 字元集中的導入
導出伺服器使用UTF8 NCHAR 字元集 (可能的ncharset轉換)
. 正在將AICHANNEL的對象導入到 AICHANNEL
. . 正在導入表 "INNER_NOTIFY" 4行被導入
准備啟用約束條件...
成功終止導入,但出現警告。
附錄二:
Oracle 不允許直接改變表的擁有者, 利用Export/Import可以達到這一目的.
先建立import9.par,
然後,使用時命令如下:imp parfile=/filepath/import9.par
例 import9.par 內容如下:
FROMUSER=TGPMS
TOUSER=TGPMS2 (註:把表的擁有者由FROMUSER改為TOUSER,FROMUSER和TOUSER的用戶可以不同)
ROWS=Y
INDEXES=Y
GRANTS=Y
CONSTRAINTS=Y
BUFFER=409600
file==/backup/ctgpc_20030623.dmp
log==/backup/import_20030623.log
❺ oracle定時備份,用expdp的跨伺服器備份
1、按照你所說的思路,你可以寫個shell腳本:設個定時任務
第一步,先生成個dmp文件,規定命名格式
第二步,調用ftp,scp之類工具,將該dmp文件上傳到你指定的遠程伺服器上面。
2、根據你的需求,你可以考慮使用expdp的一個特性。
expdp/impdp有個network_link選項。
比如expdp,使用該選項可以直接在本地進行遠程庫的備份,並且將備份文件放在在本地。
也就是,在你的b伺服器上面直接對a伺服器上的資料庫進行expdp操作,會在b伺服器上面生成dmp文件。
具體關於network_link的用法,還需你自己加以學習。
❻ oracle 備份
手工備份
單表備份(前提庫的結構是一樣的)
導出:
開始鈕->運行->輸入CMD->進入DOS界面
EXP 用戶名/密碼@連接字元串 GRANTS=Y TABLES=(stu) file=C:\文件名.DMP
導入:
開始鈕->運行->輸入CMD->進入DOS界面
IMP 用戶名/密碼@連接字元串 IGNORE=Y TABLES=(stu) FULL=N file=C:\文件名.DMP
其中stu是你要的表名
全庫導
導出:
開始鈕->運行->輸入CMD->進入DOS界面
EXP 用戶名/密碼@連接字元串 FULL=Y file=C:\文件名.DMP
導入:
開始鈕->運行->輸入CMD->進入DOS界面
IMP 用戶名/密碼@連接字元串 FULL=Y file=C:\文件名.DMP
自動備份
建議一:
利用任務計劃、批處理文件和ORACLE的EXP導出功能,可以根據日期自動生成ORACLE備份文件,大大方便了ORACLE數據備份。:
1,批處理文件backup.bat\.
exp system/manager file=d:\backup\oracle\oracle%date:~0,10%.dmp owner=system log=d:\backup\oracle\oracle%date:~0,10%.log
將生成oracle2006-01-09.dmp文件
exp system/manager file=d:\backup\oracle\oracle%date:~11,3%.dmp owner=system log=d:\backup\oracle\oracle%date:~11,3%.log
將生成oracle星期一.dmp文件,則每周循環保留一個備份文件,共7個備份文件循環
2,添加一個任務計劃
利用任務計劃向導,根據備份策略設置自動執行任務的時間頻率(例如每天零時),執行d:\oracle\backup.bat
3、以後每天將在目錄中生成形如「oracle2005-08-31.dmp和oracle2005-08-31.log」的備份和日誌文件。
說明:
1、%date%的值在不同的系統、語言版本下可能是不一樣的,控制面板裡面區域選項的設定也會改變%date%的值。請先在命令行中測試 echo %date% 的返回值。%date:~4,10% 是返回日期函數,~後的第一個參數是要截取的起始位置(從0開始),第二個參數是要截取的長度,如沒有則是截取到最後,參數可酌情修改。
2、如需要准確的時間做為文件名,請用%time%函數,參數同上。
建議二:
@echo off
set filename=e:\data_bak\%date:~8,2%日
exp userid=user/pass@esdata file=%filename%.dmp owner=user INDEXES=y grants=y constraints=y compress=y log=%filename%.log
rar a %filename%.rar %filename%.*
del %filename%.dmp
del %filename%.log
放計劃任務裡面定時執行,
文件名以日期的day部分來命名
備份後調用rar進行壓縮
這樣可以保存一個月的歷史數據
注意:需要把program files/winrar目錄下的rar.exe拷貝到系統system32目錄下
如果是以星期命名,則需要將set filename=e:\data_bak\%date:~8,2%日修改為
set filename=e:\data_bak\%date:~0,3%
建議三:
以下為ORACLE 自動備份批處理文件內容,請配合任務計劃實現
@ECHO OFF
SET BACKPATH=d:\
ECHO 准備備份資料庫
REM 7天一個循環
IF EXIST %BACKPATH%\ONE GOTO ONE
IF EXIST %BACKPATH%\TWO GOTO TWO
IF EXIST %BACKPATH%\THREE GOTO THREE
IF EXIST %BACKPATH%\FOUR GOTO FOUR
IF EXIST %BACKPATH%\FIVE GOTO FIVE
IF EXIST %BACKPATH%\SIX GOTO SIX
IF EXIST %BACKPATH%\SEVEN GOTO SEVEN
ECHO E > %BACKPATH%\ONE
:ONE
SET BACKPATH_FULL=%BACKPATH%\ONE
REN %BACKPATH%\ONE TWO
GOTO BACK
:TWO
SET BACKPATH_FULL=%BACKPATH%\TWO
REN %BACKPATH%\TWO THREE
GOTO BACK
:THREE
SET BACKPATH_FULL=%BACKPATH%\THREE
REN %BACKPATH%\THREE FOUR
GOTO BACK
:FOUR
SET BACKPATH_FULL=%BACKPATH%\FOUR
REN %BACKPATH%\FOUR FIVE
GOTO BACK
:FIVE
SET BACKPATH_FULL=%BACKPATH%\FIVE
REN %BACKPATH%\FIVE SIX
GOTO BACK
:SIX
SET BACKPATH_FULL=%BACKPATH%\SIX
REN %BACKPATH%\SIX SEVEN
GOTO BACK
:SEVEN
SET BACKPATH_FULL=%BACKPATH%\SEVEN
REN %BACKPATH%\SEVEN ONE
GOTO BACK
:BACK
EXP TESTUSER/TEST FILE=%BACKPATH_FULL%.DMP
SET BACKPATH=
SET BACKPATH_FULL=
EXIT
建議四:
RMAN TARGET=RMAN/RMAN@ORCL < C:\RMAN.TXT
建議五:
在文本里編輯cmd命令。然後保存成bat文件。在windows中定義任務計劃,就
可以自動執行了。
例:
編輯文本文件
del c:\exp\*.dmp
exp userid=cw/cw@db file='c:\exp\*.dmp' tables=(student)
保存成bat文件
建議六:
寫個簡單的批處理文件備份恢復:
備份:
@echo off 不顯示命令行
echo 開始備份表..... 列印信息
D: DOS切換到D: 盤
cd oracle\ora92\bin 切換到cd oracle\ora92\bin目錄
exp 用戶名/密碼@資料庫 file=d:\config_bak.dmp tables=(table1,table2) 備份表一表二到d:\config_bak.dmp
echo 備份完畢!
恢復:
@echo off
echo 開始恢復表.....
D:
cd oracle\ora92\bin
imp 用戶名/密碼@資料庫 file=d:\config_bak.dmp tables=(table1,table2) ignore=y
sqlplus /nolog @oraStartup.sql>>oraStartup.log 調用sql文件
pause 執行完sql文件以後暫停,看信息
echo 恢復完畢!
編寫oraStartup.sql
conn 用戶名/密碼@資料庫 as sysdba
select * from table1;
quit;
執行環境:可以在SQLPLUS.EXE或者DOS(命令行)中執行,
DOS中可以執行時由於 在oracle 8i 中 安裝目錄\ora81\BIN被設置為全局路徑,
該目錄下有EXP.EXE與IMP.EXE文件被用來執行導入導出。
oracle用java編寫,我想SQLPLUS.EXE、EXP.EXE、IMP.EXE這倆個文件是被包裝後的類文件。
SQLPLUS.EXE調用EXP.EXE、IMP.EXE他們所包裹的類,完成導入導出功能。
下面介紹的是導入導出的實例,向導入導出看實例基本上就可以完成,因為導入導出很簡單。
數據導出:
1 將資料庫TEST完全導出,用戶名system 密碼manager 導出到D:\chu.dmp中
exp system/manager@TEST file=d:\chu.dmp full=y
2 將資料庫中system用戶與sys用戶的表導出
exp system/manager@TEST file=d:\chu.dmp owner=(system,sys)
3 將資料庫中的表table1 、table2導出
exp system/manager@TEST file=d:\chu.dmp tables=(table1,table2)
4 將資料庫中的表table1中的欄位filed1以"00"打頭的數據導出
exp system/manager@TEST file=d:\chu.dmp tables=(table1) query=\" where filed1 like '00%'\"
上面是常用的導出,對於壓縮我不太在意,用winzip把dmp文件可以很好的壓縮。
不過在上面命令後面 加上 compress=y 就可以了
數據的導入
1 將D:\chu.dmp 中的數據導入 TEST資料庫中。
imp system/manager@TEST file=d:\chu.dmp
上面可能有點問題,因為有的表已經存在,然後它就報錯,對該表就不進行導入。
在後面加上 ignore=y 就可以了。
2 將d:\chu.dmp中的表table1 導入
imp system/manager@TEST file=d:\chu.dmp tables=(table1)
導入
基本上上面的導入導出夠用了。不少情況我是將表徹底刪除,然後導入。
❼ linux 異地備份(ftp)
50 15 * * * ftp -i 10.11.68.157
ftp可能有問題,一般寫ftp的絕對目錄
還有你怎麼不把,ftp和.netrc合並,做一個文件/home/oracle/ftpback,如:
#!/bin/sh
/usr/bin/ftp machine 10.11.68.157 -u oracle -p oracle
macdef init
bin
lcd /tmp
cd /tmp
mput file.tar
bye
再
crontab -e
增加內容如下:
50 15 * * * ./home/oracle/ftpbak
❽ 求Oracle資料庫異地自動備份小程序!!!
把exp導出命令寫到文本文件中,將文件擴展名改為bat,加入到任務計劃即可實現異地自動備份。
❾ 請問oracle資料庫中的exp操作,備份文件路徑如何調整修改到異地盤上去....
在備份機上裝個客戶端...直接從備份機上備份主機上的數據...還可以減少主機的資源消耗..
還有一種就是直接將主機備份好的數據通過ftp?scp等傳輸命令..傳到備份機上去...