一次诡异的linux系统重启故障

2023-11-04

情况描述:
同事反应说oracle数据库在周末的时候宕了,排查下问题.
登到服务器上发现,oracle进程已经不存在,然后ps看了下监听进程,发现也不存在,这时候就怀疑是操作系统重启了.

操作系统版本信息:
[root@card-paopi log]# uname -a
Linux card-paopi 2.6.32-220.el6.x86_64 #1 SMP Wed Nov 9 08:03:13 EST 2011 x86_64 x86_64 x86_64 GNU/Linux
[oracle@card-paopi bdump]$ cat /proc/version
Linux version 2.6.32-220.el6.x86_64 (mockbuild@x86-004.build.bos.redhat.com) (gcc version 4.4.5 20110214 (Red Hat 4.4.5-6) (GCC) ) #1 SMP Wed Nov 9 08:03:13 EST 2011
[oracle@card-paopi bdump]$ cat /etc/issue
Red Hat Enterprise Linux Server release 6.2 (Santiago)

oracle版本:
Release 10.2.0.4.0 - Production

下面就出现让我无法理解的情况了:
使用uptime命令,输出如下:
[oracle@card-paopi bdump]$ uptime
 10:12:15 up 1 day, 49 min,  4 users,  load average: 0.13, 0.19, 0.18

可见,服务器运行了1天49分钟

然后使用 last reboot命令,输出如下:
[root@card-paopi log]# last reboot
reboot   system boot  2.6.32-220.el6.x Sun Jan 15 01:03 - 10:13 (1+09:09)   
reboot   system boot  2.6.32-220.el6.x Tue Feb  2 01:47 - 10:13 (349+08:25) 
reboot   system boot  2.6.32-220.el6.x Thu Sep 25 06:38 - 10:13 (844+03:34) 
reboot   system boot  2.6.32-220.el6.x Thu Sep 11 16:16 - 10:13 (857+17:57) 
reboot   system boot  2.6.32-220.el6.x Thu Sep 11 16:08 - 10:13 (857+18:05) 
reboot   system boot  2.6.32-220.el6.x Thu Sep 11 13:42 - 10:13 (857+20:31) 
reboot   system boot  2.6.32-220.el6.x Wed Sep 10 16:45 - 13:41  (20:56)    
reboot   system boot  2.6.32-220.el6.x Wed Sep 10 16:16 - 16:45  (00:28)    
reboot   system boot  2.6.32-220.el6.x Wed Sep 10 16:05 - 16:45  (00:39)    
reboot   system boot  2.6.32-220.el6.x Wed Sep 10 15:52 - 16:45  (00:52)    
reboot   system boot  2.6.32-220.el6.x Wed Sep 10 15:45 - 15:50  (00:05)    

wtmp begins Wed Sep 10 15:45:41 2014

可以看到,最近的reboot是15号晚上1点多重启的,重启至今是1天9小时9分钟.....

然后我看了下oracle 监听的日志,listener.log:
15-JAN-2017 09:00:36 * service_update * orcl * 0
15-JAN-2017 09:10:37 * service_update * orcl * 0
15-JAN-2017 09:12:08 * (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)(CID=(PROGRAM=batchMain)(HOST=card-paopi)(USER=cardbt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=32.113.55.100)(
PORT=32467)) * establish * orcl * 0
15-JAN-2017 09:12:10 * (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)(CID=(PROGRAM=batchMain)(HOST=card-paopi)(USER=cardbt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=32.113.55.100)(
PORT=32468)) * establish * orcl * 0
15-JAN-2017 09:14:49 * (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)(CID=(PROGRAM=batchMain)(HOST=card-paopi)(USER=cardbt))) * (ADDRESS=(PROTOCOL=tcp)(HOST=32.113.55.100)(
PORT=32485)) * establish * orcl * 0
TNSLSNR for Linux: Version 10.2.0.4.0 - Production on 16-JAN-2017 08:30:59
Copyright (c) 1991, 2007, Oracle.  All rights reserved.
System parameter file is /u01/oracle/product/10.2.0/db_1/network/admin/listener.ora
Log messages written to /u01/oracle/product/10.2.0/db_1/network/log/listener.log
Trace information written to /u01/oracle/product/10.2.0/db_1/network/trace/listener.trc
Trace level is currently 0
Started with pid=6319
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=card-paopi)(PORT=1521)))
Listener completed notification to CRS on start

TIMESTAMP * CONNECT DATA [* PROTOCOL INFO] * EVENT [* SID] * RETURN CODE
WARNING: Subscription for node down event still pending
16-JAN-2017 08:30:59 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=card-paopi)(USER=oracle))(COMMAND=status)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=169870336)) * status * 0

可以看到,监听日志是在15号9点14分以后就没有记录了,符合uptime看到的时间.

看了下awr的时间:
Instance     DB Name        Snap Id    Snap Started    Level
------------ ------------ --------- ------------------ -----
orcl         ORCL             19545 15 Jan 2017 00:00      1
                              19546 15 Jan 2017 01:00      1
                              19547 15 Jan 2017 02:00      1
                              19548 15 Jan 2017 03:00      1
                              19549 15 Jan 2017 04:00      1
                              19550 15 Jan 2017 05:00      1
                              19551 15 Jan 2017 06:00      1
                              19552 15 Jan 2017 07:00      1
                              19553 15 Jan 2017 08:00      1
                              19554 15 Jan 2017 09:00      1


                              19555 16 Jan 2017 08:42      1
                              19556 16 Jan 2017 10:00      1
可以看到,awr也是在15号9点以后出现了中断.

再看oracle alert日志里面的信息:
Sun Jan 15 05:03:14 2017
Thread 1 cannot allocate new log, sequence 34007
Checkpoint not complete
  Current log# 1 seq# 34006 mem# 0: /u01/oracle/oradata/orcl/redo01.log
Sun Jan 15 05:03:16 2017
Thread 1 advanced to log sequence 34007 (LGWR switch)
  Current log# 2 seq# 34007 mem# 0: /u01/oracle/oradata/orcl/redo02.log
Mon Jan 16 08:31:08 2017

可以看到,在15号五点以后就没有任何日志输出了.由于该库正常情况下比较空闲,所以5点以后没用redo切换是正常情况.
但没有抛出任何错误,oracle就停掉了.说明oracle是意外中止的.

通过上述listener.log,awr情况,alert日志情况,可以推断出,oracle数据库是在1月15号9点14分之后被意外中止了.,这个时间点也符合uptime 所看到的服务器运行时间.
但是,却与last reboot所看到的时间冲突.
我只好认为是last reboot命令显示的信息有误.
于是我希望在操作系统日志中寻找到蛛丝马迹:
查看/var/log/messages
Jan 15 01:03:41 card-paopi kernel: Initializing cgroup subsys cpuset
Jan 15 01:03:41 card-paopi kernel: Initializing cgroup subsys cpu
Jan 15 01:03:41 card-paopi kernel: Linux version 2.6.32-220.el6.x86_64 (mockbuild@x86-004.build.bos.redhat.com) (gcc version 4.4.5 20110214 (Red Hat 4.4.5-6) (GCC) ) #1 SMP Wed 
Nov 9 08:03:13 EST 2011
Jan 15 01:03:41 card-paopi kernel: Command line: ro root=/dev/mapper/vg_cardpaopi-LogVol00 rd_LVM_LV=vg_cardpaopi/LogVol00 LANG=en_US.UTF-8 rd_NO_MD quiet SYSFONT=latarcyrheb-su
n16 rhgb crashkernel=128M rd_NO_LUKS  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM
Jan 15 01:03:41 card-paopi kernel: KERNEL supported cpus:
Jan 15 01:03:41 card-paopi kernel:  Intel GenuineIntel
Jan 15 01:03:41 card-paopi kernel:  AMD AuthenticAMD
Jan 15 01:03:41 card-paopi kernel:  Centaur CentaurHauls
Jan 15 01:03:41 card-paopi kernel: Disabled fast string operations
Jan 15 01:03:41 card-paopi kernel: BIOS-provided physical RAM map:
Jan 15 01:03:41 card-paopi kernel: BIOS-e820: 0000000000000000 - 000000000009f800 (usable)
Jan 15 01:03:41 card-paopi kernel: BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
Jan 15 01:03:41 card-paopi kernel: BIOS-e820: 00000000000dc000 - 0000000000100000 (reserved)
Jan 15 01:03:41 card-paopi kernel: BIOS-e820: 0000000000100000 - 00000000bfef0000 (usable)
Jan 15 01:03:41 card-paopi kernel: BIOS-e820: 00000000bfef0000 - 00000000bfeff000 (ACPI data)
Jan 15 01:03:41 card-paopi kernel: BIOS-e820: 00000000bfeff000 - 00000000bff00000 (ACPI NVS)
Jan 15 01:03:41 card-paopi kernel: BIOS-e820: 00000000bff00000 - 00000000c0000000 (usable)
Jan 15 01:03:41 card-paopi kernel: BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
Jan 15 01:03:41 card-paopi kernel: BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
Jan 15 01:03:41 card-paopi kernel: BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
Jan 15 01:03:41 card-paopi kernel: BIOS-e820: 00000000fffe0000 - 0000000100000000 (reserved)
Jan 15 01:03:41 card-paopi kernel: BIOS-e820: 0000000100000000 - 0000000140000000 (usable)
Jan 15 01:03:41 card-paopi kernel: DMI present.
Jan 15 01:03:41 card-paopi kernel: SMBIOS version 2.4 @ 0xF68F0
Jan 15 01:03:41 card-paopi kernel: Phoenix BIOS detected: BIOS may corrupt low RAM, working around it.

在15号1点3分左右,确实出现了服务器重启的情况,符合last reboot看到的时间点.
紧接着,我查看15号9点14分左右是否有日志信息:
Jan 15 01:04:17 card-paopi abrtd: Email was sent to: root@localhost
Jan 15 01:04:18 card-paopi abrtd: DUP_OF_DIR: /var/spool/abrt/ccpp-2014-09-11-08:38:41-16883
Jan 15 01:04:18 card-paopi abrtd: Dump directory is a duplicate of /var/spool/abrt/ccpp-2014-09-11-08:38:41-16883
Jan 15 01:04:18 card-paopi abrtd: Deleting dump directory ccpp-2017-01-15-01:03:57-2270 (dup of ccpp-2014-09-11-08:38:41-16883), sending dbus signal
Jan 15 05:00:02 card-paopi kernel: dataInsert[2964]: segfault at 88 ip 00007f3fe6764777 sp 00007fff8425c290 error 4 in libclntsh.so.10.1[7f3fe6435000+1230000]
Jan 15 05:00:02 card-paopi abrt[2965]: saved core dump of pid 2964 (/home/cardbt/bin/dataInsert) to /var/spool/abrt/ccpp-2017-01-15-05:00:02-2964.new/coredump (24805376 bytes)
Jan 15 05:00:02 card-paopi abrtd: Directory 'ccpp-2017-01-15-05:00:02-2964' creation detected
Jan 15 05:00:02 card-paopi abrtd: Executable '/home/cardbt/bin/dataInsert' doesn't belong to any package
Jan 15 05:00:02 card-paopi abrtd: Corrupted or bad dump /var/spool/abrt/ccpp-2017-01-15-05:00:02-2964 (res:2), deleting
Jan 15 05:00:03 card-paopi kernel: dataProcess[2971]: segfault at 88 ip 00007f8cd739f777 sp 00007fffae483a60 error 4 in libclntsh.so.10.1[7f8cd7070000+1230000]
Jan 15 05:00:03 card-paopi abrt[2972]: saved core dump of pid 2971 (/home/cardbt/bin/dataProcess) to /var/spool/abrt/ccpp-2017-01-15-05:00:03-2971.new/coredump (24805376 bytes)
Jan 15 05:00:03 card-paopi abrtd: Directory 'ccpp-2017-01-15-05:00:03-2971' creation detected
Jan 15 05:00:03 card-paopi abrtd: Executable '/home/cardbt/bin/dataProcess' doesn't belong to any package
Jan 15 05:00:03 card-paopi abrtd: Corrupted or bad dump /var/spool/abrt/ccpp-2017-01-15-05:00:03-2971 (res:2), deleting
Jan 15 23:59:01 card-paopi kernel: daySwitch[4414]: segfault at 88 ip 00007fc3947ab777 sp 00007fff49046430 error 4 in libclntsh.so.10.1[7fc39447c000+1230000]
Jan 15 23:59:01 card-paopi abrt[4415]: saved core dump of pid 4414 (/home/cardbt/bin/daySwitch) to /var/spool/abrt/ccpp-2017-01-15-23:59:01-4414.new/coredump (24764416 bytes)
Jan 15 23:59:01 card-paopi abrtd: Directory 'ccpp-2017-01-15-23:59:01-4414' creation detected
Jan 15 23:59:01 card-paopi abrtd: Executable '/home/cardbt/bin/daySwitch' doesn't belong to any package
Jan 15 23:59:01 card-paopi abrtd: Corrupted or bad dump /var/spool/abrt/ccpp-2017-01-15-23:59:01-4414 (res:2), deleting
Jan 16 00:05:01 card-paopi kernel: annualFee[4460]: segfault at 88 ip 00007f7c0cdd6777 sp 00007fff5fcb2eb0 error 4 in libclntsh.so.10.1[7f7c0caa7000+1230000]
Jan 16 00:05:02 card-paopi abrt[4461]: saved core dump of pid 4460 (/home/cardbt/bin/annualFee) to /var/spool/abrt/ccpp-2017-01-16-00:05:01-4460.new/coredump (24801280 bytes)
Jan 16 00:05:02 card-paopi abrtd: Directory 'ccpp-2017-01-16-00:05:01-4460' creation detected
Jan 16 00:05:02 card-paopi abrtd: Executable '/home/cardbt/bin/annualFee' doesn't belong to any package
Jan 16 00:05:02 card-paopi abrtd: Corrupted or bad dump /var/spool/abrt/ccpp-2017-01-16-00:05:01-4460 (res:2), deleting
Jan 16 03:24:02 card-paopi pcscd: winscard.c:309:SCardConnect() Reader E-Gate 0 0 Not Found

然后发现,15号那天,根本没有任何9点时间段的日志信息.

又看了下boot.log的生成时间信息:
[root@card-paopi log]# ls -l boot.log 
-rw-r--r-- 2 root root 2822  1? 15 01:03 boot.log

依然是15号1点零3分生成的,也就是说,根本没有9点中服务器重启所产生的信息!
----------------------------------------------------------------------------------------------------------------------------------
总述:
uptime命令,和oracle中awr,alert日志,listener.ora日志都可以看出,操作系统应该是在15号9点14分左右重启的
但last reboot命令,和messages日志中的信息,boot.log产生日期,却看不到9点时间段出现系统重启的情况.

我只好怀疑是redhat 6.2上面的bug了.
----------------------------------------------------------------------------------------------------------------------------------
接着:
我用top命令看了下服务器负载情况:
Tasks: 228 total,   4 running, 224 sleeping,   0 stopped,   0 zombie
Cpu(s): 23.8%us,  7.3%sy,  0.0%ni, 68.7%id,  0.1%wa,  0.0%hi,  0.1%si,  0.0%st
Mem:   3925936k total,  2196992k used,  1728944k free,    20468k buffers
Swap:  4095992k total,        0k used,  4095992k free,  1518040k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                             
 1577 dbus      20   0 22500 2068  824 S 29.7  0.1  31:32.00 dbus-daemon                                                                                                         
 7050 root      20   0 40680 2724 2140 S 21.5  0.1  21:47.95 udisks-daemon                                                                                                       
 6908 query     20   0 21964 1424  628 R  8.3  0.0   9:00.05 dbus-daemon                                                                                                         
 6899 query     20   0  244m 6864 5388 S  2.3  0.2   2:02.74 gnome-session                                                                                                       
 7059 query     20   0  288m  10m 7700 S  1.7  0.3   1:49.54 gpk-update-icon                                                                                                     
13933 query     20   0  142m 3244 2672 R  1.7  0.1   0:00.05 gvfs-gdu-volume                                                                                                     
 6989 query     20   0  288m 8232 6208 S  1.3  0.2   1:15.42 seahorse-daemon                                                                                                     
 7039 query     20   0  296m  10m 8048 S  1.3  0.3   1:25.16 nm-applet                                                                                                           
 7064 query     20   0  289m 9908 7492 S  1.3  0.3   1:19.41 gnome-power-man                                                                                                     
 2212 root      20   0 45140 2568 2044 S  1.0  0.1   0:21.85 devkit-power-da                                                                                                     
 7018 query     20   0  458m 133m  10m S  1.0  3.5   1:04.64 gnome-panel                                                                                                         
 7022 query     20   0  440m  35m  10m S  1.0  0.9   0:52.65 nautilus                                                                                                            
 7071 query     20   0  257m 8880 6648 S  1.0  0.2   0:51.28 rhsm-icon                                                                                                           
12359 oracle    20   0 15224 1356  964 R  1.0  0.0   0:00.81 top                  

发现dbus-daemon  和 udisks-daemon  一直占据着较高的cpu,在生产环境中找了一台同是redhat 6.2的服务器,发现没有该问题.
百度下,发现网上有类似问题,是由于为了更好的支持中文,将LANG="zh_CN.UTF-8"改成了 LANG="zh_CN.GBK"                                                                                                                                                                                           
我看下本机的LANG情况:
[root@card-paopi log]# echo $LANG
zh_CN.GB18030
应该是这个问题.
但在网上并未看到该问题会导致服务器异常重启的案例.
-------------------------------------------------------------------------------------------------------------------------------------
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一次诡异的linux系统重启故障 的相关文章

  • Centos7下基于jdk11 安装RocketMQ

    1 简介 RocketMQ是阿里巴巴中间件团队自研的一款高性能 高吞吐量 低延迟 高可用 高可靠 具备金融级稳定性 的分布式消息中间件 开源后并于2016年捐赠给Apache社区孵化 目前已经成为了 Apache顶级项目 当前在国内被广泛的
  • 用html+js实现代码背景墙特效【建议收藏】

    在csdn里面 有些博主的主页非常的帅 就是代码从上往下掉的特效 那么这种效果我们作为程序员该如何去写出来呢 不用担心 这篇博客就分享如何创建一个代码背景墙 1 效果展示 2 代码分享
  • java.io.FileNotFoundException: http://www.xxxxx.net:8080/test/test/ 403错误

    POST请求错误内容 java io FileNotFoundException http www xxxxx net 8080 test test at libcore net http HttpURLConnectionImpl get
  • python 中的六种“复制”方法

    以列表为例 方法一 直接变量赋值 将 li 赋值给变量 li1 打印他们的id会发现 他们的id是一样的 即是 li 和 li1 这两个变量在python中是同一个内存地址 对他们任何一个变量进行修改 另外一个会跟着变化 li 1 2 3
  • arm体系结构概述和编程模型

    1 arm体系结构的版本 1 arm1 6 2 arm体系的变种 1 T 系列 Thumb指令集 可以支持Thumb指令集 2 M系列 支持长乘法 32位 32位生成64位数据 长乘加指令 再加上32位数据 3 E系列 增强型DSP指令 增
  • 【Go语言(golang)教程】A Tour of Go 七十集大全

    http www aqee net go a tour of go 5 Go语言 golang 教程 A Tour of Go 1 Hello World Go语言 golang 教程 A Tour of Go 2 安装离线练习器 Go语言
  • 数字电子钟 1Hz 秒脉冲信号的设计

    数字电子钟 1Hz 秒脉冲信号的设计 摘 要 要设计数字钟 首先应选择一个能产生稳定的标准时间脉冲信号 而脉冲源产生的脉冲信号的频率较高 因此 需要进行分频 使高频脉冲信号变成适合于计时的低频脉冲信号 即 秒脉冲信号 频率1HZ 1引言 数
  • 找出看了5个电影以上的用户

    问题 在1亿条用户记录里 如何快速查询统计出看了5个电影以上的用户 解答 分以下几个步骤完成 1 建立 hash map lt 用户 电影数 gt 2 顺序扫描1亿条用户记录 1 如果 用户 在hash map中不存在 则新增并设 电影数
  • IT项目管理之第5章 项目时间管理习题之案例分析汇总

    IT项目管理之第5章 项目时间管理习题之案例分析汇总 项目时间管理习题之案例分析汇总 案例1 案例分析 案例1参考答案 案例2 案例2分析 案例2参考答案 叮嘟 这里是小啊呜的学习课程资料整理 好记性不如烂笔头 今天也是努力进步的一天 一起
  • DevopsCamp 第 2 期作业: 《cobra - 05 Go 项目的目录结构》

    DevopsCamp 第 2 期作业 cobra 05 Go 项目的目录结构 原文链接 https typonotes com posts 2023 02 13 devopscamp cobra 05 layout Go 项目的目录结构 G
  • windows server 2016搭建AD域

    此实验以windows sever 2016为例 安装windows server 2016 操作省略 一台服务器想要安装成AD DC 活动目录域服务 必须具备以下条件 安装者必须具有本地管理员权限 DNS基础结构的支持 可以在安装AD D
  • 电脑开机出现黑屏,出现“windows 未能启动,原因可能更改了硬件或者软件,解决此类问题的步骤”

    出现问题的界面如下 解决此类问题的步骤如下 1 直接按 enter 回车键 2 出现以下界面 我自己的是windows 10系统哈 因为当时没保存自己的照片 只能拿这个顶替一下 但是步骤是一样的 3 然后按提示按F8 正常来说时会出现以下的
  • Python高级函数2:使用itertools、functools、operator使得代码更高效、可读、可重用

    Python高级函数2 使用itertools functools operator使得代码更高效 可读 可重用 1 原理 itertools groupby functools partial operator attrgetter 和
  • python生成gif(图片渐变)

    show you the code 后面还需要完善图片分辨率的处理 这样就比较好了 目前分辨率没有进行处理 import os import imageio from PIL import Image from images2gif imp
  • 【python】IPython的使用技巧整理

    IPython是一种基于Python的交互式解释器 提供了强大的编辑和交互功能 IPython拥有 满足你各种需求的交互式shell 火爆数据科学社区的Jupyter内核 供Jupyter Notebook使用 对交互式数据可视化和GUI工
  • Cocos2d-X3.0版的HelloWorld工程分析

    打开上一篇博客中的HelloWorld工程后 会看到下图所示的工程文件 main cpp文件中的代码 本人已经注释 1 2 3 4 5 6 7 8 9
  • MATLAB2016笔记(十):曲线拟合、参数估计

    文章目录 一 曲线拟合函数 一 概述 二 多项式拟合 polyfit 三 加权最小方差 WLS 拟合 自行编写polyfits 四 非线性曲线拟合 lsqcurvefit 二 参数估计函数 一 常见分布的参数分布 二 点估计 最大似然估计
  • Puppeteer入门初探

    本文来自网易云社区 作者 唐钊 最近在看 node 爬虫相关的一些东西 我记得还是很久以前常用的 node 爬虫工具还是 superagengt cherrio 他们的思路是通过发起 http 请求然后截取 respone 的内容 但是随着
  • Vue集成百度的Ueditor 前端+后台

    1 vue安装命令 npm i vue ueditor wrap 2 下载插件 Ueditor官网地址为 Ueditor 3 插件位置 下载好之后 将Jsp版本解压 解压后文件夹改名为UEditor 将文件夹中的 jsp目录删掉 将UEdi

随机推荐

  • 【编程笔试】美团2021校招笔试-通用编程题第2场(附思路及C++代码)

    导览 练习地址 小团的配送团队 不一样的逆序数 小团的旅行路线 小团的车辆调度 总结 练习地址 点此前往练习 小团的配送团队 小团是美团外卖的区域配送负责人 众所周知 外卖小哥一般都会同时配送若干单 小团在接单时希望把同一个小区的单子放在一
  • Android事件监听器和回调方法

    事件是 Android 平台与用户交互的手段 当用户对手机进行操作时 会产生各种各样的输入事件 Android 框架捕获到这些事件 进而进行处理 Android 平台提供了多种用于获取用户输入事件的方式 考虑到用户事件都是在特定的用户界面中
  • 嵌入式的发展前景如何?

    嵌入式的发展前景呈上升的趋势 其本身的薪资待遇并不低 再加上技术更新迭代日新月异 发展前景非常好 目前 工业发展迅速 并紧跟时代的潮流积极引进嵌入式技术 推动工业发展向着全面自动化的方向发展 同时智能仪表 自动化数控设备 现代化技术等与嵌入
  • JS 监听浏览器各个标签间的切换-visibilitychange事件介绍

    JS 监听浏览器各个标签间的切换 以前看到过一些网页 在标签切换到其它地址时 网页上的标题上会发生变化 一直不知道这个是怎么做的 最近查了一些资料才发现有一个 visibilitychange 事件就可以搞定 这里将介绍一下页面可见性 Pa
  • nfs使用mount -o传递用户名和密码参数需要修改的地方

    挂在的信息一般通过 nfs parse mount option 可以直接打印 会有很多信息 1 修改的地方在super c该文件涉及到获取超级快等操作 修改enum 在里面添加 Opt username Opt passwd 2 修改另一
  • 那些年我们遇到的坑(3)-basePackages和scanBasePackages

    1 SpringBootApplication启动时会默认扫描主类当前包及子包 如果需要扫描主类当前包外的其他包或不扫描当前包下的特定包或类 可通过下列属性实现 Class scanBasePackageClasses default 详细
  • Nginx + Spring Boot 实现负载均衡

    Python实战社群 Java实战社群 长按识别下方二维码 按需求添加 扫码关注添加客服 进Python社群 扫码关注添加客服 进Java社群 作者丨虚无境 来源丨博客园 http www cnblogs com xuwujing 前言 本
  • 【Java】Map和Set

    目录 一 搜索树 1 概念 2 操作 查找 3 操作 插入 4 操作 删除 难点 6 性能分析 二 搜索 1 概念及场景 2 模型 三 Map 的使用 1 关于Map的说明 2 关于Map Entry的说明 gt 3 Map 的常用方法说明
  • Shiro简单配置Springboot版(3)

    6 整合SpringBoot项目实战 6 0 整合思路 6 1 创建springboot项目 6 2 引入shiro依赖
  • 小雀和他的王国【牛客练习赛56 E】【Tarjan缩点+树的直径】

    题目链接 首先 如果它本身就是在环内了 那么 任意的破坏环上的任意条边 都是不会影响答案的 所以 我们可以知道 会映像答案的边只有那些桥 于是 做法就变成了Tarjan缩点 然后就变成了一棵树了 我们现在想要构成最大的环 于是任务就变成了找
  • python 查tensorflow版本_查看已安装tensorflow版本

    由于tensorflow版本不同 可能一些函数的调用也有变换 这时候可能需要查看tensorflow版本 可以在终端输入查询命令如下 python import tensorflow as tf tf version 查询tensorflo
  • Android内存优化的10条建议

    合理设置应用的minSdkVersion和targetSdkVersion 使应用可以运行在更多设备上 这可以提高内存利用效率 避免在Application和Activity的onCreate方法中做过多工作 这会占用过多内存 可以将不必要
  • Spring 定时器 No qualifying bean of type [org.springframework.scheduling.TaskScheduler] is defined

    最近项目里面 用了spring的定时任务 一直以来 项目运行的不错 定时器也能正常使用 可是 今天启动项目测试的时候 盯着启动Log看了一阵子 突然间发现 启动的Log中居然有一个异常 虽然一闪而过 但是那熟悉的异常格式还是让我浑身一颤 这
  • 启动hive报错_Power BI连接Hive数据库

    要想实现Powe BI连接Hive数据库 需要安装一个驱动进行配置 同时服务器开启hiveserver2在后台运行 1 下载ClouderaHiveODBC64 https downloads cloudera com connectors
  • windows安装mingw编译c程序

    这篇文章主要介绍在windows下安装mingw 编译c代码的详细步骤 mingw是在windows下面的gcc 有了mingw 以前在linux下面编写的c代码也能在window下面编译运行啦 1 第一步 下载mingw 下载mingw很
  • 从程序员的角度看待算法的学习与研究

    一 引言 算法的重要性和应用场景 提高效率 算法可以帮助我们设计和实现高效的解决方案 在有限的资源下 提高计算机程序或系统的执行速度和效率 解决复杂问题 算法可以提供有效的解决方案来解决各种复杂问题 例如图像处理 自然语言处理 数据分析等领
  • 微软疑断自由软件开发者“活路”,禁止在微软商店发布商业开源

    整理 彭慧中 责编 屠敏 出品 CSDN ID CSDNnews 几周前 微软更新了其应用商店的政策 增加了新的政策 将于下周开始生效 其中包括以下文字 所有定价 都不能 企图从开源或其他普遍免费的软件中获取经济利益 图源SFC 原本大家以
  • Python记3(类与对象、路径、文件、异常处理、抽象基类

    目录 1 Class 1 1 声明类 1 2 类的特殊属性 1 3 创建对象 1 4 构造函数和析构函数 1 5 类方法和静态方法 类变量与实例变量 1 6 公有 保护 私有变量 通过下划线数量和位置区分 1 7 继承 1 7 1 多继承M
  • MATLAB编程(3)——MATLAB依次运行多个脚本.m文件

    问题描述 在做算法对比实验时 经常需要依次运行多个算法的代码 每个算法的入口程序是一个脚本 m文件 当然 算法的脚本文件中又会调用算法自己的子函数 我们期望MATLAB依次运行这些对比算法的脚本 m文件 而不用等到一个算法的程序执行结束后
  • 一次诡异的linux系统重启故障

    情况描述 同事反应说oracle数据库在周末的时候宕了 排查下问题 登到服务器上发现 oracle进程已经不存在 然后ps看了下监听进程 发现也不存在 这时候就怀疑是操作系统重启了 操作系统版本信息 root card paopi log