『壹』 有關Oracle資料庫的備份情況
一 意義 當我們使用一個資料庫時 總希望數喊者據庫的內容是可靠的 正確的 但由於計算機系統的故障(硬體故障 網路故障 進程故障和系統故障)影響資料庫系統的操作 影響資料庫中數據的正確性 甚至破壞資料庫 使資料庫中全部或部分數據丟失 因此當發生上述故障後 希望能重新建立一個完整的資料庫 該處理稱為資料庫恢復 恢復子系統是資料庫管理系統的一個重要組成部分 恢復處理隨所發生的故障類型所影響的結構而變化 二 備份的方法ORACLE資料庫有三種標準的備份 導出/導入(EXPORT/IMPORT) 冷備份 熱備份 導出備份是一種邏輯備份 這種方法包括讀取一系列的資料庫日誌 並寫入文件中 這些日誌的讀取與其所處位鄭答薯置無關 冷備份和熱備份是物理備份(也稱低級備份) 它涉及到組成資料庫的文件 但不考慮邏輯內容 下面我們分別介紹一下這三種備份方法及其特點 (一) 導出/導入(EXPORT/IMPORT)EXPORT/IMPORT是用來將ORACLE中數據移出/移入資料庫 EXPORT將資料庫中數據備份成一個二進制系統文件稱為 導出轉儲文件 (EXPORT DUMP FILE) 並將重新生成資料庫寫入文件中 它有三種模式 a 用戶模式 導出用戶所有對象以及對象中的數據 b 表模式 導出用戶所有表或者指定的表 c 整個資料庫 導出資料庫中所有對象 它的備份有三種類型 a 完全型(PLETE EXPORT) 備份整個資料庫 b 積累型(ULATIVE ERPORT) 備份上一次積累型備份所改變的數據 c 增量型(INCREAMENTAL EXPORT) 備份上一次備份後改變的數據 EXPORT 的命令可以互動式進行 各參數的具體含義見附錄 在進行導出備份時我們要考慮一點問題 那就是導出的一致性 在導出過程 中導出每讀一次就讀取一個表 因而盡管導出是在一個特點時自己開始的 但不同的表讀取的時間不同 因此 導出開始讀一個表時 此時表中的數據才是導出的數據 這樣當大多數表按內部關鍵字和外部關鍵字相互聯系時 在導出過程中這些相關聯表的改變就會導致導出的不一致性 要避開這個 我們可以將導出過程安排在不對表操作的時候進行 另外 當ORACLE中RESTRICTEP CONSISTENT 選項就可以保證導出數據一致性
IMPORT導入 導入的過程是導出的逆過程 這個命令先讀取導出來的導出轉儲二進制文件 並運行文件 恢復對象用戶和數據 IMPORT命令執行的方法和EXPORT方案有關 如果EXPORT所實施的是完全型方案(FULL)則在IMPORT時所有的數據對象 包括表空間 數據文件 用戶都會在導入時創建 但考慮到資料庫中的物理布局 預先創建表空間和用戶是有用的 如果EXPORT使用的是INCREMENTAL/CUMULATIVE方式 則需要預先設置好表空間 用戶 數據文件 (二) 冷備份冷備份發生在資料庫已經正常關閉的情況下 當正常關閉時會提供給我們一個完整的資料庫 資料庫使用的每個文件都被備份下來 這些文件包括 所有數據文件所有控制文件所有聯機REDO LOG 文件INIT ORA文件(可選)值得注意的是冷備份必須是資料庫關閉的情況下舉歲完成 當資料庫開著的時候 執行資料庫文件系統備份無效 作冷備份一般步驟是 正常關閉要備份的實例(instance); : 備份整個資料庫到一個目錄 啟動資料庫 sqlDBA>connect internalSQLDBA>shutdown normal SQLDBA>! cp <file> <backup directory>或SQLDBA>!tar cvf /dev/rmt/ /dg/oracle SQLDBA>startup
(三)熱備份(ACHIRELOG)資料庫需要二十四小時運行 而且隨時有新的數據加入 數據丟失將影響整個公司 採用archivelog mode物理備份 ?設置資料庫為automatic archivelog mode #su oracle%svrmgrl svrmgrl>connect internalsvrmgrl>startup mount svrmgrl>alter database archivelogsvrmgrl>shutdownsvrmgrl>exit%vi initoracle ora加入log_archive_start = true # if you want automatic archivinglog_archive_dest = $ORACLE_HOME/dbs/archlog_archive_format = log%s arc%dbstart%ps ef|grep archoracle : : ? : ora_arch_oracle 注 oracle database is in automatic archivelog mode
?full offline entire database backup 當資料庫初始完成後 這份備份是將來備份的基礎 它提供了所有與資料庫有關的拷貝 %dbshut%cp /oracle/oradata/oracle /system dbf /oracle/oradata/oracle /rbs dbf /oracle/oradata/oracle /temp dbf/oracle/oradata/oracle /tools dbf/oracle/oradata/oracle /users dbf/oraclecle/app/oracle/proct/ /dbs/application dbf/oracle/app/oracle/proct/ /dbs/apptmpsp dbf/oracle/app/oracle/proct/ /dbs/apprlbksp dbf/oracle/oradata/oracle /redooracle log /oracle/oradata/oracle /control ctl /oracle/oradata/oracle /control ctl /oracle/oradata/oracle /control ctl <backup directory>%dbstart 注:以上* dbf文件為數據文件 * log文件為日誌文件 * ctl文件為控制文件%exit %tar uvf /dev/rmt/ <backup files> 注:如果為oracle 則 相應的 data files relog files control files
每天做一次 partial online with archiving backups #su oracle%svrmgrl%svrmgrl>connect internal%svrmgrl>alter tablespace billsp begin backup%svrmgrl>alter tablespace billtmpsp begin backup%svrmgrl>alter tablespace billrlbksp begin backup%svrmgrl>alter tablespace system begin backup %svrmgrl>alter tablespace rbs begin backup%svrmgrl>alter tablespace temp begin backup%svrmgrl>alter tablespace tools begin backup %svrmgrl>alter tablespace users begin backup %svrmgrl>host cp all datafile to the backup storage #文件名如第一步中以 dbf結尾的 %svrmgrl>alter tablespace billsp end backup%svrmgrl>alter tablespace billtmpsp end backup%svrmgrl>alter tablespace billrlbksp end backup%svrmgrl>alter tablespace system end backup %svrmgrl>alter tablespace rbs end backup%svrmgrl>alter tablespace temp end backup%svrmgrl>alter tablespace tools end backup %svrmgrl>alter tablespace users end backup
做一個sql文件 如上所寫
The billing system can recover to the point of failure when the failure occur
七 備份文件的恢復 恢復文件 以下是對"/etc/passwd"文件的恢復( 放入正確的磁帶( 運行以下命令恢復"/etc/passwd"文件# rsh mt f /dev/rmt/ rew( 找到最近的磁帶 向前進帶到最近的"/etc/passwd" 比如要找星期三的"/etc/passwd"文件 運行如下命令)#rsh mt f /dev/rmt/ n fsf # ufsrestore if :/dev/rmt/ nufsrestore > ls. etc/ufsrestore > cd etc ufsrestore > ls./etc passwfsrestore > add passwdWarnign ./etc File existsufsrestore > verboseverbose mode onufsrestore > extractExtract requested filesYou have not read any volumes yet .Unless you know which volume your file(s) are on you should start witch the last volume and work to wards the first.Specify next volume # extract file ./etc/passwdAdd linksSet directory mode ower and times.set owner /mode for . ?(yn)nDirectories already exit set mode anyway?(yn)yufsrestore >quit 熱備份可以在資料庫打開打情況下進行 一般通過使用Alter命令改變表空間的狀態來開始進行備份的 備份完成後 要恢其原來狀態 否則redo log 會錯配 引起資料庫下次啟動時對受影響的表空間進行完全覆蓋 熱備份的要求是 熱備份工作必需要求資料庫在Archivelog 方式下操作 在SQLDBA狀態下用alter database archivelog|noarchivelog命令可改變備份的模式 熱備份只能在資料庫不使用或使用率低的情況下進行 熱備份需要大量的檔案空間 一般情況 Oracle 以循環的方式寫入Online redo log 文件 當填滿第一個redo log文件後寫第二個 直至最後一個 最後一個被填滿後 後台進程LGWR就覆蓋第一個 在Archivelog方式下 後台進程ARCH在每一個redo log 文件被覆蓋前 給它作一個拷貝 一般 這些文檔的redo log 文件被寫入磁碟或磁帶中 如果磁碟空間夠用 建議使用磁碟 這樣可大大減少完成備份所需的時間 在作熱備份之前 要將config ora文件中的log_archive_start 設為true 將log_archive_dest規定archive redo log 文件的位置 log_archive_dest=/dg/oracle/arch/archlog_archive_start=true一旦資料庫運行在archivelog狀態下 就可以作備份了 熱備份的命令文件由三部分組成 數據文件一個表空間一個空間地備份 a 設置表空間為備份狀態 b 備份表空間的數據文件 c 恢復表空間為正常狀態 備份歸檔要作log 文件 a 臨時停止歸檔進程b log下那些在archive redo log目標目錄中的文件c 重新啟動archive進程d 備份歸檔的redo log 文件 用alter database backup controlfile命令來備份拷貝文件在熱備份運行之前log_archive_dest目錄可能已滿 這時就要備份目錄 然後刪除文件 釋放空間 這個過程有如下步驟 暫時停止archive進程 記錄在log_archive_dest目錄下的文件 重新啟動archive 進程 備份archive redo log 文件 刪除目錄中的文件 sqldba lmode=y <<EOF arch archive log stop;exitEOF arch FILES= ls /dg/oracle/arch/arch* dbf ;sqldba lmode=y<<EOF arch connect internalarchive log start;exitEOF arch tar rvf /dev/rmt/ FILESrm f $FILES
邏輯備份與物理備份的結合 前面介紹了三種備份的方法 在資料庫做備份時 應該將數據這三種備份的特點靈活運用 我們首先比較一下三種方法的特性
方 法類 型恢 復 特 性EXPORT導出邏輯型可以將任何資料庫對象恢復到它被導出時的狀態乻hutdown?將最近es of datafile 拷貝到$oracle_home/dbs目錄 ?%svrmgrl?svrmgrl>connect internal…svrmgrl>startup mount pfile=filename exclusive?svrmgrl>alter database recover;注:將自動恢復數據到the point of failure;? svrmgrl>alter database open; ?當archive log文件過多時 在 做過部分備份後 可將current log sequence 之前的log*** arc刪除 #su oracle%svrmgrlsvrmgrl>connect internal;svrmgrl>archive log list; #此處標有current log sequence 假設為 Svrmgrl>exit$cd /billdg/oracle/app/oracle/proct/ /dbs/arch$ rm #將log arc之前的文件如log arc log arc 刪除 冷 備 份物理型可將資料庫到它被關閉的狀態熱 備 份物理型可將資料庫恢復到任一時間點的狀態
當資料庫比較小時 處理業務也小時 冷備份導出就可以了 如果只對一兩個表備份導出就夠了 一般來說一個好 備份最終執行總包括邏輯和物理 導出確認資料庫在邏輯的正確性而物理備份確保物理 另外 在進行備份時需要一些存儲介質 對於這些介質應該對其作好管理 根據備份的內容 日期將介質統一編號 以免備份和恢復時弄錯介質 造成原有的備份丟失 介質應存放在與計算機設備不同的地點 以免機房發生意外時 備份與計算機設備一同損壞
附錄 tar命令tar option [arguments] filename option:c:創建一個由命令行指定的新的tarfilet:列出tarfile中的內容x:打開tarfile;f:使用其後的filename 或/dev/rmt/ | v:列出被恢復的文件名 p:恢復文件example:#tar cvf /dev/rmt/ /oracle備份/root 下的所有內容#tar tvf /dev/rmt/ 列出磁帶上的所有內容#tar xvf /dev/rmt/ /oracle將磁帶上的/oracle目錄中的內容恢復到當前目錄中
導出選項關鍵字 內 容 USERID 運行導出命令的帳號的用戶名/口令 BUFFEER 用來取數據行的緩沖區的大小 FILE 導出轉儲文件的名字PRESS 導出是否應該壓縮有碎片的段成一個范圍 這將會影響STORAGE 子句 GRANTS 導出時否要導出資料庫對象上的授權INDEXES 是否要導出表上的索引ROWS 是否應導出行 如它為 N 那麼在導出文件中僅生成資料庫 對象的DDLCONSSTRAINTS 是否導出表舊的約定條件FULL 如設為 Y 那麼將執行一個整個資料庫導出操作OWNER 要導出的一系列資料庫帳號 然後執行這些帳號的USER導出操 作TABLES 要導出的一系列表 執行這些表的TABLE導出操作RECORDLENGTH 轉儲導出文件日誌的長度(以位元組為單位) 通常都使用預設 除非要在兩個不同操作系統中傳遞導出文件INCTYPE 正在執行的導出操作的類型(有效值有 PLETE (預設值) CUMULATIVE 和 IVCREMENTAL )RECORD 在增量導出類型中的一個標記 標明是否將日誌存儲到數據字典中日誌導出的表中PARFILE 要傳遞給導出的參數文件的名字 這個文件將包含所有參數的入口項ANALYZE 標明是否將移對象的統計信息寫入導出轉儲文件中CONSISTENT 標明是否保留所有導出對象的讀取一致復制 LOG 導出日誌將要寫入的文件的名字MLS 標明是否要導出MLS 標號MLS_LABEL_ 規定了MLS標號的格式
導入選擇項USERID 運行導入命令的帳號的用戶名/口令 BUFFEER 用來取數據行的緩沖區的大小 FILE 導入轉儲文件的名字SHOW 規定文件內容是否被顯示 而不是被執行 EGORE 標明在執行 CREATE 命令時 是否忽略遇到的錯誤 如果正在導入的對象已經存在時 應使用這個參數 FULL 如設為 Y 那麼將執行一個整個資料庫導入操作FROMUSER 在FULL=N的情況下 才有參數 它是一系列的資料庫帳號 其對象應從導出轉儲文件中讀取 TOUSER 一系列資料庫帳號 導出轉儲文件扣的對象將要導入這些帳號 GRANTS 導入時否要導入資料庫對象上的授權INDEXES 是否要導入表上的索引ROWS 是否應導入行 如它為 N 那麼在導入文件中執行資料庫對象的DDLFULL 如設為 Y 那麼將執行一個整個資料庫導出操作TABLES 要導入的一系列表RECORDLENGTH 轉儲導入文件日誌的長度(以位元組為單位) 通常都使用預設 除非要在兩個不同操作系統中傳遞導入文件INCTYPE 正在執行的導入操作的類型(有效值有 PLETE (預設值) CUMULATIVE 和 IVCREMENTAL )PARFILE 要傳遞給導入的參數文件的名字 這個文件將包含所有參數的入口項ANALYZE 標明是否將移對象的統計信息寫入導入轉儲文件中LOG 導入日誌將要寫入的文件的名字MLS 標明是否要導入MLS 標號
熱備份的命令文件 ORACLE_SID=oracle ORACLE_HOME=/dg/oraclesqldba lmode=y<<EOF arch connect internalalter tablespace SYSTEM begin backup;!tar cvf /dev/rmt/ /dg/oracle/dbms/sys dbfalter tablespace SYSTEM end backup;
alter tablespace BWT begin backup;!tar cvf /dev/rmt/ /dg/oracle/dbms/BWT dbfalter tablespace BWT end backup;
archive log stopexitEOF arch FILES= ls /dg/oracle/arch/arch* dbf ;
sqldba lmode=y<<EOF arch connect internalarchive log start;exitEOF arch
tar rvf /dev/rmt/ $FILESrm f $files
sqldba lmode=y<<EOFarch alter database backup controlfile to /dg/oracle/dbms/bwtcontrfile backup ;exitEOF arch
lishixin/Article/program/Oracle/201311/17668
『貳』 oracle資料庫如何備份與恢復
Oracle資料庫的備份與恢復有漏桐中三種標準的模式,大致分為兩大類,備份恢復(物理上的)以及導入導出(邏輯上的)。物理備份又可以根據資料庫的工作模式分為非歸檔模式(Nonarchivelog-style)和歸檔模式(Archivelog-style),通常,我們把非歸檔模式稱為冷備份,而相應的把歸檔模式稱輪核為熱備份。
冷備份是指在資料庫關閉的情況下對數據文件、控制文件和重做日誌文件進行拷貝。冷備份的優點是簡單、快速、安全,缺點是需要停機維護,影響業務連續性。
熱備份是指在數返山據庫開啟並處於歸檔模式下對數據文件進行拷貝。熱備份的優點是不需要停機維護,不影響業務連續性,缺點是比較復雜、耗時、佔用資源。
導入導出是指使用EXP/IMP或者數據泵技術將資料庫中的對象或者數據導出到一個二進制文件中,並且可以將這個文件導入到另一個資料庫中。導入導出的優點是靈活、方便、可移植,缺點是不能保證一致性、效率低、不能恢復系統對象。
『叄』 怎麼從oracle資料庫備份資料庫(oracle資料庫備份)
1、首先先確認oracle伺服器上oracle中標紅的相關的服務是否已經正常啟動。
2、然後要把PLSQL關閉,讓連接先退出一下,確保斷開資料庫的所有連接,如果資料庫中有正在連接客戶端,備份的時候可能會出現異常。
3、接著打開cmd命令提示符窗口,輸入備份資料庫的命令,xp命令的後面跟用戶名和密碼,file是備份的路徑,owner則是資料庫的用戶名,侍晌按下回車鍵等待備份。
4、耐心等待。當數據完成導出之後,cmd窗口中會出現的提示語,這就表示御山已經完成了資料庫備份導出的動作。
5、這時候在計算機中找到第四步中設定的文件保存路徑,如下截圖,你會發現多了一個dmp的文件,這個文件就是我老拆鋒們需要的備份文件了。
『肆』 oracle 資料庫備份詳細步驟是什麼
oracle 資料庫備份的步驟是:
直接通過exp命令備份需要內容就可以了。可以參考下以下導出備份的方法:
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%'"
『伍』 oracle資料庫有哪幾種標准備份方式
【答案】: 1.導出/導入(EXP/IMP)。枝悔
2.熱備份。
3.冷備份。
導跡搭老出姿升備件是一種邏輯備份,冷備份和熱備份是物理備份。
『陸』 怎樣備份oracle資料庫里其中的一張表的完整數據包括約束等等
1.首先,確認oracle伺服器上用oracle紅色標記的相關服務是否已經正常啟動,如下圖。
『柒』 如何做Oraclel資料庫數據備份
EXP和IMP是Oracle提供的一種邏輯州亮洞備份工具。邏輯備份創建資料庫對象的邏輯拷貝並存入一個二進制轉儲文件。這種邏輯備份需要在資料庫啟動的情況下使用, 其導出實質就是讀取一個資料庫記錄集(甚至可以包括數據字典)並將這個記錄集寫入一個文件,這些記錄的導出與其物理位置無關,導入實質就是讀取轉儲文件並執行其中的命令。此備份方式是通過Oracle的實用工具export和import來實施的, export是把資料庫中的數據導出,import是把export卸出的數據導鍵兆入資料庫中。通過此工具可以衍生出多種功能, 比如整個冊枯資料庫的備份、表結構重建、數據的傳輸、用戶的改變等等。
也可以採用專業的容災備份軟體對ORACLE數據進行備份。實時數據備份的軟體現在很多,CDP容災備份方案(備特佳備份軟體)在RPO和RTO兩項指標上優勢明顯,可以實現數據的實時備份,保障業務系統的連續性。有數據級和應用級兩種容災方案。
『捌』 oracle資料庫怎樣使用備份
先確認oracle伺服器上oracle如下截圖中標紅的相關的服務是否已經正常啟動。