重建数据库日志
‘壹’ sql server 日志文件删除重建有问题吗
不会有问题的,只要你是在企业管理器里面操作的。
‘贰’ 数据库恢复的基本原理是利用什么重建数据库
重建数据库时压测环境没有备份,但是另一套测试环境的表结构与压测环境一致,只是数据有所差异,所以,获取表结构比较容易。导入表结构没有什么好说明的地方,注意导入 SQL 的权限和字符集。 重建表空间注:此小节对应恢复步骤的 。由于是整库恢复,数据库和表较多,所以使用脚本处理。大概的处理流程是,两层循环,外层循环数据库列表,内层循环对应数据库表列表。然后依次 DISCARD TABLESPACE、拷贝对应库对应表的 ibd 文件到对应目录并更改权限、IMPORT TABLESPACE。之前分析过,由于新旧的 ibd 文件表空间 id 不一致,导致不能正确导入。在 MySQL 错误日志中记录了表名、新旧表空间 id,接下来我们看看怎么分解。 分析 MySQL 错误日志注:此小节对应恢复步骤的和 。这一步很有意思。所有的数据库表累计,不可能使用人工处理,我们得想点取巧的办法。我们发现 MySQL 错误日志记录的表名、新旧表空间 id 很有规律,我们只需要依次取出这些值,问题就解决一大半了。
‘叁’ sql数据库置疑怎么处理
修复方法
1
打开SQL企业管理器
按序打开 ,开始--所有程序(或程序)--Microsoft SQL Server--企业管理器
打开后按序点+号展开直到数据库
‘肆’ 日志文件丢失或出错的情况下如何恢复SQL数据库
1. 新建数据库(同名)
2. 停掉数据库
3. 删除新建数据库的日志文件,用要恢复的覆盖mdf文件
4. 启动数据库服务器
5. 设置数据库允许直接操作系统表
6. 设置数据库为紧急修复模式
update sysdatabases set status=-32768 where dbid=DB_ID('dbDataHome')
7. 重建数据库日志文件
dbcc rebuild_log('dbDataHome','D:\Data\dbData_Data.LDF')
8. 验证数据库一致性(可省略)
dbcc checkdb('dbDataHome')
9.设置数据库为正常状态
exec sp_dboption 'dbDataHome','dbo use only','false'
10. 最后一步,我们要将步骤E中设置的“允许对系统目录直接修改”一项恢复。
‘伍’ 数据库问题
您好,是这样的:
1.首先确认已经备份了.mdf和.ldf文件。
2.
在SQL
Server中新建一个同名的数据库,然后停止SQL
Server服务。
3.
用原有的.mdf和.ldf文件覆盖新建数据库对应的.mdf和.ldf文件。
4.
重新启动SQL
Server服务,这是应该会看到这个数据库处于置疑(Suspect)状态。
5.
在SQL查询分析器中执行以下命令,以允许更新系统表:use
mastergosp_configure
"allow
updates",1reconfigurewithoverridego。
6.
将这个数据库置为紧急模式:update
sysdatabases
set
status
=
32768
where
name="db_name"go。
7.
使用DBCC
CHECKDB命令检查数据库中的错误:DBCC
CHECKDB("db_name")GO。
8.
如果DBCC
CHECKDB命令失败,请转至第10步,否则先将数据库置为单用户模式,再尝试对其进行修复:sp_dboption
"db_name","single
user","true"DBCCCHECKDB("db_name",REPAIR_ALLOW_DATA_LOSS)GO
如果在执行DBCCCHECKDB("db_name",REPAIR_ALLOW_DATA_LOSS)命令时提示说数据库未处于单用户模式状态的话,则重新启动SQLServer服务,然后继续尝试。
9.
如果DBCCCHECKDB("db_name",REPAIR_ALLOW_DATA_LOSS)命令失败,请转至第10步,否则若成功修复了数据库中的错误:
重新执行DBCC
CHECKDB("db_name")命令,确认数据库中已没有错误存在。
清除数据库的置疑状态:sp_resetstatus
"db_name"
清除数据库的单用户模式状态:sp_dboption
"db_name","single
user","false"
重新启动SQL
Server服务,如果一切正常的话,则数据库已经成功恢复。
10.如果以上步骤都不能解决问题的话,请参考附件中的文档尝试通过重建事务日志来恢复数据库中的数据。如果您只有MDF文件,问题就更加复杂一些,我们需要直接重建事务日志了:
1.
在SQL
Server中新建一个同名的数据库,然后停止SQL
Server服务。
2.
用原有的ldf文件覆盖新建数据库对应的.mdf文件,将其日志文件(.ldf)删除。
3.
启动SQL
Server服务,并将数据库置为紧急模式(同上:
步骤5和步骤6)。
4.
停止并重新启动SQL
Server服务。
5.
执行以下命令重建数据库日志文件:(下面是个示例,您要用您实际的数据库名)
DBCC
REBUILD_LOG("cas_db",
"D:\cas_db\cas_db_Log.LDF")
6.
重新将该数据库置为单用户模式。
7.
再次尝试使用DBCC
CHECKTABLE或DBCC
CHECKDB命令检查并修复数据库中。
‘陆’ SQL 2008 可疑状态,数据库好像损坏了
楼主,你好!这类问题我自己没有碰到过,当然也就没有经验。我这边有一个可以参考的网址,你可以去看看,或许有所帮助。
网址1:http://www.itpub.net/thread-49776-1-1.html(这个也是断电)
网址2:http://www.itpub.net/tree/index_105_1/(这个是MSSQLServer问题的总目录)
另,附图两张。
以上希望能帮助到你。
‘柒’ SQL Server数据库LOG丢失后应当如何恢复
2.直接拷贝数据库文件mdf和日志文件ldf的方式。 下面我们来讲解一下在只有mdf文件时,应当如何进行恢复:◆1.我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQL Server Enterprise Manager里面建立。 ◆2.停掉数据库服务器。 ◆3.将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件test_data.mdf。 ◆4.启动数据库服务器。此时会看到数据库test的状态为“置疑”。这时候不能对此数据库进行任何操作。 ◆5.设置数据库允许直接操作系统表。此操作可以在SQL Server Enterprise Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。 ◆6.设置test为紧急修复模式 update sysdatabases set status=-32768 where dbid=DB_ID('test')此时可以在SQL Server Enterprise Manager里面看到该数据库处于“只读置疑脱机紧急模式”可以看到数据库里面的表。 ◆7.下面执行真正的恢复操作,重建数据库日志文件 dbcc rebuild_log('test','C:Program FilesMicrosoft SQL ServerMSSQLDatatest_log.ldf')执行过程中,如果遇到下列提示信息:服务器: 消息 5030,级别 16,状态 1,行 1未能排它地锁定数据库以执行该操作。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。说明您的其他程序正在使用该数据库,如果刚才您在F步骤中使用SQL Server Enterprise Manager打开了test库的系统表,那么退出SQL Server Enterprise Manager就可以了。正确执行完成的提示应该类似于:警告: 数据库 'test' 的日志已重建。已失去事务的一致性。应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。此时打开在SQL Server Enterprise Manager里面会看到数据库的状态为“只供DBO使用”。 至此,我们就可以访问数据库里面的用户表了。
‘捌’ sql server数据库被删除怎么恢复
方法1:
在
master
中执行
exec
sp_detach_db
'fj20070116',
'true'
接下来到相应的数据库文件目录下删除log文件
exec
sp_attach_db
@dbname
=
n'fj20070116',
@filename1
=
n'f:\microsoft
sql
server\mssql\data\fj20070116_data.mdf'
执行结果如下(表明删除日志成功,并重建数据库日志文件):
设备激活错误。物理文件名
'f:\microsoft
sql
server\mssql\data\fj20070116_log.ldf'
可能有误。
已创建名为
'f:\microsoft
sql
server\mssql\data\fj20070116_log.ldf'
的新日志文件。
方法2:
选中要分离的数据库,先将其分离。
删除对应的日志文件。
数据库--所有任务--附加数据库--在附加数据库的弹出框中选择mdf
选择是即可完成创建新的数据库日志文件。对数据库操作没有任何影响。
以上两个方法生成的log文件只有504kb。