Перенос базы sql на другой диск: MS SQL Server — как перенести БД на другой диск (раздел)
Перенос файлов баз данных (*mdf и *ldf) на другой диск
В некоторых случаях, возникает необходимость перенести файлы баз данных на другой диск. Например, базы лежат в каталоге по умолчанию на системном диске С:, который:
- Имеет маленький размер
- Сильно нагружен ОС и системными запросами
- Довольно медленный
- Помирает
Все эти факторы влияют как на отказоустойчивость, так и на скорость обработки запросов SQl-сервером, а следовательно и на работоспособность комплекса в целом!
Теперь, когда вы прониклись важностью момента, можно приступить к практическим действиям. Итак:
Перенос пользовательской базы данных¶
1. Договариваемся с творческой частью коллектива, что в определенное время все перестают работать с базой. А именно, прекращают что-то туда добавлять и/или изменять.
2. Останавливаем сервисы, которые работают с МБД в автоматическом режиме, например:
- DB Import — импорт новостных лент
- DDB — распределенная база данных
- Sch_to_DB — репликация расписаний
иначе, есть вероятность потерять часть информации.
3. Запускаем Microsoft SQL Server Management Studio.
4. Самым первым делом всегда делаем бэкап базы!
5. Далее, смотрим, где лежат файлы нужной нам базы данных (в нашем примере это будет МБД под названием «RADIO-DB»). Для этого, нажимаем на ней ПКМ и открываем Properties (Свойства). Заходим в раздел Files (Файлы) и смотрим раздел Path (Путь):
6. Далее, нажимаем ПКМ на целевой базе и выбираем пункт Tasks\Detach (Задачи\Отсоединить):
7. В открывшемся окне ставим обе галочки и нажимаем ОК. После чего, МБД пропадет из списка:
8. Через обычный проводник заходим в каталог, где лежат нужные нам файлы. В нашем примере, это C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS2012\MSSQL\DATA.
9. Копируем эти файлы в новый каталог на новый диск и снова открываем Microsoft SQL Server Management Studio.
10. Нажимаем ПКМ на разделе Databases (Базы данных), выбираем пункт Attach (Присоединить) и в открывшемся окне нажимаем кнопку Add (Добавить) и выбираем нужный нам файл RADIO-DB.mdf уже из нового каталога:
Убеждаемся, что пути у нас теперь новые и нажимаем ОК.
Всё, пользовательская база данных переехала на новый диск. Не нужно ничего перезапускать и т.д. Убеждаемся, что рабочие места переподключились к МБД и разрешаем им снова работать в штатном режиме.
Перенос системных баз данных¶
Но, остались еще системные базы данных (спрятаны в разделе System Databases). Это msdb, model и tempdb, которые в общем-то тоже будет неплохо перенести на быстрый и отказоустойчивый диск. Тем более, что среди них есть одна, очень для нас важная база — tempdb. Именно через нее проходят все запросы, прежде чем попасть в пользовательскую МБД. Перенести системные базы ничуть не сложнее, чем пользовательские. И для этого надо:
1. Используя Microsoft SQL Server Management Studio, выполнить следующий скрипт:
Его также можно скачать из этого описания и запустить непосредственно на SQl-сервере.
2. Останавливаем службу SQL.
3. Копируем из старого каталога (помним наш пример: C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS2012\MSSQL\DATA) все файлы, указанные в скрипте выше, в новый каталог, который мы прописали в том же скрипте.
4. Обязательно добавляем учетную запись группы безопасности. Подробно о том, как это сделать, читайте в конце данной статьи, в разделе «Предоставление разрешения на доступ к файловой системе идентификатору безопасности службы».
5. Запускаем службу SQL.
6. Убедиться, что мы все сделали правильно, можно, посмотрев в свойствах каждой системной БД раздел Files (Файлы). Там должны быть новые пути к обоим файлам (самой БД и логу).
Перенос самой системной базы данных master¶
Да, еще у нас осталась самая системная из всех системных баз — master
— путь, прописанный для этой базы, будет путем по умолчанию для всех вновь создающихся баз на данном сервере. Впрочем, для пользователей Digispot это не очень актуально. Тем более, что мы уже умеем менять пути любым базам.
Итак, master:
1. Для изменения пути к БД master, нам понадобится оснастка SQL Server Configuration Manager (Диспетчер конфигурации SQL Server). Запускаем ее и открываем свойства SQL Server:
2. В свойствах SQL Server`а открываем вкладку Startup Parameters (Параметры запуска):
и по очереди меняем все указанные пути на новые.
— каждая строка начинается со своего символа -d, -e или -l. Ни в коем случае не меняйте их и не удаляйте!
3. Каждое изменение пути подтверждаем нажатием кнопки Update.
4. Теперь останавливаем сервис, копируем файлы master.mdf и mastlog.ldf из старого каталога в новый. После чего запускам сервис. ERRORLOG можно не копировать. Он создастся заново.
Предоставление разрешения на доступ к файловой системе идентификатору безопасности службы¶
-
С помощью проводника Windows перейдите в папку файловой системы, в которой находятся файлы базы данных. Правой кнопкой мыши щелкните эту папку и выберите пункт Свойства.
-
На вкладке Безопасность щелкните Изменитьи затем ― Добавить.
-
В диалоговом окне Выбор пользователей, компьютеров, учетных записей служб или групп щелкните Расположения, в начале списка расположений выберите имя своего компьютера и нажмите кнопку ОК.
-
В поле Введите имена объектов для выбора введите имя идентификатора безопасности службы. В качестве идентификатора безопасности службы компонента Компонент Database Engine используйте NT SERVICE\MSSQLSERVER для экземпляра по умолчанию или NT SERVICE\MSSQL$InstanceName — для именованного экземпляра.
-
Щелкните Проверить имена , чтобы проверить введенные данные. Проверка зачастую выявляет ошибки, по ее окончании может появиться сообщение о том, что имя не найдено. При нажатии кнопки ОК открывается диалоговое окно Обнаружено несколько имен .Теперь выберите идентификатор безопасности службы MSSQLSERVER или NT SERVICE\MSSQL$InstanceName и нажмите кнопку ОК. Снова нажмите кнопку ОК , чтобы вернуться в диалоговое окно Разрешения.
-
В поле имен Группа или пользователь выберите имя идентификатора безопасности службы, а затем в поле Разрешения для <имя> установите флажок Разрешить для параметра Полный доступ.
-
Нажмите кнопку Применить, а затем дважды кнопку ОК , чтобы выполнить выход.
Вот теперь, точно всё. Спасибо за внимание!
P.S. В зависимости от конкретной ОС, конкретной версии SQL сервера, вашей кармы и наличия солнечных вспышек, что-то может пойти не так. Прежде чем приступать к вышеописанным действиям, убедитесь, что:
а) оно вам действительно надо
б) вы морально готовы
ц) вы понимаете, что вы делаете
д) у вас вся ночь впереди, чтобы переустановить SQL заново и развернуть бэкап.
😉
detach_db2.PNG View
(31.7 KB)
Станислав Середницкий (Москва), 22/03/2018 17:27
detach_db.PNG View
(62.9 KB)
Станислав Середницкий (Москва), 22/03/2018 17:28
detach_db3.PNG View
(87.3 KB)
Станислав Середницкий (Москва), 22/03/2018 17:56
attach_db.PNG View
(84.4 KB)
Станислав Середницкий (Москва), 22/03/2018 18:05
System_DB_files_moving.sql View
(993 Bytes)
Станислав Середницкий (Москва), 22/03/2018 18:49
sql_conf_man.PNG View
(31.7 KB)
Станислав Середницкий (Москва), 22/03/2018 19:14
start_param.PNG View
(15.3 KB)
Станислав Середницкий (Москва), 22/03/2018 19:18
Перенос MySQL баз на отдельный жесткий диск
Иногда возникает ситуация когда нужно перенести базы mysql в другое место.
Например, на отдельный жесткий диск или просто в другое место (какие-то
причины безопасности). Это может быть необходимо, если не хватает места на
диске или для увеличения быстродействия, например ssd винт или raid массив.
Способ 1
Если вы хотите выделить под БД полностью весь жеский диск, то нужно просто
примонтировать устройство в mysql директорию по умолчанию. Обычно это
/var/lib/mysql Останавливаем сервер
/etc/init.d/mysqld stop
Копируем базы в какую-то временную директорию
mkdir /var/lib/mysql_temp
cp -r /var/lib/mysql/* /var/lib/mysql_temp/
удаляем базы со старой директории
rm /var/lib/mysql/* -Rf
Предполагается что у вас уже есть подготовленный жесткий диск. Если же нет, то
его нужно предварительно разбить и создать файловую систему. Это можно сделать
например при помощи cfdisk. И так примонтируем устройство:
mount /dev/sda3 /var/lib/mysql
нужно не забыть прописать в файле /etc/fstab примонтированный раздел, для того
что бы при следующей загрузке системы он автоматически монтировался. Более
подробнее смотрите мануалы по fstab и
mount. В fstab должна быть запись вида:
/dev/sda3 /var/lib/mysql ext4 defaults 0 0
далее переносим назад наши базы
cp -r /var/lib/mysql_temp/* /var/lib/mysql/
и удаляем резервную копию (с этим лучше пока не спешить, удалить можно когда
все успешно перенеслось)
rm /var/lib/mysql_temp/ -Rf
далее нужно правильно выставить права доступа к /var/lib/mysql. Владелец папки
должен быть mysql c правом на запись
chown mysql:mysql /var/lib/mysql/ -R
chmod 755 /var/lib/mysql
а так же еще один важный момент, выставляем
SELinux права доступа
chcon -R system_u:object_r:mysqld_db_t:s0 /var/lib/mysql/
проверить SELinux права можно командой ls -Z, должно быть что-то вроде этого:
ls -Z /var/lib/mysql/
drwxr-xr-x. mysql mysql system_u:object_r:mysqld_db_t:s0 mysql
теперь запускаем mysql демон
/etc/init.d/mysqld start
Способ 2
Если нужно использовать для хранилища не весь раздел, а только директорию на
нем или переместить базы в другую директорию, то делаем следующее
останавливаем сервер
/etc/init.d/mysqld stop
копируем базы в новое место. Например, если мы хотим, что бы базы лежали в
/media/sda3/mysql/
mkdir /media/sda3/mysql/
cp -r /var/lib/mysql/* /media/sda3/mysql/
ставим права доступа к /media/sda3/mysql/
chown mysql:mysql /var/lib/mysql/ -R
chmod 755 /var/lib/mysql
а так же SELinux права доступа
chcon -R system_u:object_r:mysqld_db_t:s0 /media/sda3/mysql/
правим конфиг my.cnf. Обычно он находится в /etc/my.cnf либо /etc/mysql/my.cnf
[mysqld]
datadir=/media/sda3/mysql
socket=/media/sda3/mysql/mysql.sock
log-bin=/media/sda3/mysql/mysql-bin
[mysqld_safe]
datadir=/media/sda3/mysql
теперь запускаем mysql демон
/etc/init.d/mysqld start
На этом всё. Если что-то не получается, смотрим лог в /var/log/mysql.log
Перенос MySQL баз на отдельный жесткий диск
Возникает ситуация когда нужно перенести базы mysql в другое место. Например, на отдельный жесткий диск или просто в другое место. Это может быть необходимо, если не хватает места на диске или для увеличения быстродействия, например ssd винт или raid массив.
Способ 1
Если вы хотите выделить под БД полностью весь жесткий диск, то нужно просто примонтировать устройство в mysql директорию по умолчанию. Обычно это /var/lib/mysql Останавливаем сервер
/etc/init.d/mysqld stop
Копируем базы в какую-то временную директорию
mkdir /var/lib/mysql_temp
cp -r /var/lib/mysql/* /var/lib/mysql_temp/
удаляем базы со старой директории
rm /var/lib/mysql
Предполагается что у вас уже есть подготовленный жесткий диск. Если же нет, то его нужно предварительно разбить и создать файловую систему. Это можно сделать например при помощи cfdisk. И так примонтируем устройство:
mount /dev/sdb1 /var/lib/mysql
нужно не забыть прописать в файле /etc/fstab примонтированный раздел, для того что бы при следующей загрузке системы он автоматически монтировался. Более подробнее смотрите мануалы по fstab и mount. В fstab должна быть запись вида:
/dev/sdb1 /var/lib/mysql ext4 defaults 0 0
далее переносим назад наши базы
cp -r /var/lib/mysql_temp/* /var/lib/mysql/
и удаляем резервную копию (с этим лучше пока не спешить, удалить можно когда все успешно перенеслось)
rm /var/lib/mysql_temp/ -Rf
далее нужно правильно выставить права доступа к /var/lib/mysql. Владелец папки должен быть mysql c правом на запись
chown mysql:mysql /var/lib/mysql/ -R
chmod 755 /var/lib/mysql
а так же еще один важный момент, выставляем SELinux права доступа
chcon -R system_u:object_r:mysqld_db_t:s0 /var/lib/mysql/
проверить SELinux права можно командой ls -Z, должно быть что-то вроде этого:
ls -Z /var/lib/mysql/
drwxr-xr-x. mysql mysql system_u:object_r:mysqld_db_t:s0 mysql
теперь запускаем mysql демон
/etc/init.d/mysqld start
Способ 2
Если нужно использовать для хранилища не весь раздел, а только директорию на нем или переместить базы в другую директорию, то делаем следующее
останавливаем сервер
/etc/init.d/mysqld stop
копируем базы в новое место. Например, если мы хотим, что бы базы лежали в /media/sda3/mysql/
mkdir /media/sdb1/mysql/
cp -r /var/lib/mysql/* /media/sdb1/mysql/
ставим права доступа к /media/sdb1/mysql/
chown mysql:mysql /media/sdb1/mysql/ -R
chmod 755 /media/sdb1/mysql
а так же SELinux права доступа
chcon -R system_u:object_r:mysqld_db_t:s0 /media/sdb1/mysql/
правим конфиг my.cnf. Обычно он находится в /etc/my.cnf либо /etc/mysql/my.cnf
[mysqld] datadir=/media/sdb1/mysql socket=/media/sdb1/mysql/mysql.sock log-bin=/media/sdb1/mysql/mysql-bin [mysqld_safe] datadir=/media/sdb1/mysql
теперь запускаем mysql демон
/etc/init.d/mysqld start
На этом всё. Если что-то не получается, смотрим лог в /var/log/mysql.log
Вконтакте
Google+
LiveJournal
Одноклассники
Мой мир
Перенос экземпляра SQL Server 2012 на другой диск в кластере Windows Server 2012 R2
Имеется двух-узловой кластер Windows Failover Cluster из двух виртуальных машин Hyper-V c гостевой ОС Windows Server 2012 R2. В кластере развёрнуто несколько высоко-доступных экземпляров SQL Server 2012 SP3. Каждый кластерный экземпляр SQL Server расположен на выделенном кластерном диске. Возникла необходимость переноса экземпляров SQL с одного кластерного диска на другой с последующим отключением ранее используемого кластерного диска. В этой заметке будет пошагово рассмотрена процедура данного переноса на примере отдельно взятого кластерного экземпляра SQL Server.
Перед началом выполнения ниже описанных действий желательно убедиться в том, что имеются актуальные резервные копии баз данных кластерного экземпляра SQL Server, с которым мы собираемся проводить манипуляции по замене диска. Общая последовательность действий будет такая:
1. Подключаем новый LUN к узлам кластера
2. Инициализируем LUN и форматируем новый раздел NTFS
3. Добавляем новый диск в кластер Failover Cluster
4. Снимаем рабочую нагрузку с экземпляра SQL Server
5. Добавляем дисковый ресурс к кластерной роли SQL Server
6. Выполняем частичную остановку кластерной роли SQL Server (останавливаем Имя и Службы)
7. Копируем файлы экземпляра SQL Server на целевой кластерный диск (robocopy)
8. Изменяем буквы кластерных дисков
9. Изменяем дисковую зависимость кластерного ресурса SQL Server
10. Запускаем кластерную роль SQL Server
11. Проверяем доступность экземпляра SQL Server
12. Выполняем проверочную миграцию кластерной роли SQL Server между узлами кластера
13. Возобновляем рабочую нагрузку на экземпляр SQL Server
14. Удаляем из кластера старый диск
15. Отключаем LUN старого диска от виртуальных машин
Рассмотрим все шаги по порядку.
Шаг 1. Подключаем новый LUN к виртуальным машинам
В нашем случае LUN-ы с СХД пробрасываются в виртуальные машины через FC SAN посредствам технологии NPIV. Поэтому первым делом нам нужно презентовать дополнительный новый LUN на оба узла кластера Windows Failover Cluster, то есть на обе виртуальные машины на базе гипервизора Hyper-V в Windows Server 2012 R2. Описывать то, как это делается не будем, так как это зависит от используемой инфраструктуры FC SAN, моделей коммутаторов и СХД. В конечном итоге на каждом из наших виртуальных серверов в оснастке Device Manager мы должны увидеть новые дисковые устройства
Если LUN подключен к серверу по нескольким путям, то проверяем доступность всех путей на вкладке MPIO в свойствах подключенного дискового устройства. Запомним Location нового диска, так как он нам может пригодится на следующем шаге (справедливо, когда подключается множество однообразных дисков).
Шаг 2. Форматируем новый раздел NTFS
Так как LUN подключен к обоим серверам, выполнить инициализацию и форматирование нового диска можно на любом из этих серверов. Я предпочитаю предварительно мигрировать все кластерные роли на один из серверов и выполнять процедуру настройки нового диска на свободном узле кластера. Откроем оснастку Disk Management и по Location найдём интересующий нас новый диск. Сначала переведём диск в Online, затем выполним его инициализацию – Initialize Disk
В процессе инициализации диска будет создана таблица разделов.
После того, как диск будет проинициализирован, создаём на нём новый раздел.
Для создаваемого раздела выберем букву диска, которая не используется ни на одном из узлов кластера. Условимся, что это будет том X:. В качестве файловой системы укажем NTFS, а также зададим понятную метку тома, чтобы легче в дальнейшем идентифицировать наш диск.
Теперь созданный логический диск нужно подключить к кластеру Windows Failover Cluster.
Шаг 3. Добавляем новый диск в кластер Failover Cluster
В оснастке Failover Cluster Manager подкачаемся к кластеру, содержащему кластерную роль высоко-доступного экземпляра SQL Server и в разделе Storage > Disks вызываем пункт добавления нового диска Add Disk. В открывшемся поверх окне выбираем ранее отформатированный нами диск:
Диск появится в консоли с типом Available Storage, то есть в данный момент он не привязан ни к какой кластерной роли.
Теперь можно переходить к операциям с кластерной ролью SQL Server, но предварительно нужно сделать так, чтобы ресурсы кластерной роли не использовались в продуктивной нагрузке.
Шаг 4. Снимаем рабочую нагрузку с экземпляра SQL Server
На данном этапе мы должны снять всю продуктивную нагрузку на наш кластерный экземпляр SQL Server, то есть выключить все приложения и службы, которые могут обращаться к базам данных экземпляра. В нашем примере выполняется перенос экземпляра SQL Server, в котором размещаются базы данных, используемые в работе сервера Microsoft System Center Configuration Manager (SCCM). Таким образом на данном шаге на сервере SCCM мы останавливаем все службы, которые используют обращение к базам данных SQL Server.
Шаг 5. Добавляем дисковый ресурс к кластерной роли SQL Server
В оснастке Failover Cluster Manager переходим а раздел управления кластерными ролями (Roles), в списке доступных ролей выбираем целевой кластерный экземпляр SQL Server и в меню действий вызываем пункт добавления дискового ресурса — Add Storage.
В открывшемся окне из списка кластерных дисков с типом Available Storage выбираем ранее соответствующий свободный кластерный диск.
После этого в перечне ресурсов кластерной роли SQL Server появится новый дисковый ресурс.
Диск в кластерный экземпляр SQL Server добавлен, и теперь нужно выполнить частичную остановку кластерной роли для последующей возможности копирования файлов с одного диска на другой.
Шаг 6. Выполняем частичную остановку кластерной роли SQL Server
В перечне ресурсов кластерной роли выбираем ресурс с именем кластера Name:<Имя кластера> и в меню действий вызываем пункт выключения ресурса – Take Offline.
После этого будут остановлены ресурсы службы экземпляра SQL Server (<Имя экземпляра>) и агента SQL Server Agent (<Имя экземпляра>). А сама кластерная роль изменит статус на Partially Running.
Соответствующие указанным кластерным ресурсам системные службы SQL Server (<Имя экземпляра>) и SQL Server Agent (<Имя экземпляра>), относящиеся к нашему экземпляру SQL Server будут остановлены. Убедиться в этом можно проверив состояние служб в оснастке управления службами Services и/или оснастке SQL Server Configuration Manager.
Шаг 7. Копируем файлы экземпляра SQL Server на целевой кластерный диск
Частичная остановка кластерной роли с нетронутыми дисковыми ресурсами роли позволит нам выполнить любые файловые операции с файлами экземпляра SQL Server, так как теперь эти файлы не блокируются системными службами экземпляра. В нашем примере файлы остановленного кластерного экземпляра SQL Server размещены в каталоге MSSQL11.SCCM на диске S: и нам нужно скопировать этот каталог на новый кластерный диск X:.
Для правильного полноценного копирования всех атрибутов файлов и разрешений безопасности, установленных на всех вложенных каталогах и файлах, воспользуемся утилитой robocopy (команду выполнять, запустив консоль от имени Администратора):
ROBOCOPY "S:\MSSQL11.SCCM" "X:\MSSQL11.SCCM" /E /B /COPYALL /DCOPY:DAT /V /R:2 /W:10 /UNILOG+:X:\MSSQL11.SCCM.log /BYTES /TEE /NP /UNICODE
По окончании процесса копирования утилита robocopy выведет статусную информацию о результатах копирования. Убедимся в том, что нет пропущенных файлов или ошибок копирования.
В случае возникновения проблем, всю информацию о ходе копирования можно найти в лог-файле, который создаст утилита на целевом диске.
Шаг 8. Изменяем буквы кластерных дисков
Так как конфигурация остановленного экземпляра SQL Server хочет видеть свои файлы в каталоге S:\MSSQL11.SCCM, нам потребуется выполнить замену букв дисков, таким образом, чтобы буква S: была присвоена вновь подключенному диску, на который мы только что скопировали файлы экземпляра. А старому диску мы присвоим текущую букву нового диска (X:). То есть фактически мы должны поменять местами буквы старого и нового диска.
Чтобы букву диска S: можно было присвоить новому диску, эту букву нужно освободить, то есть снять её со старого диска. Для этого в оснастке Failover Cluster Manager и в области управления ресурсами кластерной роли выбираем старый диск и в меню действий вызываем пункт смены буквы диска – Change Drive Letter. В окне выбора буквы диска выбираем вариант <none> и сохраняем изменения.
Теперь буква диска S: свободна и мы назначаем её на новый диск.
После этого старому диску присваиваем освободившуюся букву X:
Подмена букв диска произведена, но теперь ещё требуется выполнить замену диска в свойствах других кластерных ресурсов, где кластерные диски используются в качестве зависимостей.
Шаг 9. Изменяем дисковую зависимость кластерного ресурса SQL Server
Среди ресурсов кластерной роли SQL Server в конфигурации по умолчанию только один ресурс имеет зависимость от кластерного диска – это ресурс службы экземпляра с именем SQL Server (<Имя экземпляра>). Откроем свойства этого ресурса и на закладке зависимостей Dependencies из выпадающего списка вместо старого кластерного диска выберем новый диск. Сохраним изменения.
Теперь всё готово к запуску кластерной роли.
Шаг 10. Запускаем кластерную роль SQL Server
Пробуем запустить ресурс службы экземпляра с именем SQL Server (<Имя экземпляра>), выбрав в меню действий Bring Online. При запуске этого ресурса автоматически должен быть запущен зависимый ресурс с именем кластера Name:<Имя кластера>.
После этого аналогичным образом запускаем кластерный ресурс агента SQL Server Agent (<Имя экземпляра>).
Если все ресурсы кластерной роли, которые мы останавливали ранее, запустились без явных ошибок, то можно переходить к проверке доступности кластерного экземпляра SQL Server.
Шаг 11. Проверяем доступность экземпляра SQL Server
Проверяем статус системных служб SQL Server в оснастках управления службами Services или SQL Server Configuration Manager. Пробуем подключиться к экземпляру, например с помощью консоли SQL Server Management Studio. Если всё хорошо, переходим к проверке успешности миграции кластерной роли между узлами кластера.
Шаг 12. Выполняем проверочную миграцию кластерной роли SQL Server
Выполняем проверочную передачу кластерной роли SQL Server на второй узел кластера и обратно. Сделать это можно как с помощью оснастки Failover Cluster Manager , так и с помощью PowerShell:
Get-ClusterGroup "<Имя кластерной роли>" | Move-ClusterGroup
Если миграция кластерной роли нашего высоко-доступного экземпляра SQL Server работает успешно, можем возобновлять продуктивную нагрузку на экземпляр.
Шаг 13. Возобновляем рабочую нагрузку на экземпляр SQL Server
Запускаем зависимые от баз данных экземпляра SQL Server службы и сервисы. В нашем примере на сервере SCCM запускаются все службы, которые используют обращение к базам данных SQL Server и проверяется работа консоли SCCM. Если проблем с работой экземпляра SQL Server, фактически запущенного уже с файлов на новом кластерном диске, не наблюдается, то настало время удаление старого кластерного диска.
Шаг 14. Удаляем из кластера старый диск
В оснастке Failover Cluster Manager в области управления ресурсами кластерной роли выбираем старый кластерный диск (он теперь с буквой X:) и в меню действий вызываем команду его извлечения из кластерной роли — Remove from SQL Server (<Имя экземпляра>).
После этого переходим в раздел управления дисками кластера (Storage > Disks) и удаляем старый диск, имеющий теперь статус Available Storage.
После удаления диска из кластера, желательно ещё раз проверить передачу серверной роли между узлами кластера. Ибо нужно убедиться в том, что при продуктивной нагрузке с условием отсутствия старого диска передача роли отрабатывает штатно.
Шаг 15. Отключаем LUN старого диска от виртуальных машин
На заключительном этапе нам остается только отключить LUN старого диска от наших серверов (узлов кластера). После чего (опять же опционально) можно проверить успешность выполнения периодических процедур резервного копирования данных с нового кластерного диска, запущенного в работу.
Дополнительные источники информации:
Justin’s IT Blog — How-To: Migrate MS SQL Cluster to a New SAN
Поделиться ссылкой на эту запись:
Похожее
Правильный перенос базы данных MySQL
Какие способы бывают?
1 – при помощи интерфейса phpMyAdmin.
2 – при помощи панели управления хостинг-провайдера.
3 – при помощи сторонней программы.
Какой способ лучше?
Мы рекомендуем первый, т.к. его схема проста, и используется большинством вебмастеров. Третий способ мы не рекомендуем использовать! Никогда не доверяйте содержимое своего сайта сторонним программам, к тому же от непонятных разработчиков. Еще можно использовать второй способ, но его алгоритм очень разнится, и зависит от панели управления хостера. Поэтому, мы детально рассмотрим первый вариант, и расскажем как грамотно перенести базы данных MySQL, без потери и повреждения данных.
Создаем базу данных на новом хостинге
Если Вы хотите перенести базу данных MySQL, значит у Вас уже есть БД, и Вы умете ее создавать. В любом случае этот процесс разный для каждого из хостинг-провайдеров, но сводится к одному общему алгоритму:
1 – Ищем раздел “MySQL”, “Базы данных” или что-то похожее.
2 – В нем нажимаем “Создать”.
3 – Вписываем название базы данных, прикрепляем к ней пользователя (обычно пользователь БД уже создан, если нет, то создайте его и установите самые большие права) и вводим пароль для БД.
4 – База данных создана, но она пока что пустая.
Экспортируем БД со старого хостинга
Сейчас мы воспользуемся тем, что называют дамп базы данных. Т.е. сохраним текущую БД с сервера, к себе на компьютер. Для этого нам понадобится интерфейс phpMyAdmin, который нужно отыскать в личном кабинете хостинг-провайдера, у которого находится Ваш текущий сайт. Опять же единого алгоритма нет, поэтому приводим общую схему:
1 – Найдите ссылку на phpMyAdmin в разделе “MySQL” или “Базы данных”.
2 – Слева в углу выберите свою базу данных (ту, которую вы собираетесь экспортировать на компьютер, чтобы потом перенести на другой хостинг).
3 – Жмем вкладку “Экспорт”.
Дальше все будет зав
Персональный блог Аделя Аминова » Перенос баз PostgreSQL на другой диск Windows
Опубликовал @de1 | Дата 2 августа, 2013
1. Останавливаем сервис postgresql.
Пуск — Выполнить, вводим services.msc и жмём Enter… Находим PostgreSQL Database Server, кликаем правой кнопкой мыши, и нажимаем Остановить.
2. Переносим базы.
Выбираем диск, на который необходимо перенести базы. Например диск E. На этом диске создаём папку PostgreSQL\data. В эту папку копируем содержимое папки, которая создалась по умолчанию при установке PostgreSQL — C:\Program Files (x86)\PostgreSQL\9.1.2-1.1C\data.
3. Меняем путь к базам в реестре Windows.
Пуск — Выполнить, вводим regedit и жмём Enter.
В редакторе реестра переходим к ключу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\pgsql-9.1.2-1.1C и открываем для изменения строковой параметр ImagePath. В нем меняем путь к базам.
Старый путь обычно выглядит так — «C:\Program Files (x86)\PostgreSQL\9.1.2-1.1C\bin\pg_ctl.exe» runservice -w -N «pgsql-9.1.2-1.1C» -D «C:\Program Files (x86)\PostgreSQL\9.1.2-1.1C\data\»
Параметр -D указывает на директорию где хранятся наши базы, поэтому меняем ее на — «E:\PostgreSQL\data\»
То есть полная строка будет выглядеть примерно так — «C:\Program Files (x86)\PostgreSQL\9.1.2-1.1C\bin\pg_ctl.exe» runservice -w -N «pgsql-9.1.2-1.1C» -D «E:\PostgreSQL\data\»
4. Запускаем сервис postgresql.
Перед тем как запустить службу postgresql необходимо убедиться, что пользователь от имени которого стартует служба, должен иметь полные права на папку E:\PostgreSQL, иначе служба просто не запустится.
Пуск — Выполнить, вводим services.msc и жмём Enter… Находим PostgreSQL Database Server, кликаем правой кнопкой мыши, и нажимаем Запустить.
Если все сделали правильно, то на этом все.
Затвитить пост!
Рейтинг: Загрузка…
Популярность: Просмотров: 23 558
Перенос SQL-базы с сервера на сервер (способ 1)
Первоначально действия производятся на SQL-сервере C которого
мы переносим данные.
На базе данных, которую необходимо перенести, нажмите правую кнопку маши
и выберите пункт «Задачи» и в выпадающем пункте меню
«Создать резервную копию…«:
Далее ничего сверхестественного — все оставляем по умолчанию примерно так:
Можем заглянуть на вторую закладку/страницу диалогового окна:
Нажимаем кнопку «ОК» и ждем…
Резервная копия сделана:
Любым удобным для нас способом переносим *.bak файл
резервной копии нашей базы данных на другой SQL-сервер.
Дальнейшие действия производятся на SQL-сервере НА который
мы переносим данные.
В среде MS SQL Server Management Studio нажимаем правую кнопку мыши на
пункте «Базы данных» и далее выбираем мункт «Восстановить базу данных…«:
Указываем из чего будем восстанавливать базу данных:
Далее необходимо указать устройство с которого будет производиться
восстановление базы данных. Нажимаем кнопку с тремя точками и,
в открывшемся окне нажимаем кнопку «Добавить«:
Указываем путь к *.bak-файлу резервной копии нашей базы данных.
Здесь просто нажимаем кнопку «ОК«:
Поставьте галочку в поле «Восстановить«.
Из выпадающего списка выберите базу данных в которую будет производиться
восстановление данных из резервной *.bak-копии.
Все настройки сделаны — нажимаем «ОК«:
Пойдет процесс восстановления данных в базу:
Удачное восстановление выглядит так:
Обязательно нужно проверить владельца базы данных после восстановления.
(Нажмите правую кнопку мыши на имени базы и далее выберите пункт «Свойства«):
Переходим на закладку/страницу «Файлы» и смотрим на поле «Владелец«.
Если оно пустое, то необходимо указать «Владельца» базы.
В конце поля «Владелец» нажмите кнопку с тремя точками и,
в появившемся окне нажмите кнопку «Обзор…«:
В открывшемся окне установите «галочку» напротив нужного владельца
базы и нажмите кнопку «OK«:
Здесь тоже просто нажимаем «OK«:
Указав «Владельца» базы нижимаем «OK» чтобы сохранить изменения.
Перенос базы завершён!
Как переместить файлы базы данных SQL (MDF и LDF) в другое место
Как часто вы доходили до того, что по какой-либо причине на конкретном диске не хватает места для размещения базы данных? В случае разработки базы данных или других задач за пределами производственной среды это не должно быть проблемой, поскольку база данных может быть в конечном итоге воссоздана, восстановлена из резервной копии и настроена для размещения в другом месте. По умолчанию SQL Server хранит файлы базы данных в папке установки, в частности, в папке Data :
Однако что, если база данных SQL является производственной или постоянно используется конкретным приложением? Это означает, что когда дело доходит до нехватки места на диске, должен быть способ переместить файлы базы данных (MDF и LDF) на другой диск (с достаточным пространством на диске), в то время как фактическая база данных по-прежнему будет размещаться на том же SQL. Экземпляр сервера.Давайте посмотрим, как переместить файлы базы данных в другое место. В этом случае мы будем использовать образец базы данных AdventureWorks.
Предварительные требования
В случае, если база данных используется какими-либо службами Windows или другими ресурсами, они должны быть остановлены , чтобы разрешить изменение файлов базы данных SQL. Кроме того, все существующие подключения к базе данных должны быть закрыты. Перед первым шагом обязательно найдите соответствующие файлы MDF и LDF для базы данных, с которой вы хотите работать.По умолчанию эти имена имеют следующий формат:
- Database_name_Data.mdf — для файла MDF
- Database_name_log.ldf — для файла LDF
Вышеупомянутый формат необязательно использовать, поэтому убедитесь, что вы ориентируетесь на правильные файлы.
Перемещение файлов базы данных в другое место
- Запустите следующий сценарий SQL, чтобы задать новое расположение для файлов базы данных SQL:
ALTER DATABASE AdventureWorks2014
MODIFY FILE (NAME = AdventureWorks2014_Data,
FILENAME = ‘E: \ New_location \ AdventureWorks2014_Data.mdf ‘);
GO
ALTER DATABASE AdventureWorks2014
MODIFY FILE (NAME = AdventureWorks2014_Log,
FILENAME = ‘E: \ New_location \ AdventureWorks2014_Log.ldf’);
ГО
New_location — это папка, созданная на отдельном диске (в этом конкретном случае мы заменим диск C по умолчанию на диск E на локальном компьютере) с достаточным дисковым пространством для файлов базы данных SQL.Указанная папка должна быть создана первой, чтобы ее можно было использовать в качестве нового местоположения для файлов базы данных SQL в приведенном выше операторе SQL.
- Запустите следующий сценарий SQL, чтобы отключить базу данных SQL:
ИЗМЕНЕНИЕ БАЗЫ ДАННЫХ AdventureWorks2014 ВЫБРАТЬ ОФЛАЙН;
ГО
Это важно для выполнения следующего шага.Если база данных используется каким-либо приложением, этот шаг не может быть выполнен, если все подключения к базе данных не закрыты.
- Переместите файлы MDF и LDF конкретной базы данных SQL в новое место, указанное в приведенном выше операторе. Это означает просто вырезать упомянутые файлы из существующего места и переместить их в новое указанное.
Важное примечание : убедитесь, что SQL Server имеет доступ к указанному расположению. В противном случае появится следующая ошибка:
Msg 5120, уровень 16, состояние 101, строка 13
Невозможно открыть физический файл «E: \ New_location \ AdventureWorks2014_Data.мдф ». Ошибка операционной системы 5: «5 (Доступ запрещен.)».
Чтобы исправить это:
- Запустить диспетчер конфигурации SQL Server
- Щелкните правой кнопкой мыши экземпляр SQL Server, на котором размещена база данных, файлы которой перемещены в новое место, и выберите из раскрывающегося списка параметр Properties :
Вместо текущей учетной записи переключитесь на ту, у которой есть доступ к диску, на который перемещаются файлы:
- Как только это будет сделано, базу данных можно будет установить в оперативном режиме, выполнив следующий запрос, чтобы вернуть базу данных в оперативный режим:
ИЗМЕНЕНИЕ БАЗЫ ДАННЫХ AdventureWorks2014 УСТАНОВИТЬ ОНЛАЙН;
ГО
- Чтобы убедиться, что процесс успешно завершен, выполните следующий запрос:
ВЫБРАТЬ имя, физическое_имя AS NewLocation, state_desc AS OnlineStatus
FROM sys.master_files
WHERE database_id = DB_ID (N’AdventureWorks2014 ‘)
GO
Это должно дать следующий результат:
Как только это будет сделано, база данных SQL будет размещена на диске с достаточным свободным пространством, и пользователь сможет продолжить ее использование.
Марко — преподаватель информационных технологий и технического образования, любит фильмы, видеоигры и хеви-метал.
В свободное время он играет на гитаре, катается на велосипеде и тусуется с друзьями. Зимой ему больше всего нравится кататься на лыжах, но и все остальные занятия на снегу тоже.
Он также является автором различных статей SQL Shack о пакетах SSIS и статей базы знаний о ApexSQL Doc.
Посмотреть все сообщения Марко Радаковича
Последние сообщения Марко Радаковича (посмотреть все)
.
sql — Вставить данные из базы данных в другую базу данных
Переполнение стека
- Около
Продукты
- Для команд
Переполнение стека
Общественные вопросы и ответыПереполнение стека для команд
Где разработчики и технологи делятся частными знаниями с коллегамиВакансии
Программирование и связанные с ним технические возможности карьерного ростаТалант
Нанимайте технических специалистов и создавайте свой бренд работодателяРеклама
Обратитесь к разработчикам и технологам со всего мира- О компании
Загрузка…
.
sql — копирование одной базы данных в другую
Переполнение стека
- Около
Продукты
- Для команд
Переполнение стека
Общественные вопросы и ответыПереполнение стека для команд
Где разработчики и технологи делятся частными знаниями с коллегамиВакансии
Программирование и связанные с ним технические возможности карьерного ростаТалант
Нанимайте технических специалистов и создавайте свой бренд работодателяРеклама
Обратитесь к разработчикам и технологам со всего мира- О компании
Загрузка…
- Авторизоваться
зарегистрироваться текущее сообщество
.