Alei Blog

保持简单

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秒 为提升性能,决定删除该表其中大部分过期的数据。业务需要,仍保留近期的数据 因为该表存在多个索引,删除数据耗时远超过...

Git删除提交历史,重新开始

场景 在项目提交过许多次后,发现之前的提交中走了弯路,或者数据库密码等敏感信息也被提交了,现在想彻底删除提交历史,将现有状态当作起点,重新开始 fork了一个项目,不想继承提交历史 操作 基于现有分支,创建孤儿分支temp,也就是没有提交历史的分支 git checkout --orphan temp temp分支中,添加文件 gi...

防火墙放开端口

场景 服务器启用防火墙之后,需要放开对应的端口,客户端才能正常访问服务器上的应用 Windows Windows放开端口 控制面板-Windows防火墙-高级设置-入站规则,新建规则 选择“端口”,点击下一步 输入端口号,比如“8080”,点击下一步 选择“允许连接”,点击下一步 选择“域”、“专用”、“公用”,点击下一步 名称输入“tcp-8080”,点击完成...

检测IP和端口状态

场景 在服务器上部署中间件和数据库的时候,经常遇到无法连接的问题,如何判断是部署有问题,还是IP和端口没有开通访问? 工具 telnet命令已经是过去式,因为不安全,Windows系统已经默认不安装。 nmap是一款好用的工具,可以扫描ip和端口。 无论是Windows,还是Linux,都可以安装nmap。 安装 下载地址https://nmap.org/download.html...

Git检出指定文件夹

问题 有时候,不想克隆整个仓库,只对其中的某一个或某几个文件夹感兴趣。 比如,jekyll的博客模板,作为整个仓库提交到github,目录如下 发布静态网页,只需要将_site目录克隆给nginx服务器 方法 在nginx服务器的根目录下,创建仓库 mkdir blog cd blog git init git remote add -f origin git@gi...