非常新的SQL Server。我正在尝试从我们的客户端Windows2012Server安装到Linux安装中进行备份。我们的站点在Linux上运行得很好,但似乎不能通过任意的DB转储来获取新的数据。他们正在运行SQLServer2012Express(我猜是因为它在object的Management选项卡下没有“维护计划”)

或在事务SQL中:
BACKUP DATABASE [YourDB] TO [YourDB_backup] WITH NOFORMAT, NOINIT, NAME = N'YourDB-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO当我把它放到我的Linux服务器上时,它没有更新的信息(这是在5-6小时前创建的)。为什么会这样呢?
为了确保我没有犯错误,我删除了Linux机器上的数据库,使用:
USE master;
GO
DROP DATABASE YourDB;
GO然后按照这里的命令再次上传:
RESTORE DATABASE YourDB
FROM DISK = '/var/opt/mssql/backup/YourDB.bak'
WITH MOVE 'YourDB' TO '/var/opt/mssql/data/YourDB.mdf',
MOVE 'YourDB_Log' TO '/var/opt/mssql/data/YourDB_Log.ldf'
GO有趣的是,他们在午夜运行的备份任务确实有新的信息,但是我看不出这个任务发生在哪里来比较脚本。
发布于 2019-05-17 17:07:22
问题是NOINIT的未加密备份值。
https://learn.microsoft.com/en-us/sql/t-sql/statements/backup-transact-sql?view=sql-server-2017
媒体集选项这些选项对媒体集作为一个整体进行操作。{ NOINIT \ INIT }控制备份操作是否追加或覆盖备份媒体上的现有备份集。默认情况是附加到媒体上的最新备份集(NOINIT)。
转到options选项卡,将选择更改为覆盖,或将SQL更改为INIT。

或者,您可以使用本文中的NOINIT 使用NOINIT从.bak文件中恢复的说明从C7备份中恢复。
https://dba.stackexchange.com/questions/238430
复制相似问题