在ORACLE数据库的管理.维护过程中,偶尔会遇到归档日志暴增的情况,也就是说一些SQL语句产生了大量的redo log,那么如何跟踪.定位哪些SQL语句生成了大量的redo log日志呢? 下面这篇文章结合实际案例和官方文档"How to identify the causes of High Redo Generation (文档 ID 2265722.1)"来实验验证一下. 首先,我们需要定位.判断那个时间段的日志突然暴增了,注意,有些时间段生成了大量的redo log是正常业务…
MySQL如何定位慢sql MySQL"慢SQL"定位 数据库调优我个人觉得必须要明白两件事 1.定位问题(你得知道问题出在哪里,要不然从哪里调优呢) 2.解决问题(这个没有基本的方法来处理,因为不同的问题处理的方式方法不一样,得从实践中不断的探索,如sql调优,配置优化,硬件升级等等) 步骤1:查询是否开启了慢查询 mysql> show variables like '%slow%'; +---------------------------+----------------…
第一步: Use  数据库名 Select NAME,size From sys.database_files 将“数据库名”改为需要清除日志的数据库名字,点击“执行”查询出需要清除的日志名称:**_Log 第二步: Use  数据库名 Select NAME,size From sys.database_files  ALTER DATABASE  数据库名 SET RECOVERY SIMPLE WITH NO_WAITALTER DATABASE 数据库名 SET RECOVERY SIM…
原文:2. SQL Server数据库状态监控 - 错误日志 无论是操作系统 (Unix 或者Windows),还是应用程序 (Web 服务,数据库系统等等) ,通常都有自身的日志机制,以便故障时追溯现场及原因.Windows Event Log和 SQL Server Error Log就是这样的日志, PS: SQL Server 中的错误日志 (Error Log) 类似于 Oracle中的alert 文件. 一. 错误日志简介 1. Windows事件日志与SQL Server 错误日志…
适用于SQL Server 2005的方法 Backup Log DNName WITH no_log GO DUMP TRANSACTION DNName WITH no_log GO USE DNName ) GO 说明:由于SQL Server 2008对文件和日志管理进行了优化,所以以上语句在SQL2005中可以运行但在SQL2008中已经被取消. 适用于SQL Server 2008的方法 USE [master] GO ALTER DATABASE DNName SET RECOVE…
sql服务器第5级事务日志管理的阶梯:完全恢复模式下的日志管理 原文链接http://www.sqlservercentral.com/articles/Stairway+Series/73785/ 作者 Tony Davis, 2012/01/27   系列 本文是阶梯系列的一部分:sql服务器中事务日志管理的楼梯   当事情进展顺利时,没有必要特别注意事务日志的工作或工作方式.你只需要确信每个数据库都有正确的备份系统.当出现问题时,对事务日志的理解对于采取纠正行动非常重要,特别是当需要立即对…
1. 获取需要的binlog 日志: [root@zjzc01 binlog]# mysqlbinlog --start-datetime='2016-08-01 00:00:00' --stop-datetime='2016-08-11 12:00:00' mysql-bin.00006* >a.txt 2.获取对应行的记录 匹配 update ProductAccess [root@zjzc01 binlog]# cat get_num.pl open (A,"<",&…
最近在做一个大型项目,由于数据设计采用离散型数据库设计,以方便需求变更及用户自定义流程要素,因为要素用户自定义,数据完整性靠代码约束变得不太现实,只能依靠表间关系来约束,结果因此导致数据的操作经常产生X(排它)锁,严重影响数据性能. 对于一时没有更好解决方法的数据库死锁最直接的解决办法是杀死生成死锁的数据库进程. 如果有死锁产生,下面的代码运行后可以看到大量死锁信息在同一进程(SPID)上,可以根据情况杀死(Kill)某进程. select p.spid ,p.[dbid] ,db_name(p…
SELECT id,lng,lat,ROUND(6378.138*2*ASIN(SQRT(POW(SIN((lat1*PI()/180-lat*PI()/180)/2),2)+COS(lat1*PI()/180)*COS(lat*PI()/180)*POW(SIN((lng1*PI()/180-lng*PI()/180)/2),2)))*1000)AS juliFROM address having juli > 500ORDER BY juli AscLIMIT 100lng1为自定义的经度l…
1.1  日志文件与数据文件一致性 在上一章备份与恢复里了解到事务日志的重要性,这篇重点来了解事务日志. 事务日志记录了数据库所有的改变,能恢复该数据库到改变之前的任意状态.在sql server实例每次启动时都会去检查数据文件与日志文件的一致性. 包括日志记录的任何已提交的数据必须体现在数据文件上,未被标记为已提交的将禁止写入数据文件,日志还存储了收到客户端回滚事务请求,sqlserver出错如死锁等,日志产生一个rollback命令. 事务日志是在数据库创建或改变时与数据库关联起来的一个或多…
通过文章 SQL Server中“数据收缩”详解 和 SQLServer删除log文件和清空日志的方法 可以整理出一种快速删除数据库日志的方法,即 第一步:清空日志文件里的数据: 第二步:收缩日志文件. 简单执行如下命令: DUMP TRANSACTION 数据库名 WITH NO_LOG; DBCC ShrinkFile(‘数据库名_log’, 1); 相关阅读:SQL Server 2008 R2:快速清除日志文件的方法…
本篇文章是SQL Server代理系列的第五篇,详细内容请参考原文. 正如这一系列的前几篇所述,SQL Server代理作业是由一系列的作业步骤组成,每个步骤由一个独立的类型去执行.在第四篇中我们看到,SQL Server代理可以通过数据库邮件发送通知.如果有什么不正确的,你必须查看数据库邮件日志.在这一篇,你将学习如何理解和查看所有相关的SQL Server代理错误日志.你将回顾最常见的错误信息,掌握哪些信息需要你采取行动,哪些信息只是单纯的信息而已.一旦你理解错误日志,在处理SQL Serv…
sql2008不再支持 BACKUP LOG 数据库名 WITH NO_LOG   语句 BACKUP Log zxta with no_log 截断事务日志 sql2008 提示错误如下 BACKUP LOG 数据库名 WITH NO_LOG Msg 3032, Level 16, State 2, Line 1此语句不支持一个或多个选项(no_log).请查阅文档以了解所支持的选项. 事务日志截断 若要避免数据库的事务日志被填满,例行备份至关重要.在简单恢复模式下,备份了数据库后会自动截断日…
一, 数据库复制 SQL Server 2008数据库复制是通过发布/订阅的机制进行多台服务器之间的数据同步,我们把它用于数据库的同步备份.这里的同步备份指的是备份服务器与主服务器进行 实时数据同步,正常情况下只使用主数据库服务器,备份服务器只在主服务器出现故障时投入使用.它是一种优于文件备份的数据库备份解决方案. SQL Server的复制分为种: 1. 快照发布: 发布服务器按预定的时间间隔向订阅服务器发送已发布数据的快照.每隔一段时间将订阅数据库中的相应表中的数据全部删除,然后将自己相应表…
本篇文章是SQL Server代理系列的第五篇,详细内容请参考原文. 正如这一系列的前几篇所述,SQL Server代理作业是由一系列的作业步骤组成,每个步骤由一个独立的类型去执行.在第四篇中我们看到,SQL Server代理可以通过数据库邮件发送通知.如果有什么不正确的,你必须查看数据库邮件日志.在这一篇,你将学习如何理解和查看所有相关的SQL Server代理错误日志.你将回顾最常见的错误信息,掌握哪些信息需要你采取行动,哪些信息只是单纯的信息而已.一旦你理解错误日志,在处理SQL Serv…
网站的一个数据库的日志文件已经到150个G的地步,数据文件才几十M,通过常规的操作去收缩日志: >数据库右键 → 任务 → 收缩 → 文件 , 在弹出的窗口中,文件类型选择"日志",收缩选项选择第二个,填一个小的数字 执行很快完成,但是日志文件大小并没有改变. 完成收缩有两种方式: * 分离数据库,删除日志文件,然后再附加数据库 * 修改数据库的恢复模式为**简单**,然后再重复最初的收缩数据库操作(因为事务并未截断,所以完整模式下收缩的大小有限),完成后再吧恢复模式改为**完整…
一,druid数据库连接池的功能? 1,Druid是阿里巴巴开发的号称为监控而生的数据库连接池 它的优点包括: 可以监控数据库访问性能 SQL执行日志 SQL防火墙 2,druid的官方站: https://github.com/alibaba/druid/ 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest 对应的源码可以访问这里获取: https://github.com/liuhongdi/ 说明:作者:刘宏缔…
USE [master] GO ALTER DATABASE [数据库名] SET RECOVERY SIMPLE WITH NO_WAIT GO ALTER DATABASE [数据库名] SET RECOVERY SIMPLE GO USE [数据库名] GO DBCC SHRINKFILE (N'[数据库日志文件名称]' , 0,TRUNCATEONLY) GO USE [master] GO ALTER DATABASE [数据库名] SET RECOVERY FULL WITH NO_…
1 功能描述 本方案采用日志传送模式,把核心数据库(主数据库)定期同步到灾备数据库(辅助服务器)及备份库(辅助服务器,便于其他系统使用,减轻主数据压力),期间,如果发生异常导致无法同步,将以电子邮件.短信方式通知管理人员. 2 系统环境 2.1硬件 主数据库: SQLHA 灾备库服务器:DisaterDBSVRA 备份库服务器:BackupDataSVR 2.2软件 主数据库: Win2008 x64 SQL2005 SP4 x64 灾备库: Win2008 x64 SQL2005 SP4 x6…
  查询慢查询相关参数   show variables like '%quer%';   slow_query_log(是否记录慢查询)   slow_query_log_file(慢日志文件路径)   long_query_time(超过设定的时间才会记日志)     开启慢查询日志   (Linux) 在/etc/my.cnf 配置文件的[mysqld]选项下增加    slow_query_log=TRUE  slow_query_log_file=/usr/local/mysql/sl…
1.配置如图 文件为yml mybatis: mapper-locations: classpath:com/springboot/transaction/mapper/*.xml configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl 打印效果:…
SQL2008 SQL2012 SQL2014 的收缩日志 由于SQL2008对文件和日志管理进行了优化,所以以下语句在SQL2005中可以运行但在SQL2008中已经被取消:(SQL2005)BackupLog DNName with no_loggodumptransaction DNName with no_loggoUSE DNName DBCC SHRINKFILE (2)Go-------------------------------------------------------…
USE [master] ALTER DATABASE [Whir_InternalSystem] SET RECOVERY SIMPLE WITH NO_WAIT ALTER DATABASE [Whir_InternalSystem] SET RECOVERY SIMPLE GO USE [Whir_InternalSystem] DECLARE @logname VARCHAR(150) SELECT @logname = NAME FROM sys.database_files WHER…
有时候,你会在ORACLE数据库的告警日志中发现"Thread <number> cannot allocate new log, sequence <number>  Checkpoint not complete"这类告警.具体案例如下所示: Thread 1 cannot allocate new log, sequence 279334 Checkpoint not complete Current log# 4 seq# 279333 mem# 0:…
性能视图V$开头 V$SYSTEM_EVENT 正在等待的资源的系统信息 V$SESSION_EVENT 会话累计发生的等待事件 V$SESSION_WAIT 会话正在等待或者曾经等待的详细时间信息 V$SESSION 正在等待或者曾经等待的会话信息   V$METRICNAME 查看高速缓存命中率   Oracle数据库IO规划原则: 1 利用磁盘分段技术将IO分散在多个轴中进行 2 利用表空间直接隔离和定位各种类型的IO 3 将redo日志及其镜像放置在两个最不忙的设备上 4 将系统开销均匀…
自Oracle 11g起,无需设置UTL_FILE_DIR就可以使用LOGMNR对本地数据库的日志进行分析,以下是使用LOGMNR的DICT_FROM_ONLINE_CATALOG分析REDO和归档日志的步骤 分析REDO日志的实验 创建测试表,并做DML操作. SQL> create table t_test(id number,name varchar2(15)); Table created. SQL> insert into t_test values(1,'stream'); 1 r…
1.Oracle log 每次切换会记录到告警日志中 设想写个方案来查看log切换频率来判断Oracle log是否应该更改大小. 2.sql a.查看redo日志信息 select * from v$log b.查看日志切换频率 )*,) and b.THREAD#= order by a.SEQUENCE# desc; 或者 )*,) diff ) order by sequence# desc;…
通过show status命令了解各种SQL的执行频率 MySQL客户端连接成功后,通过使用show [session|global] status 命令可以提供服务器状态信息: 其中的session来表示当前的连接的统计结果,global来表示自数据库启动至今的统计结果,默认是session级别的. show status 常用命令: show status like 'com_%'; 其中com_xxx表示xxx语句所执行的次数: 重点注意com_select, com_insert, co…
前阵子遇到一个很是棘手的问题,监控系统DPA发现某个自定义标量函数被调用的次数非常高,高到一个离谱的程度.然后在Troubleshooting这个问题的时候,确实遇到了一些问题让我很是纠结,下文是解决问题过程的一点思索和尝试,如果你有更好的思路和解决方法,也请多多指教. DPA可以监控到该函数每小时被调用的次数,如下截图所示: 那么第一个问题来了. DPA如何监控获取这个函数每小时执行多少次呢? 其实这个很简单, sys.dm_exec_query_stats视图里面有个字段execution_…
MySQL"慢SQL"定位 数据库调优我个人觉得必须要明白两件事 1.定位问题(你得知道问题出在哪里,要不然从哪里调优呢) 2.解决问题(这个没有基本的方法来处理,因为不同的问题处理的方式方法不一样, 得从实践中不断的探索,如sql调优,配置优化,硬件升级等等) 这一篇文章将会教会你如何来定位一个慢查询的sql,如果你是一个初学者,很想知道在mysql 中如何来定位哪些sql语句是花时间最长的. 步骤1:查询是否开启了慢查询 show variables like '%slow%';…