数据库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使用”。 至此,我们就可以访问数据库里面的用户表了。
❷ 数据库Log太多如何清理但是不影响mysql原来的表数据。
如果想要关闭二进制mysql日志,可以在my.ini里把log-bin这行注释掉
要清二进制日志的话,在mysql开启了二进制日志的状态下,以root身份登录mysql以后执行下面两个命令之一:
PURGE
MASTER
LOGS
before
'2020-1-1';
清除指定日期之前的二进制日志
PURGE
MASTER
LOGS
TO
'mysql-bin.010';
清除指定文件编号之前的二进制日志
注意,如果没运行命令而是直接删除mysql-bin.xxx文件的话,mysql-bin.index里仍然记录了日志文件列表,这样以后再清日志时,就会因找不到列表中的日志文件而无法清理mysql日志
可以用bin目录中的mysqlbinlog.exe查看mysql二进制日志。
C:\>mysqlbinlog
mysql-bin.000001
如果my.ini中设置了字符集的话,可能会出现这以下这样的报错
mysqlbinlog:
unknown
variable
'default-character-set=gbk'
带上--no-defaults参数后即可解决
C:\>mysqlbinlog
--no-defaults
mysql-bin.000001
如果是要清理*.err日志的话,直接停止mysql数据库,将这个文件剪切走或者删除,重启mysql生成一个新的即可。
.err文件中实际是以文本方式保存的错误提示,可以直接用记事本打开查看。
❸ SQL数据库日志文件 可以删除吗
可以的
❹ 如何设置Log文件,记录数据库的操作信息
1、首先确认你日志是否启用了mysql>show
variables
like
'log_bin'。
2、如果启用了,即ON,那日志文件就在mysql的安装目录的data目录下。
3、怎样知道当前的日志mysql>
show
master
status。
4、看二进制日志文件用mysqlbinlog,shell>mysqlbinlog
mail-bin.000001或者shell>mysqlbinlog
mail-bin.000001
|
tail,Windows
下用类似的。
MySQL的日志操作:
1、首先,登陆mysql后,执行sql语句:show
variables
like
'log_bin'。
2、#错误日志log-errol开启方式:在my.ini的[mysqld]选项下:添加代码:log-error=E:\log-error.txt。
记录内容:主要是记录启动、运行或停止mysqld时出现的致命性问题,都是系统级的错误记录。
3、#查询日志:log,开启方式:在my.ini的[mysqld]选项下:添加代码:log=E:/mysql_log.txt。
4、#二进制日志:log-bin,开启方式:在my.ini的[mysqld]选项下:添加代码:log-bin=E:/mysql_log_bin,记录内容:主要是记录所有的更改数据的语句,可使用mysqlbinlog命令恢复数据。
❺ 数据库被怎么通过log日志恢复数据库
从日志回复数据库 :自己一步一步按照说明试着看
--创建测试数据库
CREATE DATABASE Db
GO
--对数据库进行备份
BACKUP DATABASE Db TO DISK='c:\db.bak' WITH FORMAT
GO
--创建测试表
CREATE TABLE Db.dbo.TB_test(ID int)
--延时1秒钟,再进行后面的操作(这是由于SQL Server的时间精度最大为百分之三秒,不延时的话,可能会导致还原到时间点的操作失败)
WAITFOR DELAY '00:00:01'
GO
--假设我们现在误操作删除了 Db.dbo.TB_test 这个表
DROP TABLE Db.dbo.TB_test
--保存删除表的时间
SELECT dt=GETDATE() INTO #
GO
--在删除操作后,发现不应该删除表 Db.dbo.TB_test
--下面演示了如何恢复这个误删除的表 Db.dbo.TB_test
--首先,备份事务日志(使用事务日志才能还原到指定的时间点)
BACKUP LOG Db TO DISK='c:\db_log.bak' WITH FORMAT
GO
--接下来,我们要先还原完全备份(还原日志必须在还原完全备份的基础上进行)
RESTORE DATABASE Db FROM DISK='c:\db.bak' WITH REPLACE,NORECOVERY
GO
--将事务日志还原到删除操作前(这里的时间对应上面的删除时间,并比删除时间略早
DECLARE @dt datetime
SELECT @dt=DATEADD(ms,-20,dt) FROM # --获取比表被删除的时间略早的时间
RESTORE LOG Db FROM DISK='c:\db_log.bak' WITH RECOVERY,STOPAT=@dt
GO
--查询一下,看表是否恢复
SELECT * FROM Db.dbo.TB_test
❻ 如何清理数据库中没用的log文件
进入sql数据库,随便找一个文件,鼠标右键,选择属性
点击“选项”,在恢复模式中选择“简单”,点击确定
选择要清理的文件,点鼠标右键→任务→收缩→文件
在文件组中选择“日志”,会看到下面可用空间,如果百分比较多,则更适合压缩
注意:在压缩之前最好看一下
C:Program FilesMicrosoft SQL ServerMSSQL10.SQLEXPRESSMSSQLDATA找一些比较大的log文件进行压缩。
5.完成以上操作之后,应重新启动SharePoint,重新启动SQL Sever
❼ 数据库log如何定期log备份
1、每日自动备份 打开企业管理器,进入“管理”-“数据库维护计划”,在右侧窗口点击右键,选择“新建维护计划”,启动“数据库维护计划向导”;点击“下一步”选择需要维护的数据库,维护特性数据库时,选择最后一个单选框并勾选需要维护的数据库名称;“下一步”选择更新数据优化信息、“下一步”检查数据库完整性、“下一步”指定数据库备份计划、“下一步”指定备份存放位置、“下一步”指定事务日志备份计划、“下一步”指定报表,“下一步”指定历史纪录维护,最后设定维护作业名称;通常来说,如果只需要备份数据库文件,则只需要指定备份计划以及存放位置即可,其他项目不做改动。 在指定备份计划时候,由于需要每日备份,因此要更改调度。点击“更改”编辑调度。发生频率选择每天;每日频率选择作业开始时间,最好选择数据库访问量小时进行,多为半夜时间,可根据流量图确定具体时间;持续时间通常不用做改动,开始日期为编辑日期,无结束日期。 编辑好上述维护计划后,还要注意下 sql server代理服务是否启动了,因为每日调度维护计划是要启动这个服务才能执行的。如果该服务没有启动,需要手动启动一下,这是可以在其子项“作业”中看到刚刚添加过的数据库维护计划。 2、定期自动清理数据库日志文件 数据库日志文件是随着时间增长而增长的,如果长时间不清理,文件会变得特别大,因此需要定期清空,但是日至文件是恢复数据库的重要依据,不用日志文件也是不明智的。手工清除单个数据库的还好说,但数据库多了,或者临时没有来得及清理,可能硬盘空间就会占满了,影响访问。因此设置自动清理数据库日志文件还是比较实用的。 手动清理方法:右键单击需要清理的数据库,选择“属性”,在“选项”卡上,把故障还原模型设定为简单,确定后关闭;再右键单击该数据库,“所有任务”-“收缩数据库”,确认后即可清除日志文件,最后记得重新选择“属性”,将故障还原模型设置为完全。 自动清理方法:同样是利用sql server代理服务,执行自动作业。 打开企业管理器,进入“管理”-“sql server代理服务”-“作业”,在右侧窗口点击右键,选择“新建作业”。“常规”选项卡中,填写作业名称,具体描述,注意所有者最好还是用sa或者默认的管理帐号。 转到“步骤”选项卡,新建作业步骤,填写步骤名称,类型为脚本,数据库为需要清理日志的数据库,在下边命令中填写以下命令: DUMP TRANSACTION 数据库名称 WITH NO_LOG DBCC SHRINKFILE(数据库日志文件名,1) 上边的数据库名称填写需要维护的数据库名称,数据库日志文件名填写其对应的日志文件名,注意,不是资源管理器里看到的带后缀名的那个名字,而是企业管理器里,数据库属性里日志选项卡中日志的名字(通常也只是差一个后缀名……),确定后添加一个作业步骤。 如果需要维护多个数据库,用上述方法重复添加作业步骤,注意每个步骤成功或失败后的动作即可,最后选择一下开始的步骤。 在“调度”选项卡中,类似备份的维护计划,填写调度周期,即定期清理的周期,不再细述。如果需要,可以在最后的“通知”选项卡上设置作业完成后的通知项,需要设置操作员,以及设置相应的服务,这里也不具体说明了,通常不用……
❽ 数据库中Log文件夹中的文件可以删除吗
不建议删除。
虽然这些文件对系统的运行没有影响,但某些软件在执行卸载时要调用这些文件,如果删除,软件可能无法正常卸载。
❾ SQL数据库log文件怎么用
log文件,也就是日志文件,
把你的系统放到数据库中,你需要附加数据库
操作方式是
用企业管理器,选中数据库
然后所有任务,
选择附加数据库
输入数据库文件的地址,
主文件.mdf
然后附加即可