powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / перенос большой базы на новый сервер
21 сообщений из 21, страница 1 из 1
перенос большой базы на новый сервер
    #40091212
dolya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.
Кто может подсказать идеи подать.
Сдохло пару Lun на СХД.
СХД сама старая не на поддержки. Инженер от вендора сказал скоро вся помрет, там и платы погарели и куча дисков.
Цену назвали за ремонт можно такую же купить, только новую и современную.
У меня критичная база на этой СХД, 24 тера. И пользаки ей активно пользуются.
Один бэкап ее идет полтора дня.
Денег руководство сказало нет. В этом году ничего не купят.
Но у нас есть кусочек места в облаке арендованный.
Планируем перенести туда.
если тащить бэкап в облако по сети калькулятор передачи данных посчитал 50 дней.
Как можно залить полную копию по сети без бэкапа, кластер из always on group не могу создать у нас лицензия не та.
Хрен с ним пускай перекачивает в сеть 50 дней и пользаки паралельно работают.
Только вот не знаю как реализовать.
Я думал нас купить, сделать бэкап, залить бэкап на нас, принести в контору и развернуть прямо в конторе которая нам облако дает но все равно получается по моим расчетам дней на 6 отключить базу надо.
Сервер у нас MS SQL server 2014.
Может есть какая то встроенная утилита или кто знает полезную статью на такой случай.
...
Рейтинг: 0 / 0
перенос большой базы на новый сервер
    #40091254
dolya,

Кроме полных бакапов есть же еще дифференциальные и бакапы логов.
1. Сделать полный, и копировать его на облако.
На базе пока в это время обойтись без полных (либо делать их с copy_only), выполняя только разностное копирование и бакапы логов.

2. Как скопируется и развернется фулл на облаке, сделать очередной дифф-бакап и заливать его на облако. На сервере ограничения на выполнение фулл-бакапов можно снять, но главное не потерять непрерывность цепочки бакапов логов.

3. Как скопируется и развернётся дифф, последовательно накатывать бакапы логов. И так пока не догонится рабочая база

4. В момент переключения отключаем пользователей, делаем финальный бакап лога, копируем и разворачиваем его на облаке, базу переводим в рабочий режим на облаке, переключаем пользователей туда.

В итоге простой будет только на шаге 4.
Но нужно предварительно оценить, а сколько вообще изменений происходит в базе, есть ли шансы догнать по такой схеме.
В принципе можно и без диффов, только бакапами логов, всё упирается в активность работы с базой, сколько изменений в ней генерируется.
Ваша версия sql к сожалению еще не умеет modified_extent_page_count в sys.dm_db_file_space_usage, предсказать размер диффов спустя неделю помогут только натурные эксперименты.

P.S. ну и не забывать про сжатие бакапа, в вашем случае это будет дюже полезно, если до сих пор не используется по каким-то причинам.

P.S.2 почитать про Log Shipping. но на ваших объёмах восстанавливать всё равно придется без визардов, вручную
...
Рейтинг: 0 / 0
перенос большой базы на новый сервер
    #40091275
dolya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
РядомСтоял,

Бэкап практически не жмется.
В базе куча документов, так система реализована.
...
Рейтинг: 0 / 0
перенос большой базы на новый сервер
    #40091277
dolya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
РядомСтоял,

И я заметил. Что дифф бэкап растет очень странно. первые 2 недели он добавляет к дифу по 200 гб в день. А потом начинает больше и больше как то раз дифу не хватило 5 теров свободного места за раз. То есть если я от фула делаю ежедневно дифы, то через месяц у меня 1 дифф занимает тера 2 - 3. Фуловый бэкап делается раз в месяц.
...
Рейтинг: 0 / 0
перенос большой базы на новый сервер
    #40091278
dolya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
РядомСтоял,
И получается по сети тянуть надо месяц фулл а через месяц куча дифов по объему фула.
...
Рейтинг: 0 / 0
перенос большой базы на новый сервер
    #40091280
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dolya
Всем привет.
Кто может подсказать идеи подать.
Сдохло пару Lun на СХД.
СХД сама старая не на поддержки. Инженер от вендора сказал скоро вся помрет, там и платы погарели и куча дисков.
Цену назвали за ремонт можно такую же купить, только новую и современную.
У меня критичная база на этой СХД, 24 тера. И пользаки ей активно пользуются.
Один бэкап ее идет полтора дня.
Денег руководство сказало нет. В этом году ничего не купят.
Но у нас есть кусочек места в облаке арендованный.
Планируем перенести туда.
если тащить бэкап в облако по сети калькулятор передачи данных посчитал 50 дней.
Как можно залить полную копию по сети без бэкапа, кластер из always on group не могу создать у нас лицензия не та.
Хрен с ним пускай перекачивает в сеть 50 дней и пользаки паралельно работают.
Только вот не знаю как реализовать.
Я думал нас купить, сделать бэкап, залить бэкап на нас, принести в контору и развернуть прямо в конторе которая нам облако дает но все равно получается по моим расчетам дней на 6 отключить базу надо.
Сервер у нас MS SQL server 2014.
Может есть какая то встроенная утилита или кто знает полезную статью на такой случай.


Делая полный бэкап в несколько файлов, можете ускорить этот процесс.

После того, как сделаете полный бэкап на боевой, настройте джоб, котрый будет делать бэкапы логов транзакций и сохранять результаты в таблицу.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
USE [ADMIN]
GO
/****** Object:  StoredProcedure [dbo].[BACKUP$BackupLog]    Script Date: 17.08.2021 16:26:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[BACKUP$BackupLog]
@dbname sysname, @path varchar(500), @exec int = 0
as
begin

Declare
@sql		nvarchar(4000),
@message	varchar(400),
@datepart	varchar(200),
@full_name	varchar(1000)

if db_id(@dbname) is null
	begin
		raiserror ('Database not found.', 16, 1)
		return -1
	end
	
if right(@path, 1) <> '\'
	set @path = @path + '\'

select @datepart = convert(varchar, getdate(), 112)

select @sql = 'md ' + @path + @datepart

exec master..xp_cmdshell @sql

select @path = @path + @datepart + '\'

select @datepart =  @dbname + '_tlog_' + convert(varchar, getdate(), 112) + '_' + 
case
	when  len(convert(varchar, datepart(hh, getdate()))) < 2 then '0' + convert(varchar, datepart(hh, getdate()))
	else convert(varchar, datepart(hh, getdate()))
end
+
case 
	when len(convert(varchar, datepart(mi, getdate()))) < 2 then '0' + convert(varchar, datepart(mi, getdate()))
	else convert(varchar, datepart(mi, getdate()))
end
+ '.BTL'

set @full_name = @path + @datepart

select @sql = 'backup log [' + @dbname + '] to disk=''' + @path + @datepart + ''''   

insert into [admin].dbo.LOG_BackUp ([Db_name],BackUpType,BackUpFolder,BackUpStart,Complite) values (@dbname,'LOG',@full_name,GETDATE(),0)
if @exec = 1
	exec master..sp_executesql @stmt = @sql
else
	print @sql
update [admin].dbo.LOG_BackUp set BackUpEnd=GETDATE(),Complite=1 where BackUpFolder=@full_name

end



После того, как развернете полный бэкап на резерве, линкуетесь к этой таблице и курсором идете по этой таблице и применяете логи на копии.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
DECLARE @db_name nvarchar(128),@path nvarchar(max),@sql nvarchar(max)
DECLARE vendor_cursor CURSOR FOR   
select [db_name],BackUpFolder from [GAMMA\SRVSQLNKC].[ADMIN].dbo.LOG_BackUp where [Db_name]='Checks' and BackUpType='LOG' and complite=0 order by id asc 
  
OPEN vendor_cursor  
  
FETCH NEXT FROM vendor_cursor   
INTO @db_name, @path  
  
WHILE @@FETCH_STATUS = 0  
BEGIN  
    select @db_name,@path
	set @sql='RESTORE LOG [Checks_og] FROM  DISK = N'''+@path+''' ,  NOUNLOAD,  STATS = 10'
	exec sp_executesql @sql
	update [GAMMA\SRVSQLNKC].[ADMIN].dbo.LOG_BackUp set complite=1 where BackUpFolder=@path
        -- Get the next vendor.  
    FETCH NEXT FROM vendor_cursor   
    INTO @db_name, @path  
END   
CLOSE vendor_cursor;  
DEALLOCATE vendor_cursor;



Это избавит вас от удовольствия делать всё руками.

Скрипт таблички:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
USE [ADMIN]
GO

/****** Object:  Table [dbo].[LOG_BackUp]    Script Date: 17.08.2021 16:32:25 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[LOG_BackUp](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[Db_name] [nvarchar](100) NULL,
	[BackUpType] [nvarchar](4) NULL,
	[BackUpFolder] [nvarchar](max) NULL,
	[BackUpStart] [datetime] NULL,
	[BackUpEnd] [datetime] NULL,
	[Complite] [int] NULL,
	[smalldate] [varchar](50) NULL,
 CONSTRAINT [PK_LOG_BackUp] PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
GO



Не забудьте поправить имена баз и линка под себя.
...
Рейтинг: 0 / 0
перенос большой базы на новый сервер
    #40091289
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dolyaСервер у нас MS SQL server 2014.Редакция какая?

dolyaНо у нас есть кусочек места в облаке арендованный. Планируем перенести туда.А как база будет жить в облаке никто опытов не ставил? А приложение тоже в облаке будет?
Как бы не получилось что база неприемлимо работает, но ценник облачный конский.
вышел из зоны комфорта, так ничего не добился, но теперь и некомфортно (с)

dolyaкластер из always on group не могу создать у нас лицензия не та.Кластеру ТОЖЕ нужен полный бакап

dolyaЯ думал нас купить, сделать бэкап, залить бэкап на нас, принести в контору и развернуть прямо в конторе которая нам облако даетСовершенно согласен

dolyaно все равно получается по моим расчетам дней на 6 отключить базу надоНе надо.

В таких условиях только Log shipping
Если у вас база в simply recovery mode переводите в полный. Выделяйте кучу места для логов и бакапов логов.
Бакапьте логи каждые 5 минут (пусть предыдущий джоб не завершен), да хоть каждую минуту.
Пересылайте логи (маленькие) в облако. Там в облаке можно будет открыть базу на чтение чтобы хоть как-то проверить network latency.

dolyaЦену назвали за ремонт можно такую же купить, только новую и современную.Купите новую и современную. Это будет самый надежный вариант.

dolyaДенег руководство сказало нет. В этом году ничего не купят.Прикрывайте пятую точку. Все заявления только под запись чтобы не оказаться крайними. Привлекайте внимание вышестоящего начальства, будьте готовы что вас подставят. Обновляйте резюме
...
Рейтинг: 0 / 0
перенос большой базы на новый сервер
    #40091341
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SERG1257,

Что-то мне говорит, что автор под облаком имеет ввиду чужую площадку.
...
Рейтинг: 0 / 0
перенос большой базы на новый сервер
    #40091345
dolya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Критик,

Можно и так сказать.
Руководство это облаком. Ну и в статьях это называют облаком.
У нас там арендовано место дисковое пространство и серверные мощности.
Я это все вижу как сервера. а пользакам вообще пофиг.
Главное работает
...
Рейтинг: 0 / 0
перенос большой базы на новый сервер
    #40091354
Фотография Критик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dolya,

Договаривайтесь о перетаскивании на дисках, потом выбираете какие-нибудь праздничные даты и вкалываете все праздники. Но учтите, как только у вас отвалится канал - все пользователи будут курить
...
Рейтинг: 0 / 0
перенос большой базы на новый сервер
    #40091361
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dolyaИ я заметил. Что дифф бэкап растет очень странно. первые 2 недели он добавляет к дифу по 200 гб в день. А потом начинает больше и больше как то раз дифу не хватило 5 теров свободного места за раз. То есть если я от фула делаю ежедневно дифы, то через месяц у меня 1 дифф занимает тера 2 - 3. Фуловый бэкап делается раз в месяц.
Безотносительно к переносу большой базы на новый сервер.
Зачем вы вообще делаете бакапы? Наверное для того чтобы провести восстановление.
  • А сколько будет длится восстановление базы для такой стратегии бакапа?
  • Что будут делать "пользаки" ?
  • Кто будет ответственным за простой?
Задайте эти вопросы сейчас пока еще ничего не произошло.
...
Рейтинг: 0 / 0
перенос большой базы на новый сервер
    #40091386
dolya
РядомСтоял,
И получается по сети тянуть надо месяц фулл а через месяц куча дифов по объему фула.


кстати почему куча диффов? тянуть надо будет один последний дифф, они кумулятивные.
Но конечно тянуть месяц не вариант, у вас за месяц и СХД уже может совсем загнуться. Надо договариваться о переносе на дисках.
...
Рейтинг: 0 / 0
перенос большой базы на новый сервер
    #40091618
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dolya
И я заметил. Что дифф бэкап растет очень странно. первые 2 недели он добавляет к дифу по 200 гб в день.
Что странного, так и должно быть.
Вам же в алгоритме написали "сделать дифф бакап", а не "делать дифф бакап каждый день".

Вполне рабочий вариант, если есть деньги на НАС (или он уже есть), с относительно небольшим временем простоя.
dolya
То есть если я от фула делаю ежедневно дифы
Делайте фулл раз в месяц, и ежедневно бакап лога. Что вообще за любовь у людей у дифф бакапам???

Но что то надо и с железом делать, если полный бакап делается несколько дней, иначе слишком долгий простой получается, случись что.
...
Рейтинг: 0 / 0
перенос большой базы на новый сервер
    #40091668
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторДенег руководство сказало нет. Нет ручек - нет и варенья (с) анек
Перечислить руководству все риски и ждать у моря погоды. Сдохнет так сдохнет. Это же не ваш бизнес.
...
Рейтинг: 0 / 0
перенос большой базы на новый сервер
    #40092027
flexgen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg
Делайте фулл раз в месяц, и ежедневно бакап лога. Что вообще за любовь у людей у дифф бакапам???


Есть у меня база, ~20 ТБ, запись данных идет очень активно, приходится выполнять backup transaction log file каждые 5 минут , каждый файл ~500 МБ, это с учетом сжатия. Вот и представь, в среднем 12 файлов в час, за сутки - 280 файлов общим размером 14 ГБ. За неделю - около 1600 файлов размером 98 ГБ.
Full backup делаю раз в неделю, в ночь с пятницы на субботу, т.е. если мне вдруг понадобится восстановить эту базу по состоянию на утро пятницы, мне придется накатывать
около 1500 transaction log файлов.
Я же делаю по другому - как уже сказал, full backup раз в неделю, храню неделю. Раз в день diff backup, храню 3 дня, и каждые 5 минут transaction log backup, храню 24 часа. Если придется восстанавливать базу по состоянию на утро пятницы, то мне придется обработать 1 full backup, 1 diff backup и около 120 transaction log backup файлов.
...
Рейтинг: 0 / 0
перенос большой базы на новый сервер
    #40092076
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
flexgen
если мне вдруг понадобится восстановить эту базу по состоянию на утро пятницы, мне придется накатывать
около 1500 transaction log файлов.
Зато нужно будет меньше диска, и будет меньше ИО при бакапах

Чего бояться больших цифр? 1500 файлов? А в байтах это вообще сума сойти :-)

Ну и вопрос к-ва изменений одних и тех же данных - если интенсивно меняются одни и те же данные, то согласен, дифф очень даже ничего.
Но обычно жалобы на то, что к концу недели дифф становится ненамного меньше полного бакапа.
...
Рейтинг: 0 / 0
перенос большой базы на новый сервер
    #40092126
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg

Чего бояться больших цифр? 1500 файлов? А в байтах это вообще сума сойти :-)

ну, в общем случае, быстрее восстановить дифф, чем 1000+ лог бекапов (RTO)
имхо, при большом кол-ве файлов выше вероятность/риск получить битый файл
...
Рейтинг: 0 / 0
перенос большой базы на новый сервер
    #40092214
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argo
авторДенег руководство сказало нет.
Нет ручек - нет и варенья (с) анек
Перечислить руководству все риски и ждать у моря погоды. Сдохнет так сдохнет. Это же не ваш бизнес.



Не удастся ТС ждать "сдохнет так сдохнет" и "это же не ваш бизнес" .
Судя по его месыджям - его е сделают на всю голову крайним.
...
Рейтинг: 0 / 0
перенос большой базы на новый сервер
    #40092244
Фотография aist-psk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ролг Хупин
L_argo
пропущено...
Нет ручек - нет и варенья (с) анек
Перечислить руководству все риски и ждать у моря погоды. Сдохнет так сдохнет. Это же не ваш бизнес.




Не удастся ТС ждать "сдохнет так сдохнет" и "это же не ваш бизнес" .
Судя по его месыджям - его е сделают на всю голову крайним.


если он раб лампы , значит заслужил
...
Рейтинг: 0 / 0
перенос большой базы на новый сервер
    #40092347
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad
alexeyvg

Чего бояться больших цифр? 1500 файлов? А в байтах это вообще сума сойти :-)

ну, в общем случае, быстрее восстановить дифф, чем 1000+ лог бекапов (RTO)
имхо, при большом кол-ве файлов выше вероятность/риск получить битый файл
С этим согласен, но бакап восстанавливать нужно редко, а проверять бакапы логов нужно восстановлением на тестовый сервер, по мере их создания, ну и хранить надёжно.
...
Рейтинг: 0 / 0
перенос большой базы на новый сервер
    #40093143
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНе удастся ТС ждать "сдохнет так сдохнет" и "это же не ваш бизнес" .
Судя по его месыджям - его е сделают на всю голову крайним. И чо ? Перейдет в нормальную компанию. Делов то.

Почему сотрудники должны ломать голову из-за лютого безденежья говнокомпании ?
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / перенос большой базы на новый сервер
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]