Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server Docker Linux容器中的备份SQL Server 2019失败_Sql Server_Docker_Ssms_Sqlcmd_Azure Data Studio - Fatal编程技术网

Sql server Docker Linux容器中的备份SQL Server 2019失败

Sql server Docker Linux容器中的备份SQL Server 2019失败,sql-server,docker,ssms,sqlcmd,azure-data-studio,Sql Server,Docker,Ssms,Sqlcmd,Azure Data Studio,尝试了多种备份方法 尝试将SA作为根用户添加到容器中 Azure数据工作室 Msg 3201,16级,状态1,第1行 无法打开备份设备“/var/opt/mssql/backup//PrestigeCars-202044-8-4-52.bak”。操作系统错误2系统找不到指定的文件。。 Msg 3013,16级,状态1,第1行 备份数据库正在异常终止。 总执行时间:00:00:00.217 SSMS SQLCMD 标准SQL Server Linux映像中不存在目录/var/opt/mssql/b

尝试了多种备份方法

尝试将SA作为根用户添加到容器中

Azure数据工作室

Msg 3201,16级,状态1,第1行 无法打开备份设备“/var/opt/mssql/backup//PrestigeCars-202044-8-4-52.bak”。操作系统错误2系统找不到指定的文件。。 Msg 3013,16级,状态1,第1行 备份数据库正在异常终止。 总执行时间:00:00:00.217

SSMS

SQLCMD

标准SQL Server Linux映像中不存在目录/var/opt/mssql/backup。首先需要在容器中运行以下命令来创建目录:

mkdir /var/opt/mssql/backup
此外,正如@Larnu指出的,在路径中还有一个额外的反斜杠。备份命令应为:

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;

感谢你们所有的帮助。问题不是缺少文件夹,而是权限问题

文件夹最初是在将备份复制到容器时创建的:

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

*权限为4 drwxr xr-**x 3根根目录4096 Jan 31 19:06备份***

我尝试了各种Ubuntu创建sudo adduser命令,但是sudo或apt命令都没有成功

我发现此命令以root用户身份连接

docker exec-it-u根目录874 bash

cd/var/opt/mssql/backup/

cd

chmod 777备份

cd

chmod 777 mssql

cd

chmod 777选项

cd

chmod 777变种


关闭容器。我备份了SSMS和Azure Data Studio中的数据库。加倍耶

错误告诉了你问题所在。查看您的文件路径:backup//PrestigeCars注意两个/字符。@Larnu,默认用户是mssql,具有docker exec-it sql容器名bash。因此mkdir命令使用drwxr-xr-x创建目录,与其他sql目录相同。公平地说,我个人没有使用docker for sql Server,只是实际的Linux安装和LXD,所以不确定我为什么要发表评论。首先,该目录确实存在。它是使用docker创建的copy@PeterH,那么,删除多余的斜杠后备份工作是否正常?
mkdir /var/opt/mssql/backup
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;