有很多:
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了馬山免費建站歡迎大家使用!
1.冷備份,停掉數(shù)據(jù)庫,然后備份文件系統(tǒng)
2.熱備份,不同的版本使用的流程和命令不太一樣
3.rman備份,利用rman工具備份數(shù)據(jù)庫或者歸檔日志
4.導(dǎo)出、導(dǎo)出,就是用exp和imp命令進行備份。
具體的可以看看這個鏈接,google或者百度一下,也可以
昨天碰到一客戶,數(shù)據(jù)庫使用的是WIN2008+RAC+ASM。由于EMC存儲問題,導(dǎo)致ASM實例出問題,讀不出數(shù)據(jù),進而導(dǎo)致RAC出問題。折騰了2個小時,終于將ASM實例啟動,將RAC轉(zhuǎn)換成單節(jié)點??杀氖?,ASM磁盤組讀取錯誤:select 表格出錯,exp、expdp出錯,rman拷貝出錯。趕到客戶現(xiàn)場,繼續(xù)折騰,終于修復(fù)錯誤。簡要步驟如下 1、同一主機下面建另一實例,用于運行DBMS_FILE_TRANSFER 2、在該實例上運行DBMS_FILE_TRANSFER,拷貝數(shù)據(jù)文件,控制文件,日志文件 引用 CREATE DIRECTORY source_dir AS '+DATADG/ORADATA'; CREATE DIRECTORY dest_dir AS '/tmp';BEGIN DBMS_FILE_TRANSFER.COPY_FILE( source_directory_object = 'source_dir', source_file_name = 'user01.dbf', destination_directory_object = 'dest_dir', destination_file_name = 'user01.dbf'); END; /二是使用ASM提供的ftp特性 1、同一主機下面建另一實例,用于傳輸ftp 2、用ftp傳輸相關(guān)文件附:DBMS_FILE_TRANSFER使用限制 # The user must have read privilege on the source directory object and write privilege on the destination directory object. # The procedure converts directory object names to uppercase unless they are surrounded by double quotes. # Files to be copied must be multiples of 512 bytes in size. # Files to be copied must be equal to or less than 2 terabytes in size. # File transfers are not transactional. # Files are copied as binary, so no character conversions are performed. # File copies can be monitored using the V$SESSION_LONGOPS view ++++++++++++++++++++++++++ 據(jù)一同事反映,Oracle 11g提供了ASM cp命令,允許在ASM磁盤組和操作系統(tǒng)文件之間互相拷貝。
1. 復(fù)制舊的數(shù)據(jù)庫文件
(1) 用SQLPlus連接數(shù)據(jù)庫:sqlplus 用戶名/密碼 as sysdba
(2) 關(guān)閉DB :shutdown immediate;
(3) 復(fù)制文件到其他地方存儲實現(xiàn)備份
1)復(fù)制三個文件夾admin;oradata(datafile,?controlfile,redo【注:數(shù)據(jù)文件, 控制文件,redo】);flash_recovery_area三個文件夾。2)dbhome_1下的內(nèi)容database(PWDfile、pfile);dbs(spfile);NETWORK/ADMIN(listener.ora、tnsnames.ora)。
2. Oracle重新建庫恢復(fù)
(1)創(chuàng)建一個和原來一樣的數(shù)據(jù)庫。(安裝路徑和數(shù)據(jù)庫名必須和原來一致)
(2)停止數(shù)據(jù)庫shutdown immediate;
(3)復(fù)制安裝目錄下的admin、oradata、flash_recovery_area覆蓋,復(fù)制database(PWDfile、pfile) 覆蓋
(4)啟動數(shù)據(jù)庫?startup;
備注:
無歸檔模式:將備份文件拷貝回原來的目錄即可,然后啟動數(shù)據(jù)庫。
歸檔模式:
①將數(shù)據(jù)文件、控制文件拷貝回原來目錄
②SQLstartup mount;
SQLrecover database using backup controlfile;
③將相應(yīng)的歸檔日志和聯(lián)機日志拖到CMD命令窗口進行跑日志。
④SQLalter database open resetlogs;
3. 軟件重裝恢復(fù)
此時,操作系統(tǒng)重裝,如果做冷備恢復(fù),要保證相同操作系統(tǒng),相同的數(shù)據(jù)庫版本。形勢如同異機恢復(fù)。
A、不創(chuàng)建實例:(源機上的數(shù)據(jù)庫名字為orcl)
(1)?恢復(fù)oradata/orcl目錄
在目標機上的oradata目錄下建立orcl文件夾,然后進行數(shù)據(jù)覆蓋。
包括數(shù)據(jù)文件、參數(shù)文件、控制文件、日志文件、pwd文件,放在與原系統(tǒng)相同的目錄。如果目錄有所改變,則需要另外建立控制文件,修改pfile。?(2) 恢復(fù)admin/orcl目錄在目標機上的admin目錄下建立orcl文件夾,然后在orcl里面再建立adump、bdump、cdump、udump、dpdump、pfile六個文件夾
(3) 建立服務(wù)把源機的密碼文件拷貝到目標機的database目錄下。使用oradim命令在cmd下oradim -new -sid orcl?表示建立一個服務(wù),sid為orcl(最好名字和源機備份的數(shù)據(jù)庫名字一致,就不需要重建密碼文件)。如果是在linux下,不需要此步。?(4) 重建創(chuàng)建參數(shù)文件、控制文件拷貝源機的pfile到目標機的一個目錄下,修改pfile里面相關(guān)文件的路徑。然后通過SQLcreate spfile from pfile=‘文件路徑'來創(chuàng)建參數(shù)文件。重建控制文件命令:SQLalter database backup controlfile to trace;?然后會在udump文件夾下產(chǎn)生一個追蹤文件,打開文件找到如下一段,復(fù)制到文本中,修改相應(yīng)路徑然后保存為:createctl.sql文件(sql腳本文件),復(fù)制到目標機上。注意:SQLalter database backup controlfile to trace as 'F:/DB_RECOVERY/CONTROL_FILE_TRACE.TXT';復(fù)制的原始導(dǎo)出txt中的,相應(yīng)代碼片段如下:?View Code
(5)? 數(shù)據(jù)庫設(shè)置SID和啟動服務(wù)
12345678 ? ?c:\set?ORACLE_SID=orclc:\sqlplus?"/as sysdba"?SQLcreate?spfile?from?pfile='c:\pfile.txt';SQL@c:\createctl.sql;SQLshutdown immediate;SQLstartup;SQLalter?database?open?resetlogs; ?
備注:
如果(4)、(5)不好用,可以用下面的方法修改這些路徑不一致的問題(反正筆者電腦上冷備份恢復(fù)時,上面的兩個步驟就不好用):
1)SQL下執(zhí)行如下語句,恢復(fù)控制文件
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS? ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
2)修改日志、DBF的路徑
修改oracle_home\oradata\orcl下及相關(guān)文件的路徑
(6) TNSNAMES設(shè)置在network\admin下的tnsnames.ora中添加如下片段
123456789 ? ?ORCL =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl))) ?
(7) 建立監(jiān)聽用net configuration為orcl實例新建監(jiān)聽?至此,冷備份恢復(fù)成功。即使你現(xiàn)在用oem打開數(shù)據(jù)庫時發(fā)現(xiàn)提示找不到sid ,但實際上你已經(jīng)成功了,此時只需要重啟一下的你的服務(wù)器就可以。
B、創(chuàng)建實例方式(實例SID與源機數(shù)據(jù)庫SID一致)
(1) 替換和覆蓋oradata\orcl目錄刪除目標機的oradata\orcl底下的所有文件,把源機的所有data文件、redo文件拷貝到此目錄下
(2) 密碼文件覆蓋刪除目標機的密碼文件,拷貝源機密碼文件到目標機下。
(3) 控制文件恢復(fù)在源機上重建目標機的控制文件:SQLalter database backup controlfile to trace;然后會在udump文件夾下產(chǎn)生一個追蹤文件,打開文件找到上面那段,復(fù)制到文本中,修改相應(yīng)路徑然后保存為:createctl.sql文件(sql腳本文件),復(fù)制到目標機上。
復(fù)制代碼代碼如下:
12345 ? ?c:\sqlplus?"/as sysdba"SQL@c:\createctl.sql;SQLshutdown immediate;SQLstartup;SQLalter?database?open?resetlogs; ?
(4)? 在network\admin下的tnsnames.ora中添加如下片段
復(fù)制代碼代碼如下:
123456789 ? ?ORCL =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl))) ?
(5) 用net configuration為orcl實例新建監(jiān)聽
若是初學(xué)Linux的話建議看看《Linux就該這么學(xué)》這本書。
Oracle數(shù)據(jù)庫備份方式
Oracle的內(nèi)核提供數(shù)據(jù)庫的備份和恢復(fù)機制,SQL*DBA按表空間進行數(shù)據(jù)的備份和恢復(fù)。Oracle提供兩種方式:備份恢復(fù)和向前滾動,保證意外故障恢復(fù)數(shù)據(jù)庫的一致性和完整性。
1. 備份恢復(fù)方式
對數(shù)據(jù)庫的某個一致狀態(tài)建立副本,并儲存在介質(zhì)上脫機保存,以此作為數(shù)據(jù)庫恢復(fù)的基礎(chǔ)。現(xiàn)以O(shè)racle實用程序Export/Import來介紹備份恢復(fù)方式。
Export/Import是Oracle提供的兩個互補性程序,即卸載和裝載。它們既完成數(shù)據(jù)庫與操作系統(tǒng)文件的互為轉(zhuǎn)載,同時可以有效地回收數(shù)據(jù)庫的碎片,提供不同版本間Oracle 數(shù)據(jù)傳送的手段,進行不同用戶間的數(shù)據(jù)傳送。
Export數(shù)據(jù)卸載,將數(shù)據(jù)從Oracle寫到指定的操作系統(tǒng)文件進行備份。卸載的對象、內(nèi)容與數(shù)量有三種模式:TABLE MODE(表模式)、USER MODE(用戶模式)、FULL DATABASEM ODE(所有數(shù)據(jù)庫模式)。使用方式既可用交互方式,也可采用命令行方式,以"關(guān)鍵字=值" 將所需信息在命令行中逐一描述來進行卸載。Export要求用戶具有CONNECT或DBA特權(quán)。
Import與Export互逆,將操作系統(tǒng)文件重新裝載至Oracle數(shù)據(jù)庫中,使用方式如Expo rt。使用者要求具有CONNECT和RESOURCE特權(quán),且可選擇部分或全部裝入。
Export/Import非常方便,系統(tǒng)開銷小,它的限制是輸出的操作系統(tǒng)文件采用專門的壓縮方式存放,僅提供給Import使用。
也可采用SQL*PLUS和SQL*LOADER實用工具進行備份。使用SQL*PLUS的SPOOL命令通過脫機定向輸出,使用PLUS格式化結(jié)果,形成指定格式的ASCII文件,需要時可用SQL*LOADER 進行加載。它的方便之處是ASCII文件可以編輯,可方便地加載至其他數(shù)據(jù)庫(如FoxPro、 Sybase中)。
2. 向前滾動方式
Oracle提供向前滾動方式,使建立備份后成功的事務(wù)不會丟失?;謴?fù)的基礎(chǔ)是數(shù)據(jù)庫的某個一致性狀態(tài)(即方式1完成的備份恢復(fù)),恢復(fù)的依據(jù)是存檔的重作記錄文件。啟動重作記錄文件方法如下:
(1) 啟動Oracle;
(2) 連接Oracle:CONNECT SYSTEM/PASSWORD;
(3) 啟動ARCHIVE LOG。
出現(xiàn)介質(zhì)故障時,可用SQL*DBA的RECOVER命令,利用存檔的重作記錄文件恢復(fù)一個或多個表空間。RECOVER命令對DATABASE或TABLASPACE進行恢復(fù)。前者要求SQL*DBA START UP已被排斥方式裝載且未被打開;后者對無活躍回退段的表空間執(zhí)行脫機,要求數(shù)據(jù)庫已裝載且被打開。
由于向前滾動方式恢復(fù)的依據(jù)是存檔的重作記錄文件,因而系統(tǒng)開銷大,但恢復(fù)的是建立備份以后的成功事務(wù),所以恢復(fù)的程度更高、更完備。
IT JOB
Oracle的數(shù)據(jù)備份主要有冷備、熱備和數(shù)據(jù)導(dǎo)出。針對不同的數(shù)據(jù)安全要求,可以采用不同的備份方式,目前生產(chǎn)系統(tǒng)比較常用的是熱備份,安全性較高。
下面是種方式的優(yōu)缺點介紹:
冷備份是Oracle最簡單的一種備份;執(zhí)行冷備份前必須關(guān)閉數(shù)據(jù)庫;然后使用操作系統(tǒng)實用工具或者第三方工具備份所有相關(guān)的數(shù)據(jù)庫文件。
優(yōu)點:能簡單快速地備份。能簡單快速地恢復(fù)。執(zhí)行簡單。
缺點:必須關(guān)閉數(shù)據(jù)庫,只能恢復(fù)備份時的狀態(tài)。
熱備份是當(dāng)數(shù)據(jù)庫正在運行時進行數(shù)據(jù)備份的過程。執(zhí)行熱備份的前提是:數(shù)據(jù)庫運行在可歸檔日志模式。適用于24X7不間斷運行的關(guān)鍵應(yīng)用系統(tǒng)。
優(yōu)點:備份時數(shù)據(jù)庫可以是打開的。熱備份可以恢復(fù)到數(shù)據(jù)庫的某一時點。
缺點:執(zhí)行相對比較復(fù)雜。由于數(shù)據(jù)庫不間斷運行,熱備份可能造成CPU、I/O過載,應(yīng)在數(shù)據(jù)庫不太忙時進行。
冷備份和熱備份都備份物理數(shù)據(jù)庫文件,因而被稱為物理備份。而export備份的是數(shù)據(jù)庫對象,因此被稱為邏輯備份。
優(yōu)點:能執(zhí)行對象或者行恢復(fù)。備份和恢復(fù)速度更快。能夠跨操作系統(tǒng)平臺遷移數(shù)據(jù)庫。數(shù)據(jù)庫可一直運行。
缺點:只能恢復(fù)到導(dǎo)出時的狀態(tài)。export并不是冷備份和熱備份的替代工具。
冷、熱備份可保護介質(zhì)失效。export備份可保護用戶或應(yīng)用錯誤。
1、數(shù)據(jù)量不大的話,比如整體小于10G,你可以在主機訪問量小時或者shutdown時將oracle打包。例如:tar zcf /opt/u02.gz /u02,然后將u02.gz文件scp到備機。
2、如果數(shù)據(jù)量很大,你可以用rsync同步到備機
3、配置主備無密碼互訪
4、添加計劃任務(wù)
crontab -e
0 4 * * * /opt/rsync_ora.sh;
rsync_ora.sh內(nèi)容:
#!/bin/sh
rsync -av '-e ssh -p 22' /u02/oracle oracle@172.16.1.2:/u02
rsync -av '-e ssh -p 22' /data1/oracle oracle@172.16.1.2:/data1