Pra*_*een 10 sql-server backup sql-server-2012
通常,当我们开始备份时,我们不允许提交更改,否则将无法访问数据库。我的意思是数据库将处于单用户模式,但我想开始备份并释放数据库以供使用。此外,一旦我开始备份,我不希望将正在进行的更改写入备份文件。我想知道如何在 Microsoft SQL Server 2012 中实现这一点。请帮助我。
好吧,让我先解释一下我的问题。目前我将数据库设置为单用户模式,直到备份完成。这种模式将有助于我在备份过程中避免数据更改的目的。但是我的应用程序与多个数据库相关联(每个数据库相互关联,并且有每个月不断创建的 var dbs)。因此,备份所有这些数据库已成为乏味的过程,更重要的是,在进行备份时,我必须将用户排除在系统之外。
因此,我正在寻找满足以下要求的备份机制。
我想要的是 - 在给定时间备份所有数据库。
Ken*_*her 13
我假设您的任务是创建一组备份,您可以在其中将所有备份还原到单个静态(无打开事务)点(全部同步)。类似于 DB2 中的停顿点将为您做的事情。不幸的是,SQL Server 中没有任何东西可以做到这一点。但是,假设您的数据库处于完全恢复模式,您可以执行类似的操作。
您可以一次MARKED
跨所有数据库创建单个事务。然后对每个数据库进行事务日志备份。假设您跟上您的日志备份(无论如何您应该这样做),日志备份不会花费很长时间。并且没有必要阻止任何人进入系统(除非可能足够长的时间让您创建标记的交易)。
此时,如果您需要进行还原,则RESTORE STOPBEFOREMARK
对每个数据库都执行一次。这会将所有数据库还原到同一点(基于您的事务)。注意:如果您想包含该交易,还有一个 STOPATMARK。
如果你想要一个例子,我在上面的链接中有一个例子以及相当多的额外阅读。
我意识到这并不能完全回答您的问题,但希望它可以解决您的问题。
您的问题与我回答的问题类似 -将 10-20 个 SQL Server 数据库备份和恢复到~同步状态?
假设您的数据库恢复模型是 FULL,您应该进行 Full 备份,然后使用Marked Transactions。
让我们揭穿你的神话......
一次启动所有数据库的备份,并释放数据库以供使用。
来自备份神话 (强烈建议您阅读所有备份神话):
备份操作不会锁定用户对象。备份确实会在 I/O 子系统上造成非常重的读取负载,因此看起来工作负载被阻塞了,但事实并非如此。它只是被放慢了速度。有一种特殊情况,即必须获取大容量日志范围的备份将获取可能阻止检查点操作的文件锁——但 DML 永远不会被阻止。
由于数据库相互链接,我希望在备份文件中保持数据一致性。因此,由于此数据一致性要求,我不希望将更改提交到我的备份文件。
标记交易将帮助您采取一致的日志备份,你将能够恢复使用它们 RESTORE ... WITH STOPBEFOREMARK = '<mark_name>'
请记住,实例上所有数据库的标记事务也记录在数据库的dbo.logmarkhistory
表中MSDB
。
归档时间: |
|
查看次数: |
3245 次 |
最近记录: |