首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不执行“完全”备份

不执行“完全”备份
EN

Database Administration用户
提问于 2019-05-17 16:43:09
回答 1查看 106关注 0票数 1

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

或在事务SQL中:

代码语言:javascript
复制
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机器上的数据库,使用:

代码语言:javascript
复制
USE master;
GO
DROP DATABASE YourDB;
GO

然后按照这里的命令再次上传:

代码语言:javascript
复制
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

有趣的是,他们在午夜运行的备份任务确实有新的信息,但是我看不出这个任务发生在哪里来比较脚本。

EN

回答 1

Database Administration用户

回答已采纳

发布于 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备份中恢复。

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

https://dba.stackexchange.com/questions/238430

复制
相关文章

相似问题

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