資料庫恢復日誌
1、實現運行Recovery for SQL Server操作如下。
B. 如何從資料庫的完整日誌模式還原誤刪除的數據
從資料庫的完整日誌模式還原誤刪除的數據的解決辦法
SQL Server中誤刪除數據的恢復本來不是件難事,從事務日誌恢復即可。但是,這個恢復需要有兩個前提條件:
1. 至少有一個誤刪除之前的資料庫完全備份。
2. 資料庫的恢復模式(Recovery mode)是「完整(Full)」。
針對這兩個前提條件,會有三種情況:
情況一、如果這兩個前提條件都存在,通過SQL語句只需三步就能恢復(參考文章),無需藉助第三方工具。
a) 備份當前資料庫的事務日誌:BACKUP LOG [資料庫名] TO disk= N'備份文件名' WITH NORECOVERY
b) 恢復一個誤刪除之前的完全備份:RESTORE DATABASE [資料庫名] FROM DISK = N'完全備份文件名' WITH NORECOVERY, REPLACE
c) 將資料庫恢復至誤刪除之前的時間點:RESTORE LOG [資料庫] FROM DISK = N'第一步的日誌備份文件名' WITH STOPAT = N'誤刪除之前的時間點' , RECOVERY
情況二、如果第1個前提條件不存在,第2個前提條件存在,需要藉助第三方工具。
情況三、如果第2個前提條件不存在,無法恢復。所以,一定要將資料庫恢復模式設置為「完整(Full)」。
我現在面臨的是第二種情況,需要找第三方工具。
開始找的是Log Explorer for SQL Server,不支持SQL Server 2008。
後來找的是SQL Log Rescue,也不支持SQL Server 2008。
接著找到的是SysTools SQL Recovery,支持SQL Server 2008,但需要購買,Demo版並沒有數據恢復功能。
最終在officerecovery.com上找到Recovery for SQL Server,雖然也是商業軟體,需要購買,但Demo版可以恢復數據,只要資料庫文件不超過24Gb。幸好朋友的資料庫文件不大,用它完成了誤刪除數據的恢復。
下面分享一下用Recovery for SQL Server進行恢復的操作步驟:
1. 運行Recovery for SQL Server
2. 點擊菜單中的 File > Recover,選擇要恢復的資料庫的數據文件(.mdf)
3. Next > Next,進入 Recovery Configuration 界面,選擇Custom(選擇了Custom才可以選擇從日誌中恢復誤刪除的數據)。
4. Next 進入 Recovery options 窗口,選中 Search for deleted records,並選擇要恢復的資料庫的日誌文件路徑(log file path)。
5. Next 並選擇目標文件夾(Destination folder),用於存放恢復過程中生成的SQL語句與bat文件。
6. 點擊Start,開始恢復操作(在上一步選擇的目標文件夾中生成相應的SQL文件與Bat文件),然後,出現 SQL Server Database Creation Utility 窗口。
7. Next,選擇被恢復數據存放的目標資料庫。
8. Next, 選擇 Import availiable data from both database and log files
9. Next, Next, 然後就完成數據的恢復!
小剛SEO為你解答
C. 如何查詢資料庫恢復需要用到哪些歸檔日誌
1、常用命令 SQL> show parameter log_archive_dest; SQL> archive log list; SQL> select * from V$FLASH_RECOVERY_AREA_USAGE; ARCHIVELOG 96.62 0 141 SQL> select sum(percent_space_used)*3/100 from v$flash_recovery_area_usage; 2.9904 SQL> show parameter recover; db_recovery_file_dest string /u01/oracle/flash_recovery_area db_recovery_file_dest_size big integer 2G 2、刪除日誌 cd $ORACLE_BASE/flash_recovery_area/orcl/archivelog 轉移或清除對應的歸檔日誌, 刪除一些不用的日期目錄的文件,注意保留最後幾個文件在刪除歸檔日誌後,必須用RMAN維護控制文件,否則空間顯示仍然不釋放。 3、rman target sys/password RMAN> crosscheck archivelog all; RMAN> delete expired archivelog all; 或者 RMAN> delete archivelog until time 「sysdate-1″; 4、再查 SQL> select * from V$FLASH_RECOVERY_AREA_USAGE; 5、修改大小 SQL> alter system set db_recovery_file_dest_size=4G scope=both;
D. linux 怎樣恢復mysql資料庫日誌
一、binlog 介紹
伺服器的二進制日誌記錄著該資料庫的所有增刪改的操作日誌(前提是要在自己的伺服器上開啟binlog),還包括了這些操作的執行時間。為了顯示這些二進制內容,我們可以使用mysqlbinlog命令來查看。
用途1:主從同步
用途2:恢復資料庫(也是線上出現一次資料庫文件丟失後,才對這個有所了解並學習的)
mysqlbinlog命令用法:shell> mysqlbinlog [options] log_file ...
1)mysqlbinlog 選項示例
常見的選項有以下幾個:
--start-datetime
從二進制日誌中讀取指定等於時間戳或者晚於本地計算機的時間。取值如:="1470733768" 或者="2016-08-09 5:09:28"
示例:
[root@hcloud ~]# mysqlbinlog --start-datetime="2016-08-09 5:05:27" /var/lib/mysql/mysql-bin.000001
--stop-datetime
從二進制日誌中讀取指定小於時間戳或者等於本地計算機的時間取值和上述一樣
--start-position
從二進制日誌中讀取指定position 事件位置作為開始。取值:="2698"
示例:
[root@hcloud ~]# mysqlbinlog --start-position="2698" /var/lib/mysql/mysql-bin.000001
--stop-position
從二進制日誌中讀取指定position 事件位置作為事件截至。取值:="2698"
二、環境准備以及備份恢復
1) 安裝好mysql後,檢查開啟binlog
mysql> SHOW BINARY LOGS;
ERROR 1381 (HY000): You are not using binary logging
:上面提示說明沒有伺服器開啟binlog
修改/etc/my.cnf
在mysqld選項中添加一行內容如下:
log-bin=mysql-bin
默認如果不給值的話,log-bin 的會
E. 資料庫被刪除 怎麼從日誌中恢復
從資料庫的完整日誌模式還原誤刪除的數據的解決辦法
SQL Server中誤刪除數據的恢復本來不是件難事,從事務日誌恢復即可。但是,這個恢復需要有兩個前提條件:
1. 至少有一個誤刪除之前的資料庫完全備份。
2. 資料庫的恢復模式(Recovery mode)是「完整(Full)」。
F. 急求!sql2005資料庫數據覆蓋,如何 使用日誌恢復資料庫
要
使用日誌恢復資料庫
是幾個條件,
首先,資料庫是完整恢復模式
其次,以前做過完整備份
再次,在做過完整備份後,沒有清過日誌
滿足條件後,可以如下操作,
1、備份一個當前的資料庫日誌,
2、用完備恢復,with
norecovery
3、依次恢復以前備份的日誌文件(不包含本次備份的)
with
norecovery
4、使用本次備份的日誌文件,使用stop
at
,恢復到覆蓋前的時間點。
G. 資料庫恢復技術為什麼先寫日誌
先寫日誌文件為保證資料庫的可恢復性,日誌文件能夠用來進行事務故障恢復、系統故障恢復,並能夠協助後備副本進行介質故障恢復。當資料庫文件毀壞後,可重新裝入後援副本把資料庫恢復到轉儲結束時刻的正確狀態,再利用建立的日誌文件,可以把已完成的事務進行重做處理,而對於故障發生時尚未完成的事務則進行撤消處理,這樣不用運行應用程序就可把資料庫恢復到故障前某一時刻的正確狀態。