powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Перемещение базы на новый сервер.
41 сообщений из 41, показаны все 2 страниц
Перемещение базы на новый сервер.
    #39898050
alHaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день уважаемые.

Планирую переезд экземпляра Microsoft SQL Server 2012 (SP4) на новый сервер,
На новом сервере другая структура дисков, файлы переедут в другое место, решил посоветоваться по сценарию.

1. На старом сервере остановлю экземпляр.
2. Скопирую все файлы на новый сервер по новым местам.
3. В диспетчере конфигурации SQL Server -d путь_к_master.mdf, -l путь_к_master.ldf
4. Запускаю экземпляр ...

а дальше я так понимаю он начинает искать файлы данных по местам где они лежали на старом сервере ... тут как быть?
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39898058
alHaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сервер под замену, т.е. имя будет прежнее, адрес тот же.
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39898060
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alHaos,

Ну сделайте деаттач баз, а потом приаттачите их на новом
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39898065
alHaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff,

А пользователи, планы обслуживания, и джобы?
MSDB восстановить после всех attach?
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39898068
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39898073
alHaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin,

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

остались планы обслуживания, вроде не в одной ссылке нет.


"Plans are nothing but SSIS packages "

https://mssqltrek.com/2011/08/27/how-to-transfercopy-maintenance-plans-from-one-server-to-other/
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39898079
alHaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что то суетно как то все это...

Если я используя внешнее схд сохраню структуру расположения файлов и имя сервера, могу я так переехать? по сценарию

1. На старом сервере остановлю экземпляр.
2. Скопирую все файлы по аналогичным
3. Запускаю экземпляр
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39898081
alHaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alHaos,

билды экземпляров совпадают.
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39898089
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>alHaos, сегодня, 13:39 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1319935&msg=22032024][22032024]
>что то суетно как то все это...
<Так работает:
1. Запускаем MS SQL Server Manager Studio (SSMS)
2. Отсоединяем базу данных
3. Архивируем базу (.mdf) и лог(.ldf) на промежуточный носитель.
(изящно с Acronis True Image)
4. Переносим архив к нужному месту
5. Деархивируем
6. Далее переходим к безопасности - в файлах базы(.mdf) и лог(.ldf) отключаем наследование всех пользователей
и создаем новое разрешение - Все с полным доступом
7. Присоединяем базу данных
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39898094
alHaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВМоисеев,

Комрад мне не базу мне экзепляр надо пренести
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39898107
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alHaos
ВМоисеев,

Комрад мне не базу мне экзепляр надо пренести

возьмите dbatools и оно вам перенесет практически всё за один раз

https://docs.dbatools.io/#Start-DbaMigration
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39898113
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alHaos,

если это важные базы, то их следует переносить путем восстановления из резервных копий. Другие способы не гарантируют возникновение ошибок в файлах баз.
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39898117
alHaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов, Благодарю.
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39898120
alHaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad, благодарю потестирую Ваш вариант
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39898125
teCa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если базенки маленькие, то пойдет план.
Можно заранее, на новом сервере скриптово создать базы со старого сервера, разложив их по дискам как нужно. Далее на старом перевести все БД в фулл рекавери, сделать полный бэкап всех БД, развернуть эти бэкапы на новом сервере, настроить перенос логов транзакций между базами на старом сервере и новом. Останется только остановить старый инстанс и перевести базы на новом из режима ресторинг в режим онлайн. Логины, линкованые сервера и джобы тоже можно перенести предварительно, если нужно.
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39898140
Фотография Yasha123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teCa
Логины, линкованые сервера и джобы тоже можно перенести предварительно, если нужно.

вот он и спрашивает, если просто мастер и мсдб старые перенести (в виде файлов) на новый сервер того же билда,
взлетит или нет.

а не копошиться с "Логины, линкованые сервера и джобы тоже как-то перенести"
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39898143
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yasha123
teCa
Логины, линкованые сервера и джобы тоже можно перенести предварительно, если нужно.

вот он и спрашивает, если просто мастер и мсдб старые перенести (в виде файлов) на новый сервер того же билда,
взлетит или нет.

а не копошиться с "Логины, линкованые сервера и джобы тоже как-то перенести"


а если пути расположения файлов бд не совпадают?
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39898160
alHaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Комрады, а ткните пожалуйста в официальное описание сценария.
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39898196
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alHaos
а дальше я так понимаю он начинает искать файлы данных по местам где они лежали на старом сервере ... тут как быть?
Для каждой базы сделать alter database ... modify file ...
Или детьач - атач, как советовали.
alHaos
felix_ff,

А пользователи, планы обслуживания, и джобы?
MSDB восстановить после всех attach?
Пользователи в мастере, который можно просто подложить на место имеющегося.
msdb тоже можно прицепить, как остальные базы.

Всё это, собственно, можно делать и через бакапы.

Если бы структура каталогов совпадала, то действительно проще подменить файлы.
Но раз она не совпадает, то можно пойти классическим путём, через восстановление бакапов.
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39898198
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alHaos
Комрады, а ткните пожалуйста в официальное описание сценария.
Официально указано, что "To move a database to another instance of SQL Server or to another server, use the backup and restore operation."
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39898199
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg

Если бы структура каталогов совпадала, то действительно проще подменить файлы.

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

Если бы структура каталогов совпадала, то действительно проще подменить файлы.

если уж делать вручную, то насоздавать пустых баз на новом инстансе и подменить новые файлы баз на имеющиеся с оригинального инстанса
Да, действительно, тем более, что если их много, да ещё и с кучей файлов, то можно и скриптик написать.
Ещё нужно учитывать, нет ли там всяких файлстримов...
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39898233
Alexander Us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alHaos,

просто интересно:

- сколько (примерно) у Вас баз?
- настроена ли репликация?
- используется лог шиппинг?
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39898374
alHaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
- сколько (примерно) у Вас баз?
баз в районе десятка, суммарный объем ~ 0.86 Tb
- настроена ли репликация?
нет
- используется лог шиппинг?
нет

файлстримов тоже нет
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39898464
ВМоисеев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>alexeyvg, вчера, 16:26 https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1319935&msg=22032255][22032255]
>Официально указано, что "‎Для перемещения базы данных на другой экземпляр сервера S'L или на другой сервер используйте резервную и восстановительную работу.‎"
<Уже несколько лет переношу базы данных с одного сервера на другой с использованием ног и флешки, не "используя резервную и восстановительную работу"
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39898738
Alexander Us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alHaos,

Лучше не слушать иех, кто советует переносить деаттачем.
Такой способ хорош для разработчиков с тестовыми базами.
С продакшином лучше использовать классическое резервное копирование и восстановление на новом сервере.
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39917324
alHaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго дня.

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

пока была только одна особенность, master key пришлось принудительно перегенерировать, в моем случае он повлиял на работу linked server c sql авторизацией. Линка не работала, новые линки не создавались.

Код: plaintext
ALTER SERVICE MASTER KEY FORCE REGENERATE
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39917331
alHaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас сценарий другой, для оптимизации времени перенос предварительно full backup norecovery и в момент перехода diff.

17 баз sharepoint, есть возможность генерации скриптов backup/resotre не для одной базы а сразу для всех?
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39917337
alHaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
komrad
alHaos
ВМоисеев,

Комрад мне не базу мне экзепляр надо пренести

возьмите dbatools и оно вам перенесет практически всё за один раз

https://docs.dbatools.io/#Start-DbaMigration


Есть боевой опыт у кого? надежно?
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39917394
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alHaos,

скрипты для 17 баз как-то не выглядят серьезной работой.
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39917405
alHaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов,

) сколько баз по вашему стоит работы ))))

у меня есть сервера, где под полтинник баз для мне это много, не знаю как для других, после какого количества баз это не будет считаться проявлением лени )
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39917451
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alHaos
Владислав Колосов,

) сколько баз по вашему стоит работы ))))

у меня есть сервера, где под полтинник баз для мне это много, не знаю как для других, после какого количества баз это не будет считаться проявлением лени )
17 баз - скрипт в 17 строчек, который делается копированием одной строки, а потом заменой в каждой строке 2х имён.

А если 50, ок, можно сделать скрипт запросом наподобие:
Код: sql
1.
2.
SELECT 'BACKUP DATABASE ' + name + '...'
FROM sys.databases
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39917508
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alHaos,

достаточно создать скрипт-шаблон, собрать названия папок, баз и подставить в шаблон.

sp_exeutesql и так далее.

Параметрами можно заполнить таблицу и выполнить цикл. Час-полтора займут все действия.
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39917637
alHaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg, Владислав Колосов

Благодарю как то так и планировал.
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39917638
alHaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
USE [master]
RESTORE DATABASE [databasename] 
	FROM DISK = N'F:\sql_backup\databasename.bak' 
	WITH  MOVE N'dataFileName' TO N'D:\sql_data\DataFileName.mdf',
		  MOVE N'logFileName_log' TO N'F:\sql_log\logFileName_log.LDF',
		  NORECOVERY
GO

RESTORE DATABASE [databasename]
	FROM DISK = N'F:\sql_backup\databasename.bak'
GO



мне не часто приходится писать на t-sql
Подскажите пожалуйста, для генерации подобных скриптов нужно использовать курсоры? учитывая, что нет гарантии того, что рукоблудые разработчики не могли поменять названия файлов.
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39917646
alHaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
SET NOCOUNT ON;  

DECLARE @dbID int,
		@dbName VARCHAR(100),
		@dataFileName VARCHAR(100),
		@dataFilePhysicalfileName VARCHAR(100),
		@logFileName VARCHAR(100),
		@logFilePhysicalfileName VARCHAR(100)
  
DECLARE dbCur CURSOR FOR
SELECT database_id, name FROM sys.databases where database_id > 4
print 'USE [master]'  
OPEN dbCur
FETCH NEXT FROM dbCur INTO @dbID, @dbName  
WHILE @@FETCH_STATUS = 0  
BEGIN  
    SELECT @dataFileName = name, @dataFilePhysicalfileName = physical_name from sys.master_files where database_id = @dbID and type = 0
	SELECT @logFileName = name, @logFilePhysicalfileName = physical_name from sys.master_files where database_id = @dbID and type = 1
    
	print 'RESTORE DATABASE [' + @dbName +  ']'
	print '	FROM DISK = N''F:\sql_backup\' + @dbName + '.bak'''
	print '	WITH  MOVE N''' + @dataFileName + ''' TO N'''+ @dataFilePhysicalfileName + ''','
	print '	      MOVE N''' + @logFileName + ''' TO N'''+ @logFilePhysicalfileName + ''','
	print '		  NORECOVERY'
	print 'GO'
	print 'RESTORE DATABASE [' + @dbName +  ']'
	print '	FROM DISK = N''F:\sql_backup\diff\' + @dbName + '.bak'''
	print 'GO'

	FETCH NEXT FROM dbCur INTO @dbID, @dbName  
END   
CLOSE dbCur;  
DEALLOCATE dbCur;



как то так? учитывая, что каждая база состоит из одного датафайла и логфайла?
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39917656
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alHaos
как то так?
Зачем курсор, выводите всё одним запросом, типа того:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SELECT '--	RESTORE ' + d.name + '
RESTORE DATABASE [' + d.name +  ']
FROM DISK = N''F:\sql_backup\' + d.name + '.bak''
WITH MOVE N''' + f.name + ''' TO N'''+ f.physical_name + ''',
	MOVE N''' + l.name  + ''' TO N'''+ l.physical_name + ''',
	NORECOVERY
GO
RESTORE DATABASE [' + d.name +  ']
FROM DISK = N''F:\sql_backup\diff\' + d.name + '.bak''
GO
'
FROM sys.databases as d
	--	Выбираем top 1, учитывая, что каждая база состоит из одного датафайла и логфайла
	CROSS APPLY (SELECT top 1 name, physical_name from sys.master_files as m where m.database_id = d.database_id and m.type = 0) as f
	CROSS APPLY (SELECT top 1 name, physical_name from sys.master_files as m where m.database_id = d.database_id and m.type = 1) as l
where d,database_id > 4
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39917812
alHaos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg,

Благодарю, что то новое для меня.
Точно не нужен, не знал про cross apply, но и без него можно было обойтись

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SELECT '
RESTORE ' + d.name + '
RESTORE DATABASE [' + d.name +  ']
FROM DISK = N''F:\sql_backup\' + d.name + '.bak''
WITH MOVE N''' + (SELECT top 1 name from sys.master_files as m where m.database_id = d.database_id and m.type = 0) + ''' TO N'''+ (SELECT top 1 physical_name from sys.master_files as m where m.database_id = d.database_id and m.type = 0) + ''',
	MOVE N''' + (SELECT top 1 name from sys.master_files as m where m.database_id = d.database_id and m.type = 1)  + ''' TO N'''+ (SELECT top 1 physical_name from sys.master_files as m where m.database_id = d.database_id and m.type = 1) + ''',
	NORECOVERY
GO
RESTORE DATABASE [' + d.name +  ']
FROM DISK = N''F:\sql_backup\diff\' + d.name + '.bak''
GO
'
FROM sys.databases as d where d.database_id > 4
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39918066
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alHaos
не знал про cross apply, но и без него можно было обойтись
Да, можно подзапросами, но после появления cross apply пользуюсь им, т.к. это более универсально - можно вернуть несколько полей).
Вот, тут вам понадобилось 2 поля, и вы делаете 2 одинаковых запроса, для каждого из полей.
А вдруг оптимизатор не преобразует их в один? Получится неэффективно.
...
Рейтинг: 0 / 0
Перемещение базы на новый сервер.
    #39919097
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot alexeyvg#22064574]
alHaos
Владислав Колосов,
А если 50, ок, можно сделать скрипт...


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


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