Скопируйте базы данных SQL Server

Это Означает, что функции являются decprecated так в PHP 5.3, она включена, но в PHP6 нет.

Проблема состоит в том, что предупреждение делает вывод при отключении сообщений despricated в php.ini, система должна работать.

6
задан 18 June 2014 в 01:16
1 ответ

По моему опыту, отсоединение / присоединение - самый быстрый метод. Узким местом, вероятно, будет то, насколько быстро вы сможете скопировать файлы по сети.

Предполагая, что две базы данных имеют идентичные учетные записи Windows (если вы используете учетные записи SQL, вам, возможно, придется обновить SID), вы, вероятно, могли бы использовать что-то вроде этого сценария, который я лежал до того, как начал переписывать все в PowerShell. :) Он предназначен для запуска на исходном сервере и использует файл со списком баз данных для перемещения.

@ECHO ON

set newipmdf=\\newserver\g$
set newipldf=\\newserver\e$
set controlfile=control.txt
set oldserver=oldserver\instance
set oldmdfpath=d:\instance
set newmdfpath=g:\instance
set copymdfpath="m:\instance"
set newserver=newserver\instance
set oldlogpath=e:\instance
set newlogpath=e:\instance
set copylogpath="l:\instance"
set movedmdfpath=%oldmdfpath%\moved
set movedldfpath=%oldlogpath%\moved

mkdir %movedmdfpath%
mkdir %movedldfpath%

net use m: %newipmdf%
net use l: %newipldf%

SETLOCAL DISABLEDELAYEDEXPANSION
FOR /F %%L IN (%controlfile%%) DO (
  SET "line=%%L"
  SETLOCAL ENABLEDELAYEDEXPANSION
  ECHO !line!
  sqlcmd -E -S!oldserver! -Q"EXEC master.dbo.sp_detach_db @dbname = N'!line!'"
  copy "!oldmdfpath!\!line!.mdf" !copymdfpath!
  copy "!oldlogpath!\!line!_log.ldf" !copylogpath!
  sqlcmd -E -S!newserver! -Q"CREATE DATABASE [!line!] ON ( FILENAME = '!newmdfpath!\!line!.mdf' ),( FILENAME = N'!newlogpath!\!line!_log.ldf' ) FOR ATTACH"
  move "!oldmdfpath!\!line!.mdf" !movedmdfpath!
  move "!oldlogpath!\!line!_log.ldf" !movedldfpath!
  ENDLOCAL
)
ENDLOCAL

net use m: /z
net use l: /z

Если вы не можете работать достаточно долго, чтобы скопировать файл размером 140 ГБ по сети, у меня есть хороший удачи с мастером копирования базы данных. Я бы по-прежнему использовал функцию отсоединения / присоединения, если это возможно.

Удачи!

3
ответ дан 3 December 2019 в 00:38

Теги

Похожие вопросы