Сбой резервного копирования SQL Server 2019 в Docker Linux контейнере - PullRequest
0 голосов
/ 04 апреля 2020

Попытка создания резервной копии несколькими способами.

Попытка добавления SA в качестве пользователя root в контейнер

Azure Data studio

BACKUP DATABASE [PrestigeCars] TO  DISK = N'/var/opt/mssql/backup//PrestigeCars-202044-8-4-52.bak' WITH NOFORMAT, NOINIT,  NAME = N'PrestigeCars--2020-04-04T12:04:52', NOSKIP, REWIND, NOUNLOAD,  STATS = 10

Сообщение 3201, Уровень 16, Состояние 1, Строка 1 Не удается открыть устройство резервного копирования '/var/opt/mssql/backup//PrestigeCars-202044-8-4-52.bak'. Ошибка операционной системы 2 (система не может найти указанный файл.). Сообщение 3013, уровень 16, состояние 1, строка 1 РЕЗЕРВНАЯ БАЗА ДАННЫХ завершается ненормально. Общее время выполнения: 00:00: 00,217

SSMS

backup database [PrestigeCars]
to  disk = N'/var/opt/mssql/backup//PrestigeCars-202044-6-42-9.bak'
with noformat
    , noinit
    , name = N'PrestigeCars--20200404'
    , noskip
    , rewind
    , nounload
    , compression
    , stats = 10;

SQLCMD

sqlcmd -S localhost,12001 -U SA -Q "BACKUP DATABASE [PrestigeCars] TO DISK = N'/var/opt/mssql/backup/CSCI331-Backup/PrestigeCars-202044-6-42-9.bak' WITH NOFORMAT, NOINIT, NAME = 'PrestigeCars-20200404', SKIP, NOREWIND, NOUNLOAD, STATS = 10"   

Ответы [ 2 ]

0 голосов
/ 05 апреля 2020

Спасибо всем тем, кто помог. Проблема заключалась не в отсутствующих папках, а в проблеме с разрешениями.

Папки изначально создавались при копировании резервных копий в контейнер:

docker cp / Users / YourUsername / CSCI331-Backup / TSQLV4.bak linux -sql2k19: / var / opt / mssql / backup /

* Разрешения были 4 drwxr-xr - ** x 3 root root 4096 31 января 19:06 резервное копирование ***

Я пробовал разные Ubuntu создать sudo adduser, но ни одна из команд sudo или apt-get не сработала. (https://help.ubuntu.com/community/FilePermissions)

Я нашел эту команду для подключения как root пользователь

docker exe c -it -u root 874 bash

cd / var / opt / mssql / backup /

cd ..

резервная копия chmod 777

кд ..

chmod 777 мс sql

кд ..

chmod 777 opt

cd ..

chmod 777 var

Закройте контейнер. Я создал резервные копии баз данных в SSMS и Azure Data Studio. Двухместный Да!

0 голосов
/ 04 апреля 2020

Каталог /var/opt/mssql/backup не существует в стандартных SQL Серверных Linux изображениях. Сначала вам нужно будет создать каталог, выполнив в контейнере следующую команду:

mkdir /var/opt/mssql/backup

Кроме того, как указал @Larnu, у вас есть дополнительный backsla sh в пути. Команда резервного копирования должна быть:

BACKUP DATABASE [PrestigeCars] TO  DISK = N'/var/opt/mssql/backup/PrestigeCars-202044-8-4-52.bak' WITH NOFORMAT, NOINIT,  NAME = N'PrestigeCars--2020-04-04T12:04:52', NOSKIP, REWIND, NOUNLOAD,  STATS = 10;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...