为什么无法重建2005/2008数据库日志
来源:互联网 发布:windows找不到mstsc 编辑:程序博客网 时间:2024/06/05 23:40
曾经有客户发Email给我说数据库日志文件损坏了,有没有办法让数据库上线。因为当时没有备份(备份在这种情况下作用就体现出来了,一定要做备份),所以只能尝试重建日志,通过重建日志将数据库恢复了。
但是重建日志功能不是对于所有情况适用用的,要满足两个条件:
· A clean shutdown of the database.
· All data files (MDF and NDF) must be available.
下面我举个例子无法重建数据库日志:
create database B
go
USE B
GO
--创建测试表
create table TEST(NAMEVARCHAR(20))
---创建一个事物但是不Commit
BEGIN TRAN
INSERT INTO testVALUES('KEVIN')
CHECKPOINT
--执行SHUTDOWN关闭SQLSERVER
SHUTDOWN
然后将数据库的日志文件删除,这样我们的A数据库就是在事务没有结束的情况下Log损坏了。下面重建日志文件:
USE [master]
GO
CREATE DATABASE [B]ON
( FILENAME = N'D:\Program Files\Microsoft SQLServer\MSSQL10_50.R2\MSSQL\DATA\B.mdf')
FOR ATTACH_REBUILD_LOG
GO
错误信息:
File activation failure. Thephysical file name "D:\Program Files\Microsoft SQLServer\MSSQL10_50.R2\MSSQL\DATA\A_log.ldf" may be incorrect.
The log cannot be rebuilt because there were open transactions/users whenthe database was shutdown, no checkpoint occurred to the database, or the database wasread-only. This error could occur if the transaction log file was manuallydeleted or lost due to a hardware or environment failure.
Msg 1813, Level 16, State 2,Line 1
Could not open new database'A'. CREATE DATABASE is aborted.
所以重建日志不是万能的。
- 为什么无法重建2005/2008数据库日志
- 数据库日志删除重建方法
- Rebldlog (Sybase数据库日志重建) -zt
- Sybase ASE重建以及修复数据库日志
- sql server 2005数据库日志无法收缩
- 数据库日志无法收缩
- 数据库修复系列Part4:重建数据库日志文件
- 为什么要重建索引
- 并入子网后为什么无法连接数据库?
- 为什么用cmd无法创建数据库?
- 重建 SQL Server 2008 系统数据库
- 主库做不完全恢复后,备库无法应用日志解决办法(重建备库)
- 复制导致数据库日志无法截断收缩
- SqlServer 数据库日志无法收缩处理过程
- 删除redo所有日志,数据库无法启动
- oracle 日志文件无法归档导致的数据库无法启动
- 数据库日志文件很大,但是无法压缩,无法清理,怎么办?
- .net连接ORACLE数据库,为什么数据库进程无法消除?
- 什么时候调用拷贝构造函数
- 计算机视觉 学习笔记(入门篇 序)
- JDBC
- ViM 命令
- Think_in_CPP第十二章 操作符重载(4)
- 为什么无法重建2005/2008数据库日志
- thinkpad e40 ubuntu系统安装支持无线网卡的历程
- 理解Activity生命周期
- POJ 2411 Mondriaan's Dream
- C++汉诺塔
- java异常的清理工作
- 几何的对称之美——筝形定理
- Servlet技术之GenericServlet抽象类(学习笔记)
- 通过JDBC访问数据库的基本步骤