Alei Blog

保持简单

Vim保存对只读文件的修改

场景 Vim修改文件,已经编辑了一些内容 保存的时候,提示此文件是只读文件,无法保存 如果强制退出,那么之前编辑的内容全部丢失,费时费力 操作 提示只读文件,无法保存时,在vim中运行 :w !sudo tee % 解释 sudo 切换权限到超级用户,可以操作只读文件 ! ! 意思是 执行后面的shell命令 ...

CentOS 创建sudo用户

场景 新建的CentOS服务器 出于安全考虑,禁止使用root远程登录 增加sudo用户 增加用户 注意,bash的提示符#, 表示当前用户是root; $, 非root用户 使用root登录之后,创建用户tom # adduser tom 设置密码 # passwd tom 增加到具有sudo权限的用户...

Oracle insert忽略重复记录

向Oracle数据库中插入记录,但是有部分数据在库中已存在 场景 插入数据报错,提示唯一性约束冲突 插入的数据由中间件通过网络取得,并不清楚取得的数据和数据库中的数据是否存在唯一性冲突 需求是,存在冲突,就不插入 方案一 利用Oracle的Comments -- 假设表名是t_employees, 冲突的索引名是i_employees_code ...

Java asychronous execution

网络请求,响应很慢,采用异步调用,避免阻塞 ExecutorService 举例:企业系统调用银行付款接口 // 调用银行付款接口,响应较慢,采用异步 ExecutorService executor = Executors.newCachedThreadPool(); Future<String> future = executor.submit(ne...

Oracle DBA手记:无法使用AWR

数据库调优,但是AWR无法正常使用 查看AWR 使用Oracle sql developer 打开dba窗口,菜单栏-View-DBA 新建连接,要求用户具有DBA权限 Connections-Connection-Performance-AWR-AWR Report View 选择snapshot id,显示空白,无法正常使用 检查信息统计的级别 ...

Oracle drop if exists

参考https://stackoverflow.com/questions/1799128/oracle-if-table-exists 场景 删除表,视图等对象时,静默执行,不返回报错信息 类似dorp table if exists,语句可反复执行 开发人员编写sql,让实施人员执行 直接写drop table abc,如果abc表已经被删除或者不存在,返回...

java读取.properties文件

场景 读取.properties配置文件 代码示例 myconfig.properties文件路径是工程下的classes/tech/alei/boot/conf/myconfig.properties 文件编码是utf-8,需要注意处理中文乱码 package tech.alei.boot; import java.io.FileNotFoundExc...

Oracle,解除死锁

场景 数据库可能发生死锁了,重启数据库是最简单粗暴的方案 有时没有服务器的权限,有时甲方使用小型机导致条件严苛,不能重启数据库,只能死磕数据库的锁 排查数据库死锁 查询表锁定 select c.sid , c.serial# , a.oracle_username , a.os_user_name , b.object_nam...

Oracle,lock mode

场景 有时中间件并发量很大,会提示单据/数据库锁定 这个时候,需要排查中间件的业务锁,事务锁,也需要排查数据库的锁 排查数据库死锁 查询表锁定 select c.sid , c.serial# , a.oracle_username , a.os_user_name , b.object_name , a.locked_mod...

Oracle,删除表中千万条数据

场景 当表中存在数百万条以上的数据,sql执行的时间急剧增加 我的一次实践,依次删除某张表中的部分数据,然后统计该表的数据量。5200万条,查询耗时120.3秒;2800万条,查询耗时45.6秒;488万条,查询耗时10.9秒;177万条,查询耗时0.17秒 为提升性能,决定删除该表其中大部分过期的数据。业务需要,仍保留近期的数据 因为该表存在多个索引,删除数据耗时远超过...