poorX

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  117 随笔 :: 0 文章 :: 11 评论 :: 16万 阅读
快照的作用
  1. 快照可用于报告目的
  2. 维护历史数据以生成报表
  3. 使用为了实现可用性目标而维护的镜像数据库来减轻报表负载
  4. 使数据免受管理失误、用户失误所带来的影响
  5. 管理测试数据库

快照:
https://docs.microsoft.com/zh-cn/sql/relational-databases/databases/database-snapshots-sql-server?view=sql-server-ver15

镜像创建快照:
https://docs.microsoft.com/zh-cn/sql/database-engine/database-mirroring/database-mirroring-and-database-snapshots-sql-server?view=sql-server-ver15

创建快照:
https://docs.microsoft.com/zh-cn/sql/relational-databases/databases/create-a-database-snapshot-transact-sql?view=sql-server-ver15

示例
CREATE DATABASE database_snapshot_name  
ON (NAME = 'database_name', FILENAME = 'F:\database_snapshot_name.SNP')  
   AS SNAPSHOT OF database_name;

再业务调用时需要配置 use database_snapshot_name 或者跨库 database_snapshot_name.dbo.table_name 访问表数据

创建权限

可创建数据库的任何用户都可以创建数据库快照;但是,若要创建镜像数据库的快照,你必须是 sysadmin 固定服务器角色的成员。

快照作业
use master;
go

declare @dbname sysname;
set @dbname = 'SnapShotDatabaseName';

declare @today_date varchar(20);
declare @snapshot_date varchar(20);
select @today_date = convert(varchar(10), getdate(), 23);
select @snapshot_date = convert(varchar(10), crdate, 23) from sysdatabases where name = @dbname;

if (@today_date != @snapshot_date or @snapshot_date is null)
	begin
		if (@snapshot_date is not null)
			begin
				declare @s NVARCHAR(1000);
				declare tb cursor local
				for
					select s = 'kill ' + cast(spid as varchar) from sysprocesses where dbid = DB_ID(@dbname);
				open tb;
				fetch next from tb into @s;
		
				while @@fetch_status = 0
					begin
						exec(@s);
						fetch next from tb into @s;
					end;
		
				close tb;
				deallocate tb;
				exec('drop database [' + @dbname + ']');
			end

		create database SnapShotDatabaseName on (name='ods_hist', filename='PATH') as snapshot of DatabaseName;
	end
posted on   poorX  阅读(77)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2019-04-23 【perl】simpleHTTP
点击右上角即可分享
微信分享提示