我的错误越来越少。
数据库'CRM_QA_V6‘的事务日志已满。要了解为什么日志中的空间不能重用,请参阅sys.databases中的sys.databases列(可能由IncludeExceptionDetailInFaults=true创建)。
当我执行下面提到的查询时,得到了输出:
Query: select log_reuse_wait_desc from sys.databases where name ='CRM_QA_V6'
Output: 'NOTHING'
在Microsoft中,ALTER DATABASE CURRENT SET RECOVERY SIMPLE WITH NO_WAIT;将数据库的恢复模式设置为simple,因此可以重用事务日志文件空间。
在Postgres中,wal_level可用于此目的。
wal_level的S minimal是否等同于Server的RECOVERY SIMPLE?
如何在Postgres命令中设置wal_level?-到目前为止,Google告诉我wal_level是在配置文件中设置的。
是否可以将数据库的wal_level设置为minimal?如果是,怎么做?
谢谢。
什么时候应该使用完整的恢复模型,什么时候应该对数据库使用简单的恢复模型?
我总是使用完整的恢复模型,因为它是默认的,但是今天我遇到了以下错误:
(0x80040E14)数据库“数据库名称”的事务日志已满。若要了解日志中空间不能重用的原因,请参阅sys.databases中的sys.databases列。
具体的数据库实际上是我的服务器上最小和最不活跃的数据库之一,所以我不知道日志如何能满在这个数据库上,而不知道其他的数据库。
为了缩小日志并使数据库再次可访问,我将恢复模型从完整更改为简单,并使用以下命令缩小了逻辑文件日志
alter database myDbName SET recovery
在中,我创建一个测试表
CREATE TABLE [Test]
(
[BookID] [int] NOT NULL,
[Name] [varchar](512) NOT NULL,
CONSTRAINT [PK_Test] PRIMARY KEY CLUSTERED ([BookID] ASC)
) ON [PRIMARY]
当我跑的时候:
BEGIN TRAN;
INSERT INTO Test (BookID, Name) Values (1,'one');
INSERT INTO Test (BookID, Name) Values (2,
我有一个使用sql执行方法将数据从旧表迁移到新表的FluentMigrator脚本。
这是我的剧本:
INSERT INTO [Demo].[C]([key], [value], [tempID]) SELECT [name], [value], [userID] FROM [Demo].[A]
INSERT INTO [Demo].[B]([parentID], [propertyID]) SELECT [tempID], [id] FROM [Demo].[C] WHERE [tempID] IS NOT NULL
我有一个在VPS上运行的MySQL实例,该实例今天意外关闭(物理机重启)。当它重新启动时,我有一个MySQL错误日志,里面满是这样的消息:
140127 17:49:18 InnoDB: Error: page 1846 log sequence number 8869575607
InnoDB: is in the future! Current system log sequence number 8869400472
我尝试用innodb_force_recovery = 6恢复服务器(4不起作用)。这将使实例重新启动。然而,再多的表修复也不允许我在没有innodb_force_rec