我正在尝试还原托管在linux虚拟机上的SQL server上的数据库备份。备份文件放在windows文件系统网络路径上。我在linux/home/user/WinMap中安装了这个路径/
现在,当我尝试使用restore屏幕还原数据库备份时,我看到如下路径
C:\var\opt\mssql\data
. 我看不见我的路
/主页/用户/WinMap/
以便恢复备份。
如果您知道如何在SQL server中处理linux文件系统,我将不胜感激。
短暂性脑缺血发作

最佳答案

不使用SSMS。。使用这里的参考资料:Restore a SQL Server database from Windows to Linux
下一步,在linux中放置备份文件后,将备份文件移动到/var/opt/mssql
这可以用
移动备份文件
此时,备份文件位于Linux服务器上。在将数据库还原到SQL Server之前,必须将备份放在/var/opt/mssql的子目录中。
在包含备份的目标Linux计算机上打开一个终端。
进入超级用户模式。
获取权限
创建新的备份目录。如果目录已经存在,-p参数不执行任何操作。

mkdir -p /var/opt/mssql/backup

将备份文件移动到该目录。在下面的示例中,备份文件位于user1的主目录中。更改命令以匹配您计算机上AdventureWorks2014.bak的位置。
mv /home/user1/AdventureWorks2014.bak /var/opt/mssql/backup/

退出超级用户模式。
exit

现在要恢复,必须使用SQLCMD。。
在同一个终端中,启动sqlcmd。以下示例使用SA用户连接到本地SQL Server实例。出现提示时输入密码或使用-P参数指定密码。
sqlcmd -S localhost -U SA

连接后,输入以下RESTORE database命令,每行后按enter键。下面的示例将从/var/opt/mssql/backup directory还原AdventureWorks2014.bak文件。
RESTORE DATABASE AdventureWorks
FROM DISK = '/var/opt/mssql/backup/AdventureWorks2014.bak'
WITH MOVE 'AdventureWorks2014_Data' TO '/var/opt/mssql/data/AdventureWorks2014_Data.mdf',
MOVE 'AdventureWorks2014_Log' TO '/var/opt/mssql/data/AdventureWorks2014_Log.ldf'
GO

关于sql-server - 在Linux VM上托管的SQL Server上还原备份,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40974563/

10-15 04:10