真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

sqlserver快照,sqlserver快照復(fù)制

如何利用SQL Server數(shù)據(jù)庫快照形成報(bào)表

在SQL Server 2005中,它的另外一個(gè)強(qiáng)大的新特點(diǎn)是數(shù)據(jù)庫快照。數(shù)據(jù)庫快照是一個(gè)數(shù)據(jù)庫的只讀副本,它是數(shù)據(jù)庫所有數(shù)據(jù)的映射,由快照被執(zhí)行的時(shí)間點(diǎn)來決定它的內(nèi)容。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比凌河網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式凌河網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋凌河地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。

這些數(shù)據(jù)庫快照在報(bào)表方面是非常有價(jià)值,因?yàn)樵诳煺諗?shù)據(jù)庫中或者在原數(shù)據(jù)庫中,對(duì)于任何查詢而言沒有鎖就將被執(zhí)行??煺找部梢允褂迷跒?zāi)難恢復(fù)中,因?yàn)槟憧梢詫F(xiàn)有的數(shù)據(jù)恢復(fù)到現(xiàn)有的快照中,或者還可以在有害數(shù)據(jù)操作聲明的事件中存儲(chǔ)個(gè)別必要的表和數(shù)據(jù)。

數(shù)據(jù)庫快照是如何工作的?

可以使用典型的數(shù)據(jù)庫命令CREATE DATABASE語句來生成一個(gè)數(shù)據(jù)庫快照,在聲明中有一個(gè)源數(shù)據(jù)庫快照的附加說明。當(dāng)快照被建立時(shí),同時(shí)生成一個(gè)稀疏文件。這個(gè)文件(只能使用在NTFS卷中)在初始化的時(shí)候并沒有磁盤空間分配給它——盡管你可能在WINDOWS資源管理器中看到了文件的大小,它會(huì)看上去與原始的源數(shù)據(jù)庫文件的大小相同。對(duì)磁盤來說其實(shí)這個(gè)文件的大小接近于零。

數(shù)據(jù)庫快照在初始化時(shí)讀的數(shù)據(jù)文件是來自于源數(shù)據(jù)庫的。當(dāng)源數(shù)據(jù)庫的數(shù)據(jù)發(fā)生變化時(shí),數(shù)據(jù)引擎就會(huì)將原始數(shù)據(jù)從源數(shù)據(jù)庫拷貝到快照數(shù)據(jù)庫中。這個(gè)技術(shù)確??煺諗?shù)據(jù)庫只反映快照被執(zhí)行時(shí)數(shù)據(jù)的狀態(tài)。當(dāng)SELECT命令被用來發(fā)布反對(duì)數(shù)據(jù)庫快照時(shí),不管數(shù)據(jù)頁的讀取是否被定位在源數(shù)據(jù)庫數(shù)據(jù)文件中還是在快照數(shù)據(jù)庫數(shù)據(jù)文件中都是沒有鎖被發(fā)布的。因?yàn)樵谥蛔x數(shù)據(jù)庫快照中是沒有鎖被發(fā)布,數(shù)據(jù)庫快照對(duì)于報(bào)表解決方案是一個(gè)重要的解決方案。

一個(gè)快照的實(shí)例

現(xiàn)在,讓我們來看看數(shù)據(jù)庫快照在SQL Server 2005中是如何工作的。為此,首先我需要一個(gè)源數(shù)據(jù)庫作為快照的來源。下面的腳本將創(chuàng)建一個(gè)源數(shù)據(jù)庫:

以下為引用的內(nèi)容:

USE master

GO

IF EXISTS(SELECT name from sysdatabases where [name] = 'SourceDatabase')

DROP DATABASE SourceDatabase

GO

CREATE DATABASE SourceDatabaseON PRIMARY

(

NAME = SourceDatabase_Data,

FILENAME = 'C:SQLServerSourceDatabase_Data.mdf'

) LOG ON

(

NAME = SourceDatabase_Log,

FILENAME = 'C:SQLServerSourceDatabase_Log.ldf'

)

GO

注意這里產(chǎn)品區(qū)域的大小。我定義它的大小為CHAR(150)來強(qiáng)調(diào)數(shù)據(jù)文件的增長級(jí)數(shù),這樣在我接下來的實(shí)例中將更容易解釋清楚快照是如何工作的。

現(xiàn)在既然我已經(jīng)有了一個(gè)源數(shù)據(jù)庫,現(xiàn)在我裝載一些數(shù)據(jù)來擴(kuò)展數(shù)據(jù)文件的大小位。如此,使用列表1中的腳本來創(chuàng)建銷售歷史表。

以下為引用的內(nèi)容:

USE SourceDatabase

GO

IF OBJECT_ID('SalesHistory')0 DROP TABLE SalesHistory

GO

CREATE TABLE SalesHistory

( SaleID INT IDENTITY(1,1),

Product CHAR(150), SaleDate DATETIME,

SalePrice MONEY

)

DECLARE @i INT

SET @i = 1

WHILE (@i =10000)

BEGIN INSERT INTO SalesHistory (Product, SaleDate, SalePrice)

VALUES ('Computer', DATEADD(mm, @i, '3/11/1919'),

DATEPART(ms, GETDATE()) + (@i + 57) )

INSERT INTO SalesHistory (Product, SaleDate, SalePrice)

VALUES ('BigScreen', DATEADD(mm, @i, '3/11/1927'),

DATEPART(ms, GETDATE()) + (@i + 13) )

INSERT INTO SalesHistory (Product, SaleDate, SalePrice)

VALUES ('PoolTable', DATEADD(mm, @i, '3/11/1908'),

DATEPART(ms, GETDATE()) + (@i + 29) )

SET @i = @i + 1

END

GO

sqlserver快照復(fù)制報(bào)錯(cuò),錯(cuò)誤號(hào):mssql_repl20052

1、查詢SQL中的所有表: Select TABLE_NAME FROM 數(shù)據(jù)庫名稱.INFORMATION_SCHEMA.TABLES Where TABLE_TYPE='BASE TABLE' 執(zhí)行之后,就可以看到數(shù)據(jù)庫中所有屬于自己建的表的名稱 2、查詢SQL中所有表及列: Select dbo.sysobjects.name as Table_name, dbo.syscolumns.name AS Column_name FROM dbo.syscolumns INNER JOIN dbo.sysobjects ON dbo.syscolumns.id = dbo.sysobjects.id Where (dbo.sysobjects.xtype = 'u') AND (NOT (dbo.sysobjects.name LIKE 'dtproperties')) 3、在Sql查詢分析器,還有一個(gè)簡單的查詢方法: EXEC sp_MSforeachtable @command1="sp_spaceused '?'" 執(zhí)行完之后,就可以看到數(shù)據(jù)庫中所有用戶表的信息 4、查詢總存儲(chǔ)過程數(shù):select count(*) 總存儲(chǔ)過程數(shù) from sysobjects where xtype='p' 附:xtype類型D = 默認(rèn)值或 DEFAULT 約束

F = FOREIGN KEY 約束L = 日志FN = 標(biāo)量函數(shù)

IF = 內(nèi)嵌表函數(shù)

P = 存儲(chǔ)過程

PK = PRIMARY KEY 約束(類型是 K)

RF = 復(fù)制篩選存儲(chǔ)過程S = 系統(tǒng)表TF = 表函數(shù)

TR = 觸發(fā)器U = 用戶表UQ = UNIQUE 約束(類型是 K)V = 視圖X = 擴(kuò)展存儲(chǔ)過程 另:在sqlserver中取得某個(gè)數(shù)據(jù)庫中所有表名的sql語句 select sysobjects.name from sysobjects.xtype ='U';SELECT name

WHERE (xtype = 'U') 在數(shù)據(jù)庫的sysobjects表里有這個(gè)數(shù)據(jù)庫全部表的信息, xtype值為'U'的就是表名 注意:一般通過上述方法獲得全部用戶表示都會(huì)有一個(gè)dtproperties表,SQLSERVER 默認(rèn)它也是用戶表,想要從用戶表中排出,需要加上限定條件 status0,即:select * from sysobjects where xtype='U' and status0

SQLServer快照功能以及其查詢?nèi)绾尾僮?/h2>

SQLServer數(shù)據(jù)庫的快照只能通過SQL語句創(chuàng)建,以msdb數(shù)據(jù)庫為例進(jìn)行說明:

1、執(zhí)行以下代碼,看看MSDB數(shù)據(jù)庫有多少數(shù)據(jù)文件

EXEC SP_HELPDB msdb

2、為每一個(gè)數(shù)據(jù)文件創(chuàng)建快照,代碼如下:

create database snap_MSDBData_1811221202

ON ( NAME = MSDBData, FILENAME= 'D:\userdata\temp\Snap_MSDBData.snap')

AS SNAPSHOT OF MSDB

3、在“數(shù)據(jù)庫快照”那里就可以看到剛剛創(chuàng)建snap_MSDBData_1811221202這個(gè)快照了,對(duì)比一下快照和原庫,內(nèi)容是一樣的

4、數(shù)據(jù)庫快照其實(shí)也是一個(gè)數(shù)據(jù)庫,可以在上面執(zhí)行任何SQL語句,我們執(zhí)行一個(gè)查詢語句看看效果

SELECT *? FROM [MSDB].[dbo].[MSdbms]

SELECT *? FROM [snap_MSDBData_1811221202].[dbo].[MSdbms]

查詢結(jié)果是完全一樣的。

(如有幫助,請采納,謝謝)


新聞名稱:sqlserver快照,sqlserver快照復(fù)制
URL網(wǎng)址:http://weahome.cn/article/dsssdjj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部