自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

梦想改变世界

希望在这里记录一些我在工作中遇到的问题,与大家共勉。

  • 博客(33)
  • 收藏
  • 关注

原创 记一次sqluldr未找到命令问题解决

2021年1月28日晚,同事在跑作业时,程序报了sqluldr命令未找到。这个环境此前已经多次运行过没问题,但是sqluldr命令确实突然不存在了。1.怀疑命令被卸载了查找安装目录,文件存在。2.环境变量被修改了,导致路径不对。经过认真排查环境变量,发现确实是环境变量路径被修改,导致程序无法找到安装路径导致。但是敲击sqluldr命令报权限不足给安装目录下的sqluldr文件赋权,至此问题解决。后经过了解,系同事修改了环境变量,导致系统找不到sqluldr目录导致。...

2021-02-04 11:02:29 2503

原创 一次数据库连接超时问题的解决

问题2:2020年10月16日数据库连接超时:分析:从报错日志分析无果,数据库连接日志已经满了。查配置文件数据库空闲时间60秒,最大连接数100两方面分析原因:1.数据库性能问题,超过数据库处理能力。2.程序问题,并发量太大。导致读写超时。解决方法:1.生成awr报告,确认不是由于数据库造成的问题。2.鲁班设置的并发问题。...

2021-02-03 09:49:02 1591

原创 记一次OOM内存溢出解决经历

2020年10月16日批处理测试过程中,越跑越慢,越跑越慢,最后报内存溢出。分析:从报错日志分析无果解决方法:在卡顿的时候打出dump文件Jmap -dump:format=b,file=dump2240 1837借助mat分析工具,将dump文件导入,分析报错位置,因为程序中存在死循环,不断的建立对象,导致内存越来越紧张最后定位内存溢出的程序。将死循环解决,问题得到完美解决。...

2021-02-02 10:27:30 3661

原创 记一次服务器利用率100%问题的解决

问题3:2020年11月13,服务器爆cpu利用率百分之百。使用top命令,发现管道命令没有关闭,开了多个,逻辑会写/往日志中。解决方法:1.关闭部署工具中的管道命令。Crontab -e 命令查看发布的命令脚本。查看一键部署脚本发现管道命令,只开不关,导致进程越来越多。...

2021-02-01 15:41:05 359 1

原创 泛型

泛型即参数化类型,就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式,在使用或调用中传输具体的类型(实参)形参出现在函数定义中,在整个函数体中都可以使用,离开该函数则不能使用。实参出现在主调函数中,进入被调函数后,实参变量也不能使用。...

2021-01-29 14:03:00 123

原创 单例模式

单例模式:保证一个类只有一个实例,并且提供一个访问该实例的全局访问点。常见的应用场景:1.windows的任务管理器,回收站2.项目中读取配置文件的类,spring中的注解。3.网站计数器4.数据库连接池、线程池。单例有懒汉式,恶汉式懒汉式:线程安全,效率高,不能延时加载。恶汉式:线程安全,效率不高,可以延时加载。...

2021-01-28 10:05:22 121

原创 DML,DDL,DCL定义

DML(data manipulation language )数据库操纵语言:select、insert、update、deleteDDL(data definition language) 数据库定义语言,创建表时用的sql.如create、alter、drop等。DCL(data control language) 数据库控制语言,是用来设置或更改数据库用户或角色权限的语句,包括(grant、deny、revoke等)语句。...

2021-01-27 09:37:37 176

原创 java创建对象的几种方式

String a = new String(); a引用对象,占用内存。String a = null;没有创建对象,声明了一下。

2021-01-26 09:55:39 152

原创 java中字符串的截取

例:String userId = ‘16001_411421G’;String[] userId = userId.spilt("_");for(int i = 0,i < userId.size(),i++){}

2021-01-25 11:15:22 156

原创 存储过程和触发器了解

存储过程:就是一组用于完成特定数据库功能的sql语句集,该sql语句集经过编译后,存储在数据库系统中。在使用时,用户通过指定已经定义的存储过程名字并给出相应的存储过程参数来调用并执行它,从而完成一个一系列的数据库操作。触发器:是sql提供给开发人员的来保证数据完整性的一种方法,是一种特殊类型的存储过程,他是由事件来触发。作用:触发器是一种程序模块,是数据库中的一种自动处理机制。触发器的作用是保证数据库的安全性。例如:触发器通常对操作的记录来对数据库进行操作的审计,或实现复杂的约束条件。分类:DML触发

2021-01-23 19:04:05 360

原创 单元测试,冒烟测试,SIT测试,UAT测试

单元测试(unit Testing),是指对软件中的最小可测试单元进行检查和验证,对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中的单元是指一个函数,Java中单元是指一个类,图形化的软件中可以是指一个窗口或一个菜单。总的来说,单元就是人为规定的最小的被测试模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。冒烟测试:就是一个新版本出来的时候,将软件的全部功能过一遍,看看有没有什么大的问题。如果功能都正常运行,

2021-01-22 14:23:35 8994

原创 幂等性了解

幂等性: 用户对于同一操作发起的一次请求或者多次请求,结果是一致的,不会因为多次调用而产生了副作用。也可以称之为冲正,保证客户端与服务端的一致性,避免多次扣款。幂等性的解决方案:1.数据库添加唯一索引。2.分布式锁3.token机制,防止重复提交。...

2021-01-21 16:25:33 129

原创 linux系统中sed命令的使用

Vim 采用的是交互式文本编辑模式,你可以用键盘命令来交互性地插入、删除或替换数据中的文本.sed 命令不同,它采用的是流编辑模式,最明显的特点是,在 sed 处理数据之前,需要预先提供一组规则,sed 会按照此规则来编辑数据。输出1-3行cat -n t1 | sed -n ‘1,3p’a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!d :删除,因为是删除啊,所以 d 后面通常不接任何

2021-01-18 16:48:11 180

原创 linux系统管道命令学习

管道是一种两个进程间进行单向通信的机制。因为管道传递数据的单向性,管道又称为半双工管道。管道的这一特点决定了器使用的局限性。管道是Linux支持的最初Unix IPC形式之一,具有以下特点:*** 数据只能由一个进程流向另一个进程(其中一个读管道,一个写管道);如果要进行双工通信,需要建 立两个管道。*** 管道只能用于父子进程或者兄弟进程间通信。,也就是说管道只能用于具有亲缘关系的进程间通信。管道命令的处理图command1的输出作为command2的输入,command2的输出作为comman

2021-01-16 17:25:15 161

原创 linux系统中find和grep常用的方法及区别

find 命令,遍历磁盘查找,速度慢,效率低参数有name inamefind ./ -name “sort*” 查找当前路径下以sort开头的文件find ./ -iname “SORT.txt” #忽略大小写 查找当前路径下以sort开头的文件find ./ -perm 777 查找当前目录下有777权限的文件find ./ -size 1k #查找当前目录下小于1k的文件“.”表示当前目录,./ 代表当前文件目录。“./”在系统文件中表示绝对路径。grep命令是从文本

2021-01-15 14:48:32 311

原创 oracle死锁的解决方法

oracle死锁的解决方法1.查找,SID和Serial#他俩共同确定一唯一的session。select object_name,machine,s.sid,s.serial#from vlockedobjectl,dbaobjectso,vlocked_object l,dba_objects o ,vlockedo​bjectl,dbao​bjectso,vsession swhere l.object_id = o.object_id and l.session_id=s.sid;2.杀

2021-01-09 15:01:49 381

原创 linux系统中获取文件夹下所有文件名脚本

linux系统中获取文件夹下所有文件名脚本:#!/bin/bash# get all filename in specified pathpath=$1files=$(ls $path) for filename in $filesdo echo $filename >> filename.txtdone

2021-01-08 09:18:56 2446

原创 Xshell或者SecureCRT上传或者下载文件的方法

Xshell或者SecureCRT上传或者下载文件的方法:上传文件用rz命令在命令串口输入rz,然后按下回车键,即可可视化操作,选中要上传的文件,确认上传即可。下载使用sz命令1.下载一个文件:sz filename 按回车键。2.下载多个文件:sz filename1 filename2 … 按回车键。...

2021-01-07 09:45:22 396

原创 对于数据量比较大的表如何导入

由于表字段变更较大,需要重建表并将老表tableold数据导入新表tablenew。1.将tableold重命名,删除索引,删除主键。2.将新表DDL拿过来,执行。3.将老表数据导入新表。insert into tablenew select * from tableold;此时问题来了,由于老表数据量比较大,insert速度慢。此时可以将表的logging模式改成nologging。然后在执行,速度会快很多。...

2021-01-06 09:31:31 429

原创 ORA03233 unable to extend table XXXX by 1024 in tablespace XXXX 记一次无法扩展表的问题

ORA03233 unable to extend table XXXX by 1024 in tablespace XXXX 记一次无法扩展表的问题一、问题发现更换表结构的时候,老表的数据无法插入新表中,报了如图中错误二、问题定位1.查询表空间select tablespace_name,sum(bytes)/1024/1024/1024 from dba_data_files group by tablespace_name;2.剩余空间大小:select tablespace_nam

2021-01-05 09:08:41 3312

原创 exp/imp方式导入导出数据

使用exp/imp方式导表,前提是表没有子分区1.登上数据库服务器,执行脚本:exp demo/123456@ccdd file=tb.dmp TABLES=TBCCDAT0,TBCCACJ0 exp demo/123456@ccdd file=t9.dmp TABLES=TBCCACC0exp demo/123456@ccdd file=tbse.dmp TABLES=TBCCPFZ0,TBCCPMC0,TBCCPPL0expdemo/123456@ccdd file=VGCF.dmp T

2021-01-04 09:25:49 324

原创 linux系统安装并配置oracle客户端

linux系统安装并配置oracle客户端1.下载安装包wget http://repo.yun.ccb.com/PUBLIC/DB/oracle/oracle_client_12.2.0.1_linux.zip2.解压到当前目录unzip oracle_client_12.2.0.1_linux.zip3.安装rpm - ivh oracle_client_XXXXXXX.rpm4.切换用户su - oracle注:oracle用户是已创建好的5.配置环境变量vi /home/ora

2021-01-03 19:35:02 2772 11

原创 Java代码中数据去重的方法

Java代码中数据去重的方法:1.写一个双重for循环:for( int i = 0; i < list.size() ; i++){ for(int j = i+1;j < list.size() ; j++){ if(list.get(j).equals(list.get(i))){ list.remove(j); } }}2.使用Iterator迭代器,通过单循环,使用list.contains方法。 List<String> lst = ne

2020-12-31 09:14:59 2383

原创 解锁数据库用户

解锁数据库用户如果某个用户由于多次尝试连接数据库,被锁。解锁方法如下:1.sys用户连服务器sqlplus / as sysdba;2.查被锁的用户状态select username,account_status from dba_users where username=‘demo’;3.给被锁的用户解锁alter user EIBCNK account unlock;4.修改次数为多次select * from dba_profiles where RESOURCE_NAME=‘FA

2020-12-30 09:16:17 2218

原创 sql语句中 truncate 和 delete 的区别

truncate 和 delete 的区别:效率回滚类型按条件删除tuncate高不支持DDL不支持delete低支持DML支持truncate 速度快是因为不会把操作记录到日志中,一次删除表的所有内容。并且不能回滚。所以所读快。delete 删除是讲表内容一条一条删除,并将删除记录记录到日志中。commit才会生效,如果没有commit,rollback也是可以的。所以效率低。如果是有条件的删除数据,则只能用delete + where 条件

2020-12-29 09:25:33 527

原创 sqluldr/sqlldr方式导出导入数据

1.linux系统中获取文件夹下所有文件名脚本:此步骤将所有表名放入一个.txt文件中#!/bin/bash# get all filename in specified pathpath=$1files=$(ls $path) for filename in $filesdo echo $filename >> filename.txtdone2.写生成sqluldr脚本:#!/bin/bashfor in1 in $(cat table.txt) do e

2020-12-28 14:09:32 3072

原创 expdp/impdp数据泵的方式导入导出数据:

expdp/impdp数据泵的方式导入导出数据:老库的数据导入新库中(均为linux服务器,连接oracle,此操作需在sys管理员用户在服务端执行)从老库导出数据1.通过数据泵导出数据库: expdp demo/demo@128.202.2.3:1521/kkd DIRECTORY=ORACLE_BASE DUMPFILE=k1218.dmp logfile=exp1218.log SCHEMAS=demo 该选项用于指定要导出的内容.默认值为ALLCONTENT={ALL | DAT

2020-12-27 16:17:31 338 2

原创 linux系统做集群免密

linux系统做集群免密:1.生成公钥和私钥文件:ssh-keygen -t rsa回车3次2.将公钥文件放置其他服务器:本机公钥 目的地公钥(本机公钥的重命名)scp -p ~/.ssh/id_rsa.pub nokb@10.30.56.175:/home/ap/nokb/.ssh/id_rsa.pub.153 #后缀主要为了区分这个公钥是哪台机器3.登录175服务器,将153公钥,本机公钥都放至authorized

2020-12-25 15:26:37 170

原创 oracle数据库新增只读用户

oracle数据库新增只读用户,创建只读用户一般密码稍简单,因此需要修改策略文件1.–查询策略文件select * from dba_profiles where profile=‘DEFAULT’;2.–变更密码策略alter profile default limit password_verify_function null;3.–创建用户read,密码123456create user read identified by 123456;4.–授权grant connect to R

2020-12-23 13:45:31 656

原创 linux服务器数据库批量建表

数据库批量建表:1.登录服务器,切换oracle用户 su - oracle2.将DDL文件放至目录,按照组件生成批量建表脚本#!/bin/bashcd DDLfor file in $(ls *)do ap=../@${file:0:4}.sh if[! -f $ap];then echo "cd /home/db/oracle/DDL">$ap echo "sqlplus -s 数据库连接串 <<!">$ap echo "SPOOL ../createdb

2020-12-23 09:29:39 485

原创 window系统中获取文件夹下所有文件名到一个文本文件中

windows系统获取文件夹下所有文件名(表名)到一个table.txt文件中:1.1、首先打开要提取文件名的文件夹,新建一个txt文本文件。1.2、编辑txt文本,输入以下批处理命令,保存文本文件。dir *.* /b >table.txt提示:这一步如果需要提取固定后缀的文件名,修改*.*为相应的后缀即可1.3、更改txt文件的后缀为.bat,将其转换为批处理文件1.4、双击执行批处理文件,实现批量提取文件名...

2020-12-22 15:16:55 1859

原创 oracle创建DBA用户带表空间自动扩展

1.创建表空间DEFAULT_TBS,默认大小30Gcreate bigfile tablespace DEFAULT_TBS datafile ‘DEFAULT_TBS’ size 30G autoextend on next 500m maxsize 200G;2.创建临时表空间apptempcreate temporary tablespace apptemp tempfile ‘apptemp’ size 4G;3.创建demo用户,密码123456,指定用户表空间名 DEFAULT_TBS

2020-12-22 15:08:38 582

原创 从git提交历史的记录中找到一次提交的全部文件路径

从git提交历史的记录中找到一次提交的全部文件路径方法1每次上版都需要拉取本次提交文件的全部路径给版本管理员.从本地工程中如何活得提交文件的全部路径呢1.在工程目录右击 git bash here2.在gitlab上获取本次提交ID3.git show 提交的ID --stat >> aa.txt以上即可获取本次git提交的全部文件但是此方法有个弊端,就是有的路径显示不全,需要自己补充。方法21.在工程目录右击 git bash here2.在gitlab上获取本

2020-12-21 22:00:16 2967

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除