猿宵

菩提树下改bug的博客


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

Postgresql编译安装

发表于 2021-06-14 分类于 数据库

Postgresql 编译安装

编译安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/bash
# 进入源码目录
cd /var/lib/postgresql-12.7/
./configure --prefix=/usr/local/postgresql --without-readline
make && make install
cd contrib
make && make install
# 添加wal 日志解析工具
cd walminer
make && make install
groupadd postgres
useradd -g postgres postgres
mkdir -p /opt/postgresql/data
chown postgres:postgres /opt/postgresql/ -R
chown postgres:postgres /usr/local/postgresql -R
su - postgres
echo "export PGHOME=/usr/local/postgresql" >> ~/.bash_profile
echo "export PGDATA=/opt/postgresql/data" >> ~/.bash_profile
echo "export PATH=$PGHOME/bin:$PATH" >> ~/.bash_profile
echo "export MANPATH=$PGHOME/share/man:$MANPATH" >> ~/.bash_profile
echo "export LANG=en_US.utf8" >> ~/.bash_profile
echo "export DATE=`date +"%Y-%m-%d %H:%M:%S"`" >> ~/.bash_profile
echo "export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH" >> ~/.bash_profile
echo "alias rm='rm -i'" >> ~/.bash_profile
echo "alias ll='ls -lh'" >> ~/.bash_profile
source ~/.bash_profile
initdb -D /opt/postgresql/data
pg_ctl -D /opt/postgresql/data -l /opt/postgresql/logfile start

创建用户

1
2
3
4
5
6
7
8
ALTER USER postgres WITH PASSWORD '123456';
# ALTER ROLE
CREATE USER sonar with password 'sonar';
#CREATE ROLE
create database sonar OWNER sonar;
#CREATE DATABASE
GRANT ALL PRIVILEGES ON DATABASE sonar TO sonar
\q

日志解析工具使用

movead/WalMiner - 码云 - 开源中国 (gitee.com)

选择需要查询的数据库,执行下列命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
-- create extension walminer;
--
-- select walminer_wal_add('/opt/postgresql/data/pg_wal');
-- create extension walminer;
-- select walminer_all();
select * from walminer_contents;
-- DROP EXTENSION IF EXISTS walminer;
-- CREATE EXTENSION IF NOT EXISTS walminer;
-- select walminer_wal_add('/opt/postgresql/data/pg_wal');
--
select walminer_all();
-- select COUNT(*) from walminer_contents;
-- select walminer_wal_list();
-- select wal2sql();

-- SELECT now() AS start_time \gset
-- SELECT now() AS time3 ;

-- SELECT walminer_by_time('2021-06-12 00:25:16.691117+08', '2021-06-12 00:45:16.691117+08','true');

image-20210609014216986

HazelCast Spring Boot 集成

发表于 2021-06-06 分类于 JAVA

SpringBoot集成HazelCast分布式框架

一、HazelCast 简介

Hazelcast提供Java接口的分布式实现,是一款优秀的基于内存的分布式数据网格开源项目,同时也是一家公司的名称。

二、使用SpringBoot 启动 HazelCast

1. 引入Hzaelcast依赖

1
2
3
4
5
<dependency>
<groupId>com.hazelcast</groupId>
<artifactId>hazelcast-all</artifactId>
<version>4.1</version>
</dependency>
阅读全文 »

SonarQube服务端任务执行源码分析

发表于 2021-06-06 分类于 JAVA , SonarQube

SonarQube 服务端CE报告分析执行源码分析

一、前言

近期在对SonarQube源码进行改造时,遇到了一些问题,为更有效的解决这些问题,有必要对SonarQube的执行源码进入一定深入的分析,特测记录

CE 是ComputeEngine的简写,SonarQube 社区版的服务启动后实际上是有三个服务的:

  • web server
  • ce
  • search server

CE节点主要职能是将本地客户端分析源码后通过web api 提交上的分析报告进行进一步加工(上个版本、分支、PR差异),其中涉及几个关键点:

  • CeWorker
  • CeTask
  • CeQueue

CeWorker是干活的人,CeTask则是要干的活,同时怎么干也在CeTask上写好了,CeQueue是目前在排队的任务,下面就依次对这三部分代码展开具体的分析

阅读全文 »

记一次MYSQL慢查询分析经历

发表于 2020-10-29 分类于 数据库

记录一次MYSQL慢查询分析经历

eplain执行计划于实际执行结果不一致,大概率因为某种原因导致在执行时索引失效

eplain结果与实际结果差异较大,大概率还有索引优化空间

联合索引优于多个单字段索引,最左匹配原则要牢记

阅读全文 »

Linux 开发环境定制

发表于 2020-10-29 分类于 工作技巧 , 笔记

近期将公司内网换成了linux mint , 有很多设置不符合使用习惯,在此记录下修改过程

IDEA快捷键失效

  • CTRL+ALT+S 设置

    进入控制中心,点击其他 > Fcitx设置 找到占用CTRL+ALT+S的操作,将快捷键替换即可

  • CTRL+ALT+L格式化代码快捷键锁屏

    进入控制中心,点击硬件 > 键盘快捷键 将Desktop > 锁住屏幕 快捷键改为 WIN+L

    可以顺便设置显示桌面(窗口管理 > 隐藏所有正常窗口并将桌面设置为焦点 win+D)、打开文件夹(Desktop > 主文件夹 WIN+E)快捷键与windows习惯一致

默认终端显示git分支

进入用户目录,创建文件 .bashrc_git_branch

1
2
3
4
5
6
7
8
9
10
function git_branch {
branch="`git branch 2>/dev/null | grep "^\*" | sed -e "s/^\*\ //"`"
if [ "${branch}" != "" ];then
if [ "${branch}" = "(no branch)" ];then
branch="(`git rev-parse --short HEAD`...)"
fi
echo " ($branch)"
fi
}
export PS1='\u@\h \[\033[01;36m\]\W\[\033[01;32m\]$(git_branch)\[\033[00m\] \$ '

在用户 .bashrc文件末尾添加以下代码

1
source ~/.branch_git_branch

简化终端用户名

打开默认终端 , 占据一半内容的用户名一定让你影响深刻,不过刚刚我们修改过PS1的设置,修改一下就可以了

1
2
3
- export PS1='\u@\h \[\033[01;36m\]\W\[\033[01;32m\]$(git_branch)\[\033[00m\] \$ '
+ USER_NAME="`echo $USER | sed 's/@myhexin//'`"
+ export PS1='$USER_NAME \[\033[01;36m\]\W\[\033[01;32m\]$(git_branch)\[\033[00m\] \$ '

安装工具到bin目录

除了用户目录,其他目录对我们都是只读的(文件系统层面限制), 因此我们安装的一些软件如果需要加入的path环境变量中,可以将启动命令的软连接添加的~/.local/bin目录中,或者在用户目录中创建bin目录,添加文件后可以在当前终端执行source ~/.profile 生效 (其他窗口终端需重启系统后才能生效)

SpringBoot2

发表于 2020-10-29 分类于 JAVA , SpringBoot

SpringBoot 2.1 使用Junit5 报错 not tests

BIND调试常用指令

发表于 2020-09-27 分类于 网络 , DNS

dig 命令

1
2
3
dig 域名 @DNS服务器地址

dig www.baidu.com @172.19.80.195

查看解析结果由哪个区域返回

1
/hxdata/logs/named/log/query.log

Python截取视频封面

发表于 2020-09-27 分类于 python

Python 实现截取指定帧作为视频封面

近期项目中有一批视频需要将第一帧提取出来保存为图片,功能比较简单,核心是使用cv2库加载视频并逐帧读取,判断是需要保存的帧则保存。

1
2
3
4
# 加载视频
video_capture = cv2.VideoCapture(file_path)
# 逐帧读取
cap_info, frame = video_capture.read()
阅读全文 »

数据源质量评估模型

发表于 2020-08-10 分类于 系统设计 , 领域驱动设计

数据质量评估指标

阅读全文 »

Git Hook 实现代码需求一致及Commit 规范

发表于 2020-08-10 分类于 系统设计 , 领域驱动设计

Git Hook 实现代码需求一致及Commit 规范

规范要求:

  • 分支命名 任务类型_任务号_自定义分支名
  • commit 规范
  • 统一安装封装好的命令行工具

每个任务对应一个版本描述文件,如果是多人协作大任务,最终版本描述文件在合并master之前生成,每个人使用自己的子任务号生成版本描述文件,发布时指定的任务号将作为最终任务号归档描述文件,其他任务号作为子任务信息归档

思路:

编写命令行工具,对git命令进行封装,

工具功能:

生成版本变更描述文件

读取已发布版本

注册版本为发布版本

检查指定版本是否存在及已发布

推送版本描述文件到git

读取git log 生成版本描述文件模板

检查指定版本文件是否存在

git 获取时间范围内提交日志

1
git log --after="2018-04-16 00:00:00" --before="2018-04-16 10:11:12" --stat

使用curl命令将文件上传到接口

1
name = viper.GetString("name")
12…11

hajnxg@126.com

菩提树下改bug的博客
105 日志
31 分类
248 标签
GitHub E-Mail
友谊的传送门
  • Bess's Blog
  • 番茄酱の萌化小屋
  • yremp.club
© 2021 hajnxg@126.com
Github | 陕ICP备17003699号-2
|