資料庫備份與還原
『壹』 什麼是資料庫的備份和恢復
資料庫備份和恢復要成對出現,但是要在同一個資料庫軟體里用才有效果。比如:用sql備份的話,你要用SQL的恢復。而不能用ORALCE來恢復。具體操作是選擇要備份和恢復的資料庫,然後右鍵,選擇備份和恢復就可以了。
『貳』 教你如何用SQL備份和還原資料庫
資料庫的備份和恢復一、備份資料庫1、打開SQL企業管理器,在控制台根目錄中依次點開MicrosoftSQLServer2、SQLServer組--雙擊打開你的伺服器--雙擊打開資料庫目錄3、選擇你的資料庫名稱(如論壇資料庫Forum)--然後點上面菜單中的工具--選擇備份資料庫4、備份選項選擇完全備份,目的中的備份到如果原來有路徑和名稱則選中名稱點刪除,然後點添加,如果原來沒有路徑和名稱則直接選擇添加,接著指定路徑和文件名,指定後點確定返回備份窗口,接著點確定進行備份二、還原資料庫
1、打開SQL企業管理器,在控制台根目錄中依次點開MicrosoftSQLServer
2、SQLServer組--雙擊打開你的伺服器--點圖標欄的新建資料庫圖標,新建資料庫的名字自行取
3、點擊新建好的資料庫名稱--然後點上面菜單中的工具--選擇恢復資料庫
4、在彈出來的窗口中的還原選項中選擇從設備--點選擇設備--點添加--然後選擇你的備份文件名--添加後點確定返回,這時候設備欄應該出現您剛才選擇的資料庫備份文件名,備份號默認為1(如果您對同一個文件做過多次備份,可以點擊備份號旁邊的查看內容,在復選框中選擇最新的一次備份後點確定)--然後點擊上方常規旁邊的選項按鈕
5、在出現的窗口中選擇在現有資料庫上強制還原,以及在恢復完成狀態中選擇使資料庫可以繼續運行但無法還原其它事務日誌的選項
在窗口的中間部位的將資料庫文件還原為這里要按照你SQL的安裝進行設置(也可以指弊旁定自己的目錄),邏輯文件名不需要改動,移至物理文件名要根據你所恢復的機器情況做改動,如您的SQL資料庫裝在D:/ProgramFiles/MicrosoftSQLServer/MSSQL/Data,那麼就按照您恢復機器的目錄進行相關改動改動,並且最後的文件名最好改成您當前的資料庫名(如原來是zw0001mdf,現在的資料庫是zw0002,就改成zw0002mdf),日誌和數據文件都要按照這樣的方式做相關的改動(日誌的文件名是ldf結尾的),這里的恢復目錄您可以自由設置,前提是該目錄必須存在(如您可以指定d:/sqldata/zw0002mdf或者d:/sqldata/zw0002ldf),否則恢復將報洞纖錯
6、修改完成後,點擊下面的確定進行恢復,這時會出現一個進度條,提示恢復的進度,恢復完成後系統會自動提示成功,如中間提示報錯,請記錄下相關的錯誤內容並詢問對SQL操作比較熟悉的人員,一般的錯誤無非是目錄錯誤或者文件名重復或者文件名租顫橡錯誤或者空間不夠或者資料庫正在使用中的錯誤,資料庫正在使用的錯誤您可以嘗試關閉所有關於SQL窗口然後重新打開進行恢復操作,如果還提示正在使用的錯誤可以將SQL服務停止然後重起看看,至於上述其它的錯誤一般都能按照錯誤內容做相應改動後即可恢復三、設定每日自動備份資料庫1、打開企業管理器,在控制台根目錄中依次點開
『叄』 oracle資料庫如何備份與恢復
Oracle資料庫的備份與恢復有漏桐中三種標準的模式,大致分為兩大類,備份恢復(物理上的)以及導入導出(邏輯上的)。物理備份又可以根據資料庫的工作模式分為非歸檔模式(Nonarchivelog-style)和歸檔模式(Archivelog-style),通常,我們把非歸檔模式稱為冷備份,而相應的把歸檔模式稱輪核為熱備份。
冷備份是指在資料庫關閉的情況下對數據文件、控制文件和重做日誌文件進行拷貝。冷備份的優點是簡單、快速、安全,缺點是需要停機維護,影響業務連續性。
熱備份是指在數返山據庫開啟並處於歸檔模式下對數據文件進行拷貝。熱備份的優點是不需要停機維護,不影響業務連續性,缺點是比較復雜、耗時、佔用資源。
導入導出是指使用EXP/IMP或者數據泵技術將資料庫中的對象或者數據導出到一個二進制文件中,並且可以將這個文件導入到另一個資料庫中。導入導出的優點是靈活、方便、可移植,缺點是不能保證一致性、效率低、不能恢復系統對象。
『肆』 mysql中備份和還原資料庫的語句什麼啊
一、Mysql資料庫備份指令格式:
mysqlmp -h主機名 -P埠 -u用戶名 -p密碼 (–database) 資料庫名 > 文件名.sql
註:直接cmd執行該指令即可,不需要先mysql -u root -p鏈接資料庫
1、備份MySQL資料庫的命令
mysqlmp -hhostname -uusername -ppassword databasename > backupfile.sql
2、備份MySQL資料庫為帶刪除表的格式,能夠讓該備份覆蓋已有資料庫而不需要手動刪除原有資料庫。
mysqlmp -–add-drop-table -uusername -ppassword databasename > backupfile.sql
二、資料庫還原有三種方式:source命令、mysql、gunzip命令
1、source 命令
進入mysql資料庫控制台,
mysql -u root -p
mysql>use 資料庫
然後使用source命令,後面參數為腳本文件(如這里用到的.sql)
mysql>source /home/work/db/bkdb.sql
2、mysql
mysql -hhostname -uusername -ppassword databasename < backupfile.sql
3、gunzip
gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename
『伍』 什麼是數據的備份與恢復
數據備份就是把一個資料庫里的東西,在某個時間資料庫管理軟體復制完全另外一個一樣的。
恢復是自從備份了資料庫後,使用資料庫的過程中發現出現了點小問題,導致資料庫有些信息丟失了,並且現在的資料庫中找不到這些信息了,這個時候就可以用備份的資料庫來恢復下這些丟失的信息了。
數據丟失原因:
1、人為誤操作,有時候在使用計算機的過程中不小心刪除了文件,或者不小心將分區進行格式化操作,導致數據丟失。
2、惡意程序的破壞,最常見的惡意程序就是病毒。通常一般病毒是不會造成數據丟失的,但有些病毒有可能會造成硬碟鎖死、分區丟失或數據丟失。
3、系統或軟體錯誤,如在工作中,由於操作系統或應用程序自身存在的BUG引起的死機,會造成工作文檔丟失等現象,還有在升級系統或更新應用程序時有時會帶來一些如影響系統兼容性和穩定性的問題。
以上內容參考網路——數據恢復,網路——數據備份
『陸』 如何實現MySQL資料庫的備份與恢復
在資料庫表丟失或損壞的情況下 備份你的資料庫是很重要的 如果發生系統崩潰 你肯定想能夠將你的表盡可能丟失最少的數據恢復到崩潰發生時的狀態 有時 正是MySQL管理員造成破壞 管理員已經知道表以破壞 用諸如vi或Emacs等編輯器試圖直接編輯它們 這對表絕對不是件好事!備份資料庫兩個主要方法是用mysqlmp程序或直接拷貝資料庫文件(如用cp cpio或tar等) 每種方法都有其優缺點 mysqlmp與MySQL伺服器協同操作 直接拷貝方法在伺服器外部進行 並且你必須採取措施保證沒有客戶正在修改你將拷貝的表 如果你想用文件系統備份來備份資料庫 也會發生同樣的問題 如果資料庫表在文件系統備份過程中被修改 進入備份的表文件主語不一致的狀態 而對以後的恢復表將失去意義 文件系統備份與直接拷貝文件的區別是對後者你完全控制了備份過程 這樣你能採取措施確保伺服器讓表不受干擾 mysqlmp比直接拷貝要慢些 mysqlmp生成能夠移植到其它機器的文本文件 甚至那些有不同硬體結構的機器上 直接拷貝文件不能移植到其它機器上 除非你正在拷貝的表使用MyISAM存儲格式 ISAM表只能在相似的硬體結構的機器上拷貝 在MySQL 中引入的MyISAM表存儲格式解決了該問題 因為該格式是機器無關的 所以直接拷貝文件可以移植到具有不同硬體結構的機器上 只要滿足兩個條件 另一台機器必須也運行MySQL 或以後版本 而且文件必須以MyISAM格式表示 而不是ISAM格式 不管你使用哪種備份方法 如果你需要恢復資料庫 有幾個原則應該遵守 以確保最好的結果 定期實施備份 建立一個計劃並嚴格遵守 讓伺服器執行更新日誌 當你在崩潰後需要恢復數據時 更新日誌將幫助你 在你用備份文件恢復數據到備份時的狀態後 你可以通過運行更新日誌中的查詢再次運用備份後面的修改 這將資料庫中的表恢復到崩潰發生時的狀態 以文件系統備份的術語講 資料庫備份文件代表完全傾倒(full mp) 而更新日誌代表漸進傾倒(incremental mp) 使用一種統一的和易理解的備份文件命名機制 象backup buckup 等不是特別有意義 當實施你的恢復時 你將浪費時間找出文件里是什麼東西 你可能發覺用資料庫名和日期構成備份文件名會很有用 例如 %mysqlmp samp_db >/usr/archives/mysql/samp_db %mysqlmp menagerie >/usr/archives/mysql/menagerie 你可能想在生成備份後壓縮它們 備份一般都很大!你也需要讓你的備份文件有過期期限以避免它們填滿你的磁碟 就象你讓你的日誌文件過期那樣 用文件系統備份備份你的備份文件 如果遇上了一個徹底崩潰 不僅清除了你的數據目錄 也清除了包含你的資料庫備份的磁碟驅動器 你將真正遇上了麻煩 也要備份你的更新日誌 將你的備份文件放在不同於用於你的資料庫的文件系統上 這將降低由於生成備份而填滿包含數據目錄的文件系統的可能性 用於創建備份的技術同樣對拷貝資料庫到另一台機器有用 最常見地 一個資料庫被轉移到了運行在另一台主機上的伺服器 但是你也可以將數據轉移到同一台主機上的另一個伺服器 使用mysqlmp備份和拷貝資料庫 當你使用mysqlmo程序產生資料庫備份文件時 預設地 文件內容包含創建正在傾倒的表的CREATE語句和包含表中行數據的INSERT語句 換句話說 mysqlmp產生的輸出可在以後用作mysql的輸入來重建資料庫 你可以將整個資料庫傾倒進一個單獨的文本文件中 如下 %mysqlmp samp_db >/usr/archives/mysql/samp_db 輸出文件的開頭看起來象這樣 # MySQL Dump ## Host: localhost Database: samp_db# # Server version alpha log## Table structure for table absence #CREATE TABLE absence(student_id int( ) unsigned DEFAULT NOT NULL date date DEFAULT NOT NULL PRIMARY KEY (student_id date));## Dumping data for table absence #INSERT INTO absence VALUES ( );INSERT INTO absence VALUES ( );INSERT INTO absence VALUES ( ); 文件剩下的部分有更多的INSERT和CREATE TABLE語句組成 如果你想壓縮備份 使用類似如下的命令 %mysqlmp samp_db | gzip >/usr/archives/mysql/samp_db gz如果你要一個龐大的資料庫 輸出文件也將很龐大 可能難於管理 如果你願意 你可以在mysqlmp命令行的資料庫名後列出單獨的表名來傾到它們的內容 這將傾倒文件分成較小 更易於管理的文件 下例顯示如何將samp_db資料庫的一些表傾到進分開的文件中 %mysqlmp samp_db student score event absence >grapbook sql%mysqlmp samp_db member president >hist league sql如果你生成准備用於定期刷新另一個資料庫內容的備份文件 你可能想用 add drop table選項 這告訴伺服器將DROP TABLE IF EXISTS語句寫入備份文件 然後 當你取出備份文件並把它裝載進第二個資料庫時 如果表已經存在 你不會得到一個錯誤 如果你倒出一個資料庫以便能把資料庫轉移到另一個伺服器 你甚至不必創建備份文件 要保證資料庫存在於另一台主機 然後用管道傾倒資料庫 這樣mysql能直接讀取mysqlmp的輸出 例如 你想從主機拷貝資料庫samp_db到 可以這樣很容易做到 %mysqladmin h create samp_db%mysqlmp samp_db | mysql h samp_db以後 如果你想再次刷新上的資料庫 跳過mysqladmin命令 但要對mysqlmp加上 add drop table以避免的得到表已存在的錯誤 %mysqlmp add drop table samp_db | mysql h samp_dbmysqlmp其它有用的選項包括 flush logs和 lock tables組合將對你的資料庫檢查點有幫助 lock tables鎖定你正在傾倒的所有表 而 flush logs關閉並重新打開更新日誌文件 新的更新日誌將只包括從備份點起的修改資料庫的查詢 這將設置你的更新日誌檢查點位備份時間 (然而如果你有需要執行個更新的客戶 鎖定所有表對備份期間的客戶訪問不是件好事 )如果你使用 flush logs設置檢查點到備份時 有可能最好是傾倒整個資料庫 如果你傾倒單獨的文件 較難將更新日誌檢查點與備份文件同步 在恢復期間 你通常按資料庫為基礎提取更新日誌內容 對單個表沒有提取更新的選擇 所以你必須自己提取它們 預設地 mysqlmp在寫入前將一個表的整個內容讀進內存 這通常確實不必要 並且實際上如果你有一個大表 幾乎是失敗的 你可用 quick選項告訴mysqlmp只要它檢索出一行就寫出每一行 為了進一步優化傾倒過程 使用 opt而不是 quick opt選項打開其它選項 加速數據的傾倒和把它們讀回 用 opt實施備份可能是最常用的方法 因為備份速度上的優勢 然而 要警告你 opt選項確實有代價 opt優化的是你的備份過程 不是其他客戶對資料庫的訪問 opt選項通過一次鎖定所有表阻止任何人更新你正在傾倒的任何錶 你可在一般資料庫訪問上很容易看到其效果 當你的資料庫一般非常頻繁地使用 只是一天一次地調節備份 一個具有 opt的相反效果的選項是 dedayed 該選項使得mysqlmp寫出INSERT DELAYED語句而不是INSERT語句 如果你將數據文件裝入另一個資料庫並且你想是這個操作對可能出現在該資料庫中的查詢的影響最小 delayed對此很有幫助 press選項在你拷貝資料庫到另一台機器上時很有幫助 因為它減少網路傳輸位元組的數量 下面有一個例子 注意到 press對與遠端主機上的伺服器通信的程序才給出 而不是對與本地主機連接的程序 %mysqlmp opt samp_db | mysql press h samp_dbmysqlmp有很多選項 詳見《MySQL參考手冊》 使用直接拷貝資料庫的備份和拷貝方法 另一種不涉及mysqlmp備份資料庫和表的方式是直接拷貝資料庫表文件 典型地 這用諸如cp tar或cpio實用程序 本文的例子使用cp 當你使用一種直接備份方法時 你必須保證表不在被使用 如果伺服器在你則正在拷貝一個表時改變它 拷貝就失去意義 保證你的拷貝完整性的最好方法是關閉伺服器 拷貝文件 然後重啟伺服器 如果你不想關閉伺服器 要在執行表檢查的同時鎖定伺服器 如果伺服器在運行 相同的制約也適用於拷貝文件 而且你應該使用相同的鎖定協議讓伺服器 安靜下來 假設伺服器關閉或你已經鎖定了你想拷貝的表 下列顯示如何將整個samp_db資料庫備份到一個備份目錄(DATADIR表示伺服器的數據目錄) %cd DATADIR%cp r samp_db /usr/archive/mysql單個表可以如下備份 %cd DATADIR/samp_db%cp member * /usr/archive/mysql/samp_db%cp score * /usr/archive/mysql/samp_db 當你完成了備份時 你可 lishixin/Article/program/MySQL/201311/29384
『柒』 資料庫如何還原和備份
選擇需要備份的資料庫,右鍵--任務--還原。
如何備份與還原資料庫
如圖點擊添加,選擇我們需要備份到哪裡。
如何備份與還原資料庫
如下圖選擇好路徑後,給備份文件命名。
如何備份與還原資料庫
如何備份與還原資料庫
依次點擊確定,完成以後會提示還原成功。
如何備份與還原資料庫
可以把剛剛那邊備份文件還原到原來的資料庫,也可以還原給一個新的空的資料庫。假設我們還原一個新的資料庫。如圖依次展開
如何備份與還原資料庫
勾上選擇源設備--選擇路徑。
如何備份與還原資料庫
通過添加--找到剛剛我們備份的那個文件。
如何備份與還原資料庫
如何備份與還原資料庫
依次點擊確定後,回到還原資料庫界面,勾上還原文件。
如何備份與還原資料庫
在還原資料庫選項中點擊選項,找到我們這個新建的數據的文件和日誌存放路徑。(如果不知道,可以選中該資料庫--屬性--文件裡面找到默認路徑),勾上覆蓋原有資料庫。確定就OK了。
如何備份與還原資料庫
『捌』 怎麼備份和還原mysql資料庫
備份資料庫
使用mysqlmp命令備份資料庫
『玖』 資料庫備份與還原功能的實現
傳統方法用SQL Server作資料庫後台時,一般採用手工的方式利用SQL Server自身提供的可視化工具或SQL語言進行數據的備份還原功能(余正濤等,2003),但是由於SQL Server 的復雜性,操作比較繁瑣,就使得普通用戶對數據的備份與還原有一定的困難,並且容易造成錯誤,可能造成數據丟失等災難性的後果。考慮到系統完整性和可靠性,可在VB 6.0環境下實現SQL Server資料庫的備份與還原工作。
(一)實現思路
為了通過程序實現資料庫備份與還原工作,必須在VB環境下引用SQLDMO,SQLDMO(SQL Distributed Management Objects,SQL 分布式管理對象)封裝了Microsoft SQL Server資料庫中的對象。SQLDMO是Microsoft SQL Server中企業管理器所使用的應用程序介面(包括備份和恢復),允許用支持自動化或COM 的語言編寫應用程序。SQLDMO 對象來自SQLDMO.dll,SQLDMO.dll 是隨 SQL Server 2000 一起發布的。並通過CreateObject("SQLD MO.SQLServer")函數創建新對象,使用SQLServ er.Connect函數經密碼校驗可連接伺服器,再創建備份核心對象SQLDMO.Backup,同時指定備份文件等參數即可實現資料庫備份與還原。具體的備份處理流程如圖8-10所示。
特別注意SQL Server 2000 所安裝的硬碟分區格式是否是NTFS格式,NTFS是最適合安裝SQL Serv⁃er的文件系統。它比FAT文件系統更穩定且更容易恢復。而且它還包括一些安全選項,例如文件和目錄ACL,以及文件加密(EFS)。如果是Fat32格式建議將它改成NTFS格式,因為Fat32支持最大文件為4G,資料庫超過4G通常會提示日誌文件太大之類的錯誤。
圖8-10 資料庫備份處理流程圖
(二)關鍵代碼
'************資料庫備份操作*************
Set gSQLServer=getSQLServer(ServerName,UserName,password)
Private Function BackUpData(gDatabaseName As String,gBkupRstrFileName As String,Server⁃Name As String,UserName As String,password As String)As String
On Error GoTo ErrHandler:
Dim oBackup As SQLDMO.Backup
Dim gSQLServer As SQLDMO.SQLServer
Set tprg=New CProgress
tprg.Title ="正在執行資料庫備份......"
ServerName為伺服器名稱;serName為用戶名;password為超級密碼
'連接伺服器
Set oBackup=New SQLDMO.Backup
Set oBackupEvent=oBackup
gDatabaseName為所要備份數據名稱;gBkupRstrFileName為備份文件名
oBackup.Database=gDatabaseName
oBackup.Files=gBkupRstrFileName
已存在gBkupRstrFileName備份文件名,則覆蓋
If Len(Dir(gBkupRstrFileName))>0 Then
Kill(gBkupRstrFileName)
End If
oBackup.PercentCompleteNotification=1
Screen.MousePointer=vbHourglass
oBackup.SQLBackup gSQLServer
DoEvents
Screen.MousePointer=vbDefault
'清空內存、關閉連接
Set oBackupEvent=Nothing
Set oBackup=Nothing
gSQLServer.Close
Set gSQLServer=Nothing
Set tprg=Nothing
Exit Function
ErrHandler:
m_str狀態=Err.Description
Resume Next
Set tprg=Nothing
End Function
'************資料庫還原操作*************
Private Function RestoreData(gDatabaseName As String,gBkupRstrFileName As String,Server⁃Name As String,UserName As String,password As String)As String
On Error GoTo ErrHandler:
Dim oRestore As SQLDMO.Restore
Dim msg As String
Dim Response As String
Set tprg=New CProgress
tprg.Title ="正在執行資料庫還原......"
Dim gSQLServer As SQLDMO.SQLServer
'ServerName為伺服器名稱;serName為用戶名;password為超級密碼
'連接伺服器
Set gSQLServer=getSQLServer(ServerName,UserName,password)
Set oRestore=New SQLDMO.Restore
Set oRestoreEvent=oRestore
'gDatabaseName為所要還原數據名稱;gBkupRstrFileName為還原文件名
oRestore.Database=gDatabaseName
oRestore.Files=gBkupRstrFileName
Screen.MousePointer=vbHourglass
oRestore.PercentCompleteNotification=1
oRestore.SQLRestore gSQLServer
Screen.MousePointer=vbDefault
'清空內存、關閉連接
Set oRestoreEvent=Nothing
Set oRestore=Nothing
gSQLServer.Close
Set gSQLServer=Nothing
Set tprg=Nothing
Exit Function
ErrHandler:
m_str狀態=Err.Description
Resume Next
Set tprg=Nothing
End Function
'************顯示備份進度*************
'************顯示還原進度*************
End Sub
Private Sub oBackupEvent_PercentComplete(ByVal Message As String,ByVal Percent As Long)
DoEvents
tprg.Value=Percent
End Sub
Private Sub oRestoreEvent_PercentComplete(ByVal Message As String,ByVal Percent As Long)
DoEvents
tprg.Value=Percent