當前位置:首頁 » 編程語言 » sql資料庫誤操作修改
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql資料庫誤操作修改

發布時間: 2023-04-14 13:01:17

sql SERVER 2008數據還原(誤操作delete、update等)

如果你以前有做過全備份,現在再做一個日誌備份。
然後,還原全備 with restore方式,再還原日誌備份到你刪除前的時間點。

你可以還原到一個新資料庫上,然後看一下數據是否還原了,如果還原了,把數據更新到原資料庫的表上就可以了。

⑵ 今天用SQL SERVER修改了批量21W條數據,突然發現自己改錯了,怎樣返回上一步

前提條件
--將資料庫的恢復模式(Recoverymode)設置為「完整(Full)」
--此操作可以在SQLServerManagementStudio中,選擇資料庫,滑鼠右鍵,屬性後,在選項標簽中進行設置。
USE[master]
GO
ALTERDATABASE[test]SETRECOVERYFULLWITHNO_WAIT
GO

--完整備份資料庫
backupdatabasetesttodisk='e: est_20130704.dat'
GO
已為資料庫'test',文件'Test'(位於文件1上)處理了376頁。
已為資料庫'test',文件'Test_log'(位於文件1上)處理了3頁。
BACKUPDATABASE成功處理了379頁,花費1.151秒(2.571MB/秒)。

測試數據.

USE[test]
GO

--創建測試表
CREATETABLEtest_br_table(
IDint,
VALVARCHAR(10),
PRIMARYKEY(ID)
);
GO

INSERTINTOtest_br_tableVALUES(1,'TEST1');
INSERTINTOtest_br_tableVALUES(2,'TEST2');
INSERTINTOtest_br_tableVALUES(3,'TEST3');
GO

SELECTGETDATE()
GO
-----------------------
2013-07-0416:44:12.393
(1行受影響)

--假設誤操作,刪除所有的數據了.
DELETEFROMtest_br_table
GO
(3行受影響)恢復
USE[master]
GO
--步驟1.備份當前資料庫的事務日誌:
BACKUPLOG[Test]TOdisk=N'e: est_log'WITHNORECOVERY
GO
已為資料庫'Test',文件'Test_log'(位於文件1上)處理了9頁。
BACKUPLOG成功處理了9頁,花費0.046秒(1.486MB/秒)。

--步驟2.恢復一個誤刪除之前的完全備份:
RESTOREDATABASE[Test]FROMDISK=N'e: est_20130704.dat'WITHNORECOVERY,REPLACE
GO
已為資料庫'Test',文件'Test'(位於文件1上)處理了376頁。
已為資料庫'Test',文件'Test_log'(位於文件1上)處理了3頁。
RESTOREDATABASE成功處理了379頁,花費0.828秒(3.574MB/秒)。

--步驟3.將資料庫恢復至誤刪除之前的時間點:
RESTORELOG[Test]FROMDISK=N'e: est_log'WITHSTOPAT=N'2013-07-0416:44:12.393',RECOVERY
GO
已為資料庫'Test',文件'Test'(位於文件1上)處理了0頁。
已為資料庫'Test',文件'Test_log'(位於文件1上)處理了9頁。
RESTORELOG成功處理了9頁,花費0.013秒(5.258MB/秒)。

核對數據.
use[Test]
GO

SELECT*FROMtest_br_table
GO
IDVAL
---------------------
1TEST1
2TEST2
3TEST3
(3行受影響)

⑶ sql恢復修改前數據

一,如果是oracle資料庫,且剛刪除不久,那麼可以執行下面語句
insert
into
表名
select
*
from
表名
as
of
timestamp
to_timestamp('2007-07-23
10:20:00',
'yyyy-mm-dd
hh24:mi:ss');
語句中的日期時間改成你誤操作之前的最近時間
二,如果是sqlserver資料庫,那麼
1、首先對誤刪後的資料庫做個日誌備份;
backup
log
資料庫名
to
disk='路徑及日誌備份文件名'
2、把資料庫恢復到最近一次全庫備份的日期;
RESTORE
DATABASE
資料庫名
FROM
DISK='路徑及資料庫備份文件名'
WITH
REPLACE,NORECOVERY
3、用步驟1的日誌備份把資料庫恢復到你誤刪的那一刻之前;
RESTORE
LOG
資料庫名
FROM
DISK='路徑及日誌備份文件名'
WITH
RECOVERY,STOPAT='2009-4-24
16:40:10'
語句中的日期時間改成你誤操作之前的最近時間
三,如果修改之前有做資料庫備份,可以新建一個庫,把備份還原上去,導出表數據,再導入到現在用的庫中去。.
實時備份資料庫到另一個磁碟,有多種不同的實現方式,例如:
1,有兩台伺服器的話可以做雙機熱備
2,只有一台伺服器可以做磁碟鏡像
3,也可以用專門的資料庫備份軟體

⑷ sql恢復修改前數據

1、首先運行Recovery for SQL Server。

⑸ sqlserver 不小心操作失誤

首先SQL Server在你的SQL語句執行完了之後結果就沒辦法回滾了。
如果數據臘褲純很重要,一定要回滾的話只能按資料庫級輪咐別的純陪日誌重建資料庫,並且把你執行更新操作的事務排除掉才行。
需要提醒你的只有今後小心+小心。

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

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


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

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

步驟:


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


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


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

總結:

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

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

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


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

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

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

⑺ sql2005數據操作有誤,怎樣回到前一步操作update的時候忘加where,整個欄位都更新

不能恢復了,除非盯悔你之前凱氏正有備份
我也這樣子過。

我可以分享一下如果避免這種情況
平時養成良好的習慣
1、勤備份資料庫
2、除select 語句外其它語句都在句首加上「--」注釋掉
如:--insert into table ...
3、開啟事務.begin tran...commit/rollback..

以後核森小心啦

⑻ sql修改數據少條件把一列的原數據全給改了,怎麼可以撤回

進行返向操作處理。
具體步驟如下:找備份文件還原到另岩運一個資料庫名,然後導出數據來覆蓋或更新,如果沒有備份文件只有回憶一下修改的步驟或修改的內容,進行返向操作來撤回。
SQL是具有數據操縱歷高和數據定義等多種功能的資料庫語言,這種語言具有交互性特點,能為用戶提供極大的便利,資料庫管理系統應充分利用SQL語言提高計算機應用系統的工作質量與效率肢棗尺。

⑼ sql 發生誤操作能不能恢復

不知道你的資料庫是否做了備份,如果沒有備份那就恢復不了。

恢復的方法很多,關鍵是看備份方法。
大型資料庫軟體(Oracle 、Informix 、Sybase、DB2等)通常都設計了很多數據備份,在需要恢復數據敬頃時可根據備份情況決定)
如果你的資料庫有全庫亮行陸備份(零級備份),可直接恢復。
如果全庫備份(或零級備份)之後又有數據修改,可在全庫恢復之後再恢復邏輯帶穗日誌,不同的資料庫軟體具體恢復方法是不同的。大多數情況下,只要有完整的資料庫全庫(零級)備份和邏輯日誌備份都是可以恢復的。

⑽ 在sql資料庫,我插入一條數據有誤,編號錯了,和前面的重復,要怎麼修改呢

1.直接去資料庫修改。2.如果能夠單獨查詢出來這條記錄,就用Update去修改,條件就是你查詢時的條件。3。如果不能單獨查詢出來的,可以新添加個欄位,錄入信息來區分,update時以新欄位來做條件,完了後再刪除新欄位。