常见问题及处理方案CPU使用率高的问题通过操作系统命令toptopasglance等查看top进程号,确认是系统进程还是oracle应用进程,查询当前top进程执行的操作和sql语句进行分析。
根据进程号获取正在执行的sqlSELECTa.osuser,a.username,b.address,b.hash_value,b.sql_textfromv$sessiona,v$sqltextb,v$processpwherep.spid=&spidandp.addr=a.paddranda.STATUS='ACTIVE'anda.sql_address=b.addressorderbyaddress,piece;数据库无法连接数据库无法连接,一般可能是如下原因造成:(1)数据库宕了(2)监听异常(3)数据库挂起(4)归档目录满(5)数据库或应用主机的网卡出现问题不能正常工作(6)应用主机到数据库主机的网络出现问题。
1、数据库宕了立即启动数据库。
Startup2、监听异常此时一般体现为:监听进程占用CPU资源大;
d监听日志异常。
此时,立即重启监听,监听重启一般能在1分钟之内完成。
Lsnrctlrestart3、数据库挂起立即重启数据库。
Startup4、归档目录满(1)在没有部署OGG数据同步的情况下,立即清理归档日志文件。
(2)如果部署了OGG数据同步,查看OGG正在读取的归档日志文件,立即清理OGG不再需要的日志文件。
5、数据库或应用主机的网卡出现问题不能正常工作。
立即联系主机工程师处理。
6、应用主机到数据库主机的网络出现问题。
立即联系网络维护人员查看。
CRS/GI无法启动对于10g及11gR1版本的CRS问题1、进入/tmp目录下,看是否产生了crsctl.xxxxx文件如果有的话,看文件内容,一般会提示OCR无法访问,或者心跳IP无法正常绑定等信息。
2、如果/tmp目录下没有crsctl.xxxxx文件此时查看ocssd.log文件,看是否能从中得到有价值的信息。
可能的问题:网络心跳不通。
3、/tmp目录无crsctl.xxxxx且日志中没有报错信息,只有停CRS时的日志信息。
此时可能是RAC两个节点对并发裸设备的访问有问题,此时考虑:(1)停掉两个节点的CRS。
(2)两个节点先同时去激活并发VG,然后再激活VG。
(3)重新启动CRS。
对于11gR2的GI问题分析$GRID_HOME/log/nodename目录下的日志文件,看是否能从中找出无法启动的原因。
常见问题:1、心跳IP不同。
2、ASM实例无法启动。
对CRS的故障诊断和分析,参加本文档中RAC部分的MOS文档.数据库响应慢应急处理步骤:(1)找到占用CPU资源大的sql或者模块,然后停掉此应用模块。
(2)如果属于由于种种原因引起的数据库hang住情况,立即重启数据库,此时重启需要约15分钟时间。
重要说明:如果重启数据库的话,会有如下负面影响:(1)要kill掉所有连接到数据库中的会话,所有会话都会回滚。
(2)立即重启的话,不能获取并保留分析数据库挂起原因的信息,在后续分析问题时,没有足够信息用于分析问题产生的根本原因。
一般正常重启的话,都需要手动获取用于分析数据库重启原因的信息,以便编写分析报告,但是在最长情况下,获取日志信息可能就要40分钟时间。
此时一般做systemstatedump,且如果是rac情况的话,需要2个节点都做,且需要做2次或以上。
常规处理步骤,分如下几种情况处理:(1)所有业务模块都慢。
(2)部分业务模块慢。
(3)数据库hang住。
所有业务模块都慢此时首先查看系统资源,看是否属于CPU资源使用率100%的问题,如果是,参考本章“CPU使用率高的问题”解决办法。
如果系统资源正常,那很可能是数据库hang住了,此时参考数据库Hang部分。
部分业务模块慢分析运行慢的模块的sql语句:(1)看是否是新上的sql。
(2)看执行计划是否高效。
(3)优化运行慢的模块的sql语句。
数据库hang住应急处理方式:重启数据库。
常规处理方式:(1)分析alert日志,看是否能从alert日志中,可以很快找到引起问题的原因。
(2)做3级别的hanganalyze,先做一次,然后隔一分钟以后再做一次。
并分析
442KB oracle
1
页面的上下两个表单可以封装成一个jsp组件.实现代码的重用具体实现流程如下:客户端的jsp页面传送两个变量:1. Keyword:要查询的关键字2. currentPage:当前要显示第几页servelt中通过调用impl类的方法返回如下内容:1. ArrayList对象:里面存储的是对应的页的数据2. 原样返回currentPage,单击”next”则在此基础之上++;存在(hidden中)3. 原样返回Keyword,下次单击按钮的时候在重新把keyword传过去存在(hidden中)4. 返回根据要搜索的内容,和每页要显示的数量,计算要显示的总页数存在(hidden中)按钮的翻页效果通过js实现下面是next按钮实现代码:window.open("/splitpage/SplitServelt?currentPage="+(page+1)+"&keyword="+keyword,"_self");真分页要注意如下问题:1. PreparedStatement的"?"功能只能充当where条件后面的占位符不能和top一起使用2. 所以在实现分页的时候用了Statement+连接变量的方式完成3. 分页代码如下:selecttop5*frompersonwhereid>(selectmax(id)frompersonwhereidin(selecttop((3-1)*5)idfrompersonwherenamelike'刘%'))分析如下:代码1:selecttop((3-1)*5)idfrompersonwherenamelike'刘%'把前2页数据的id全部找出来查询和”刘”相关的女儿,(3-1)*5代表要显示的是第3页.每页显示5行数据代码2:selectmax(id)frompersonwhereidin(selecttop((3-1)*5)idfrompersonwherenamelike'刘%')重刚刚查询到的id里面选出最大值代码3:selecttop5*frompersonwhereid>(selectmax(id)frompersonwhereidin(selecttop((3-1)*5)idfrompersonwherenamelike'刘%'))要显示5条记录.记录数的id必须大于已经找出来的id(前两页的id)
2024/5/25 9:24:40 625KB jsp+servlet分页
1
java编程含有界面以及完整代码〈程序〉→main()〈语句块〉〈语句块〉→{〈语句串〉}〈语句串〉→〈语句〉;
〈语句串〉|〈语句〉;
〈语句〉→〈赋值语句〉|〈条件语句〉|〈循环语句〉〈赋值语句〉→ID=〈表达式〉;〈条件语句〉→if〈条件〉〈语句块〉〈循环语句〉→while〈条件〉〈语句块〉〈条件〉→(〈表达式〉〈关系符〉〈表达式〉)〈表达式〉→〈表达式〉〈运算符〉〈表达式〉|(〈表达式〉)|ID|NUM〈运算符〉→+|-|*|/〈关系符〉→<|<=|>|>=|=|!>word.wordList包(存储了关键字):word:此类是定义了存储关键字的结构:包括String型的关键字,和int型的识别符。
wordList:此类存储了29个关键字,在构造函数中初始化。
2、word包(进行词法分析)中:basicFunction:此类定义了做词法分析的基本函数:GetChar()将下一输入字符读到ch中,搜索知识器前移一个字符位置GetBC();
检查ch中的字符是否为空白。
若是,则调用GetChar直至不是字符为止Concat();
将ch中的字符连接到strToken之后IsLetter();
判断ch中的字符是否为字母IsDigit();
判断ch中的字符是否为数字Reserve();
对strToken中的字符创查找保留字表,若是则返回它的编码,否则返回0Retract();
将搜索指示器回调一个字符位置RetractStr();
将strToken置空lexAnalysis:此类是用来进行词法分析,将分析后的单词存入word数组中,(注:在词法分析中,若是一串字母,则认为是ID,若是数字,则认为是NUM。
存储的时候识别符分别存ID与NUM的识别符,但是内容仍然是自己的内容)其中的wordAnalysis函数就是词法分析函数(具体实现请看后面的重要函数分析)3、stack包(定义栈)中:栈是通过链表来定义的,因此StringListElement:次类定义了链表的每一个节点StringStrack:此类定义了栈,其中有长度属性,有函数:Top();用来取得栈顶Push();
压栈Pop();
出栈4、sentence包(语法分析)中:juzi:定义了文法的句子的结构:key(左边部分)content[](右边推出的部分)lo(长度)grammar:存储了文法的27个关系式AnalysisFB:定义了分析表的存储结构AnalysisF:存储分析表SentenceAnalysis:语法分析JuProduction(wordw):此函数是用来判断在当前栈与输入串的情况下,用哪一个产生式,返回产生式在数组中的下标 若输入串的第一个字符与栈顶字符相同则表示可以规约,则返回-1;
若不能过用产生式,则返回-2;
AnalysisBasic(wordw):此函数是分布进行语法分析,对栈操作 *根据所需要的产生式对符号栈进行操作 *返回0表示规约;
返回1表示移进;
否则表示输入串不是文法的句子5.Main包(主界面)中Main:此类定义了图形界面
2024/4/19 1:25:48 3.25MB 词法分析器及语法分析器
1
批量生成静态HTML页面,静态页面模板编辑1,新闻栏目二级分类,随意修改,管理员分级管理2,采用强大的HTML编辑器输入新闻文章3,不存在任何新闻内容不能分段,不出空格的问题4,可以直接复制任何图文信息,输出和原来格式一模一样5,前台使用JS随意调用新闻6,支持图片新闻,无组件上传图片到数据库,前台JS调用7,安装使用方便,你只需把头部文件top.asp换成你的就可以了
2024/4/11 2:05:35 3.79MB ASP 新闻 系统 批量
1
Lucene提取新闻关键词Top-NJDK版本要求1.7,lucene版本要求5.5.3使用说明:1、在IndexDocs.java右键runasjavaapplication2、在GetTopTerms.java右键runasjavaapplication
2024/3/15 1:47:58 8.72MB 分词 词频 Lucene IK分词
1
目标检测(ObjectDetection)是计算机视觉领域的基本任务之一,学术界已有将近二十年的研究历史。
近些年随着深度学习技术的火热发展,目标检测算法也从基于手工特征的传统算法转向了基于深度神经网络的检测技术。
从最初2013年提出的R-CNN、OverFeat,到后面的Fast/FasterR-CNN,SSD,YOLO系列,再到2018年最近的Pelee。
短短不到五年时间,基于深度学习的目标检测技术,在网络结构上,从twostage到onestage,从bottom-uponly到Top-Down,从singlescalenetwork到featurepyramidnetwork,从面向PC端到面向手机端,都涌现出许多好的算法技术,这些算法在开放目标检测数据集上的检测效果和性能都很出色。
2024/3/11 5:24:12 3.58MB 深度学习 目标检测
1
python-sdk:使用Python编写的top.gg的简单API包装器
2024/1/24 19:54:36 25KB bot discord discordbots botlist
1
参见https://support.industry.siemens.com/tf/ww/en/posts/winac-rtx-2010-sp2-and-vm/89078/?page=0&pageSize=10#top
2023/12/15 18:32:53 215KB WinAC VMWare
1
基于pythonsocket和tkinter界面库实现的网络聊天室程序,实现登录、注册、在线成员显示、聊天等功能,可详见:http://www.huqj.top/article?id=169
2023/12/11 2:19:54 13.87MB tkinter socket python 聊天室
1
1.经过以下栈运算后,x的值是()。
InitStack(s);Push(s,'a');Push(s,'b');Pop(s,x);Gettop(s,x);A.aB.bC.1D.02.循环队列存储在数组A[0..m]中,则入队时的操作为()。
A.rear=rear+1B.rear=(rear+1)mod(m-1)C.rear=(rear+1)modmD.rear=(rear+1)mod(m+1)3.栈和队列的共同点是()。
A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点4.若用一个大小为6的数组来实现循环队列,且当rear和front的值分别为0和3。
当从队列中删除一个元素,再插入两个元素后,rear和front的值分别为:()。
A.1和5B.2和4C.4和2D.5和15.程序填顺序循环队列的类型定义如下:typedefintET;typedefstruct{ET*base;intFront;intRear;intSize;}Queue;QueueQ;队列Q是否“满”的条件判断为(C)。
A.(Q.Front+1)=Q.RearB.Q.Front=(Q.Rear+1)C.Q.Front=(Q.Rear+1)%Q.sizeD.(Q.Front+1)%Q.Size=(Q.Rear+1)%Q.size6.若进栈序列为1,2,3,4,进栈过程中可以出栈,则()不可能是一个出栈序列。
A.3,4,2,1B.2,4,3,1C.1,4,2,3D.3,2,1,47.向顺序存储的循环队列Q中插入新元素的过程分为三步:()。
A.进行队列是否空的判断,存入新元素,移动队尾指针B.进行队列是否满的判断,移动队尾指针,存入新元素C.进行队列是否空的判断,移动队尾指针,存入新元素D.进行队列是否满的判断,存入新元素,移动队尾指针8.关于栈和队列,()说法不妥。
A.栈是后进先出表B.队列是先进先出表C.递归函数在执行时用到栈D.队列非常适用于表达式求值的算符优先法9.若用数组S[0..m]作为两个栈S1和S2的共同存储结构,对任何一个栈,只有当S全满时才不能作入栈操作。
为这两个栈分配空间的最佳方案是()。
A.S1的栈底位置为0,S2的栈底位置为mB.S1的栈底位置为0,S2的栈底位置为m/2C.S1的栈底位置为1,S2的栈底位置为mD.S1的栈底位置为1,S2的栈底位置为m/2二、程序填空题(没特别标注分数的空的为3分,共23分)。
1.下面的算法是将一个整数e压入堆栈S,请在空格处填上适当的语句实现该操作。
typedefstruct{int*base;int*top;intstacksize;}SqStack;intPush(SqStackS,inte){if(S.top-S.base>=S.stacksize){S.base=(int*)realloc(S.base,(S.stacksize+1)*sizeof(int));if(!S.base){printf(“NotEnoughMemory!\n”);return(0);
2023/9/21 10:03:21 18KB C语言 数据结构 第三章 作业
1
共 80 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡