Как изменить владельца файла резервной копии БД в SQL Контейнер сервера - PullRequest
0 голосов
/ 14 апреля 2020

Я следую этому руководству, чтобы восстановить резервную копию базы данных https://docs.microsoft.com/en-us/sql/linux/tutorial-restore-backup-in-sql-server-container?view=sql-server-ver15

Я использовал команду docker cp для копирования файлов резервных копий БД в контейнер docker exe c -it SQLContainer mkdir / var / opt / mssql / backup

docker cp MyDb.bak SQLContainer:/var/opt/mssql/backup/

Однако при попытке восстановить БД с помощью следующего запроса в SSMS появляется сообщение об ошибке

RESTORE DATABASE MyDB FROM DISK='/var/opt/mssql/backup/MyDB.bak'

Operating system error 5(Access is denied.).

Я пытался копировать, используя docker cp -a, который устанавливает для владельца файла то же самое, что и место назначения, но я получил эту ошибку.

docker cp -a MyDb.bak SQLContainer:/var/opt/mssql/backup/

Error response from daemon: getent unable to find entry "mssql" in passwd database

Я использую образ Microsoft и не знаю пароль для пользователя root, контейнер запускается с использованием пользователя ms sql, поэтому chown также не работает. Как я могу изменить права доступа к файлу, чтобы восстановление БД работало?

Ответы [ 2 ]

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

У меня была похожая проблема только сегодня, примерно в то же время, что и этот инцидент, просто прикрепление файлов MDF и LDF.

Выполнив команду chmod go + w перед копированием файлов без -a , я смог заставить сервер SQL обработать их как доступные для записи. До этого я получал сообщения об ошибках при каждом обновлении.

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

Оказывается, когда я скопировал файлы резервных копий базы данных с хоста Windows на машину с Ubuntu, файлы принадлежали пользователю root, а все остальные пользователи не имели разрешения на чтение. Добавление разрешения на чтение в файл перед копированием в контейнер docker работает, и сервер смог прочитать файлы.

sudo chmod a+r MyDb.bak

sudo docker cp MyDb.bak SQLContainer:/var/opt/mssql/backup/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...