【发布时间】:2015-10-13 09:59:39
【问题描述】:
我想从 mu AZURE 服务器恢复上次备份。我有一个脚本,但我只是实现了使用当前日期进行备份,而不是最后一个。你知道如何获得它吗?
`使用[主]
走
DECLARE @name VARCHAR(50) -- 数据库名称
DECLARE @URL VARCHAR(256) -- 备份 URL
DECLARE @fileDate VARCHAR(20) -- 用于文件日期
-- 指定最后一次备份的日期格式。 SELECT @fileDate = REPLACE (CONVERT (VARCHAR (10), GETDATE (), 120), '-','_')
--创建凭据以连接到 windows azure 存储服务 如果不存在(SELECT * FROM sys.credentials WHERE credential_identity = 'aaaaaaaaaa') 开始 创建凭据 Pyramidsqlcredential WITH IDENTITY = 'bbbbbbbbbb' ,秘密 = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' 结尾 去吧
--能够恢复特定数据库的代码
声明 db_cursor CURSOR FOR
选择名称
FROM master.dbo.sysdatabases
WHERE name IN ('STG','DWH','AUXDB','TESTPORTAL') -- 只恢复这些数据库
打开 db_cursor
FETCH NEXT FROM db_cursor INTO @name
而@@FETCH_STATUS = 0
开始
--PRE数据库的创建 IF OBJECT_ID(N'PRE_@name', N'U') 不为空 删除数据库@name; 走 创建数据库 [@name] 遏制 = 无 初级 ( NAME = N'PRE_@name', FILENAME = N'G:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Data\PRE_@name.mdf' , SIZE = 609344KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ), FILEGROUP [INMEMORY] 包含 MEMORY_OPTIMIZED_DATA 默认值 登录 ( NAME = N'PRE_@name', FILENAME = N'H:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Data\PRE_@name_log.ldf' , SIZE = 833024KB , MAXSIZE = 2048GB , FILEGROWTH = 10 %)
设置@URL = 'https://xxxxxxxxxx.blob.core.windows.net/'
--将数据库恢复到 Windows azure 存储服务 - 使用 URL 的 blob 恢复数据库 PRE_AUXDB FROM URL = @URL+@name+'/'+@name+''+@fileDate+'*.bak' --FROM URL = 'https://xxxxxxxxxxxxxxxxxxxxxxx.blob.core.windows.net/AUXDB/AUXDB'+REPLACE (CONVERT (VARCHAR(10), GETDATE(), 120), '-','_')+'*.bak' 有凭证='aaaaaaaaaaaaaaa' ,将“PRE_AUXDB_Data”移动到“G:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\Data\PRE_@name_Data.mdf” ,统计 = 10
结束
关闭 db_cursor
DEALLOCATE db_cursor`
【问题讨论】:
标签: sql-server azure database-restore