Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Log Shipping своими силами: обсуждение  [new]
jimmers
Member

Откуда: Санкт-Петербург - New York City
Сообщений: 5069
Поскольку ключевые файлы для версии Enterprise и Standard одни и те же(sqlservr.exe, sqlmaint.exe), есть идея выдрать набор процедур и таблиц, отвечающих за Log Shipping из Enterprise и залить в Standard. Наверняка уже кто-то пробовал - какие есть соображения?
20 окт 03, 15:38    [384005]     Ответить | Цитировать Сообщить модератору
 Re: Log Shipping своими силами: обсуждение  [new]
OLEG_ISR
Guest
Glyante zdes' :

http://]http://sqlmag.com/Articles/Print.cfm?ArticleID=15804

nu i vot eshe :

--разыскиваются sp_ShipLog, sp_ApplyStandbyLog из SQL 2000 Resource Kit для организации Log Shipping 


--на SQL 2000 Server Standart Edition


if exists (SELECT * from sysobjects where id = object_id('dbo.sp_ShipLog') and sysstat & 0xf = 4)
drop procedure dbo.sp_ShipLog
GO

CREATE PROCEDURE sp_ShipLog
@DBName sysname, -- Name of the database to ship logs

@StandbyServer sysname, -- Standby server to receive/apply the logs

@BackupLocationPath nvarchar(256), -- UNC path to location of the log files

@UndoFile nvarchar(256), -- Undo file on the standby server

@MinuteInterval int, -- How often to ship the log in minutes

@HourDuration int -- How long to run the log shipping in hours

AS

-- ****************************************************

-- Desc: Makes a "hot" backup of a database by dumping the log

-- for the specified database to the standby server at

-- the requested interval. In addition, the log is then

-- applied at the target server. This procedure assumes

-- that execution under a domain account that has the

-- neccessary access to invoke remote stored procedure on

-- the standby server. The standby server must be setup as

-- a linked or remote server from the primary.

-- ****************************************************

DECLARE @SQLCmd nvarchar(510)
DECLARE @StartDateTime DateTime
DECLARE @EndDateTime DateTime
DECLARE @NextBackupDateTime DateTime
DECLARE @CutoffDateTime DateTime
DECLARE @DateTimeString nvarchar(20)
DECLARE @BackupFileName nvarchar(256)
DECLARE @ErrCapture int
DECLARE @ErrDesc nvarchar(510)

-- SET the start time to preceed the current date/time

SET @StartDateTime=current_timestamp

-- SET the end date to be the current hour plus the end hour parameter

SET @EndDateTime = dateadd(hour, @HourDuration, @StartDateTime)

-- Set the next backup time to the current time

SET @NextBackupDateTime = current_timestamp

-- Do until specified stop time

WHILE @StartDateTime < @EndDateTime
BEGIN
-- Generate the date/time stamp file format

SET @DateTimeString = convert(varchar(20),current_timestamp,120)
SET @BackupFileName =
@BackupLocationPath + '\' + rtrim(@DBName) +
'_' +
substring(@DateTimeString,1,4) +
substring(@DateTimeString,6,2) +
substring(@DateTimeString,9,2) +
'_' +
substring(@DateTimeString,12,2) +
substring(@DateTimeString,15,2) + '_LOG.BAK'

-- Backup the database log to the specified location

PRINT 'Backing up ' + @DBName + ' to DISK=' + @BackupFileName
BACKUP LOG @DBName TO DISK=@BackupFileName
SET @ErrCapture = @@ERROR
IF @ErrCapture <> 0
GOTO Error_Handler

-- Restore the database on the target server and leave it in standby mode

-- For this to work, the standby server must be setup as a linked or remote

-- server and must have the sp_ApplyShipLog stored procedure in the Master

-- database.

SET @SQLCmd = N'Execute [' +
rtrim(@StandbyServer) + '].master.dbo.sp_ApplyStandByLog ' +
'N''' + rtrim(@DBName) + ''',' +
'N''' + rtrim(@BackupFileName) + ''',' +
'N''' + rtrim(@UndoFile) + ''''
PRINT @SQLCmd
EXECUTE sp_ExecuteSQL @SQLCmd
SET @ErrCapture = @@ERROR
IF @ErrCapture <> 0
GOTO Error_Handler
-- SET the next iteration time to be the current time plus the minute interval

SET @NextBackupDateTime = dateadd(minute,@MinuteInterval,@NextBackupDateTime)
WAITFOR TIME @NextBackupDateTime
END
RETURN

Error_Handler:
SET @ErrDesc =
'sp_ShipLog Error ' + convert(varchar(9),@ErrCapture) + ' occurred on '
+ 'database %s to server %s using backup file %s'
RAISERROR (@ErrDesc,19,1,@DBName, @StandbyServer, @BackupFileName)
WITH LOG
RETURN


-----------------------------------------------------

if exists (SELECT * from sysobjects where id = object_id('dbo.sp_ApplyStandByLog') and sysstat & 0xf = 4)
drop procedure dbo.sp_ApplyStandByLog
GO

CREATE PROCEDURE sp_ApplyStandByLog
@DBName sysname,
@BackupFileName nvarchar(60),
@UndoFile nvarchar(256)
AS
DECLARE @RestoreCmd nvarchar(510)
DECLARE @ErrDesc nvarchar(510)
SET @RestoreCmd =
'RESTORE LOG ' + @DBName
+ ' FROM DISK=''' + @BackupFileName
+ ''' WITH STANDBY=''' + @UndoFile
PRINT 'Executing ' + @RestoreCmd
RESTORE LOG @DBName FROM DISK=@BackupFileName WITH STANDBY=@UndoFile
IF @@ERROR <> 0
BEGIN
SET @ErrDesc =
'sp_ApplyStandByLog Error ' + convert(varchar(9),@@Error) + ' occurred on '
+ 'database %s restoring backup file %s'
RAISERROR (@ErrDesc,19,1,@DBName, @BackupFileName)
END
RETURN
20 окт 03, 17:15    [384281]     Ответить | Цитировать Сообщить модератору
 Re: Log Shipping своими силами: обсуждение  [new]
jimmers
Member

Откуда: Санкт-Петербург - New York City
Сообщений: 5069
Тема никому не интересна?
24 окт 03, 17:57    [392439]     Ответить | Цитировать Сообщить модератору
 Re: Log Shipping своими силами: обсуждение  [new]
Crimean
Member

Откуда:
Сообщений: 13148
Я еще под 6.5 писал нечто подобное. Два сервера и переподнятие бакапов на планировщике. Так что к логшиппингу отнесся весьма прохладно.
24 окт 03, 19:55    [392594]     Ответить | Цитировать Сообщить модератору
 Re: Log Shipping своими силами: обсуждение  [new]
OLEG_ISR
Guest
Pomoemu dlya polnocennogo LOG SHIPPING luchshe vse taku EnterPrise Edition
chem zanimat'sya lovley blox v Standard Edition
26 окт 03, 11:47    [393332]     Ответить | Цитировать Сообщить модератору
 Re: Log Shipping своими силами: обсуждение  [new]
jimmers
Member

Откуда: Санкт-Петербург - New York City
Сообщений: 5069
2OLEG_ISR

Лучше, конечно. Только вот вопрос в том, что стОит ли за Лог Шиппинг доплачивать разницу в цене между EE и SE.
26 окт 03, 19:06    [393464]     Ответить | Цитировать Сообщить модератору
 Re: Log Shipping своими силами: обсуждение  [new]
ziktuw
Member

Откуда:
Сообщений: 3552
Не стоит. Log Shipping в EE - больше похож на студенческую поделку, чем на реальное средство, которым можно было бы пользоваться.
26 окт 03, 19:14    [393469]     Ответить | Цитировать Сообщить модератору
 Re: Log Shipping своими силами: обсуждение  [new]
OLEG_ISR
Guest
Ya realizoval Transaction Replication vmesto Log Ship. i dovolen jizn'u....
Vot tol'ko i perenosom program mojet bit moroka
27 окт 03, 12:31    [394116]     Ответить | Цитировать Сообщить модератору
 Re: Log Shipping своими силами: обсуждение  [new]
Белов Владимир
Member

Откуда: Москва
Сообщений: 1716
Я также у себя на серверах создал некое подобиее лог-шиппинга. Единственное но - это то что для меня важна актуальность данных в за предыдущий день, поэтому восстановление логов не происходит, хотя при желании дописать сие имхо, проблемы не состовляет.
27 окт 03, 12:38    [394135]     Ответить | Цитировать Сообщить модератору
 Re: Log Shipping своими силами: обсуждение  [new]
jimmers
Member

Откуда: Санкт-Петербург - New York City
Сообщений: 5069
Понятно, тогда не стану публиковать это дело.
27 окт 03, 13:06    [394222]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Log Shipping своими силами: обсуждение  [new]
Jem
Member

Откуда:
Сообщений: 735
2 jimmers
И все же, может вы опубликуете это дело, если оно у вас осталось конечно.
Спасибо.
21 ноя 04, 13:04    [1123411]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить