首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Server备份导入Server Docker实例?

问如何将Server备份导入Server Docker实例?
EN

Stack Overflow用户
提问于 2018-07-03 19:20:12
回答 1查看 275关注 0票数 5

我遵循了AWS文件关于使用其存储过程从RDS导入/导出数据库的指导。

该命令类似于:

代码语言:javascript
复制
exec msdb.dbo.rds_backup_database 
              @source_db_name='MyDatabase', 
              @s3_arn_to_backup_to='my-bucket/myBackup.bak'

这部分工作很好,我在过去做过很多次了。

然而,我现在想要实现的是,将这个数据库恢复到本地Server实例;然而,我在这一点上还在挣扎。我假设这不是一个“正常”的Server转储--但我不知道区别是什么。

我已经创建了一个新的的SQL Server实例,这似乎已经做好了准备。我做了一些更改,以便安装sqlcmd工具;因此,从技术上讲,我正在运行的映像是由这个Dockerfile组成的;没有太大的不同。

代码语言:javascript
复制
FROM microsoft/mssql-server-linux:2017-latest

RUN apt-get update && \
    apt-get install -y curl && \
    curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \
    apt-get update && \
    apt-get install -y mssql-tools unixodbc-dev

这个映像工作得很好,我正在通过docker build -t sql .构建它,通过docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=myPassword1!' -p 1433:1433 -v $(pwd):/backups sql运行它

在我的本地文件夹中,我从RDS下载了我的备份,所以这个文件现在在/backups/myBackup.bak中。

现在我尝试运行sqlcmd来使用以下命令导入数据;我遇到了一个问题,这使我认为这不是一个传统的SQL。不确定传统的SQL转储是什么样子,但大多数文件似乎与^@^@^@^@和其他东西混在一起。

代码语言:javascript
复制
/opt/mssql-tools/bin/sqlcmd -S localhost -i /backups/myBackup.bak -U sa -P myPassword1! -x

最后,我得到了这个错误:

Sqlcmd: Error:在文件'/backups/myBackup.bak‘中命令'GO’附近的第56048行出现语法错误。

最终答案

我对此的最后解决方案主要来自使用-Q和运行RESTORE查询,而不是与文件一起导入,但我还需要包括一些指向MOVE文件路径的MOVE选项。

代码语言:javascript
复制
/opt/mssql-tools/bin/sqlcmd -U SA -P myPassword -Q "RESTORE DATABASE MyDatabase FROM DISK = N'/path/to/my/file.bak' WITH MOVE 'mydatabase' TO '/var/opt/mssql/mydatabase.mdf', MOVE 'mydatabase_log' TO '/var/opt/mssql/mydatabase.ldf', REPLACE"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-03 21:34:20

应该使用RESTORE DATABASE命令与备份文件交互,而不是将其指定为数据库命令的输入文件:

代码语言:javascript
复制
/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P myPassword1! -Q "RESTORE DATABASE MyDatabase FROM DISK='/backups/myBackup.bak'"

根据sqlcmd文档,您使用的-i标志指定:

包含一批SQL语句或存储过程的文件。

如果将数据库备份文件作为参数,则该标志可能无法正常工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51161613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档