Questions tagged «mirroring»

有关数据库镜像的问题-一种用于同步或异步创建和维护数据库的精确副本的技术。

2
Microsoft SQL Server 2012镜像断开连接
我有一些Microsoft SQL Server 2012镜像,没有见证人处于异步模式,这些镜像偶尔会断开连接。我正在运行SQL Server 2012 11.0.5058。看着镜子那边的原木,我看到了 无法分配BUF:FAIL_BUFFER_ALLOCATION 1 有一堆记忆库消息 错误:802,严重性:17,状态:0。 缓冲池中没有足够的可用内存。 错误:1454,严重性:16,状态:1。 数据库镜像将被挂起。服务器实例“实例”在充当数据库“数据库”的镜像伙伴时遇到错误802,状态0,严重性17。数据库镜像伙伴可能会尝试从错误中自动恢复并恢复镜像会话。有关更多信息,请查看错误日志以获取其他错误消息。 任何有助于检查镜后为什么挂起然后断开连接的帮助都将受到赞赏。在此之后,我可以重新建立镜像,它们可以正常工作几天,然后再次发生。

2
当物理事务日志文件是镜像中的主体时,如何缩小物理事务日志文件?
我们在周末设置数据库镜像,但是忘记重新启用备份事务日志的作业。今天早上我来的时候,事务日志已经膨胀到58GB,并占用了大部分驱动器空间。 我将事务日志手动备份到磁盘以使数据库再次运行,但是运行DBCC SHRINKFILE似乎并没有减小事务日志文件的物理大小。 DBCC SHRINKFILE (N'MyDatabaseName_Log', 1000) 如果我使用以下命令查看日志使用情况 DBCC SQLPERF(LOGSPACE) 我可以看到仅使用了当前日志的22% 数据库名称日志大小(MB)使用的日志空间(%)状态 MyDatabaseName 55440.87 22.38189 0 如果我log_reuse_wait_desc在sys.databses中签出,则看到的唯一记录是DATABASE_MIRRORING,因此我猜测镜像在为什么日志文件的物理大小不会缩小的过程中发挥了作用? SELECT log_reuse_wait_desc FROM sys.databases WHERE name = N'MyDatabaseName'; 我还注意到我的主要数据库镜像状态为Suspended,并且尝试立即恢复它失败,并出现以下错误: 数据库'MyDatabaseName'的远程镜像伙伴遇到错误5149,状态1,严重性25。数据库镜像已被挂起。解决远程服务器上的错误并恢复镜像,或者删除镜像并重新建立镜像服务器实例。 镜像服务器上的错误日志也包含此错误,但是还包含有关日志文件驱动器已满的错误 尝试扩展物理文件时,“修改文件”遇到操作系统错误112(磁盘上没有足够的空间。)。 和 F:\ Databaselogs \ MyDatabaseName_1.ldf:遇到操作系统错误112(磁盘上没有足够的空间。)。 主体服务器在日志文件驱动器上有60GB(此处托管了其他数据库),而镜像服务器只有45GB。 备份日志文件使数据库再次可用,但是我还想减小磁盘上物理日志文件的大小,并恢复镜像。 如何在不损害镜像或备份链的情况下缩小物理事务日志文件的大小? 我正在运行SQL Server 2005

2
事务日志和镜像-寻找最简单的解释
首先,我必须承认我在处理事务日志的概念上遇到困难。我的意思是-我确实知道数据库中发生的所有事务的日志,但是在某些任务中将其正确地放入上下文时,我显然缺少一些东西。因此,对于将要回答该问题的任何人-请随时扩展事务日志背后的理论。 主要问题是-我有需要镜像的SQL Server 2008和2 GB数据库(具有12GB事务日志)。如果我不镜像该数据库,我想我可以切换到“简单”模式或在备份后截断日志。但是在这种情况下-如果我希望控制该事务日志,该怎么办?据我了解-如果我希望能够轻松镜像数据库(只需执行完全备份),就需要保留整个事务日志。 有没有办法解决?理想情况下,我希望可以进行备份,使每次和在备份完成后将MDF和LDF都保存在一个文件中。数据库上的事务日志(LDF)减少为0。这种情况的问题是增量备份-如果我是第一次备份截断的日志,我认为如果以后要进行镜像,则第二个备份将需要引用第一个备份(即,我将不得不保留一堆文件而不是一个文件)。 所以-有人能启发我这个问题吗?我了解我在这里试图填补很多空白,而我提议的“解决方案”可能不是最佳的解决方案,但是如果有人可以向我正确地介绍事务日志,它们如何影响镜像以及实现最佳解决方案,我将不胜感激。这两个的做法。

2
镜像日志在主数据库上为空,但在镜像服务器上为正常
我们有几十个基本服务器和相应的镜像,大多数都工作正常,但是其中1个的行为很奇怪。具体来说,sp_dbmmonitorresults对于给定的主体数据库,proc将所有列返回为NULL,而sp_dbmmonitorresults在镜像上则返回有效信息: 现在,我有一个大概的原因。当设置主服务器和镜像服务器时,在主服务器上设置不正确的区域设置(时间正确,但使用的是+4区域(美国等),则在设置镜像后,时间区域已更正为GMT +0(学校我知道的男孩错误,但c'est la vie!) 编辑:19/12/2012 今天,我删除了镜像,删除了镜像上的副本,然后重新设置了镜像,但这并没有解决问题!我将悬赏这个问题,以尝试深入研究这个问题。 要确认的是,如果我EXEC sp_dbmmonitorresults @database_name = 'ProScript'在每台服务器上手动运行,它将为主要服务器上的大多数值返回NULL,但在镜像服务器上返回正常,如下所示: 当跑到小学时: 缩放:单击查看完整尺寸的版本 照镜子时: 缩放:单击查看完整尺寸的版本 如您所见,时间是当前的并且数据库已同步,但是log_generation_rate,unsent_log,send_rate等在主数据库上都为NULL吗? 两台服务器都有每分钟运行的监控作业,并exec sys.sp_dbmmonitorupdate作为作业步骤等。 查看sys.sp_dbmmonitorupdate的源代码,它将从sys.dm_os_performance_counters- 中获取这些值,因此,如果我在镜像上运行以下命令: SELECT counter_name , cntr_value FROM sys.dm_os_performance_counters WHERE instance_name = 'ProScript' AND counter_name IN ( N'Log Send Queue KB', N'Log Bytes Sent/sec', N'Redo Queue KB', N'Redo Bytes/sec', N'Transaction Delay', N'Log …

3
有没有简单的方法来触发单个镜像数据库的自动故障转移?
我在具有自动故障转移配置的高度安全的sqlserver2008-R2单个实例上拥有3个镜像数据库。有没有一种方法可以触发仅1个数据库的自动故障转移? 我想模拟数据库实际上无法访问的位置,而不仅仅是单击SSMS中的“故障转移”按钮。我可以将端点停止在主数据库上,但这会使所有3个数据库无法访问,因为它们使用相同的端点。 如何仅禁用1分贝?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.