新聞中心
簡介

濟源ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!
在數(shù)據(jù)庫開發(fā)和管理中,由于各種原因經(jīng)常需要進(jìn)行數(shù)據(jù)回退的操作,包括錯誤操作、意外的數(shù)據(jù)損壞、數(shù)據(jù)安全等等原因。然而,一旦進(jìn)行回退,就可能導(dǎo)致數(shù)據(jù)恢復(fù)不完整或丟失數(shù)據(jù),給企業(yè)的運營與管理帶來不必要的風(fēng)險和損失。因此,數(shù)據(jù)回退成為數(shù)據(jù)庫管理中的一項關(guān)鍵任務(wù),成為重要課題之一。本文將詳細(xì)分析如何在保證數(shù)據(jù)安全的前提下,有效應(yīng)對數(shù)據(jù)庫回退問題。
之一部分:研究回退數(shù)據(jù)
在回退數(shù)據(jù)之前,我們需要充分了解回退的對象和原因。這樣可以幫助我們更好地制定數(shù)據(jù)回退范圍和方案。具體操作如下:
1.了解數(shù)據(jù)回退的原因,盡可能多地獲取關(guān)于回退數(shù)據(jù)的背景信息,例如,回退時間、提交人員等相關(guān)信息。
2.了解回退的對象,包括數(shù)據(jù)庫表、視圖、存儲過程等等,更深入的剖析回退對象的屬性,例如數(shù)據(jù)量、結(jié)構(gòu)等。
3.針對回退對象進(jìn)行測試,比對回退前后的數(shù)據(jù)差異,排查不一致之處。檢查回退操作之前的數(shù)據(jù)備份,以便數(shù)據(jù)回退順利進(jìn)行。
第二部分:準(zhǔn)備數(shù)據(jù)備份
數(shù)據(jù)備份是保證數(shù)據(jù)恢復(fù)的前提條件。在回退之前必須對被回退對象的數(shù)據(jù)進(jìn)行備份處理??梢圆捎脭?shù)據(jù)庫提供的機制,如SQL SERVER的備份和還原,ORACLE的exp和imp等等。準(zhǔn)備數(shù)據(jù)備份的步驟如下:
1.查找最近的完整數(shù)據(jù)備份;
2.檢查備份數(shù)據(jù)的完整性和正確性;
3.準(zhǔn)備每個數(shù)據(jù)對象的差異文件;
4.進(jìn)行數(shù)據(jù)還原并測試回退效果。
第三部分:制定回退方案
在進(jìn)行回退操作之前,需要制定詳細(xì)的數(shù)據(jù)回退方案?;赝朔桨傅闹贫☉?yīng)根據(jù)需要回退的數(shù)據(jù)量和種類、回退的原因、數(shù)據(jù)備份的完整性以及操作人員的經(jīng)驗等因素進(jìn)行合理訂制。
1.制定數(shù)據(jù)回退方案,根據(jù)不同操作情況,選擇適當(dāng)?shù)幕赝朔绞?,如?zhí)行SQL語句、使用還原工具、對數(shù)據(jù)差異文件進(jìn)行還原等。
2.為回退操作分配特定權(quán)限。對于重要的回退任務(wù),需要分派專門的權(quán)限和角色,以及相應(yīng)的層級和權(quán)限管理。
第四部分:執(zhí)行回退操作
在完成了前三步操作之后,按照回滾方案具體執(zhí)行回退操作。
1.經(jīng)過嚴(yán)格測試之后,開始進(jìn)行數(shù)據(jù)回退。確保回退數(shù)據(jù)的完整性、正確性和一致性。
2.與數(shù)據(jù)管理員或開發(fā)人員共同測試回退結(jié)果,避免回退操作失誤或造成數(shù)據(jù)丟失。
3.將回退結(jié)果記錄下來,包括回退操作的時間、操作人員、回退結(jié)果等等。
第五部分:完善后續(xù)管理工作
1.更新相關(guān)文檔。對于重要的數(shù)據(jù)回退,需要及時更新相關(guān)文檔,并完善操作記錄和備份存儲工作。
2.進(jìn)行日常維護(hù)。定期檢查數(shù)據(jù)庫備份和恢復(fù)的完整性和可靠性,以及數(shù)據(jù)庫運行的穩(wěn)定性和性能。
3.培訓(xùn)并提高技能水平。為數(shù)據(jù)庫管理員和開發(fā)人員提供相關(guān)的技能培訓(xùn)和技術(shù)支持,以提高他們的技能水平和管理能力。
結(jié)論:
數(shù)據(jù)回退是數(shù)據(jù)庫管理的重要工作,需要綜合考慮數(shù)據(jù)量、數(shù)據(jù)種類、數(shù)據(jù)備份、數(shù)據(jù)恢復(fù)等多個方面。只有嚴(yán)格按照規(guī)范流程進(jìn)行,才能有效應(yīng)對數(shù)據(jù)回退問題。企業(yè)需要不斷提高管理、技術(shù)水平,完善數(shù)據(jù)備份和恢復(fù)管理體系,建立數(shù)據(jù)回退操作的標(biāo)準(zhǔn)規(guī)范,才能更好地保障數(shù)據(jù)的安全和穩(wěn)定。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗豐富以策略為先導(dǎo)10多年以來專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,響應(yīng)式網(wǎng)站制作,設(shè)計師量身打造品牌風(fēng)格,熱線:028-86922220今天用SQL SERVER修改了批量21W條數(shù)據(jù),突然發(fā)現(xiàn)自己改錯了,怎樣返回上一步?
前提條件
— 將 數(shù)據(jù)庫的恢復(fù)模式(Recovery mode)設(shè)置為 “完整(Full)”
— 此操作可以在 SQL Server Management Studio 中, 選擇數(shù)據(jù)庫, 鼠標(biāo)右鍵, 屬性后,在 選項 標(biāo)簽中進(jìn)行設(shè)置。
USE
GO
ALTER DATABASE SET RECOVERY FULL WITH NO_WAIT
GO
— 完整備份數(shù)據(jù)庫
backup database test to disk=’e:\test_.dat’
GO
已為數(shù)據(jù)庫 ‘test’,文件 ‘Test’ (位于文件 1 上)處理了 376 頁。
已為數(shù)據(jù)庫 ‘test’,文件 ‘Test_log’ (位于文件 1 上)處理了 3 頁。
BACKUP DATABASE 成功處理了 379 頁,花費 1.151 秒(2.571 MB/秒)。
測試數(shù)據(jù).
USE
GO
— 創(chuàng)建測試表
CREATE TABLE test_br_table (
ID int,
VAL VARCHAR(10),
PRIMARY KEY(ID)
);
GO
INSERT INTO test_br_table VALUES (1, ‘TEST1’);
INSERT INTO test_br_table VALUES (2, ‘TEST2’);
INSERT INTO test_br_table VALUES (3, ‘TEST3’);
GO
SELECT GETDATE()
GO
:44:12.393
(1 行受影響)
— 假設(shè)誤操作, 刪除所有的數(shù)據(jù)了.
DELETE FROM test_br_table
GO
(3 行受影響)
恢復(fù)
USE
GO
— 步驟1. 備份當(dāng)前數(shù)據(jù)庫的事務(wù)日志:
BACKUP LOG TO disk= N’e:\test_log’ WITH NORECOVERY
GO
已為數(shù)據(jù)庫 ‘Test’,文件 ‘Test_log’ (位于文件 1 上)處理了 9 頁。
BACKUP LOG 成功處理了 9 頁,花費 0.046 秒(1.486 MB/秒)。
— 步驟2. 恢復(fù)一個誤刪除之前的完全備份:
RESTORE DATABASE FROM DISK = N’e:\test_.dat’ WITH NORECOVERY, REPLACE
GO
已為數(shù)據(jù)庫 ‘Test’,文件 ‘Test’ (位于文件 1 上)處理了 376 頁。
已為數(shù)據(jù)庫 ‘Test’,文件 ‘Test_log’ (位于文件 1 上)處理了 3 頁。
RESTORE DATABASE 成功處理了 379 頁,花費 0.828 秒(3.574 MB/秒)。
— 步驟3. 將數(shù)據(jù)庫恢復(fù)至誤刪除之前的時間點:
RESTORE LOG FROM DISK = N’e:\test_log’ WITH STOPAT = N’:44:12.393′ , RECOVERY
GO
已為數(shù)據(jù)庫 ‘Test’,文件 ‘Test’ (位于文件 1 上)處理了 0 頁。
已為數(shù)據(jù)庫 ‘Test’,文件 ‘Test_log’ (位于文件 1 上)處理了 9 頁。
RESTORE LOG 成功處理了 9 頁,花費 0.013 秒(5.258 MB/秒)。
核對數(shù)據(jù).
use
GO
SELECT * FROM test_br_table
GO
IDVAL
TEST1
TEST2
TEST3
OracleUndoRedo通俗理解
什么是REDO
REDO記錄transaction logs 分為online和archived 以恢復(fù)為目的
比如 機器停電 那么在重起之后需要online redo logs去恢復(fù)系統(tǒng)到失敗點
比如 磁盤壞了 需要用archived redo logs和online redo logs區(qū)恢復(fù)數(shù)據(jù)
比如 truncate一個表或其他的操作 想恢復(fù)到之前的狀態(tài) 同樣也需要
什么是UNDO
REDO 是為了重新實現(xiàn)你的操作 而UNDO相反 是為了撤銷你做的操作 比如你得一個TRANSACTION執(zhí)行失敗了或你自己后悔了 則需要用 ROLLBACK命令回退到操作之前 回滾是在邏輯層面實現(xiàn)而不是物理層面 因為在一個多用戶系統(tǒng)中 數(shù)據(jù)結(jié)構(gòu) blocks等都在時時變化 比如我們 INSERT一個數(shù)據(jù) 表的空間不夠 擴展了一個新的EXTENT 我們的數(shù)據(jù)保存在這新的EXTENT里 其它用戶隨后也在這EXTENT里插入了數(shù)據(jù) 而此時我想ROLLBACK 那么顯然物理上講這EXTENT撤銷是不可能的 因為這么做會影響其他用戶的操作 所以 ROLLBACK是邏輯上回滾 比如對INSERT來說 那么ROLLBACK就是DELETE了
MIT 以前 常想當(dāng)然地認(rèn)為 一個大的TRANSACTION(比如大批量地INSERT數(shù)據(jù))的MIT會花費時間比短的TRANSACTION長 而事實上是沒有什么區(qū)別的
因為ORACLE在MIT之前已經(jīng)把該寫的東西寫到DISK中了
我們MIT只是
產(chǎn)生一個SCN給我們TRANSACTION SCN簡單理解就是給TRANSACTION排隊 以便恢復(fù)和保持一致性
REDO寫REDO到DISK中(LGWR 這就是log file sync) 記錄SCN在ONLINE REDO LOG 當(dāng)這一步發(fā)生時 我們可以說事實上已經(jīng)提交了 這個TRANSACTION已經(jīng)結(jié)束(在V$TRANSACTION里消失了)
SESSION所擁有的LOCK(V$LOCK)被釋放
Block Cleanout(這個問題是產(chǎn)生ORA : snapshot too old的根本原因) ROLLBACK ROLLBACK和MIT正好相反 ROLLBACK的時間和TRANSACTION的大小有直接關(guān)系 因為ROLLBACK必須物理上恢復(fù)數(shù)據(jù) MIT之所以快 是因為ORACLE在MIT之前已經(jīng)作了很多工作(產(chǎn)生UNDO 修改BLOCK REDO LATCH分配) ROLLBACK慢也是基于相同的原因
UNDO表空間用于存放UNDO數(shù)據(jù) 當(dāng)執(zhí)行DML操作時 Oracle
UNDO數(shù)據(jù)的作用 當(dāng)用戶執(zhí)行DML操作修改數(shù)據(jù)時 UNDO數(shù)據(jù)被存放在UNDO段 而新數(shù)據(jù)則被存放到數(shù)據(jù)段中 如果事務(wù)操作存在問題 就需要回退事務(wù) 以取消事物變化
例如 執(zhí)行完UPDATE emp SET sal= WHERE empno= 后 發(fā)現(xiàn)應(yīng)該修改雇員 的工資 而不是 此時應(yīng)該執(zhí)行ROLLBACK語句
讀一致性
用戶檢索數(shù)據(jù)時 ORACLE總是使用戶只能看到被提交過的數(shù)據(jù) 這是由Oracle自動提供的 當(dāng)用戶修改數(shù)據(jù) 但是沒有提交時 另外一個用戶使用select語句查找該值時 該值就是從undo表空間中取得的
事務(wù)恢復(fù)
事務(wù)恢復(fù)是例程恢復(fù)的一部分 它是由Oracle Server自動完成的 如果在數(shù)據(jù)庫運行過程中出線歷程失敗 那么當(dāng)啟動Oracle Server時 后臺進(jìn)程ON會自動執(zhí)行例程恢復(fù) 執(zhí)行例程恢復(fù)時 Oracle會重做所有未應(yīng)用的記錄 然后打開數(shù)據(jù)庫 回退未提交事務(wù)
倒敘查詢
倒敘查詢用于取得某一特定時間點的數(shù)據(jù)庫數(shù)據(jù)
UNDO_MANAGEMENT
使用初始化參數(shù)用于指定UNDO數(shù)據(jù)的管理方式 如果使用自動管理模式 必須設(shè)置該參數(shù)為AUTO 此時采用UNDO表空間管理UNDO數(shù)據(jù) 如果使用手工管理模式 必須設(shè)置該值為MANUAl 此時采用回滾段管理UNDO數(shù)據(jù)
UNDO_TABLESPACE
用于指定例程所要使用的UNDO表空間 使用自動UNDO管理模式時 通過配置該參數(shù)可以指定例程所要使用的UNDO表空間
使用RAC結(jié)構(gòu)時 必須為每個例程配置一個獨立的UNDO表空間
UNDO_RETENTION
該參數(shù)用于控制UNDO數(shù)據(jù)的更大保留時間 其默認(rèn)值為 秒 該值時倒敘查詢可以查看到的最早時間點
lishixinzhi/Article/program/Oracle/202311/17025
關(guān)于數(shù)據(jù)庫 回退的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
創(chuàng)新互聯(lián)是成都專業(yè)網(wǎng)站建設(shè)、網(wǎng)站制作、網(wǎng)頁設(shè)計、SEO優(yōu)化、手機網(wǎng)站、小程序開發(fā)、APP開發(fā)公司等,多年經(jīng)驗沉淀,立志成為成都網(wǎng)站建設(shè)第一品牌!
文章題目:如何有效應(yīng)對數(shù)據(jù)庫回退問題(數(shù)據(jù)庫回退)
網(wǎng)頁路徑:http://www.dlmjj.cn/article/djdddsp.html


咨詢
建站咨詢
