数据库
首页 > 数据库> > sql-server – 为什么我的数据库恢复被中止?

sql-server – 为什么我的数据库恢复被中止?

作者:互联网

我正在尝试将SQL Server 2016数据库还原到SQL Server 2017 docker实例(microsoft / mssql-server-linux:latest).这个过程似乎是:

>创建docker容器:docker run -e’ACCEPT_EULA = Y’-e’SA_PASSWORD =< strong password>‘ – p 1433:1433 –name’sql1’microsoft / mssql-server-linux
>创建备份目录:docker exec -it sql1 mkdir / var / opt / mssql / backup
>将备份复制到目录:docker cp Foobar.bak sql1:/ var / opt / mssql / backup
>登录mssql服务器:mssql -o 1433 -u sa -p
>获取备份文件列表:从disk =’/ var / opt / mssql / backup / Foobar.bak’恢复文件列表< - 返回的每一行将导致下一步中的移动命令
>恢复数据库:从disk =’/ var / opt / mssql / backup / Foobar.bak’恢复数据库Foobar,stats = 10,替换,将’Foobar’移动到’/var/opt/mssql/data/Foobar.mdf’ ,将’Foobar_log’移动到’/var/opt/mssql/data/Foobar.ldf’

最后一步是输出失败:

Error: The backup or restore was aborted.

我试图找到一个错误日志,并找到/ var / opt / mssql / log / errorlog. AFAICT,在我的中止恢复操作中,此文件中没有任何内容输出.

我怎样才能确定发生了什么?是否有可用于获取更多信息的日志?

解决方法:

使用SQLCMD在容器中执行任何即席查询(包括RESTORE)的简单方法是:

docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd -Usa -P<strong password> -Q"restore database Foobar from disk='/var/opt/mssql/backup/Foobar.bak' with stats=10, replace, move 'Foobar' to '/var/opt/mssql/data/Foobar.mdf', move 'Foobar_log' to '/var/opt/mssql/data/Foobar.ldf';"

标签:sql-server-2017,azure,sql-server,linux
来源: https://codeday.me/bug/20190806/1598561.html