Backup windows and linux servers

Перенос базы данных SQL Server из Windows в Linux с помощью резервного копирования и восстановления Migrate a SQL Server database from Windows to Linux using backup and restore

Применимо к: Applies to: SQL Server SQL Server (все поддерживаемые версии) SQL Server SQL Server (all supported versions) — Linux Применимо к: Applies to: SQL Server SQL Server (все поддерживаемые версии) SQL Server SQL Server (all supported versions) — Linux

Если нужно перенести базу данных из SQL Server в Windows в SQL Server на Linux, рекомендуется использовать функцию резервного копирования и восстановления SQL Server. SQL Server’s backup and restore feature is the recommended way to migrate a database from SQL Server on Windows to SQL Server on Linux. В этом руководстве приводятся пошаговые инструкции по переносу базы данных в Linux с помощью резервного копирования и восстановления. In this tutorial, you will walk through the steps required to move a database to Linux with backup and restore techniques.

  • Создание файла резервной копии в Windows с помощью SSMS Create a backup file on Windows with SSMS
  • установка оболочки Bash в Windows; Install a Bash shell on Windows
  • Перенос файла резервной копии в Linux из оболочки Bash Move the backup file to Linux from the Bash shell
  • Восстановление файла резервной копии в Linux с помощью Transact-SQL Restore the backup file on Linux with Transact-SQL
  • Выполнение запроса для проверки переноса Run a query to verify the migration

Для переноса базы данных SQL Server из Windows в Linux можно также создать группу доступности Always On SQL Server. You can also create a SQL Server Always On Availability Group to migrate a SQL Server database from Windows to Linux. См. статью Настройка кроссплатформенной группы доступности Always On SQL Server в Windows и Linux. See sql-server-linux-availability-group-cross-platform.

предварительные требования Prerequisites

Для работы с этим руководством необходимо выполнить следующие условия. The following prerequisites are required to complete this tutorial:

Компьютер Windows со следующими компонентами: Windows machine with the following:

  • установленный экземпляр SQL Server; SQL Server installed.
  • установленная среда SQL Server Management Studio; SQL Server Management Studio installed.
  • целевая база данных для переноса. Target database to migrate.

Компьютер Linux со следующими компонентами: Linux machine with the following installed:

  • SQL Server (RHEL, SLES или Ubuntu) с программами командной строки. SQL Server (RHEL, SLES, or Ubuntu) with command-line tools.

Создание резервной копии в Windows Create a backup on Windows

Создать файл резервной копии базы данных в Windows можно несколькими способами. There are several ways to create a backup file of a database on Windows. В приведенных ниже инструкциях используется SQL Server Management Studio (SSMS). The following steps use SQL Server Management Studio (SSMS).

Запустите SQL Server Management Studio на компьютере Windows. Start SQL Server Management Studio on your Windows machine.

В диалоговом окне подключения введите localhost. In the connection dialog, enter localhost.

Читайте также:  Все про ядра linux

В обозревателе объектов разверните узел Базы данных. In Object Explorer, expand Databases.

Щелкните целевую базу данных правой кнопкой мыши, выберите пункт Задачи, а затем Резервное копирование. . Right-click your target database, select Tasks, and then click Back Up. .

В диалоговом окне Резервное копирование базы данных в поле Тип резервной копии должно быть выбрано значение Полная, а в поле Создать резервную копию наДиск. In the Backup Up Database dialog, verify that Backup type is Full and Back up to is Disk. Запишите имя и расположение файла. Note name and location of the file. Например, база данных с именем YourDB в SQL Server 2016 имеет путь резервного копирования по умолчанию C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\YourDB.bak . For example, a database named YourDB on SQL Server 2016 has a default backup path of C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\YourDB.bak .

Нажмите кнопку ОК, чтобы создать резервную копию базы данных. Click OK to back up your database.

Другой вариант — выполнить запрос Transact-SQL для создания файла резервной копии. Another option is to run a Transact-SQL query to create the backup file. Следующая команда Transact-SQL выполняет те же действия, что и предыдущие инструкции, для базы данных с именем YourDB: The following Transact-SQL command performs the same actions as the previous steps for a database called YourDB:

установка оболочки Bash в Windows; Install a Bash shell on Windows

Чтобы восстановить базу данных, необходимо сначала перенести файл резервной копии с компьютера Windows на целевой компьютер Linux. To restore the database, you must first transfer the backup file from the Windows machine to the target Linux machine. В этом руководстве файл переносится в Linux из оболочки Bash (окна терминала), запущенной в Windows. In this tutorial, we move the file to Linux from a Bash shell (terminal window) running on Windows.

Установите оболочку Bash на компьютере Windows, который поддерживает команды scp (безопасное копирование) и ssh (удаленный вход в систему). Install a Bash shell on your Windows machine that supports the scp (secure copy) and ssh (remote login) commands. Вот два примера: Two examples include:

Откройте сеанс Bash в Windows. Open a Bash session on Windows.

Копирование файла резервной копии в Linux Copy the backup file to Linux

В сеансе Bash перейдите к каталогу, в котором содержится файл резервной копии. In your Bash session, navigate to the directory containing your backup file. Пример. For example:

Перенесите файл на конечный компьютер Linux с помощью команды scp. Use the scp command to transfer the file to the target Linux machine. В следующем примере файл YourDB.bak переносится в домашний каталог пользователя user1 на сервере Linux с IP-адресом 192.0.2.9: The following example transfers YourDB.bak to the home directory of user1 on the Linux server with an IP address of 192.0.2.9:

При передаче файлов есть альтернативы команде scp. There are alternatives to using scp for file transfer. Одна из них — настройка сетевой папки SMB между Windows и Linux с помощью Samba. One is to use Samba to configure an SMB network share between Windows and Linux. Пошаговое руководство для Ubuntu см. в статье How to Create a Network Share Via Samba (Создание сетевой папки с помощью Samba). For a walkthrough on Ubuntu, see How to Create a Network Share Via Samba. После ее создания вы можете получать к ней доступ как к общей сетевой папке из Windows, например \\machinenameorip\share. Once established, you can access it as a network file share from Windows, such as \\machinenameorip\share.

Читайте также:  Vmware workstation pro установка kali linux

Перенос файла резервной копии перед восстановлением Move the backup file before restoring

Сейчас файл резервной копии находится на сервере Linux в домашнем каталоге пользователя. At this point, the backup file is on your Linux server in your user’s home directory. Перед восстановлением базы данных в SQL Server необходимо поместить резервную копию в подкаталог /var/opt/mssql, так как ей владеет пользователь mssql и группа mssql . Before restoring the database to SQL Server, you must place the backup in a subdirectory of /var/opt/mssql, as this is owned by the user mssql and group mssql . Если вы хотите изменить расположение резервной копии по умолчанию, см. сведения в статье Настройка с помощью mssql-conf. If you are looking to change the default backup location, see the Configure with mssql-conf article.

В том же сеансе Bash в Windows подключитесь удаленно к целевому компьютеру Linux с помощью команды ssh. In the same Windows Bash session, connect remotely to your target Linux machine with ssh. В следующем примере устанавливается подключение к компьютеру Linux с IP-адресом 192.0.2.9 от имени пользователя user1: The following example connects to the Linux machine 192.0.2.9 as user user1.

Теперь вы выполняете команды на удаленном сервере Linux. You are now running commands on the remote Linux server.

Перейдите в режим суперпользователя. Enter super user mode.

Создайте каталог резервного копирования. Create a new backup directory. Если каталог уже существует, параметр -p не оказывает никакого действия. The -p parameter does nothing if the directory already exists.

Переместите файл резервной копии в этот каталог. Move the backup file to that directory. В приведенном ниже примере файл резервной копии находится в домашнем каталоге пользователя user1. In the following example, the backup file resides in the home directory of user1. Измените команду в соответствии с расположением и именем вашего файла резервной копии. Change the command to match the location and file name of your backup file.

Выйдите из режима суперпользователя. Exit super user mode.

Восстановление базы данных в Linux Restore your database on Linux

Чтобы восстановить резервную копию базы данных, можно воспользоваться командой Transact-SQL (TQL) RESTORE DATABASE. To restore the database backup, you can use the RESTORE DATABASE Transact-SQL (TQL) command.

В приведенных ниже инструкциях используется программа sqlcmd. The following steps use the sqlcmd tool. Если вы еще не установили средства SQL Server, см. статью Установка программ командной строки SQL Server в Linux. If you haven’t install SQL Server Tools, see Install SQL Server command-line tools on Linux.

В том же окне терминала запустите sqlcmd. In the same terminal, launch sqlcmd. В приведенном ниже пользователь SA подключается к локальному экземпляру SQL Server. The following example connects to the local SQL Server instance with the SA user. Введите пароль, когда появится запрос, или укажите пароль с помощью параметра -P. Enter the password when prompted, or specify the password by adding the -P parameter.

В строке >1 введите приведенную ниже команду RESTORE DATABASE, нажимая клавишу ВВОД после каждой строки (многострочную команду нельзя скопировать и вставить за один раз). At the >1 prompt, enter the following RESTORE DATABASE command, pressing ENTER after each line (you cannot copy and paste the entire multi-line command at once). Замените все вхождения YourDB на имя вашей базы данных. Replace all occurrences of YourDB with the name of your database.

Читайте также:  Search the windows registry

Должно появиться сообщение об успешном восстановлении базы данных. You should get a message the database is successfully restored.

Команда RESTORE DATABASE может вернуть ошибку, как в следующем примере: RESTORE DATABASE may return an error like the following example:

Это значит, что база данных содержит дополнительные файлы. In this case, the database contains secondary files. Если эти файлы не указаны в предложении MOVE команды RESTORE DATABASE , процедура восстановления попытается создать их по тому же пути, что и на исходном сервере. If these files are not specified in the MOVE clause of RESTORE DATABASE , the restore procedure will try to create them in the same path as the original server.

Вы можете вывести список всех файлов, содержащихся в резервной копии: You can list all files included in the backup:

Вы должны получить список, аналогичный следующему (приводятся только два первых столбца): You should get a list like the one below (listing only the two first columns):

Этот список можно использовать для создания предложений MOVE для дополнительных файлов. You can use this list to create MOVE clauses for the additional files. В этом примере команда RESTORE DATABASE имеет следующий вид: In this example, the RESTORE DATABASE is:

Проверьте восстановление, получив список всех баз данных на сервере. Verify the restoration by listing all of the databases on the server. Восстановленная база данных должна быть указана в списке. The restored database should be listed.

Выполните другие запросы к перенесенной базе данных. Run other queries on your migrated database. Приведенная ниже команда переключает контекст на базу данных YourDB и выбирает строки из одной из ее таблиц. The following command switches context to the YourDB database and selects rows from one of its tables.

Когда вы завершите работу с sqlcmd, введите exit . When you are done using sqlcmd, type exit .

Когда вы завершите работу в удаленном сеансе ssh, введите exit еще раз. When you are done working in the remote ssh session, type exit again.

Дальнейшие шаги Next steps

В этом руководстве вы узнали, как создать резервную копию базы данных в Windows и переместить ее на сервер Linux с SQL Server. In this tutorial, you learned how to back up a database on Windows and move it to a Linux server running SQL Server. Вы ознакомились с выполнением следующих задач: You learned how to:

  • создание файла резервной копии в Windows с помощью SSMS и Transact-SQL; Use SSMS and Transact-SQL to create a backup file on Windows
  • установка оболочки Bash в Windows; Install a Bash shell on Windows
  • перенос файлов резервных копий из Windows в Linux с помощью команды scp; Use scp to move backup files from Windows to Linux
  • удаленное подключение к компьютеру Linux с помощью команды ssh; Use ssh to remotely connect to your Linux machine
  • перемещение файла резервной копии для подготовки к восстановлению; Relocate the backup file to prepare for restore
  • выполнение команд Transact-SQL с помощью sqlcmd; Use sqlcmd to run Transact-SQL commands
  • восстановление резервной копии базы данных с помощью команды RESTORE DATABASE; Restore the database backup with the RESTORE DATABASE command
  • выполнение запроса для проверки переноса. Run the query to verify the migration

Далее вы можете ознакомиться с другими сценариями переноса для SQL Server на Linux. Next, explore other migration scenarios for SQL Server on Linux.

Оцените статью