如何解决SQL Server 日志传送到同一台服务器复制作业的权限问题
我不熟悉日志传送并尝试在测试环境中进行设置。
主数据库和辅助数据库位于同一服务器上的同一实例上(用于测试目的)。我正在备份到 azure 存储位置,然后以与该存储位置不同的名称进行恢复。我正在将事务日志写入相同的存储位置。这是它崩溃的地方。无法从网络位置复制到本地文件夹。如果我手动复制,则恢复工作正常。如果我可以写入它,为什么我不能从中读取?
错误是:
我在一个工作组,而不是一个域中,所以这可能会使这变得更加困难。
这是我使用的代码:
/* Run on Primary server */
USE [master];
GO
ALTER DATABASE PrimaryDb SET RECOVERY FULL WITH NO_WAIT;
GO
----------
BACKUP DATABASE PrimaryDb
TO disK = '\\OurCompany.file.core.windows.net\LogShipping\LS_Test\PrimaryDb_Backup.bak'
WITH
FORMAT,INIT,COMPRESSION,MEDIANAME = 'PrimaryDb',NAME = 'PrimaryDb';
GO
/* Run on Secondary server */
RESTORE DATABASE SecondaryDB
FROM disK = '\\OurCompany.file.core.windows.net\LogShipping\LS_Test\PrimaryDb_Backup.bak'
WITH
NOUNLOAD,STATS = 10,MOVE 'SecondaryDB' TO 'F:\Databases\SecondaryDB\SecondaryDB.mdf',MOVE 'SecondaryDB_log' TO 'F:\Databases\SecondaryDB\SecondaryDB_1.ldf',STANDBY = 'F:\Databases\SecondaryDB\SecondaryDB_Standby.bak';
--norECOVERY;
GO
---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
/* BEGIN Setup log shipping on Primary */
DECLARE @BackupJobId AS UNIQUEIDENTIFIER,@PrimaryId AS UNIQUEIDENTIFIER,@RetCode AS INT /* 0 (success) or 1 (failure) */
exec @RetCode = master..sp_add_log_shipping_primary_database
@database = 'PrimaryDb',@backup_directory = '\\OurCompany.file.core.windows.net\LogShipping\LS_Test',@backup_share = '\\OurCompany.file.core.windows.net\LogShipping\LS_Test',@backup_job_name = 'LS_Test_Backup',@backup_retention_period = 1440,/* 1 day */
@backup_threshold = 45,/* Minutes */
@threshold_alert_enabled = 1,@history_retention_period = 5760,/* 4 days */
@overwrite = 1,@backup_compression = 1,@backup_job_id = @BackupJobId OUTPUT,@primary_id = @PrimaryId OUTPUT;
----------
IF (@@ERROR = 0 AND @RetCode = 0)
BEGIN
DECLARE @BackUpScheduleUID as UNIQUEIDENTIFIER,@BackUpScheduleID as INT
exec msdb..sp_add_jobschedule
@job_id = @BackupJobId,@name = 'Every_5_Min',@enabled = 1,@freq_type = 4,/* 4 = Daily */
@freq_interval = 1,/* Every 1 day */
@freq_subday_type = 4,/* 4 = In minutes */
@freq_subday_interval = 5,/* Every 5 minutes */
@schedule_id = @BackUpScheduleID OUTPUT,@schedule_uid = @BackUpScheduleUID OUTPUT;
exec msdb..sp_update_job @job_id = @BackupJobId,@enabled = 1;
END
/* END Setup log shipping on Primary */
---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
GO
/* Switch to Secondary server */
/* BEGIN Setup log shipping on Secondary */
DECLARE @copyJobID as UNIQUEIDENTIFIER,@RestoreJobID as UNIQUEIDENTIFIER,@SecondaryID as UNIQUEIDENTIFIER,@RetCode as INT
EXEC @RetCode = master..sp_add_log_shipping_secondary_primary
@primary_server = 'SandBox',@primary_database = 'PrimaryDB',@backup_source_directory = '\\OurCompany.file.core.windows.net\LogShipping\LS_Test',@backup_destination_directory = 'F:\Local_LogShipping_Dest_Test',@copy_job_name = 'LS_Test_copy',@restore_job_name = 'LS_Test_Restore',@file_retention_period = 300,/* Minutes */
@copy_job_id = @copyJobID OUTPUT,@restore_job_id = @RestoreJobID OUTPUT,@secondary_id = @SecondaryID OUTPUT
-----
IF(@@ERROR = 0 AND @RetCode = 0)
BEGIN
DECLARE @SecondarycopyJobScheduleUID UNIQUEIDENTIFIER,@SecondarycopyJobScheduleID INT
/* BEGIN copY Job */
exec msdb..sp_add_jobschedule
@job_id = @copyJobID,@name = 'Every5Mincopy',/* 4 = Daily */
@freq_interval = 1,/* Every 1 day */
@freq_subday_type = 4,/* 4 = In minutes */
@freq_subday_interval = 5,/* Every 5 minutes */
@schedule_id = @SecondarycopyJobScheduleID OUTPUT,@schedule_uid = @SecondarycopyJobScheduleUID OUTPUT;
/* END copY Job */
----------
DECLARE @SecondaryRestoreJobScheduleUID UNIQUEIDENTIFIER,@SecondaryRestoreJobScheduleID INT;
exec msdb..sp_add_jobschedule
@job_id = @RestoreJobID,@name = 'Every5MinRestore',/* Every 5 minutes */
@schedule_id = @SecondaryRestoreJobScheduleID OUTPUT,@schedule_uid = @SecondaryRestoreJobScheduleUID OUTPUT;
/* */
exec msdb..sp_update_job @job_id = @copyJobID,@enabled = 1;
exec msdb..sp_update_job @job_id = @RestoreJobID,@enabled = 1;
END
/* END Setup log shipping on Secondary */
/* Setup Secondary for Log Shipping */
exec sp_add_log_shipping_secondary_database
@secondary_database = 'SecondaryDB',@primary_server = 'SandBox',@primary_database = 'PrimaryDB',@restore_mode = 1,/* 0 = norECOVERY,1 = STANDBY. */
@disconnect_users = 1,@overwrite = 1
/* Run on Primary */
EXEC master..sp_add_log_shipping_primary_secondary
@primary_database = 'PrimaryDB',@secondary_server = 'SandBox',@secondary_database = 'SecondaryDB',@overwrite = 1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。