自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

SQL的這個(gè)數(shù)據(jù)恢復(fù)功能你用過(guò)嗎?

數(shù)據(jù)庫(kù) SQL Server
數(shù)據(jù)庫(kù)快照是數(shù)據(jù)庫(kù)(稱為“源數(shù)據(jù)庫(kù)”)的只讀靜態(tài)視圖。在創(chuàng)建時(shí),每個(gè)數(shù)據(jù)庫(kù)快照在事務(wù)上都與源數(shù)據(jù)庫(kù)一致。在創(chuàng)建數(shù)據(jù)庫(kù)快照時(shí),源數(shù)據(jù)庫(kù)通常會(huì)有打開(kāi)的事務(wù)。在快照可以使用之前,打開(kāi)的事務(wù)會(huì)回滾以使數(shù)據(jù)庫(kù)快照在事務(wù)上取得一致。

 今天我們要介紹的這個(gè)數(shù)據(jù)恢復(fù)功能叫快照。

[[343067]]

什么是快照

數(shù)據(jù)庫(kù)快照是sql server 2005的一個(gè)新功能。MSDN上對(duì)它的定義是:

數(shù)據(jù)庫(kù)快照是數(shù)據(jù)庫(kù)(稱為“源數(shù)據(jù)庫(kù)”)的只讀靜態(tài)視圖。在創(chuàng)建時(shí),每個(gè)數(shù)據(jù)庫(kù)快照在事務(wù)上都與源數(shù)據(jù)庫(kù)一致。在創(chuàng)建數(shù)據(jù)庫(kù)快照時(shí),源數(shù)據(jù)庫(kù)通常會(huì)有打開(kāi)的事務(wù)。在快照可以使用之前,打開(kāi)的事務(wù)會(huì)回滾以使數(shù)據(jù)庫(kù)快照在事務(wù)上取得一致。

客戶端可以查詢數(shù)據(jù)庫(kù)快照,這對(duì)于基于創(chuàng)建快照時(shí)的數(shù)據(jù)編寫(xiě)報(bào)表是很有用的。而且,如果以后源數(shù)據(jù)庫(kù)損壞了,便可以將源數(shù)據(jù)庫(kù)恢復(fù)到它在創(chuàng)建快照時(shí)的狀態(tài)。

下面我們實(shí)踐一下數(shù)據(jù)庫(kù)快照的創(chuàng)建和使用。

創(chuàng)建示例數(shù)據(jù)庫(kù)

 

  1. Use MASTER; 
  2. GO 
  3. CREATE DATABASE [Snapshot_Test] ON  PRIMARY 
  4. NAME = N'Snapshot_Test'--數(shù)據(jù)庫(kù)名稱 
  5. FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\Snapshot_Test.mdf'
  6. --數(shù)據(jù)文件存放位置及數(shù)據(jù)文件名稱 
  7. SIZE = 3072KB , 
  8. --初始容量 
  9. MAXSIZE = UNLIMITED, 
  10. --最大容量 
  11. FILEGROWTH = 1024KB 
  12. --增長(zhǎng)容量 
  13. LOG ON 
  14. NAME = N'Snapshot_Test_log'
  15. FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\DATA\Snapshot_Test_log.ldf' , 
  16. SIZE = 504KB , 
  17. MAXSIZE = UNLIMITED, 
  18. FILEGROWTH = 10%) 
  19. COLLATE Chinese_PRC_CI_AS 
  20. GO 
  21. EXEC dbo.sp_dbcmptlevel @dbname=N'Snapshot_Test', @new_cmptlevel=130 
  22. GO 
  23. USE [Snapshot_Test] 
  24. GO 
  25. SET ANSI_NULLS ON 
  26. GO 
  27. SET QUOTED_IDENTIFIER ON 
  28. GO 
  29. CREATE TABLE [dbo].[test]( 
  30.  [id] [intNOT NULL
  31.  [name] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL 
  32. ON [PRIMARY
  33. GO 

(提示:可以左右滑動(dòng)代碼)

在創(chuàng)建完數(shù)據(jù)庫(kù)之后,我們馬上創(chuàng)建一個(gè)快照,創(chuàng)建快照使用的也是CREATE DATABASE語(yǔ)句,如下:

創(chuàng)建數(shù)據(jù)庫(kù)快照

 

  1. create database Snapshot_Test_shot ON 
  2.    --是源數(shù)據(jù)庫(kù)的邏輯名 
  3.    Name = Snapshot_Test, 
  4.    --快照文件地址 
  5.    FileName = 'D:\SqlData\Snapshot_Test_shot.ss' 
  6. AS SNAPSHOT OF Snapshot_Test; 

結(jié)果:

 

 

 

 

現(xiàn)在的快照應(yīng)該和我們新建的數(shù)據(jù)庫(kù)一摸一樣,可以通過(guò)sql server的對(duì)象瀏覽器查看數(shù)據(jù)庫(kù)快照,我們可以通過(guò)USE [快照庫(kù)名]來(lái)查詢數(shù)據(jù)庫(kù)快照

 

  1. use Snapshot_Test_shot; 
  2. go 
  3. SELECT * FROM dbo.test; 

結(jié)果:

 

 

 

 

以上語(yǔ)句執(zhí)行后dbo.test中沒(méi)有任何數(shù)據(jù),下一步我們往源數(shù)據(jù)庫(kù)表中插入幾條數(shù)據(jù)

 

  1. use snapshot_Test; 
  2. go 
  3. INSERT INTO TEST (id,name)values(1,'hello 1'); 
  4. INSERT INTO TEST (id,name)values(2,'hello 2'); 
  5. INSERT INTO TEST (id,name)values(3,'hello 3'); 
  6. INSERT INTO TEST (id,name)values(4,'hello 4'); 
  7. GO 
  8. SELECT * FROM dbo.test; 

結(jié)果:

 

 

 

 

我們?cè)俅尾樵兛煺諗?shù)據(jù)庫(kù)中的數(shù)據(jù)

 

  1. use Snapshot_Test_shot; 
  2. go 
  3. SELECT * FROM dbo.test; 

結(jié)果:

 

 

 

 

依舊沒(méi)有數(shù)據(jù),那是因?yàn)榭煺找坏﹦?chuàng)建就不能往里面寫(xiě)數(shù)據(jù)了,是只讀文件。

使用快照恢復(fù)數(shù)據(jù)庫(kù)

從數(shù)據(jù)庫(kù)快照恢復(fù)數(shù)據(jù)庫(kù)

 

  1. use master; 
  2. GO 
  3. RESTORE DATABASE Snapshot_Test from 
  4. DATABASE_SNAPSHOT = 'Snapshot_Test_shot'

恢復(fù)后,剛插入的數(shù)據(jù)就沒(méi)有了,我們可以查詢一下。

 

  1. use Snapshot_Test; 
  2. SELECT * FROM dbo.test 

結(jié)果:

 

由此可以證明,快照將數(shù)據(jù)庫(kù)恢復(fù)到創(chuàng)建快照的那一刻了。

刪除數(shù)據(jù)庫(kù)快照

和刪除數(shù)據(jù)庫(kù)的語(yǔ)法一樣

DROP DATABASE Snapshot_Test_shot

結(jié)果:

 

數(shù)據(jù)庫(kù)快照下面沒(méi)有任何快照了,說(shuō)明已經(jīng)被刪除。

應(yīng)用場(chǎng)景

在MSDN中數(shù)據(jù)庫(kù)快照的典型應(yīng)用是

1) 維護(hù)歷史數(shù)據(jù)以生成報(bào)表。

2) 使用為了實(shí)現(xiàn)可用性目標(biāo)而維護(hù)的鏡像數(shù)據(jù)庫(kù)來(lái)卸載報(bào)表。

3) 使數(shù)據(jù)免受管理失誤所帶來(lái)的影響。

4) 使數(shù)據(jù)免受用戶失誤所帶來(lái)的影響。

 

責(zé)任編輯:華軒 來(lái)源: SQL數(shù)據(jù)庫(kù)開(kāi)發(fā)
相關(guān)推薦

2022-05-05 07:25:03

Supervisor監(jiān)控Python

2023-09-13 09:20:00

日志配置Spring

2021-05-21 13:36:46

iOSiPhone功能

2025-01-07 09:16:16

2024-02-22 08:31:26

數(shù)據(jù)恢復(fù)工具MySQL回滾SQL

2021-06-04 06:03:19

Python 3.6Python開(kāi)發(fā)

2022-07-08 10:09:47

SPLSQL數(shù)據(jù)庫(kù)

2022-08-04 13:52:30

數(shù)據(jù)安全信息通信網(wǎng)絡(luò)安全

2021-05-21 05:24:03

Excel數(shù)據(jù)技巧

2021-04-05 22:33:24

Windows 10Windows微軟

2021-05-22 06:42:34

Windows10操作系統(tǒng)微軟

2024-03-11 08:21:49

2023-11-22 07:42:01

2024-06-21 08:06:08

2020-08-16 10:58:20

Pandaspython開(kāi)發(fā)

2019-03-18 15:56:56

IntelAMDCPU

2019-11-28 08:59:03

SQL注入網(wǎng)絡(luò)攻擊網(wǎng)絡(luò)安全

2024-03-21 10:39:24

CIOAI

2021-05-07 13:39:20

Python工具代碼

2024-01-09 08:20:05

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)