- 博客(858)
- 资源 (1)
- 收藏
- 关注
原创 字符串有不明字符的定位方法
开发反馈字符串里面有不明字符如何定位,可以将字符串的每个字符转成ascIIselect ASCII(substr(‘abcde’,level,1)),level from dual connect by level <= length(‘abcde’);ASCII(SUBSTR(‘ABCDE’,LEVEL,1)) LEVEL 97 1 98 2
2021-12-15 16:04:10 353
原创 oracle和达梦数据库在索引上的一个区别
Oracle索引是不存储null值的,达梦是存储了Null值,下面来做一个实验。drop table test;create table test(id number primary key,name varchar2(100), age number);insert into test select rownum, 'aaaaaaaaaaa'||rownum, CASE WHEN mod(rownum,10) = 0 THEN null ELSE rownum END from.
2021-07-29 18:07:16 608
原创 Oracle stop key算法
Oracle的stop key是一个很有用的算法,当获取满足条件的数据之后,sql就不往下执行。在实际工作中,我们会有这样的需求,只是判断查询条件是否有满足的数据,并不关心有多少条。下面来做一个例子:drop table test;create table test(id number ,name varchar2(100), age number);insert into test select rownum, 'aaaaaaaaaaa'||rownum, 18 from dual conn..
2021-07-29 10:45:11 656
原创 redis使用不当导致系统的宕机
今天刚收到一个应用tomcat内存溢出,分析dump之后发现单个线程并没有消耗的多的,大概有100个线程,消耗内存在30M-60M之间。 继续分析,发现这些线程在操作redis,set和get 一个key,这个key里面存放的是用户积分的信息,不过这个key比较大,有35M。 从tomcat server日志里面可以看到获取不到数据库连接的错误,数据库连接池配置的是100个连接。 这里要搞清楚为什么有这么多的操作redis的线程,是因为操作redis太慢导致。可能有同学会问,操作red..
2021-07-28 09:23:28 746
原创 心跳检测产生的问题
近期数据库慢,发现会话有1万个,考虑到128个CPU,1万个线程肯定是过载了。1.定位出这1万个会话是从哪里连进来的,查了一下会话IP居然是unknown的,不知道是从哪里发起的。从操作系统层面上,netstat -tpna看tcp连接是从应用服务器连过来的。2.需要定位出应用服务器上哪个程序产生的,netstat -tpna | grep 1111 ,(YY:1111是数据库的IP和端口)有1千多个tcp连接,并没有发现进程。tcp 0 0 XX:56678 YY:1111 FIN_W
2021-07-20 15:52:38 323
原创 expdp导出慢的问题
expdp导出慢,看等待事件是Disk file operations I/O。Disk file operations I/O This event is used to wait for disk file operations (for example, open, close, seek, and resize). It is also used for miscellaneous I/O operations such as block dumps and password file acce
2021-06-19 10:40:43 1076
原创 Oracle12c impdp导入慢的问题
现场反馈数据泵导入超慢,40M的dump,导入花了20分钟。对于Oracle数据库来说,诊断问题对运维问题是比较友好的,通常的思路是看相应会话的等待事件。select s.INST_ID, s.sid, s.SERIAL#, s.EVENT, s.WAIT_CLASSfrom gv$session swhere s.MODULE like ‘%Data Pump%’等待事件是:Streams AQ:enqueue blocked on low memory1.从字面意思上解读是内存不够,可...
2021-06-17 16:25:23 2253
原创 Ora-24067: exceeded maximum number of subscribers for queue
Ora-24067: exceeded maximum number of subscribers for queue sys.schedulereventqueue这种问题是队列满了,找到队列对应的队列表select∗fromdbaqueuesswheres.OWNER=′SYS′;namequeuetableschedulerevent_queue 这种问题是队列满了,找到队列对应的队列表select * from dba_queues s where s.OWNER='SYS' ;name
2021-06-16 16:14:30 579
原创 历史数据转换性能优化的一种方式
一张表几个亿的数据,需要按年份切分,还有转换逻辑,insert all派上用场了。drop table t_source purge;drop table t_target_2019 purge;drop table t_target_2020 purge;drop table t_target_2021 purge;create table t_source (id number, create_time date);create table t_source_detail (id numbe
2021-06-05 18:25:25 150
原创 ES search after样例
from size 默认查超过1万条之后的数据会报错,使用search after是一个不错的选择。#######分页 search afterDELETE usersPOST users/_doc{“id”:1,“name”:“user1”,“age”:10}POST users/_doc{“id”:2,“name”:“user2”,“age”:11}POST users/_doc{“id”:3,“name”:“user3”,“age”:12}POST users/_doc{“id”:
2021-03-26 10:57:15 418
原创 一个奇怪的网络问题
现象:系统虚拟化之后,系统出现一个问题,在有些虚拟机上调用接口1s之内可以完成,在有些虚拟机上需要等待20s才能完成。诊断过程:1.在代码里面打印出接口的每一行代码的耗时,发现在调用远程接口等待了20s。2.在慢的虚拟机上tcpdump抓包发现,接口在四次挥手的时候出现了TCP连接被RST重启,重启之后tcp停顿20s再重新发送请求。3.比对快的虚拟机和慢的虚拟机的网络的参数,发现并没有异常。4.tcp协议的实现在操作系统内核中,不同的网段还有防火墙,接下来朝两个方向验证,一是把快的虚拟机重新克隆
2020-08-14 17:39:04 264
原创 Oracle自动扩展分区+模板技术的运用
create table test(id number ,city VARCHAR2(36),create_time DATE)PARTITION BY RANGE(create_time) INTERVAL (NUMTOYMINTERVAL(1,‘YEAR’)) SUBPARTITION BY LIST(city)SUBPARTITION TEMPLATE(SUBPARTITION p_guangzhou VALUES (‘guan
2020-07-15 16:14:55 393
原创 weblogic节点告警,系统不能访问诊断
1.现场实施同事反馈节点告警,单点访问节点白屏。2.从nohup日志中看到有stuck线程,要现场做了jstack回来。<Jun 23, 2020 11:40:51 PM CST> <[STUCK] ExecuteThread: ‘2’ for queue: ‘weblogic.kernel.Default (self-tuning)’ has been busy for “613” seconds working on the request "weblogic.servlet
2020-06-28 09:17:43 2720 1
原创 commons.beanutils java.lang.NumberFormatException
现象:系统做异地做双活,A地和B地,A地是主,B地为从。B地的代码是从A地copy的。不过在测试B地的系统的时候报错,从chrome浏览器上看到报500的错误。1.分析日志都是这个错误:Caused By: java.lang.NumberFormatExceptionat java.math.BigDecimal.(BigDecimal.java:505)at java.math.BigDecimal.(BigDecimal.java:728)at org.apache.commons.bean
2020-06-22 11:10:50 305
原创 Connection reset by peer: socket write error
现场反馈,有一个导出报错,点导出按钮之后,等待一会之后就报错。1.要现场发回来weblogic日志:Caused by: java.net.SocketException: Connection reset by peer: socket write errorat java.net.SocketOutputStream.socketWrite0(Native Method) ~[na:1.6.0_43]at java.net.SocketOutputStream.socketWrite(Socke
2020-06-17 15:16:09 28426
原创 weblogic 数据库连接报XAResource.XAER_RMFAIL start()
weblogic启动之后,点击功能报:Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: Unexpected exception while enlisting XAConnection java.sql.SQLException: XA error: XAResourc
2020-06-09 08:56:25 1417
原创 PL/SQL连数据库报Ora-12557
电脑从win7升级到win10后,很多配置信息都丢失了,PL/SQL连数据库报Ora-12557,解决方案是:1.下载免安装的oracle客户端,我下载的是OraClient Lite-11g-x86.rar,解压出来。2.配置免安装版的环境变量:NLS_LANG:SIMPLIFIED CHINESE_CHINA.ZHS16GBKORACLE_HOME:F:\OraClientLite\product\11.2.0\client_liteTNS_ADMIN:F:\OraClientLite\pro
2020-06-03 11:32:06 2212
原创 Oracle默认并行度引起数据库挂起
上周六现场数据库运维厂家反馈,有一个实例hang住了,说是两条SQL引起的,操作系统上报too many open files的错误。看了一下数据库报告,主要是gc domain validation,latch: parallel query alloc buffer这两个等待事件。 发现有两条SQL执行很多次,负载占了数据库的一半。分析SQL,使用了Oracle默认的并行度,哪并行度到底是多少呢? 单实例 = PARALLEL_THREADS_PER_CPU x CPU_COUNT ...
2020-06-01 11:38:49 964
原创 tomcat Connection com.mysql.jdbc.JDBC4Connection is closed
开发反馈附件上传报错,附件上传先将附件传到服务器,然后将在数据库中写一条记录。tomcat报错日志:20-05-21 11:41:22,267 org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: null[ERROR] 2020-05-21 11:41:22,267 org.hibernate.util.JDBCExceptionReporter - Connection com.mysql.jdbc.JDBC4Conn
2020-05-21 18:33:41 4178
原创 ORA-28040:没有匹配的验证协议
今天用pl/sql developer连12C的数据库,报这个错误。解决方法如下:1.在数据库服务器上${oracle_home}\network\admin\sqlnet.ora写上:SQLNET.ALLOWED_LOGON_VERSION=82.在数据库服务器上sqlplus / as sysdbaalter user 需要登录的用户名 identified by 密码;...
2020-05-15 10:52:29 4913
原创 JVM崩溃分析
JVM崩溃,原因是触发了JVM代码的bug。一般的解决办法是升级到最新的小版本上。不过有些特殊的场景,是探针agent导致,需要分析hs_err_pid.log中的堆栈信息。server.log:<2020-4-17 下午07时25分21秒 CST> <Started WebLogic Managed Server “GG_APP02_6001” for domain ...
2020-04-20 15:47:10 2849 1
原创 Tomcat Could not open JDBC Connection for transaction
org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is java.sql.SQLTransientConnectionException: Connection is not avai...
2020-04-02 16:14:27 2030
转载 数据仓库、数据湖、数据中台
转自:https://mp.weixin.qq.com/s?src=11×tamp=1585712786&ver=2251&signature=0XE6r3rbsjkFRf6qTlDf31qvSzTYagOPTtd9aRrPX9-ixkWm7cOssF-05lFdVH3Hje6ZxrCRKyf5GPhm8FX954D6sgnWCSAvOfE2vSRNYmgCOwW...
2020-04-01 12:29:54 919
原创 Current transaction is not in progress
系统某些功能点击偶尔报错,用的是某国产中间件,Current transaction is not in progress的意思是会话没有对应的进程了,有两种可能: 1.数据库中的会话被干掉了。 2.事务超时被干掉了。 看功能都是非常简单的功能,不会有超时的问题,会话被干掉了。实施无意中说到之前数据库归档满了,数据库重启了一下,中间件没有重启。dang,就是这个问题,重启一下就好了,说明这...
2020-01-14 17:15:10 1221
原创 ORA-3136 WARNING: inbound connection timed out
最近遇到一个奇怪的事情,每天晚上22点到第二天8点,使用系统经常会报错。数据库是Oracle,三个实例组成的RAC,中间件是weblogic。1.从中间件层面上看,这种错误意识是weblogic连不上数据库后,自动重连都连不上,就会出现这种问题。<2019-10-29 下午10时57分37,679秒 CST> <Received exception while crea...
2019-12-17 19:57:05 837
原创 postgresql JDBC操作数据库
先下载驱动:org.postgresqlpostgresql42.2.6package postgresql;import java.sql.*;public class TestPostreSQL {public static void main(String args[]) throws Exception{//executeSQL(“create table t_demo...
2019-12-09 15:17:50 569 1
原创 中间件数据库连接池不够用
中间件报In-use connections equal max-pool-size and expired max-wait-time. Cannot allocate more connections,说明连接池被用光了。分析jstack,发现很闲啊。推测是瞬间使用连接太多。加大max-pool-size,从100加到200。系统使用一段时间后还是报错。只能分析代码了,发现有循环连数据...
2019-11-27 18:17:11 1059
原创 Tomcat7中打印stuck的线程
在中间件层面,一些非常慢的请求就是性能杀手,weblogic可以很容易的配置超过多少秒打印出线程来,也叫stuck的线程。长期整改这些问题对系统的稳定运行有极大的帮组。修改context.xml文件,加入 org.apache.catalina.valves.StuckThreadDetectionValve。<?xml version='1.0' encoding='utf-8'...
2019-11-20 14:15:01 2404
转载 运维日记| MySQL/Oracle深度解析之一:逻辑读
运维日记| MySQL/Oracle深度解析之一:逻辑读原创: 吕海波 新运维新数据 今天各位新朋友~记得先点蓝字关注我哦~前言THE FIRST比较数据库优劣、异同的文章有很多了,使用压测工具,进行不同压力下的测试,就能大致上比较出来哪种数据库是“最快”的数据库。但从有经验的数据架构、DBA等专业人士角度,仅仅“最快”是不够的,数据库是十分复杂的体系,要考虑方方面面的问题。本文从...
2019-11-19 10:12:01 447
原创 MySQL5.6.35的bug
有一个系统,当在应用层面开启Job的时候,数据库就会宕机,Job里面是往一个表里面插入一些数据。错误日志如下: 2019-11-11 15:56:26 114028 [Note] /home/mysql/bin/mysqld: ready for connections.Version: ‘5.6.35-log’ socket: ‘/tmp/mysql.sock’ port: 33...
2019-11-12 18:00:11 649
原创 ORA-12152:TNS:无法发送中断消息
现场报dblink查询的问题,时好时坏:###Cause: org.hibernate.exception.GenericJDBCException: ORA-12152:TNS:无法发送中断消息ORA-02063:紧接着line(起自TARGET_MLJHXT)从metalink可以查到:Doc ID 1942951.1解决方案:Replace the client faulty eth...
2019-11-12 17:53:07 6990
原创 Oracle递归死循环怎么办?
drop table test1 purge;create table test1(id number, parent_id number,name varchar2(10));insert into test1 values(1,2,’’);insert into test1 values(2,1,’’);insert into test1 values(3,2,’’);commit;...
2019-11-12 16:05:24 2744
原创 不明真相的http code 497
刚开发找到我,反馈现场大量流程无法发送,说是锁的问题。我问:发送之后是一直在等待,还是马上会返回错误。得到答复:会马上报错。原本这种错误看下后台日志,不过节点过多,无法定位到是哪个节点,最快的方式是用chrome看看返回,捕获的请求headers如下:Request URL: http://11.15.22.1/web/gg/project/common/ggpmsOperateActio...
2019-11-06 11:00:19 7312
原创 系统从Tomcat迁移到Weblogic无法发布
有一个系统从开发环境部署到正式环境,开发环境用的是tomcat,正式环境用的是weblogic。部署一直不成功,启动失败。首先会报这个警告: <The list of resource packages: gg.soa.org.apache.cxf.jaxrs.provider;org.apache.cxf.jaxrs.provider.atom;gg.soa.org.apache...
2019-11-06 10:37:19 2136 6
原创 chrome+wireshark诊断网络问题
最近碰到一件棘手的事情,系统会莫名其妙的变慢,没有规律。 做第一次诊断:中间件日志,gc日志,httpwatch,Oracle数据库报告,服务器nmon日志,逐一检查,均无性能瓶颈。 做第二次诊断:慢的情况不是必现,多次httpwatch的结果发现,每次都是18.9s左右,有时候是红色的等待多(服务处理请求的等待),有时候是白色的等待多(浏览器发送给服务端的等待)。光看httpwatch,无...
2019-10-14 14:52:16 444
原创 Oracle11.2.0.4查询表一直卡住cursor:pin s on x
现场反馈:查询一张几千条数据的表,一直卡住,然后重启了数据库,还是这样。1.获取了数据库报告,发现排在第一位的是cursor:pin s on x等待事件。Top 10 Foreground Events by Total Wait TimeEvent Waits Total Wait Time (sec) Wait Avg(ms) % DB time Wait Classcursor: ...
2019-09-29 10:17:02 1166
转载 数据库的江湖情仇:事务篇
2015年左右,因为工作需要用MongoDB、CouchBase这两种文档型数据库,时不时到这两个数据库官网上查资料、报BUG。时常可以在MongoDB官网上看到这样一些新闻,“某某企业成功将MySQL替换成MongoDB,性能大幅提升”,“某某公司将Oracle替换成MongoDB,节约成本若干”……而在CouchBase官网上,又会时不时看到这样的新闻:“A公司将MongoDB替换成Couc...
2019-08-23 10:53:29 261
原创 Elasticsearch7.3.0导入测试数据
下载最MovieLens最小测试数据集:https://grouplens.org/datasets/movielens/Logstash下载:https://www.elastic.co/cn/downloads/logstashLogstash参考文档:https://www.elastic.co/guide/en/logstash/current/index.html配置logstas...
2019-08-09 14:56:28 1907
原创 ORA-12547:TNS:丢失连接
用sqlplus连接远程的数据库(不是同一网段),报ORA-12547:TNS:丢失连接。查看数据库的监听日志,发现错误:Thu Apr 18 18:30:23 201918-APR-2019 18:30:23 * * (ADDRESS=(PROTOCOL=tcp)(HOST=111.25.129.234)(PORT=11236)) * establish * * 12525TNS-12...
2019-04-19 09:25:18 8692
原创 Caused by: java.sql.SQLException: ORA-12543: TNS: 无法连接目标主机
中间件日志报执行一条很简单的SQL报错,在中间件的机器上telnet数据库服务器都是通的,最后诊断是高级复制导致的,备机关闭了。update gg_deploye_file set content=?, sync_sign=?, att_syn_flag=?,modify_date=systimestamp where deploye_id=?Caused by: java.sql.SQLEx...
2019-04-16 17:54:44 4430 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人