缩小和备份数据库日志的最佳方法是什么?
我见过许多DBA这样做:
ALTER DATABASE [mydatabase] SET RECOVERY SIMPLE
DBCC SHRINKFILE(<log_file_name_Log>)
ALTER DATABASE [mydatabase] SET RECOVERY FULL
但我想知道,这是最好的方法吗?
当更改恢复日志的状态时,是否会因为丢失数据而影响数据库?
我有一个每天从外部源重新生成的数据库,所以我不关心备份它。事务日志可能会增长到几gb,因为每天都会使用新数据擦除和更新事务日志。
我试着限制大小,但我开始获取The transaction log for database 'myDB' is full due to 'ACTIVE_TRANSACTION'
我尝试将其设置为SIMPLE,但与上面的错误相同。
我能做些什么来确保它不会断掉,也不会占用空间?
我不小心在Windows 8上安装了Ubuntu13.04,当时我正在尝试双启动。我有一个分区(973 had ),其中有带有NTFS文件系统的窗口。但是,由于ubuntu的意外安装,文件系统已更改为ext4。
当我尝试testdisk时,它向我展示了三个分区:
P EFI系统(数据非常少)
P数据(大磁盘约950 of )。我认为这个分区拥有所有的数据)
P Linux交换(与我的ram大小相同)
现在,当我尝试搜索时,它显示分区MS数据无法恢复。我不需要隔板或windows 8。我只需要一些被删除的重要文件。我能恢复这些文件吗?请帮帮忙。
当我在做我自己的调查时,有人知道为什么SIMPLE恢复模型中的数据库有LOG_BACKUP for log_reuse_wait_desc吗?
Server 2012 SP1。几周前创建的数据库。没有复制,没有镜像,没有日志传送,而且从来没有任何这样的。
我们备份了数据库并将其还原到另一个实例,它在另一个实例的SIMPLE和NOTHING中显示了log_reuse_wait。但是我不认为还原到另一个实例是一个很好的方法来重现这个问题,因为恢复操作,前滚/回滚事务。
我的问题基本上是在标题中说出来的,但我想进一步阐述一下。我正在尝试备份一个数据库,然后将该数据库还原到位于同一服务器上的另一个数据库。目前,为了测试目的,我将它保存在同一台服务器上,但可能需要将其还原到新服务器上。
代码工作正常,没有错误或类似的错误。但是,如果我只运行一次,就无法保证恢复的数据库得到更新。如果我运行它,让它说5次,它很可能更新数据库。
我只是想知道它为什么不马上更新?
using Microsoft.SqlServer.Management.Common;
using Microsoft.SqlServer.Management.Smo;
using System;
//