Linux mdf to sql

Перенос базы данных SQL Server из Windows в Linux с помощью резервного копирования и восстановления

Если нужно перенести базу данных из SQL Server в Windows в SQL Server на Linux, рекомендуется использовать функцию резервного копирования и восстановления SQL Server. В этом руководстве приводятся пошаговые инструкции по переносу базы данных в Linux с помощью резервного копирования и восстановления.

  • Создание файла резервной копии в Windows с помощью SSMS
  • установка оболочки Bash в Windows;
  • Перенос файла резервной копии в Linux из оболочки Bash
  • Восстановление файла резервной копии в Linux с помощью Transact-SQL
  • Выполнение запроса для проверки переноса

Для переноса базы данных SQL Server из Windows в Linux можно также создать группу доступности Always On SQL Server. См. статью Настройка кроссплатформенной группы доступности Always On SQL Server в Windows и Linux.

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

Для работы с этим руководством необходимо выполнить следующие условия.

  • Компьютер Windows со следующими компонентами:
    • установленный экземпляр SQL Server;
    • установленная среда SQL Server Management Studio;
    • целевая база данных для переноса.
    • SQL Server (RHEL, SLES или Ubuntu) с программами командной строки.

    Создание резервной копии в Windows

    Создать файл резервной копии базы данных в Windows можно несколькими способами. В приведенных ниже инструкциях используется SQL Server Management Studio (SSMS).

    Создание файла резервной копии с помощью SSMS

    1. Запустите SQL Server Management Studio на компьютере Windows.
    2. В диалоговом окне подключения введите localhost.
    3. В обозревателе объектов разверните узел Базы данных.
    4. Щелкните целевую базу данных правой кнопкой мыши, выберите пункт Задачи, а затем Резервное копирование. .
    5. В диалоговом окне Резервное копирование базы данных в поле Тип резервной копии должно быть выбрано значение Полная, а в поле Создать резервную копию наДиск. Запишите имя и расположение файла. Например, база данных с именем YourDB в SQL Server 2016 имеет путь резервного копирования по умолчанию C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\YourDB.bak .
    6. Нажмите кнопку ОК, чтобы создать резервную копию базы данных.

    Другой вариант — выполнить запрос Transact-SQL для создания файла резервной копии. Следующая команда Transact-SQL выполняет те же действия, что и предыдущие инструкции, для базы данных с именем YourDB:

    BACKUP DATABASE [YourDB] TO DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\YourDB.bak' WITH NOFORMAT, NOINIT, NAME = N'YourDB-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10 GO 

    установка оболочки Bash в Windows;

    Чтобы восстановить базу данных, необходимо сначала перенести файл резервной копии с компьютера Windows на целевой компьютер Linux. В этом руководстве файл переносится в Linux из оболочки Bash (окна терминала), запущенной в Windows.

    1. Установите оболочку Bash на компьютере Windows, который поддерживает команды scp (безопасное копирование) и ssh (удаленный вход в систему). Вот два примера:
      • подсистема Windows для Linux (Windows 10);
      • оболочка Bash GIT (https://git-scm.com/downloads).
    2. Откройте сеанс Bash в Windows.

    Копирование файла резервной копии в Linux

    cd 'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\Backup\' 
    scp YourDB.bak user1@192.0.2.9:./ 

    Команда scp

    При передаче файлов есть альтернативы команде scp. Одна из них — настройка сетевой папки SMB между Windows и Linux с помощью Samba. Пошаговое руководство для Ubuntu см. в статье How to Create a Network Share Via Samba (Создание сетевой папки с помощью Samba). После ее создания вы можете получать к ней доступ как к общей сетевой папке из Windows, например \\machinenameorip\share.

    Перенос файла резервной копии перед восстановлением

    Сейчас файл резервной копии находится на сервере Linux в домашнем каталоге пользователя. Перед восстановлением базы данных в SQL Server необходимо поместить резервную копию в подкаталог /var/opt/mssql, так как ей владеет пользователь mssql и группа mssql . Если вы хотите изменить расположение резервной копии по умолчанию, см. сведения в статье Настройка с помощью mssql-conf.

      В том же сеансе Bash в Windows подключитесь удаленно к целевому компьютеру Linux с помощью команды ssh. В следующем примере устанавливается подключение к компьютеру Linux с IP-адресом 192.0.2.9 от имени пользователя user1:

    mkdir -p /var/opt/mssql/backup 
    mv /home/user1/YourDB.bak /var/opt/mssql/backup/ 

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

    Чтобы восстановить резервную копию базы данных, можно воспользоваться командой Transact-SQL (TQL) RESTORE DATABASE.

    В приведенных ниже инструкциях используется программа sqlcmd. Если вы еще не установили средства SQL Server, см. статью Установка программ командной строки SQL Server в Linux.

    1. В том же окне терминала запустите sqlcmd. В приведенном ниже пользователь SA подключается к локальному экземпляру SQL Server. Введите пароль, когда появится запрос, или укажите пароль с помощью параметра -P.
    RESTORE DATABASE YourDB FROM DISK = '/var/opt/mssql/backup/YourDB.bak' WITH MOVE 'YourDB' TO '/var/opt/mssql/data/YourDB.mdf', MOVE 'YourDB_Log' TO '/var/opt/mssql/data/YourDB_Log.ldf' GO 

    Должно появиться сообщение об успешном восстановлении базы данных. Команда RESTORE DATABASE может вернуть ошибку, как в следующем примере:

    File 'YourDB_Product' cannot be restored to 'Z:\Microsoft SQL Server\MSSQL11.GLOBAL\MSSQL\Data\YourDB\YourDB_Product.ndf'. Use WITH MOVE to identify a valid location for the file. Msg 5133, Level 16, State 1, Server servername, Line 1 Directory lookup for the file "Z:\Microsoft SQL Server\MSSQL11.GLOBAL\MSSQL\Data\YourDB\YourDB_Product.ndf" failed with the operating system error 2(The system cannot find the file specified.). 

    Это значит, что база данных содержит дополнительные файлы. Если эти файлы не указаны в предложении MOVE команды RESTORE DATABASE , процедура восстановления попытается создать их по тому же пути, что и на исходном сервере. Вы можете вывести список всех файлов, содержащихся в резервной копии:

    RESTORE FILELISTONLY FROM DISK = '/var/opt/mssql/backup/YourDB.bak' GO 
    LogicalName PhysicalName . ---------------------------------------------------------------------------------------------------------------------- YourDB Z:\Microsoft SQL Server\MSSQL11.GLOBAL\MSSQL\Data\YourDB\YourDB.mdf . YourDB_Product Z:\Microsoft SQL Server\MSSQL11.GLOBAL\MSSQL\Data\YourDB\YourDB_Product.ndf . YourDB_Customer Z:\Microsoft SQL Server\MSSQL11.GLOBAL\MSSQL\Data\YourDB\YourDB_Customer.ndf . YourDB_log Z:\Microsoft SQL Server\MSSQL11.GLOBAL\MSSQL\Data\YourDB\YourDB_Log.ldf . 

    Этот список можно использовать для создания предложений MOVE для дополнительных файлов. В этом примере команда RESTORE DATABASE имеет следующий вид:

    RESTORE DATABASE YourDB FROM DISK = '/var/opt/mssql/backup/YourDB.bak' WITH MOVE 'YourDB' TO '/var/opt/mssql/data/YourDB.mdf', MOVE 'YourDB_Product' TO '/var/opt/mssql/data/YourDB_Product.ndf', MOVE 'YourDB_Customer' TO '/var/opt/mssql/data/YourDB_Customer.ndf', MOVE 'YourDB_Log' TO '/var/opt/mssql/data/YourDB_Log.ldf' GO 
    SELECT Name FROM sys.Databases GO 
    USE YourDB SELECT * FROM YourTable GO 

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

    В этом руководстве вы узнали, как создать резервную копию базы данных в Windows и переместить ее на сервер Linux с SQL Server. Вы ознакомились с выполнением следующих задач:

    • создание файла резервной копии в Windows с помощью SSMS и Transact-SQL;
    • установка оболочки Bash в Windows;
    • перенос файлов резервных копий из Windows в Linux с помощью команды scp;
    • удаленное подключение к компьютеру Linux с помощью команды ssh;
    • перемещение файла резервной копии для подготовки к восстановлению;
    • выполнение команд Transact-SQL с помощью sqlcmd;
    • восстановление резервной копии базы данных с помощью команды RESTORE DATABASE;
    • выполнение запроса для проверки переноса.

    Далее вы можете ознакомиться с другими сценариями переноса для SQL Server на Linux.

    Источник

    Blogging About SQL Tips & Tricks

    In SQL Server, every database contains .mdf files which is a primary database file also known as Master Database File. MDF Files contains all the information of SQL Server Database objects like tables,views,triggers etc. Whereas, the .sql Script is a set of command which contains one or more SQL statements. These Scripts can be used for further modification or regeneration of database objects.

    Why to Convert MDF to SQL Script

    There are various reasons why you need to convert mdf file to .sql script which are as follows:

    1. By converting .mdf file to .sql script, one can use these files to different servers.
    2. Sometimes users attach MDF files to the database by some untrusted sources, which may result in error as it could contain malicious information. So at this time we can convert mdf to sql script and execute these scripts on SQL Server for creating that database .

    How to Convert .mdf File to .sql Script

    You can try different methods for converting MDF Files into .sql as per your requirement. They are as follows:

    Manual Method to Convert MDF into SQL Script

    1. Launch Microsoft SQL Server Management Studio and connect to the SQL Server.
    2. Click on the Database option and select the database for which you want to generate .sql script.
    3. Now right click to your Database, you will get the option ‘Tasks’ followed by ‘Generate Scripts’.Click on that.
    4. After clicking on ‘Generate Scripts’, you will get the ‘Introduction’ screen in which you have given steps to generate the script. Click on ‘Next’ to proceed.
    5. After that you will get the ‘Choose Objects’ screen in which two options have been mentioned. Choose ‘Script entire database and all database objects’ option to select the whole database objects, and then click Next.
    6. SQL Server provides you three different options through which data can be exported i.e. ‘Data only’, ‘Schema only’ and ‘Data and Schema’. Choose the type of data according to your need. For this you have to click on ‘Advanced’ button.
    7. After clicking on it, you will get the ‘Advance scripting options’ screen, in which you can select the type of data. Click ‘Type of data in script’ option and choose its type.
    8. After choosing the type, you will get the screen of ‘Review your selection’, in which you will get to know about your server name, database, its selected objects and the target location of your database.
    9. After that you will get the report of your database objects which you have generated using ‘Generate Script’ option.

    Alternate Method to Convert MDF to SQL Script

    You can use alternate option for converting MDF Files to .sql script by using professional tool name SQL Recovery Software.

    For this, here is the easy steps to convert mdf file to sql :

    1. Launch SQL Recovery and Click on ‘Open’ button to upload mdf files.
    2. After uploading mdf files, Go to ‘Export’ button to save the files.
    3. You will get Export options after clicking on ‘Export’ button, Click on ‘SQL Server Compatible SQL Scripts’ to export mdf to sql script. It saves your script to the local system.
    4. Choose the type of database object accordingly.
    5. Click ‘With Schema’ to create only schema for tables,views,triggers etc Or ‘With Schema and Data’ to export schema and data for table. Choose ‘With Schema and Data’
    6. Choose the location to save the .sql file.
    7. A pop up with ‘Export Completed’ confirming the successful export of the database.

    Conclusion

    In this blog, I have discussed why there is need to convert mdf file to .sql script. The advantage of converting to sql script is that we can use mdf files to different servers. The blog also discusses the possible solutions on how to convert MDF to SQL script manually or by using third party tool in pictorial representation.

    Источник

    Читайте также:  Словарь паролей wifi kali linux
Оцените статью
Adblock
detector