Назад | Перейти на главную страницу

Можно ли сделать резервную копию базы данных MS SQL из командной строки Linux?

Можно ли создать локальный файл резервной копии удаленной базы данных Microsoft SQL Server из командной строки Linux?

Я знаю, что могу использовать SQLCMD из командной строки Windows, но возможно ли то же самое из окна Linux?

Найдите драйвер ODBC для SQL-сервера, который будет работать в вашей ОС. Используя этот ODBC, вы можете подключиться (при условии, что у вас есть разрешения) и отправить команды резервного копирования на сервер SQL. Если вы можете сопоставить UNC-путь с локальным диском, вы можете сделать резервную копию в этом месте.

Вам нужно будет следить за проблемами, о которых упоминал bitplayer, но вы можете позаботиться об удаленном запуске SQL в Linux с помощью FreeTDS. Также есть модуль Perl для его запуска: http://www.perlmonks.org/?node_id=392385.

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

Когда вы вводите команду резервного копирования с помощью sqlcmd из командной строки Windows, вы указываете серверу резервное копирование базы данных. sqlcmd просто передает команду; он действительно не знает, что вы просили сделать SQL Server. Я был бы удивлен, если бы любой другой инструмент работал по-другому.

SQL Server ожидает записи (и чтения, если необходимо) резервных копий либо в локальное хранилище (что-то с буквой диска, например c: \ temp \ mybackupdir), либо по пути UNC (что-то похожее на \ hal9000 \ mybackupshare).

Локальный путь может быть устройством iSCSI, если Windows может обмануть SQL Server, заставив его думать, что это «настоящий» локальный диск. В SQL Server нет встроенной поддержки nfs, ftp, scp или чего-либо подобного. Я знаю и / или предполагаю, что существует программное обеспечение, которое может сделать общий ресурс nfs или ftp похожим на локальный путь. Я не уверен в scp. Также нет необработанных данных, которые можно было бы записать в файл.

Другая распространенная проблема заключается в том, что в Windows отображение дисков выполняется для каждого пользователя. Это означает, что вы можете войти в эту машину Windows, постоянно подключать диск R (или любой другой диск) с сохраненными учетными данными, и SQL Server не увидит сопоставление, потому что служба SQL Server, вероятно, работает под другой учетной записью.

Путь UNC может быть общим ресурсом на сервере Samba, который может находиться на том же хосте, с которого вы запускаете этот командный инструмент * nix.