Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / перенос большой базы на новый сервер / 21 сообщений из 21, страница 1 из 1
17.08.2021, 13:51
    #40091212
dolya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перенос большой базы на новый сервер
Всем привет.
Кто может подсказать идеи подать.
Сдохло пару Lun на СХД.
СХД сама старая не на поддержки. Инженер от вендора сказал скоро вся помрет, там и платы погарели и куча дисков.
Цену назвали за ремонт можно такую же купить, только новую и современную.
У меня критичная база на этой СХД, 24 тера. И пользаки ей активно пользуются.
Один бэкап ее идет полтора дня.
Денег руководство сказало нет. В этом году ничего не купят.
Но у нас есть кусочек места в облаке арендованный.
Планируем перенести туда.
если тащить бэкап в облако по сети калькулятор передачи данных посчитал 50 дней.
Как можно залить полную копию по сети без бэкапа, кластер из always on group не могу создать у нас лицензия не та.
Хрен с ним пускай перекачивает в сеть 50 дней и пользаки паралельно работают.
Только вот не знаю как реализовать.
Я думал нас купить, сделать бэкап, залить бэкап на нас, принести в контору и развернуть прямо в конторе которая нам облако дает но все равно получается по моим расчетам дней на 6 отключить базу надо.
Сервер у нас MS SQL server 2014.
Может есть какая то встроенная утилита или кто знает полезную статью на такой случай.
...
Рейтинг: 0 / 0
17.08.2021, 15:33
    #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
17.08.2021, 16:21
    #40091275
dolya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перенос большой базы на новый сервер
РядомСтоял,

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

И я заметил. Что дифф бэкап растет очень странно. первые 2 недели он добавляет к дифу по 200 гб в день. А потом начинает больше и больше как то раз дифу не хватило 5 теров свободного места за раз. То есть если я от фула делаю ежедневно дифы, то через месяц у меня 1 дифф занимает тера 2 - 3. Фуловый бэкап делается раз в месяц.
...
Рейтинг: 0 / 0
17.08.2021, 16:28
    #40091278
dolya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перенос большой базы на новый сервер
РядомСтоял,
И получается по сети тянуть надо месяц фулл а через месяц куча дифов по объему фула.
...
Рейтинг: 0 / 0
17.08.2021, 16:34
    #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
17.08.2021, 17:10
    #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
17.08.2021, 21:13
    #40091341
Критик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перенос большой базы на новый сервер
SERG1257,

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

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

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


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

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

Но что то надо и с железом делать, если полный бакап делается несколько дней, иначе слишком долгий простой получается, случись что.
...
Рейтинг: 0 / 0
19.08.2021, 09:13
    #40091668
L_argo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перенос большой базы на новый сервер
авторДенег руководство сказало нет. Нет ручек - нет и варенья (с) анек
Перечислить руководству все риски и ждать у моря погоды. Сдохнет так сдохнет. Это же не ваш бизнес.
...
Рейтинг: 0 / 0
19.08.2021, 21:01
    #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
19.08.2021, 23:45
    #40092076
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перенос большой базы на новый сервер
flexgen
если мне вдруг понадобится восстановить эту базу по состоянию на утро пятницы, мне придется накатывать
около 1500 transaction log файлов.
Зато нужно будет меньше диска, и будет меньше ИО при бакапах

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

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

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

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



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




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


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

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

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

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


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