恢復資料庫
㈠ oracle 資料庫如何還原
單擊開始,這里輸入cmd,打開dos窗口
輸入命令
exp bms/BMSPASS@TCDB file=E:DBbackdbback20160112.dmp
這里說明一下
這里的bms是指備份時,登錄資料庫實例TCDB的用戶名;
這里的/是語法符號。
這里的BMSPASS是用戶bms登錄資料庫TCDB時的密碼;
@是語法符號。
這里的TCDB是Oracle資料庫的實例名。
這里的file=E:DBbackdbback20160112.dmp 是只指備份文件的存放路徑。
等待導出完成,如果看到這里的導出成功,說明備份完成了。
打開備份時指定的存儲路徑,就可以看到備份文件了。
如果在導出命令的最後加上full=y的參數,也就是
exp bms/BMSPASS@TCDB file=E:DBbackdbback20160112.dmp full=y
意思是將用戶bms在TCDB資料庫實例中的所有文件都備份,也就是完整備份。
資料庫還原使用語法
imp bms/BMSPASS@TCDB file=E:DBbackdbback20160112.dmp
這里的E:DBbackdbback20160112.dmp是備份文件的存放路徑
㈡ 資料庫刪除數據了怎麼恢復
資料庫刪除了數據是一個很棘手的問題,數據的刪除首先包括三個層面:
1.刪除放入回收站,沒有在回收站中清除數據。這種情況是最簡單的,進入回收站,找到刪除的數據,右擊選擇恢復。
2.刪除後未放入回收站或者刪除後清空回收站,盡量先不要往原數據所在盤符下儲存內容,剛剛刪除的數據只是文件結構被刪除,真正的文件數據還沒被覆蓋。通過數據恢復軟體是可以找回來的,專業的軟體例如有超級兔子數據恢復軟體。
3.如果是刪除很久以後才想到資料庫數據要恢復,並且磁碟一直在使用,磁碟被填滿的話數據就已經被覆蓋了,這樣的數據是無法找回的。
㈢ sql如何恢復數據
方法:
第一步:選擇需要還原的資料庫,滑鼠右鍵,選擇任務下的還原;
注意事項
1、一定要記得覆蓋現有資料庫;
2、執行資料庫操作的時候,請斷開當前資料庫的任何使用(例如查詢,資料庫的連接使用)。
㈣ 如何恢復系統資料庫
恢復系統資料庫:
1、新建一個資料庫「kelin」(本資料庫為需要還原的資料庫)。
2、右鍵點擊需還原的資料庫,選擇」任務「→」還原「→」資料庫「。
3、點擊選擇「源設備」,然後點擊「..」,彈出框中備份媒介選擇「文件」,然後點擊「添加」按鈕,找到可以用於還原的1.bak文件,點擊「確定」按鈕。如 圖所示:
4、在「選擇用於還原的備份集」下面勾選設定好的用於還原的備份集
5、點擊左側「選項」,在新界面中勾選「覆蓋現有資料庫」,要注意修改「還原為」中的途徑,下面途徑僅供參考:
C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\kelin.mdf
C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\kelin_log.ldf
然後點擊確定按鈕。
6、最後彈出」對資料庫『kelin』的還原已成功完成「點擊確定,就完成了對整個資料庫的還原。
㈤ 怎麼恢復mysql資料庫怎麼恢復數據
簡單情況下:進入原來mysql安裝路徑下的data文件夾下,找到相應的庫和ibdata1,進行,就可回復原來的數據。
復雜情況下:
從另一台機上把MySQL資料庫的mysql文件夾拷貝到本地機上,目的是恢復本地機對數據的訪問和操作。經過如下幾種情況的操作。
1. 在本地重裝MySQL(安裝目錄D:\Program Files\MySQL\MySQL Server 5.0),直接把mysql文件夾拷貝至D:\Program Files\MySQL\MySQL Server 5.0\。結果,失敗:資料庫連接錯誤。
2. 卸載後重裝MySQL,將D:\Program Files\MySQL\MySQL Server 5.0\下的數據備份,只把mysql\data文件夾全部內容拷貝到D:\Program Files\MySQL\MySQL Server 5.0\data下。結果,失敗:資料庫連接錯誤。將備份的數據還完覆蓋。結果,失敗,還是連接不上資料庫。
3. 卸載後重裝MySQL,將mysql\data文件夾里的cf1,last文件夾(這兩個是原來MySQL里的資料庫)拷貝進D:\Program Files\MySQL\MySQL Server 5.0\data。連接成功,在Navicat for MySQL里看到資料庫cf1和last,但是不能訪問,因為數據全為零。明白了原來data里以資料庫命名的文件存儲的是資料庫的表結構,不是元數據。下一步,把data文件夾里的ibdata1文件(3.4G大,明顯存儲了元數據)拷貝到D:\Program Files\MySQL\MySQL Server 5.0\data里,代替原來的ibdata1文件。重啟電腦,打開Navicat for MySQL,連接成功,數據可以訪問操作。
至此,操作終於成功。其實當初在那台機上把數據導出來,而不是現在直接把文件夾mysql復制過來會更容易恢復。但那台機已經重裝了系統,也就是說MySQL失效了。
㈥ 如何根據數據文件恢復資料庫
可是提交到伺服器之後,一切顯地都無比陌生。因為不熟悉SQL,准確來說就只會點Select,Update,Delete,Insert而已。昨天不小心誤刪了一張數據不多但是不在人工處理范圍內的一張表內的數據。因為知道SQL Server是有日誌這種東西的,事後我表現地無比淡定,在事發一個小時以內。一個小時之後,我發現我無法掌控這一事件了。上網查找了恢復數據的辦法。有必要啰嗦一下。 問題1:無論是遠程端還是伺服器端,都無法對資料庫(假設資料庫叫Test)進行除『增刪查改』的其它操作,譬如分離,離線,還原...錯誤提示是e.g.1 「無法分離 Test 資料庫 因為它當前正在使用。」e.g.2 「因為資料庫正在使用,未獲得對數據的排他訪問權,操作異常終止」反正嘛,就是說你丫不能阻止別人的訪問。可我們就是要這樣做的...只好跟它說拜拜了。 說拜拜的方法就是關掉所有訪問資料庫Test的進程。createproc killspid (@dbnamevarchar(20))
asbegindeclare@sqlnvarchar(500)
declare@spidintset@sql='declare getspid cursor for select spid from sysprocesses where dbid=db_id('''+@dbname+''')'exec(@sql)
open getspid
fetchnextfrom getspid into@spidwhile@@fetch_status<>-1beginexec('kill '+@spid)
fetchnextfrom getspid into@spidendclose getspid
deallocate getspid
end--用法use master
exec killspid '資料庫名'PS:代碼我是這樣理解的,定義一段殺死訪問資料庫進程的存儲過程。寫一段獲取進程ID的代碼,循環殺死每一個進程。最後調用存儲過程。雖然不了解存儲過程,但是意思就是這樣的吧。
問題2:沒有備份資料庫,那該如何恢復數據呢有個軟體叫做Log Explorer 這個東西可以根據資料庫的日誌回到過去的任何一個時刻。View Code Log Explorer for SQL Server 是個好東西,但是這根本無法解決我的問題。資料庫在伺服器端,學校根本不會讓我安裝一個軟體在伺服器上面。而且我證實過,這個軟體必須要在伺服器端裝伺服器端軟體的。所以,這個對於我來說,是泡湯的。但是不代表這不是一個利器。 最後我用了一個很蛋疼的方法解決了。1.分離資料庫,備份一個Test;2.將資料庫附加回去,用自帶的恢復方式恢復到一個很久以前的狀態;3.將需要的那張表復制到備份的那個資料庫;4.將備份的那個資料庫掛回去,原資料庫刪了。 這是一個很蛋疼而且碰巧那張表沒被改的方法。頭一次知道DBA的重要性。我的方法是一個很偶然的東西,希望大家分享一下真正能解決恢復問題的辦法。當然,每隔一段時間備份是絕對沒有錯的。 方法 另外發現一個比較有技術性的可行的方法 1,如果誤操作之前存在一個全庫備份(或已有多個差異備份或增量備份),首先要做的事就是進進行一次日誌備份 (如果為了不讓日誌文件變大而置trunc. log on chkpt.選項為1那你就死翹了)backuplog dbName todisk='fileName'----注意:是日誌備份! 2,恢復一個全庫備份,注意需要使用with norecovery,如果還有其他差異或增量備份,則逐個恢復
restoredatabase dbName fromdisk='fileName'with norecovery 3,恢復最後一個日誌備份即剛做的日誌備份,指定恢復時間點到誤操作之前的時刻
restorelog dbName fromdisk='fileName'with stopat='date_time' 完整代碼View Code 經過驗證,這才叫有技術性!我那純屬「鄧艾的屯『田』」小孩子過家家。。。
㈦ mysql 恢復資料庫
xxx.frm
xxx.MYD
xxx.MYI
如果有以上三個文件,則你可以在mysql中新建一個資料庫,它會生成同樣的三個文件,
然後你用你的備份文件覆蓋就OK
前提是版本一致
㈧ 重裝資料庫或者重裝系統後,怎樣恢復資料庫的數據
在重裝資料庫或者重裝系統之前,你需要先把你要在以後恢復的數據做好備份,就是從資料庫中導出數據文件到另外一個地方暫時的保存起來。
重裝完系統活著資料庫之後再把原來備份好的東西導入到sql資料庫中去就行了。
導出資料庫數據:
打開你sql資料庫的企業管理器,找到你要導出數據的資料庫名稱,選中它,也就是在它的資料庫名字上滑鼠點一下,然後打開菜單:操作-->所以任務-->導出數據,這是會彈出「DTS導入導出向導」,按照它的提示,一步一步操作下去,就可以把你資料庫里的數據導出去了,導完一個資料庫之後可以再導另一個的,一個一個來。
將數據導入至sql資料庫:
用滑鼠點一下「資料庫」三個字,也就是你的「(local)(WindowsNT)」下的第一級資料庫,然後打開菜單:操作-->所有任務-->附加資料庫,此時彈出附加資料庫對話框,選擇要附加資料庫的MDF文件,點一下後面的三個點的那個按鈕就可以找,找到你先前導出的資料庫文件,確定,根據它的提示完成相應項目,就可以導入了。
呵呵,不用客氣,那你按照這樣來做應該能夠成功的轉移數據了吧……
還有啊,快點選我的作為最佳答案,我就會有系統得分的呢,嘿嘿~~這叫勞有所得,O(∩_∩)O
㈨ 如何還原sql資料庫
1、要進行還原資料庫操作我們先需要有一個資料庫,這里直接打開SQL Server Management Studio,然後打開實例,在左側按照下圖中紅色箭頭指示右鍵點擊資料庫,然後點擊 新建資料庫,如下圖:
㈩ 如何恢復資料庫
可是提交到伺服器之後,一切顯地都無比陌生。因為不熟悉SQL,准確來說就只會點Select,Update,Delete,Insert而已。昨天不小心誤刪了一張數據不多但是不在人工處理范圍內的一張表內的數據。因為知道SQL Server是有日誌這種東西的,事後我表現地無比淡定,在事發一個小時以內。一個小時之後,我發現我無法掌控這一事件了。上網查找了恢復數據的辦法。有必要啰嗦一下。 問題1:無論是遠程端還是伺服器端,都無法對資料庫(假設資料庫叫Test)進行除『增刪查改』的其它操作,譬如分離,離線,還原...錯誤提示是e.g.1 「無法分離 Test 資料庫 因為它當前正在使用。」e.g.2 「因為資料庫正在使用,未獲得對數據的排他訪問權,操作異常終止」反正嘛,就是說你丫不能阻止別人的訪問。可我們就是要這樣做的...只好跟它說拜拜了。 說拜拜的方法就是關掉所有訪問資料庫Test的進程。createproc killspid (@dbnamevarchar(20)) asbegindeclare@sqlnvarchar(500) declare@spidintset@sql='declare getspid cursor for select spid from sysprocesses where dbid=db_id('''+@dbname+''')'exec(@sql) open getspid fetchnextfrom getspid into@spidwhile@@fetch_status<>-1beginexec('kill '+@spid) fetchnextfrom getspid into@spidendclose getspid deallocate getspid end--用法use master exec killspid '資料庫名'PS:代碼我是這樣理解的,定義一段殺死訪問資料庫進程的存儲過程。寫一段獲取進程ID的代碼,循環殺死每一個進程。最後調用存儲過程。雖然不了解存儲過程,但是意思就是這樣的吧。 問題2:沒有備份資料庫,那該如何恢復數據呢有個軟體叫做Log Explorer 這個東西可以根據資料庫的日誌回到過去的任何一個時刻。View Code Log Explorer for SQL Server 是個好東西,但是這根本無法解決我的問題。資料庫在伺服器端,學校根本不會讓我安裝一個軟體在伺服器上面。而且我證實過,這個軟體必須要在伺服器端裝伺服器端軟體的。所以,這個對於我來說,是泡湯的。但是不代表這不是一個利器。 最後我用了一個很蛋疼的方法解決了。1.分離資料庫,備份一個Test;2.將資料庫附加回去,用自帶的恢復方式恢復到一個很久以前的狀態;3.將需要的那張表復制到備份的那個資料庫;4.將備份的那個資料庫掛回去,原資料庫刪了。 這是一個很蛋疼而且碰巧那張表沒被改的方法。頭一次知道DBA的重要性。我的方法是一個很偶然的東西,希望大家分享一下真正能解決恢復問題的辦法。當然,每隔一段時間備份是絕對沒有錯的。 方法 另外發現一個比較有技術性的可行的方法 1,如果誤操作之前存在一個全庫備份(或已有多個差異備份或增量備份),首先要做的事就是進進行一次日誌備份 (如果為了不讓日誌文件變大而置trunc. log on chkpt.選項為1那你就死翹了)backuplog dbName todisk='fileName'----注意:是日誌備份! 2,恢復一個全庫備份,注意需要使用with norecovery,如果還有其他差異或增量備份,則逐個恢復 restoredatabase dbName fromdisk='fileName'with norecovery 3,恢復最後一個日誌備份即剛做的日誌備份,指定恢復時間點到誤操作之前的時刻 restorelog dbName fromdisk='fileName'with stopat='date_time' 完整代碼View Code 經過驗證,這才叫有技術性!我那純屬「鄧艾的屯『田』」小孩子過家家。。。