【數據庫的備份與還原】 .

差異備份,日志備份還原

?

IF?DB_ID('db')?IS?NOT?NULL

DROP?DATABASE?db

GO

?

CREATE?DATABASE?db

GO

?

CREATE?TABLE?db.dbo.T(ID?INT?PRIMARY?KEY?IDENTITY(1,1));

GO

?

BACKUP?DATABASE?db?TO?DISK='d:/1.bak'?WITH?FORMAT

GO

?

INSERT?INTO?db.dbo.T?DEFAULT?VALUES

GO

?

BACKUP?DATABASE?db?TO?DISK='d:/2.bak'?WITH?FORMAT,DIFFERENTIAL

GO

?

INSERT?INTO?db.dbo.T?DEFAULT?VALUES

GO

?

BACKUP?LOG?db?TO?DISK='d:/3.bak'?WITH?FORMAT

GO

?

DROP?DATABASE?db;

?

RESTORE?DATABASE?db?FROM?DISK='d:/1.bak'?WITH?RECOVERY,REPLACE;

GO

?

SELECT?COUNT(*)?FROM?db.dbo.T;

GO

?

DROP?DATABASE?db;

GO

?

RESTORE?DATABASE?db?FROM?DISK='d:/1.bak'?WITH?NORECOVERY,REPLACE;

GO

?

RESTORE?DATABASE?db?FROM?DISK='d:/2.bak'?WITH?RECOVERY;

GO

?

SELECT?COUNT(*)?FROM?db.dbo.T;

?

DROP?DATABASE?db;

?

RESTORE?DATABASE?db?FROM?DISK='d:/1.bak'?WITH?NORECOVERY,REPLACE;

GO

?

RESTORE?DATABASE?db?FROM?DISK='d:/2.bak'?WITH?NORECOVERY;

GO

?

RESTORE?LOG?db?FROM?DISK='d:/3.bak'?WITH?RECOVERY;

GO

?

SELECT?COUNT(*)?FROM?db.dbo.T;

?

DROP?DATABASE?db;

?

使用日志恢復數據庫

?

IF?DB_ID('db')?IS?NOT?NULL

DROP?DATABASE?db;

GO

?

CREATE?DATABASE?db;

GO

?

CREATE?TABLE?db.dbo.T(ID?INT?PRIMARY?KEY?IDENTITY(1,1));

GO

?

BACKUP?DATABASE?db?TO?DISK='d:/1.bak'?WITH?FORMAT;

GO

?

INSERT?INTO?db.dbo.T?DEFAULT?VALUES;

GO

?

BACKUP?LOG?db?TO?DISK='d:/2.bak'?WITH?FORMAT;

GO

?

INSERT?INTO?db.dbo.T?DEFAULT?VALUES;

GO

?

BACKUP?LOG?db?TO?DISK='d:/3.bak'?WITH?FORMAT;

GO

?

RESTORE?DATABASE?db?FROM?DISK='d:/1.bak'?WITH?RECOVERY,REPLACE;

GO

?

SELECT?*?FROM?db.dbo.T

GO

?

RESTORE?DATABASE?db?FROM?DISK='d:/1.bak'?WITH?NORECOVERY,REPLACE;

GO

?

RESTORE?LOG?db?FROM?DISK='d:/2.bak'?WITH?RECOVERY;

GO

?

SELECT?*?FROM?db.dbo.T

GO

?

RESTORE?DATABASE?db?FROM?DISK='d:/1.bak'?WITH?NORECOVERY,REPLACE;

GO

?

RESTORE?LOG?db?FROM?DISK='d:/2.bak'?WITH?NORECOVERY;

GO

?

RESTORE?LOG?db?FROM?DISK='d:/3.bak'?WITH?RECOVERY;

GO

?

SELECT?*?FROM?db.dbo.T

GO

DROP?DATABASE?db;

?

?

恢復到特定的備份日期

?

?

IF?DB_ID('db')?IS?NOT?NULL

DROP?DATABASE?db;

GO

?

CREATE?DATABASE?db;

GO

?

CREATE?TABLE?db.dbo.T(ID?INT?PRIMARY?KEY?IDENTITY(1,1));

GO

?

BACKUP?DATABASE?db?TO?DISK='d:/1.bak'?WITH?FORMAT;

GO

?

INSERT?INTO?db.dbo.T?DEFAULT?VALUES;

GO

?

WAITFOR?DELAY?'00:00:01';

?

DECLARE?@Datetime?BINARY(128);

SET?@Datetime=CAST(GETDATE()?AS?BINARY(128));

SET?CONTEXT_INFO?@Datetime

GO

?

INSERT?INTO?db.dbo.T?DEFAULT?VALUES;

GO

?

BACKUP?LOG?db?TO?DISK='d:/2.bak'?WITH?FORMAT;

GO

?

RESTORE?DATABASE?db?FROM?DISK='d:/1.bak'?WITH?NORECOVERY,REPLACE;

GO

?

DECLARE?@Now?DATETIME;

SET?@Now=DATEADD(SECOND,-1,(SELECT?CAST(CONTEXT_INFO()?AS?DATETIME)));

?

RESTORE?LOG?db?FROM?DISK='d:/2.bak'?WITH?RECOVERY,STOPAT=@Now;

GO

?

SELECT?*?FROM?db.dbo.T

?

DROP?DATABASE?db;

GO

?

?

還原到標識事務

--Create?test?database

CREATE?DATABASE?db?

GO

?

--Create?test?table?on?database?named?db

CREATE?TABLE?db.dbo.T?(ID?INT?PRIMARY?KEY);

GO

?

--Create?full?backup?to?disk?'F:/Documents?and?Settings/Administrator/桌面/1.bak'

BACKUP?DATABASE?db?TO?DISK='F:/Documents?and?Settings/Administrator/桌面/1.bak'?WITH?FORMAT;

GO

?

--Begin?a?marked?transaction?"Tran1"

BEGIN?TRAN?Tran1?WITH?MARK

?

INSERT?INTO?db.dbo.T?SELECT?1

?

COMMIT?TRAN?Tran1

?

--Backup?the?transaction?log?to?disk?'F:/Documents?and?Settings/Administrator/桌面/2.bak'

BACKUP?LOG?db?TO?DISK='F:/Documents?and?Settings/Administrator/桌面/2.bak'?WITH?FORMAT

GO

?

DROP?DATABASE?db;

GO

?

RESTORE?DATABASE?db?FROM?DISK='F:/Documents?and?Settings/Administrator/桌面/1.bak'?WITH?NORECOVERY;

GO

?

RESTORE?LOG?db?FROM?DISK='F:/Documents?and?Settings/Administrator/桌面/2.bak'?WITH?STOPBEFOREMARK='Tran1';

GO

?

SELECT?COUNT(*)?FROM?db.dbo.T

?

?

DROP?DATABASE?db;

GO

?

RESTORE?DATABASE?db?FROM?DISK='F:/Documents?and?Settings/Administrator/桌面/1.bak'?WITH?NORECOVERY;

GO

?

RESTORE?LOG?db?FROM?DISK='F:/Documents?and?Settings/Administrator/桌面/2.bak'?WITH?STOPATMARK='Tran1';

GO

?

SELECT?COUNT(*)?FROM?db.dbo.T

?

DROP?DATABASE?db

?

?

數據庫的在線還原(讀寫文件組完整恢復模式)

?

IF?DB_ID('db')?IS?NOT?NULL

DROP?DATABASE?db;

GO

?

CREATE?DATABASE?db

ON?PRIMARY

(

NAME=db_data,

FILENAME='c:/1.mdf'

),

FILEGROUP?FG

(

NAME=db_data_fg,

FILENAME='c:/2.ndf'

)

LOG?ON

(

NAME=db_log,

FILENAME='c:/1.ldf'

)

GO

?

--在主文件組下創建表T

CREATE?TABLE?db.dbo.T(ID?INT?PRIMARY?KEY)?ON?[PRIMARY];

?

--插入記錄

INSERT?INTO?db.dbo.T?SELECT?1

GO

?

--主文件組在線,那么就視為數據庫在線

--創建文件db_data_fg備份

BACKUP?DATABASE?db?FILE='db_data_fg'?TO?DISK='c:/1.bak'?WITH?FORMAT

?

--進行在先還原,指定NORECOVERY?以后,就只能按順序進行前滾,同時文件離線還原狀態.

RESTORE?DATABASE?db?FILE='db_data_fg'?FROM?DISK='c:/1.bak'?WITH?NORECOVERY

?

--創建表失敗,因為離線

CREATE?TABLE?db.dbo.T1(ID?INT?PRIMARY?KEY)?ON?fg;

?

--主文件組不受影響,因為只是FG離線還原,只有企業版才支持哈.這種情況下生產環境中,不至于數據庫全部掛了.

SELECT?*?FROM?db.dbo.T

?

--備份日志,使用COPY_ONLY,因為是要獲取的日志是離線狀態時候的,COPY_ONLY僅復制備份是在SQL?Server?2005?中引入的,用于在執行特殊目的的備份(例如在聯機文件還原前備份日志)時使用

--如果是只讀文件的話,明顯不會出現差異數據,所以不需要日志備份了

--簡單恢復模式的話,日志都不能備份,所以也是一樣

--順便提一句,如果數據庫是文件損壞,而且損壞時候都在線,要使用NO_TRUNCATE獲取日志

BACKUP?LOG?db?TO?DISK='c:/2.bak'?WITH?FORMAT,COPY_ONLY;

?

--恢復LOG

RESTORE?LOG?db?FROM?DISK='c:/2.bak'?WITH?RECOVERY

?

--FG終于在線了,恭喜下,創建一個T1表

CREATE?TABLE?db.dbo.T1(ID?INT?PRIMARY?KEY)?ON?fg;

GO

?

DROP?DATABASE?db;

?

?

數據庫的段落還原(完整恢復模式)

?

IF?DB_ID('db')?IS?NOT?NULL

DROP?DATABASE?db

GO

?

--創建包含多個文件組的數據庫db

CREATE?DATABASE?db

ON?PRIMARY?

(

NAME=db_data,

FILENAME='c:/db_data.mdf'

),

FILEGROUP?A

(

NAME=db_data_a,

FILENAME='c:/db_data_a.ndf'

),

FILEGROUP?B

(

NAME=db_data_b,

FILENAME='c:/db_data_b.ndf'

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/388777.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/388777.shtml
英文地址,請注明出處:http://en.pswp.cn/news/388777.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

方法 數組

方法的特點: 定義方法可以將功能代碼進行封裝 封裝:兩方面含義: 1.將有特定邏輯的多條代碼組合成一個整體!! 2.方便維護,提高代碼的復用性(聯想變量的作用域問題) 方法只有被調用才會被執行!!(方法調用的流程) 方法的重載: 兩同一不同: 同類,同方法名 形參列表不同 …

java 控制jsp_JSP學習之Java Web中的安全控制實例詳解

普通用戶界面修改登錄的Servlet,修改后的代碼如下:LoginProcess.java代碼:package servlet;import javabean.User;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.RequestDispatcher;import javax.servlet.Ser…

PHP 基礎 自動類型轉換之比較運算符

<?php var_dump( 123fg456>122); var_dump(some string 0); var_dump(123.0 123d456); var_dump(0 "a"); var_dump("1" "01"); var_dump("1" "1e0"); 當數字與字符串進行比較運算時&#xff0c;字符串會自動轉…

java的多線程訪問共享變量_java多線程通信之共享變量

(1)當訪問共同的代碼的時候&#xff1a;可以使用同一個Runnable對象&#xff0c;這個Runnable對象中有這個共享數據&#xff0c;比如賣票系統就可以這么做。或者這個共享數據封裝在一個對象當中&#xff0c;然后對這個對象加鎖&#xff0c;也可以實現數據安全訪問。public clas…

2018年阿里云NoSQL數據庫大事盤點

2019獨角獸企業重金招聘Python工程師標準>>> NoSQL一詞最早出現在1998年。2009年Last.fm的Johan Oskarsson發起了一次關于分布式開源數據庫的討論&#xff0c;來自Rackspace的Eric Evans再次提出了NoSQL概念&#xff0c;這時的NoSQL主要是指非關系型、分布式、不提供…

cayenne:用于隨機模擬的Python包

TL;DR; We just released v1.0 of cayenne, our Python package for stochastic simulations! Read on to find out if you should model your system as a stochastic process, and why you should try out cayenne.TL; DR; 我們剛剛發布了 cayenne v1.0 &#xff0c;這是我們…

java 如何將word 轉換為ftl_使用 freemarker導出word文檔

近日需要將人員的基本信息導出&#xff0c;存儲為word文檔&#xff0c;查閱了很多資料&#xff0c;最后選擇了使用freemarker&#xff0c;網上一共有四種方式&#xff0c;效果都一樣&#xff0c;選擇它呢是因為使用簡單&#xff0c;再次記錄一下,一個簡單的demo&#xff0c;僅供…

DotNetBar office2007效果

1.DataGridView 格式化顯示cell里的數據日期等。 進入編輯列&#xff0c;選擇要設置的列&#xff0c;DefaultCellStyle里->行為->formart設置 2.tabstrip和mdi窗口的結合使用給MDI窗口加上TabPage。拖動個tabstrip到MDI窗口上tabstrip里選擇到主窗口名就加上TABPAGE了。d…

Spring boot 中pom.xml 各個節點詳解

<project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd "> <!-- 父項目的坐…

spotify 數據分析_沒有數據? 沒問題! 如何從Wikipedia和Spotify收集重金屬數據

spotify 數據分析For many data science students, collecting data is seen as a solved problem. It’s just there in Kaggle or UCI. However, that’s not how data is available daily for working Data Scientists. Also, many of the datasets used for learning have …

stack 的一些用法

#include<bits/stdc.h> using namespace std; int32_t main() {stack<int> st;st.push(1);st.push(2);st.push(3);cout<<st.size()<<endl;while(!st.empty()){cout<<st.top()<<endl;st.pop();} } 轉載于:https://www.cnblogs.com/Andromed…

IS環境下配置PHP5+MySql+PHPMyAdmin

IIS環境下配置PHP5MySqlPHPMyAdmin Posted on 2009-08-07 15:18 謝啟祥 閱讀(1385)評論(18) 編輯 收藏 雖然主要是做.net開發的&#xff0c;但是&#xff0c;時不時的還要搞一下php&#xff0c;但是&#xff0c;php在windows下的配置&#xff0c;總是走很多彎路&#xff0c;正好…

js復制功能

<div id"cardList"><div class"btn" onClick"copy(111)">點擊我&#xff0c;復制我</div></div> <script type"text/javascript"> function copy(str){var save function (e){e.clipboardData.setDa…

input在iOS里的兼容性

input框在iOS里&#xff0c;無法聚焦&#xff0c;不能輸入內容&#xff0c;把-webkit-user-select:none改成-webkit-user-select:auto;或者直接加一個style“-webkit-user-select:auto”.

kaggle數據集_Kaggle上有170萬份ArXiv文章的數據集

kaggle數據集“arXiv is a free distribution service and an open-access archive for 1.7 million scholarly articles in the fields of physics, mathematics, computer science, quantitative biology, quantitative finance, statistics, electrical engineering and sys…

java用接口實例化對象_[求助]迷茫中,接口可以直接實例化對象嗎?

可能是我沒有寫完整吧,還是我沒有理解好1 接口public interface SetAndGetWeight{public void setW(double weight);public double getW();}2 類class Train{SetAndGetWeight[] things;public void Train(SetAndGetWeight[] things){this.thingsthings;}public void returnTota…

異常作業2(2018.08.22)

2、編寫程序接收用戶輸入分數信息&#xff0c;如果分數在0—100之間&#xff0c; 輸出成績。如果成績不在該范圍內&#xff0c; 拋出異常信息&#xff0c;提示分數必須在0—100之間。 要求&#xff1a;使用自定義異常實現1 import java.util.Scanner;2 3 class AtException ext…

深度學習數據集中數據差異大_使用差異隱私來利用大數據并保留隱私

深度學習數據集中數據差異大The modern world runs on “big data,” the massive data sets used by governments, firms, and academic researchers to conduct analyses, unearth patterns, and drive decision-making. When it comes to data analysis, bigger can be bett…

C#圖片處理基本應用(裁剪,縮放,清晰度,水印)

前言 需求源自項目中的一些應用&#xff0c;比如相冊功能&#xff0c;通常用戶上傳相片后我們都會針對該相片再生成一張縮略圖&#xff0c;用于其它頁面上的列表顯示。隨便看一下&#xff0c;大部分網站基本都是將原圖等比縮放來生成縮略圖。但完美主義者會發現一些問題&#…

java建立tcp服務器長連接_B/S 架構下后端能否建立 TCP 長連接?

這種架構下&#xff0c;這樣的優化策略能實現嗎&#xff1f;能有作用嗎&#xff1f;php 服務端請求 ES tcp server 部分代碼$streamClient stream_socket_client("tcp://{$tcpHost}:{$tcpPort}", $errno, $errstr);// 該數組是所有業務線的分類結構&#xff0c;及每…