❶ 如何恢復資料庫的內容
昨天幫一個朋友恢復了sql server 資料庫 現在把過程寫出來 大瞎穗家一起分享
我那個哥們是從別人那拷了一個資料庫的數據文件 (c:mssql data 目肆螞錄下的文件)
最初我是用的
在一台好的機器上重新安裝SQL Server 建立相同的資料庫設備(大小) 和資料庫
停掉SQL Server 用拷貝出來的資料庫文件覆蓋剛建立的資料庫文件 再重新啟動
SQL Server 但一直不可以 我猜關鍵是無法建立相同的資料庫設備(大小)
後來採用了
系統存儲過程
sp_attach_db // 附加數裂神埋據庫文件到伺服器
或
sp_attach_db_single_file // 附加資料庫的單個文件到伺服器
具體的sql 語句就是
例如
EXEC sp_attach_single_file_db pubs e:datapubs mdf sp_attach_db @dbname= conmis @filename = d: conmis _data mdf @filename = d: conmis _log ldf
如何附加資料庫文件到伺服器(即 通過* mdf *ldf 文件修復資料庫)
另外查找資料時看到也可以通過日誌恢復以前的數據 不知那位哥們看看是不是可以
用日誌恢復
restore log {data_name|@database_name_var}fromwith [norecovery ecoverystandby_undo_file_name][ ][stopat={data_time|@data_time_var}
例如 庫名為database 日誌為database _log要求恢復 / / : 前的數據
lishixin/Article/program/SQL/201311/16392
❷ 資料庫恢復的資料庫恢復的三種方式
資料庫可能因為硬體或軟體(或兩者同時)的故障變得不可用,不同的故障情況需要不同的恢復操作。我們必須決定最適合業務環境的恢復方法。在資料庫中恢復有3種類型或方法,即應急(crash)恢復、版本(version)恢復和前滾(rool forward)恢復。 應急恢復用於防止資料庫處於不一致或不可用狀態。資料庫執行的事務(也稱工作單元)可能被意外中斷,若在作為工作單位一部分的所有更改完成和提交之前發生故障,則該資料庫就會處於不一致和不可用的狀態。這時,需要將該資料庫轉化為一致和可用的狀態。
為此,需要回滾未完成的事務,並完成當發生崩潰時仍在內存中的已提交事務。如在COMMIT語句之前發生了電源故障,則在下一次重新啟動並再次訪問該資料庫時,需要回滾到執行COMMMIT語句前的狀態。回滾語句的順序與最初執行時的順序相反。 這種恢復技術是版本恢復的一個擴展,使用完整的資料庫備份和日誌相結合,可以使一個資料庫或者被選擇的表空間恢復到某個特定時間點。如果從備份時刻起到發生故障時的所有日誌文件都可以獲得的話,則可以恢復到日誌上涵蓋到的任意時間點。前滾恢復需要在配置中被明確激活才能生效。
❸ 怎麼使用資料庫恢復程序
如果是SQL
SERVER的話兩種方式:
一\資料庫物理文件和日誌文件都有的話,在企業管理器上單擊右鍵-->附加資料庫-->選擇資料庫物理文件(.mdf)文件-->設置附加後的資料庫名-->確認就OK了
二\使用.bak備份文件恢復:在企業管理器下資料庫上單擊滑鼠右鍵-->還原資料庫-->選擇備份文件-->設置恢復資料庫名,單擊確認就可以了.
❹ 如何實現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
❺ 什麼叫數據恢復常用的恢復技術有哪幾種
在資料庫遭到破壞後李察及時將資料庫中的數據恢復到正確狀態下去的過程叫亮圓資料庫恢復。常見的恢復技術有:哪鍵茄轉儲和日誌
❻ 請問如何使用MYSQL資料庫進行備份數據恢復
資料庫毀壞發生的原因有許多,且程度各不相同。如果幸運的話,可能是一兩個表的小毀壞(例如,如果您的機器由於斷電而暫時停機)。如果不是這樣,可能需要置換整個的數據目錄(例如,如果某個磁碟癱瘓而且數據目錄在它上)。在其他情況下也需要恢復操作,例如,當用戶錯誤地刪除資料庫或表時,或者錯誤地刪除表的內容時。不論這些不幸的事件發生是由於什麼原因,都需要恢復它們。 如果表被毀壞但沒有丟失,可試著用myisamchk 或isamchk 來修復它們。如果修復實用程序能修復它們,就根本沒有必要使用備份文件。如果表被丟失或不能修復,則需要恢復它們。 恢復過程包括兩個信息源:備份文件和更新日誌。備份文件將表恢復到進行該備份時的狀態。但是,在備份和故障發生這段時間中,表通常已經被修改。更新日誌包含了用來完成這些修改的查詢。可以通過將更新日誌作為對mysql的輸入來重復這些查詢(這就是為什麼需要更新日誌的原因。如果您還沒有使更新日誌有效,現在趕快做,並在進一步讀取之前生成一個新的備份)。 恢復過程根據必須恢復的信息的多少而變化。事實上,恢復整個資料庫比恢復單個的表要容易,因為對資料庫應用更新日誌比對表要容易。 恢復整個資料庫 首先,如果要恢復的資料庫是含有授權表的mysql資料庫,將需要使用--skip-grant-tables選項運行伺服器。否則,伺服器將抱怨無法找到授權表。在恢復表之後,執行mysqladmin flush-privileges 來告訴伺服器載入授權表,並用它們啟動。 將原資料庫目錄的內容拷貝到其他的地方。例如,您可能會在稍後用它們進行崩潰表的事後分析檢查(post-mortem examination)。 用最新的備份文件重新載入資料庫。如果您打算使用由mysqlmp 載入的文件,則需要將它們作為mysql的輸入。如果打算使用從資料庫中直接拷貝的文件(如,用tar 或c p),則將它們直接拷貝回到該資料庫目錄中。但是,在這種情況下,應該在拷貝這些文件之前關閉伺服器,然後再重新啟動它。 用更新日誌重做在進行備份後又修改了資料庫表的查詢。對於所有可用的更新日誌,可使用它作為mysql的輸入。指定--one-database 選項,使mysql只對想要恢復的資料庫執行查詢。如果您知道需要使用所有的更新日誌文件,可在包含日誌的目錄中使用下列命令: % ls-t-r-l update.(0-9)* | xargs cat | mysql--one-database db_name ls 命令產生更新日誌文件的單列列表,更新日誌文件根據伺服器生成的順序進行排序(要知道,如果您修改了其中的任何文件,排序的順序都將改變,這將導致更新日誌按錯誤的順序使用)。 您很可能必須使用某些更新日誌。例如,如果自備份以來所產生的日誌命名為update.392、pdate.393 等等,可以重新運行它們中的命令: % mysql--one-database db_name < updata.392 % mysql--one-database db_name < updata.393 … 如果正在運行恢復並打算使用更新日誌恢復由於失策的DROP DATA BASE、DROPTABLE或DELETE 語句而丟失的信息,應確保先從更新日誌中刪除這些語句。 恢復單個的表 恢復單個表是很困難的。如果有通過mysqlmp 生成的備份文件並且它恰好不包含您想要的表數據,則需要抽取相關的行並用它們作為mysql的輸入,這部分較容易。困難的是抽取應用於該表的更新日誌的片段。您會發現: mysql_find_rows 實用程序對這方面有幫助,它可以從更新日誌中抽取多行查詢。 另一種可能性是用另一個伺服器恢復整個資料庫,然後將所要的該表的文件拷貝到原始資料庫中。這實際很容易!
❼ Oracle資料庫的恢復技術
IMPORT方法:
利用IMPORT,將最後一次EXPORT出來的數據文件IMPORT到新的資料庫中,這種方式可以將任何資料庫對象恢復到它被導出時的狀態,此後的變化將無法挽回。IMPORT的命令可以互動式進行,各參數的具體含義見Oracle EXP/IMP參數詳解。這種方式適用於沒有採用archive 模式的環境。
安全的恢復方法:
如果資料庫運行在archive 模式下,那麼一旦資料庫損壞則可以通過冷備份(熱備份)和歸檔備份將資料庫恢復到斷點狀態。
資料庫控制文件恢復(假設所有控制文件均被破壞):
資料庫基於文件系統: 利用操作系統的tar、cp等命令即可。
資料庫基於裸設備:dd if=$ORACLE_BASE/con.bak of=/dev/rdrd/drd1 seek=12
資料庫數據文件恢復數據及索引表空間、系統表空間的恢復:回拷相關的資料庫文件和該數據文件備份以來所有生成的所有邏輯日誌文件並執行如下命令: svrmgrl>startupmountsvrmgrl>alterdatabaserecoverautomatic如果控制文件被破壞,則: svrmgrl>;#按照提示輸入log文件名和redolog文件名svrmgrl>alterdatabaseopenresetlogs;資料庫臨時文件和回滾表空間的恢復:簡單地offline drop 並重建即可 。
注意:如果資料庫不運行在archive 模式下,則恢復只能恢復到上次備份時的狀態。
❽ 資料庫被刪除了怎麼恢復
恢復步驟:
1、運行EasyRecovery。
2、選擇「DeletedRecovery」。
3、選擇資料庫文件所在的驅動器,在「File Filter」中輸入*.mdf|*.ldf,選擇「Next」。
4、在左側窗口會列出被刪除的資料庫文件,選擇所要恢復的資料庫文件,選擇「Next」。
5、在「Recover to Local Drive」中選擇恢復後的文件存放的路徑,要選擇與原資料庫文件不同的路徑,選擇「Next」。
6、文件被恢復後,將恢復的文件復制到原資料庫文件位置,並在企業管理器通過附加資料庫,將恢復的文件恢復到SQL Server中。
註:如果刪除的資料庫文件所有的存儲區域被寫過了,就無法恢復了,所以刪除與恢復的時間間隔越短越好。