我无法恢复数据库备份(db.bak)。
给出以下Transact-SQL:
x.x.x.x domain.tld
结果:
subroutine Test
implicit none
real, dimension(3600000) :: Alpha,Sigma
open(10, file='Alpha.txt')
read(10, *) Alpha
Sigma = (87.6*2)/((87.6*(sin(Alpha))**2)+(2*cos(Alpha)**2))
end subroutine
我甚至想知道,为什么代理在Linux程序中寻找Windows路径(D:\ Program Files ...)?
/var/opt/mssql/mssql.conf:
import matplotlib.pyplot as plt
import numpy as np
import Sigma
print(Sigma._doc_)
谢谢!
答案 0 :(得分:1)
可能是因为数据库是在Windows上创建和备份的。数据库会记住它的来源,并尝试恢复到同一个地方。
您可能需要使用restore statement的WITH MOVE
子句,正如错误消息所指出的那样。
答案 1 :(得分:1)
基什内尔是对的。你的错误说明了这一点:
“文件'db_log'无法还原到'D:\ Program Files \ Microsoft SQL
服务器\ MSSQL12.MSSQLSERVER2014 \ MSSQL \ DATA \ db_log.ldf”。使用WITH MOVE到
确定文件的有效位置。“
这是恢复命令的样子:
USE [master];
GO
RESTORE DATABASE [db] FROM DISK = N'/var/opt/mssql/db.bak'
WITH MOVE '<file_name>' TO '<file_location>'
, MOVE '<file_name>' TO '<file_location>'
...;
GO
假设您有一个目录/data/
,数据库有两个文件(一个数据文件和一个日志文件)。以下是实践中的陈述:
USE [master];
GO
RESTORE DATABASE [db] FROM DISK = N'/var/opt/mssql/db.bak'
WITH MOVE 'db' TO '/data/db.mdf'
, MOVE 'db_log' TO '/data/db_log.ldf'
...;
GO
记住Linux区分大小写。如果您不知道在哪里可以放置日志和数据文件。将其粘贴在与master数据库(exec sp_helpdb'master')相同的位置。
爱与亲吻, A -