有没有办法在绕过 SQL DBMI 中的日志文件的同时恢复 .bak 文件?

问题描述 投票:0回答:1

我可以在 SQL DBMI 上恢复 .bak 文件,而无需在 Azure DataBricks 上使用此代码重新创建完整的 .bak 文件吗?

url2 = 'https:/[REDACTED]/PROD_2009_2round.bak'

# Define restore command using the credential object
restore_command = f"""
RESTORE DATABASE [PROD_2009] 
FROM URL = '{url2}';
"""

# Execute restore command
cursor.execute(restore_command)

# Close cursor and connection
cursor.close()
conn.close()

我收到的错误是这样的:

ProgrammingError: ('42000', '[42000] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Restoring from a backup that contains multiple log files is not supported in SQL Database Managed Instance. (41921) (SQLExecDirectW)')

ChatGPT 建议的解决方法是创建完整的 .bak 文件,以便不包含日志。但目前无法创建完整的 .bak 文件。

azure databricks azure-sql-managed-instance
1个回答
0
投票

SQL 数据库托管实例不支持从包含多个日志文件的备份进行恢复。

Azure 数据库迁移服务不支持具有多个日志文件的数据库,这是一个已知问题。

不,您无法绕过事务日志 .bak 文件。事务日志是备份的一个组成部分。如果您有大量日志文件,您可以缩小并重组它们以创建单个事务日志文件。由于您无法远程访问非空日志文件,因此必须首先备份它们。

要解决此问题,您需要先SHRINK 事务日志,然后再从 .bak 文件进行备份。

有关更多详细信息,请参阅@Ganeshan K 的文档

© www.soinside.com 2019 - 2024. All rights reserved.