當前位置:首頁 » 編程語言 » sqlserver誤刪表數據
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sqlserver誤刪表數據

發布時間: 2023-04-13 05:08:00

sqlserver一個表裡的數據沒有了,是否硬碟損壞了

人為操作畝孝褲失誤。
一個SQL Server表裡的數慎前據突然沒有了,不是硬碟損壞了,是人為操作失誤:有可能是操作者誤刪、誤改、誤移動等操作導致數據丟失。
SQL Server是由微軟公司開發的關系型資料庫管理系統,它是一種可迅簡擴展性強、性能卓越、安全可靠的資料庫管理系統。

㈡ sql server誤刪了資料庫怎麼找回

1、打開SQLServerManagementStudio。

2、右擊要備份的資料庫——任務——還原——資料庫。

3、彈出還原資料庫界面。選擇「源設備」,點擊後面對應的「?」。

4、彈出路徑選擇界面,點擊「添加」。

5、選擇要還原的資料庫備份文件。點擊「確定」,再點擊「確定」。

6、將選好的還原集前打勾(如下圖),後點擊左上角的「選項」。

7、在還原選項中將「覆蓋現有資料庫」打勾;在恢復狀態中,選擇「回滾未提交的事務,使資料庫處於可以使用的狀態」。

㈢ sqlserver怎麼恢復刪除

使用Log Explorer查看和恢復數據

Log Explorer 4.1.可用於SQL Server2005的日誌查看工具

下載地址:
http://download.csdn.net/source/620271

使用方法:

打開Log Explorer -> Attach Log File -> 選擇SQL Server伺服器和登陸方式 -> Connect ->
在跡脊Database Name中選擇資料庫 -> Attach-> 左面對話框中Browse-> View Log-> 就可以看到log記錄了

想恢復的話: 右鍵Log記錄 Undo Transation-> 選擇保存姿行滲文件名和路徑-> 然後打開該文件到查詢分析器里執行
T-sql代碼就可以了

例如 如果Log是delete table where ...的話,生成的文件代碼就是insert table ....
然後將此insert table的代碼放到查詢分析器里執行.就可以恢復數據.

----------------------------------------------------------------------
--如何恢復被delete/update的數據
----------------------------------------------------------------------
1連接到被刪除資料庫的Db
打開log explorer 選擇 "file"->"attach log file"->選擇伺服器和登陸方式->"connect"->選擇"資料庫"->"attach"
2 查看日誌
在左面操作項目的對話框中選擇"browse"項目->"帶鬧view log"->就可以看到當前的Log記錄了
3 恢復數據
右鍵某一條log記錄,選擇"undo transation"->"選擇保存文件名和路徑"->然後打開該文件到查詢分析器里執行
T-sql代碼就可以了
例如: 如果log是delete table where ...的話,生成的文件代碼就是insert table ....

----------------------------------------------------------------------
--Log Explorer恢復被drop table和truncate table後的數據
----------------------------------------------------------------------
1 連接到被刪除資料庫的Db
操作同上
2 恢復方法
1) 選擇"salvaage dropped/truncate"菜單,在右邊的對話框中選擇表名,和droped/trucated的日期,
File Name中選擇生成insert語句腳步的存放位置,condition選擇是droped還是truncated,
最後點擊"create" 就會生成insert語句,把生成的語句到查詢分析器裡面執行一下就可以了
2) 選擇"ViewDDL Commands"菜單->選"truncate table" 操作項->點擊"Salvage"->生成語句->查詢分析器里執行

----------------------------------------------------------------------
--log explorer使用的幾個問題
----------------------------------------------------------------------
1) 對資料庫做完全/差異/日誌備份
備份時如果選用了刪除事務日誌中不活動的條目
再用Log explorer打試圖看日誌時,提示No log recorders found that match the filter,would you like to view unfiltered data 選擇yes 就看不到剛才的記錄了

如果不選用了刪除事務日誌中不活動的條目
再用Log explorer打試圖看日誌時,就能看到原來的日誌並做恢復
2) 修改了其中一個表中的部分數據,此時用Log explorer看日誌,可以作日誌恢復
3) 然後恢復備份,(注意:恢復是斷開log explorer與資料庫的連接,或連接到其他數據上,
否則會出現資料庫正在使用無法恢復)
恢復完後,再打開log explorer 提示No log recorders found that match the filter,would you like to view unfiltered data,選擇yes 就看不到剛才在2中修改的日誌記錄,所以無法做恢復.
4) 不要用SQL的備份功能備份,搞不好你的日誌就破壞了.

正確的備份方法是:
停止SQL服務,復制數據文件及日誌文件進行文件備份.

然後啟動SQL服務,用log explorer恢復數據

㈣ SQLSERVER 2008誤刪除表,幾百萬行數據沒了,怎麼恢復

SQLSERVER 2008誤刪除表,幾百萬行數據沒了,怎麼恢復
誤刪了數據可以用恢復軟體恢復,你可以用 AneData全能文件恢復。格式化分區或者誤ghost到其他的分區數據丟失要恢復,分區突然打不開了提示未被格式化數據要恢復,直接刪除或者清空了回收站,卸載軟體丟失的數據要恢復等等都可以恢復的,具有反刪除、反格式化、分區恢復、高級模式等掃描功能,可以恢復最常見的種種數據丟失的情況。

㈤ sql server誤刪了資料庫怎麼找回

你好:

一、還原需要的條件設置

使用命令,是通過sqlserver的事務日誌以及一個誤刪除前的資料庫的完整備份進行還原,所以在sqlserver2012的維護計劃向導中,要建立完整備份,差異備份和事務日誌,具體如下

做好如上兩個設置,資料庫誤刪後找回數據就會非常輕松,現在說一下如何還原sqlserver數據到故障點。

二、還原命令

還原主要分為四步走:

1、出現故障後,首先執行備份事務日誌命令,這里以AdventureWorks作為資料庫名。命令如下:

BACKUP LOG AdventureWorks TODISK = 'C:_transcationlog.bak'

WITHNORECOVERY;

2、從完整備份還原數據

RESTORE DATABASE [QASupervision] FROM DISK='M:DatabaseOAAdventureWorks_Fullbackup_2014_03_18_010002_0155764.bak'
WITH NORECOVERY, REPLACE


3、從差異備份還原數據

RESTORE DATABASE [QASupervision] FROM DISK='M:DatabaseOAAdventureWorks_diffbackup_2014_03_18_020002_0155764.bak' WITH NORECOVERY, REPLACE


4、從事務日誌還原數據,還原到某個時間點之前

DECLARE@dt datetime

SELECT@dt=DATEADD(HOUR,-16,GETDATE())

select@dt

RESTORE LOG [QASupervision] FROMDISK='C:_transcationlog.bak'WITHSTOPAT=@dt,RECOVERY

5、還原資料庫,如果資料庫提示正在還原中,則執行此命令即可。

RESTORE DATABASEAdventureWorks WITHRECOVERY

㈥ SQL server 怎麼還原被誤刪的數據

sqlserver也是可以扮灶兄恢復的。無論是廳襲用delete,還是truncate.工具叫:

Log辯虛ExplorerforSQLServerv.

要使用logExploer,有個前堤,資料庫故障還原模型必須為:完全.

㈦ SQLserver 2000 SP4 資料庫中誤刪除表內容,有刪除前的備份,但備份資料庫後又寫入了很多的數據,要怎麼樣

只討論其中的一張表:嫌飢備份庫為DataBase_bak,當前庫為DataBase
1.新建一個資料庫,名稱為DataBase_bak,將其還原到刪除前的備份
2.
假設DataBase_bak中表table1 原有記錄A、B、C
3.
假設DataBase中表table1有記埋世錄B、C、D
說明DataBase_bak..table1的記錄A是被刪除的,DataBase..table1的D記錄是新增的
4.
兩彎者肢表比較,把不同於DataBase..table1的記錄插入DataBase..table1中即可。
5.最終
DataBase..table1中的記錄就是A、B、C、D

㈧ sql server 刪除數據錯誤能還原嗎

一、在LOG文件完整的情況下,可以還原。但一般而言,是將資料庫的整個的狀態還原到誤刪除數據之前。建議備份當前資料庫。


二、給出SQL 2008下的具體做法,別的版本的SQL Server可參照操作。

最常用的就是日誌尾部備份恢復法。以下環境2008R2,對於2008及其以上版本可以使用這個方法,其實2005也可以,2000很少用,沒測試過。(SQL2008之前可以使用Log Exploer這個第三方工具。)

步驟:


(1)、檢查資料庫的恢復模式,如圖:


點確定,完成後再檢查一下表,可以看到,數據已經還原成功。


**************************************************************************

總結:

1、方法看上去有點繁瑣,但是實際操作並不太難。

2、再次強調,先備份現場環境,無論故障影響有多嚴重,保全好當時情況。如果並不是重要生產數據,當別論。

3、步驟建議嚴格按照上面提示,對重要資料庫實際操作前建議先在測試資料庫中演練並理解後再正式操作。


額外提醒,此方法的缺點:

1、如果誤操作以後還有很多人做了操作,還原後,連著別人的操作數據都會沖掉,所以發生誤操作後,應考慮停止它人對資料庫的操作。。

2、此方法要對資料庫獨占,操作過程中,它人無法使用與聯接資料庫。

㈨ sqlserver資料庫delete刪除後怎麼恢復

一、如果是剛剛刪除,那麼有兩方法:
首先用show parameter undo;命令查看當時的資料庫參數undo_retention設置。
顯示如下:
undo_management string AUTO
undo_retention integer 10800
undo_suppress_errors boolean FALSE
undo_tablespace string UNDOTBS1
undo_retention(保持力),10800單位是秒。即3個小時。
修改默認的undo_retention參數設置:
ALTER SYSTEM SET undo_retention=10800 SCOPE=BOTH;

方法1,通過oracle提供的回閃功能:
exec dbms_flashback.enable_at_time(to_date('2007-07-23 10:21:00','yyyy-mm-dd hh24:mi:ss'));

set serveroutput on
DECLARE r_temp hr.job_history%ROWTYPE;
CURSOR c_temp IS SELECT * FROM hr.job_history;
BEGIN
OPEN c_temp;
dbms_flashback.disable;
LOOP
FETCH c_temp INTO r_temp;
EXIT WHEN c_temp%NOTFOUND;
insert into hr.job_history(EMPLOYEE_ID,JOB_ID,START_DATE,END_DATE) values (r_temp.EMPLOYEE_ID,r_temp.JOB_ID,r_temp.START_DATE,r_temp.END_DATE);
commit;
END LOOP;
CLOSE c_temp;
END;

方法2,insert into hr.job_history
select * from hr.job_history as of timestamp to_timestamp('2007-07-23 10:20:00', 'yyyy-mm-dd hh24:mi:ss');
這種方法簡單,容易掌握,功能和上面的一樣時間為你誤操作之前的時間,最好是離誤操作比較近的,因為oracle保存在回滾保持段里的數據時間有一定的時間限制由undo_retention 這個參數值決定。

二、如果是刪除一段時間了,但你有比較新的資料庫備份,就通過備份來恢復。新建一個庫,把備份還原上去,導出表數據,再導入到現在用的庫中去。

三、如果刪除一段時間了,並且無備份,但是數據在寫入表的時候同時會寫入其它一些關聯表的話,那麼就嘗試通過寫SQL語句從其它表取數據出來insert到被刪除的表中。