脚本&命令
文章平均质量分 73
Hehuyi_In
这个作者很懒,什么都没留下…
展开
-
elasticsearch ES DBA常用语句
curl -uelastic 连接串:端口/_cat/indices?curl -uelastic 连接串:端口/_cluster/health?curl -uelastic 连接串:端口/_cat/allocation?集群健康有三种状态:green,yellow,red。查看各节点大小数据(主要看数据是否分布不均)可以按索引名称或其他字段排序。原创 2024-10-06 22:05:33 · 1347 阅读 · 1 评论 -
my2sql —— go语言版binlog解析及闪回工具
之前学习过python语言版binlog解析及闪回工具最近听同事介绍有了新的go语言版的my2sql。优点是不需要安装一大堆依赖包,直接可以安装使用,并且解析更高效,试用一下。原创 2024-03-20 17:32:09 · 3004 阅读 · 1 评论 -
Oracle 主从切换脚本
【代码】Oracle 主从切换脚本。原创 2024-03-13 11:25:33 · 2109 阅读 · 1 评论 -
娱乐时间 —— 用python将图片转为excel十字绘
图片的每一个像素点都可以数值化,那么将构成图片的每一个像素点填充到excel的单元格中去,然后合理调整单元格长宽比便可以拼成一副画。反过来想,用一张单元格足够小的excel表格将图片蒙上一层,犹如用 一张网去切割这张图片,图片被切割成一小块一小块 ,如果网格足够细,每一小块里面的颜色几乎只有一种,这样就可以用一个三元组(RGB)来刻画 ,这样一张图片就可以由一个很大的矩阵来刻画 ,矩阵中的每一个元素都是一个 RGB三元组。最近看蛮多朋友在玩,要么只能画比较简单的,要么非常花时间。原创 2023-09-10 17:20:21 · 2295 阅读 · 1 评论 -
clickhouse DBA入门常用SQL
clickhouse DBA入门常用SQL原创 2023-08-03 10:51:27 · 1656 阅读 · 1 评论 -
pg_archivecleanup清理wal日志
pg_archivecleanup代码中仅进行了wal日志文件名的对比,没有实现对WAL日志名及对应生成时间的判断。在WAL日志未被重命名时,时间与日志名顺序名一致,没有问题。一旦WAL日志被重命名,pg_archivecleanup清理就可能清理掉比指定文件更新的WAL日志。因此,在涉及主从尤其是有lag的情况下,非必要不建议使用。真正到了必要的时刻,例如剩余磁盘空间已不足10%甚至5%,必须先检查从库所需日志与待清理日志间的新旧。原创 2023-07-26 21:21:32 · 3110 阅读 · 1 评论 -
SUSE Linux 12,centos 6,centos 7修改主机名
SUSE Linux 12,centos 6,centos 7修改主机名原创 2020-06-28 16:53:03 · 2843 阅读 · 1 评论 -
postgresql FDW概念、用法与原理小结
FDW (foreign-data wrapper,外部数据包装器),可以让我们在PG中使用SQL查询极为丰富的外部数据原创 2023-01-19 19:09:58 · 10497 阅读 · 0 评论 -
将postgresql配置为Linux服务管理 systemctl service
发行版安装的数据库在装完后会自动添加数据库服务,但编译安装的不会,需要手动添加。如果后面修改了postgresql文件,需要reload。加执行权限 chmod +x postgresql。通过下面的命令添加到服务中。相应的,可通过下述命令删除。PGCE课程《服务管理》原创 2022-12-17 23:02:13 · 2066 阅读 · 1 评论 -
Python 数据获取(五)—— 获取客户端渲染方式数据
前面的例子都是获取的服务器渲染数据,本篇来尝试获取客户端渲染数据,案例就是CSDN,尝试用魔法打败魔法(狗头。 目标:获取指定博主ID所有的文章标题、链接、阅读量。也就是要获取的数据在不在源代码中 右键,查看网页源码,发现标题、链接、阅读数、点赞数等都有,开心地以为这是服务器渲染方式。 但是再往下多滚几页,再点查看源码,你会发现源码一点变化都没有。所以其实这是客户端渲染方式,源码看到的那些数据只是框架而已。 既然如此,应该直接去取它推送的格式化数据。原创 2020-05-03 22:26:03 · 2474 阅读 · 0 评论 -
ansible DBA常用场景命令小集
这个小工具真的好用,运维方便了很多。随着慢慢用的变多,整个单独的文档记录一些平时需要批量处理的小场景和命令。因为场景通常比较简单,基本都是用的 Linux命令和shell脚本,也没什么学习成本。理论上只要能写好shell脚本、传到目标库、执行,足够干n多事情了。原创 2022-11-13 12:41:08 · 941 阅读 · 0 评论 -
postgresql 格式化查询树为图片 —— pgNodeGraph 与 pg_node2graph
postgresql 中提供了一些debug参数,将SQL的查询树和执行计划树打印在错误日志中,并提供了简单的格式化(缩进),但实际上依旧是非常难分析的。其中 pg_node2graph 是执行脚本,nodes目录存放待分析文件,images存放格式化后的图片。pg_node2graph工具是在pgNodeGraph的基础上做了些加强,这里我们以它进行测试。github中的文档没有写,但是如果不按以下处理执行时会报错。我们看一个例子,查询树的默认输出是什么样的。已经很复杂,肉眼难以直接分析。......原创 2022-08-28 23:28:13 · 2051 阅读 · 1 评论 -
Clickhouse 系统表授权与行策略
一、 需求背景业务方希望用户能访问系统表,但只能访问到本用户相关数据,不要访问到其他用户。系统表列表:表名 描述 system.users 用户 system.columns 字段 system.parts 分区 system.tables 表 system.databases 数据库 system.roles 角色 system.data_skipping_indices 二级索引 system.grants原创 2022-03-10 17:48:37 · 3493 阅读 · 0 评论 -
ansible权威指南笔记(四)—— roles的用法
一、 roles简介自1.2版本引入的新特性,用于层次性、结构化地组织playbook。roles能够根据层次型结构自动装载变量文件、tasks以及handlers等,只需要在playbook中使用include指令即可。简单来讲,roles就是通过分别将变量、文件、任务、模板及处理器放置于单独的目录中,并通过include调用它们的一种机制,类似于其他开发语言中的项目。二、roles目录结构每个角色,以特定的层级目录结构进行组织Roles各目录作用roles/project/:原创 2020-03-12 00:52:58 · 4754 阅读 · 1 评论 -
ansible权威指南笔记(三)—— playbook高级用法
一、 模板 templates本质是嵌套有脚本(使用模板编程语言Jinja2编写)的文本文件,借助模板生成真正的配置文件。1. Jinja2语言使用字面量,有下面形式:字符串:使用单引号或双引号 数字:整数,浮点数 列表:[item1, item2, ...] 元组:(item1, item2, ...) 字典:{key1:value1, key2:value2, ...} 布尔型:true/false 算术运算:+, -, *, /, // 整除, %, ** 比较操作:原创 2019-10-12 15:15:24 · 2921 阅读 · 1 评论 -
ansible权威指南笔记(二)—— playbook基础
一、 playbook简介本质上playbook就是ansible命令的合集,是个采用YAML语言编写的脚本文件。图解playbook:playbook由多条play组成,每条play都有一个task对应的操作,然后调用modules,应用在主机清单host上,通过ssh远程连接,从而控制远程主机或者网络设备Playbook核心元素Hosts:待执行的远程主机列表 Tasks:要做的任务集 Variables:内置变量或自定义变量 Templates:可替换模板文件中的变量并实原创 2021-06-19 20:32:40 · 1694 阅读 · 0 评论 -
python发送各类QQ邮件 —— smtplib与email模块
SMTP是发送邮件的协议,Python 2.3版本开始内置对SMTP的支持,可以发送纯文本邮件、HTML邮件以及带附件的邮件。本文以QQ邮件为例,用python发送各类邮件。Python对SMTP支持主要使用smtplib和email两个模块,email模块负责构造邮件,smtplib模块负责发送邮件。一、 传输简单邮件 smtplib模块1. SMTP类定义smtplib.SMTP([host[,port[,local_hostname[,timeout]]]])作为SMTP的构原创 2019-12-01 02:04:29 · 10778 阅读 · 4 评论 -
SqlServer 通过扩展事件审计DDL操作
审计对象create、alter、drop操作,即object_created、object_altered、object_deleted事件。设置过滤条件:ddl_phase=commit:只记录提交的ddl操作,对应 [equal_uint64]([ddl_phase],(1)) database_id<>2:不记录临时对象操作,database_id=2为tempdbCREATE EVENT SESSION [audit_ddl] ON SERVER ADD EVENT s原创 2021-07-29 15:54:18 · 1765 阅读 · 0 评论 -
dd 自动压测与结果解析脚本
#!/bin/sh# ddtest_write_serial.shbs_list=(256k 1024k 10M)cnt_list=(100 200 20)for i in {0..2}dofor j in {0..2}dologfile=dd_${bs_list[$i]}_cnt${cnt_list[$i]}_${j}.txtecho -e "test ${j} started\n" > $logfileecho -e "started time `date`\n" &g原创 2021-07-19 22:29:57 · 1965 阅读 · 0 评论 -
Oracle修改instance name
一、 目标将 instance name 由prodcdb 改为 paas,需要关闭数据库修改原实例名SQL> select instance from v$thread;INSTANCE--------------------------------------------------------------------------------prodcdbSQL> show parameter nameNAME .原创 2019-04-23 15:10:56 · 3584 阅读 · 0 评论 -
pg服务管理 与 psql常用命令
一、 服务启停与创建1. 服务启动启动方法直接运行postgres进程启动 使用pg_ctl命令#直接运行postgres进程启动postgres -D $PGDATA &#使用pg_ctl命令pg_ctl -D $PGDATA start在Linux 7可以配置/usr/lib/systemd/system/postgresql.service文件,以sys...原创 2019-09-24 19:41:54 · 8313 阅读 · 1 评论 -
PostgreSQL DBA 日常管理 SQL
背景1、AWR 数据库健康报告,《PostgreSQL AWR报告(for 阿里云ApsaraDB PgSQL)》《如何生成和阅读EnterpriseDB (PPAS(Oracle 兼容版)) AWR诊断报告》2、查看TOP SQL,以及SQL优化方法《PostgreSQL 如何查找TOP SQL (例如IO消耗最高的SQL) (包含SQL优化内容) - 珍藏级》3、监控指...转载 2019-07-12 21:16:13 · 3314 阅读 · 2 评论 -
shell脚本编程笔记(十一)—— sed进阶
xxx原创 2020-12-31 01:21:48 · 2247 阅读 · 0 评论 -
shell脚本编程笔记(十)—— 正则表达式
一、定义正则表达式是你所定义的模式模板 (pattern template),利用通配符来描述数据流中的一个或多个字符。Linux工具(比如sed或gawk)能够在处理数据时用它对数据进行模式匹配。如果数据匹配模式,它就会被接受并进一步处理;否则,它就会被滤掉。2 正则表达式的类型使用正则表达式最大的问题在于有不止一种类型的正则表达式。 Linux中的不同应用程序可能会用不同类型的正则表达式。这其中包括编程语言(Java、 Perl和Python)、 Linux实用工具(sed、ga..原创 2020-12-13 20:22:01 · 1923 阅读 · 0 评论 -
shell脚本编程笔记(十二)—— gawk程序
gawk 程序虽然sed编辑器是非常方便自动修改文本文件的工具,但其也有自身的限制。通常你需要一个用来处理文件中的数据的更高级工具,它能提供一个类编程环境来修改和重新组织文件中的数据。这正是gawk能够做到的gawk程序是Unix中的原始awk程序的GNU版本。 gawk程序让流编辑迈上了一个新的台阶,它提供了一种编程语言而不只是编辑器命令。在gawk编程语言中,你可以做下面的事情:q 定义变量来保存数据;q 使用算术和字符串操作符来处理数据;q 使用结构化编程概念(比如if-then语句和循环).原创 2020-12-19 00:08:29 · 2877 阅读 · 0 评论 -
shell脚本编程笔记(九)—— 初识流编辑器 sed
一、 简介sed编辑器被称作流编辑器(stream editor),和普通的交互式文本编辑器恰好相反。在交互式文本编辑器中(比如vim),你可以用键盘命令来交互式地插入、删除或替换数据中的文本。流编辑器则会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。sed编辑器可以根据命令来处理数据流中的数据,这些命令要么从命令行中输入,要么存储在一个命令文本文件中。 sed编辑器会执行下列操作。一次从输入中读取一行数据。(这个很重要)(2) 根据所提供的编辑器命令匹配数据。(3) 按照命令修改原创 2020-12-13 00:48:51 · 2526 阅读 · 1 评论 -
shell脚本编程笔记(八)—— 脚本函数
函数是一个脚本代码块,可以为其命名并在代码中任何位置重用。要在脚本中使用该代码块时,只要使用所起的函数名就行了(这个过程称为调用函数)。一、 基本的脚本函数1.创建函数有两种格式可以用来在bash shell脚本中创建函数。函数名必须是唯一的,否则可能会有问题。如果重定义了函数,新定义会覆盖原定义,且不会产生任何错误消息。第一种格式采用关键字function,后跟分配给该代码块的函数名。function name {commands}第二种格式更接近于其他编程语言中定义函数的方.原创 2020-12-12 14:17:39 · 2501 阅读 · 1 评论 -
MySQL 定期新增分区脚本
#!/bin/bash#按年分区,每年的12月份执行该脚本table=tablexxxmysql=/usr/local/mysql/bin/mysqluser=xxxpassword=xxxx#MySQL添加分区的时候,不需要指定字段名称str_0="alter TABLE $table add partition ("str_1="PARTITION p"str_2="VALUES LESS THAN (unix_timestamp('"str_4=") ENGINE = Inn.转载 2020-12-08 18:33:20 · 1970 阅读 · 0 评论 -
ansible权威指南笔记(一)—— 安装配置、常用命令与模块
批量管理linux服务器指的是:批量执行命令、下发文件等等一、 安装ansible安装epel源 #编辑/etc/yum.repos.d/epel.repo,注释mirrorlist,打开baseurlyum install epel-release -y 1.2: 安装ansible #ansible版本,如果这个命令运行有问题的话,多运行几次yum list ansibleyum install ansible -y 1.3: ansible查看帮助 ansible原创 2020-11-27 15:30:22 · 5762 阅读 · 1 评论 -
ssh 基于key登录配置及原理分析
WAL机制简介WAL即 Write-Ahead Logging,是一种实现事务日志的标准方法。WAL 的中心思想是先写日志,再写数据,数据文件的修改必须发生在这些修改已经记录在日志文件中之后。采用WAL日志的数据库系统在事务提交时,WAL机制可以从两个方面来提高性能:多个client写日志文件可以通过一次 fsync()来完成 日志文件是顺序写的,同步日志的开销要远比同步数据页的开销要小...原创 2019-11-13 22:04:12 · 4699 阅读 · 1 评论 -
oracle、sqlserver、postgresql、mysql 批量kill会话脚本汇总
备份对DB是否有影响 热备 -- 可在DB运行时备份,对DB操作无影响 温备 -- 可在DB运行时备份,但对DB操作有影响,例如会加全局读锁等 冷备 -- 在DB停止时备份备份后文件内容 逻辑备份 -- 备份文件可读,通常是sql语句或表实际数据(mysqldump) 物理备份 -- 备份DB物理文件(ibbackup,xtr...原创 2020-10-24 12:54:40 · 3373 阅读 · 1 评论 -
SQL Server 动态行转列(参数化表名、分组列、行转列字段、字段值)
一、 构造测试数据--创建测试表IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[TestRows2Columns]') AND type in (N'U'))DROP TABLE [dbo].[TestRows2Columns]GOCREATE TABLE [dbo].[TestRows2Columns]( [Id] [int] IDENTITY(1,1) NOT NULL,转载 2020-10-23 18:32:13 · 7839 阅读 · 1 评论 -
SqlServer 如何插入图片和导出图片数据
SqlServer 2005开始可以通过OPENROWSET和bcp操作,下面是两种实现方法。一、 示例1SQL Server import p_w_picpath - SQL Server export p_w_picpath Extract p_w_picpath SQL Server - SQL Server export binary data1. 创建目标表USE AdventureWorks;-- Create p_w_picpath warehouse for im.转载 2019-09-01 23:02:22 · 5670 阅读 · 2 评论 -
redis运维基础
一、 常见故障分析1. 内存过高分析info 命令查看key总数是否大量增加,占用内存是否大量增加 redis-cli -h host -p port client list | grep -v "omem=0",查询输出缓冲区不为0的客户端连接,omem字段为占用的内存量(B),cmd字段为命令,从client_longest_output_list看是否输出缓冲区占用内存较大,也就是有大量的数据从Redis服务器向某些客户端输出。参考 https://carlosfu.iteye.com/bl原创 2021-01-22 16:56:51 · 2361 阅读 · 2 评论 -
MySQL慢查询分析 —— pt-query-digest 与 mysqldumpslow
查看锁请求信息方法show full proceslistinformation_schema架构下三张表主要字段含义innodb_trx ## 当前运行的所有事务trx_id #事务IDtrx_state #事务状态trx_started #事务开始时间trx...原创 2019-09-07 13:32:37 · 2299 阅读 · 1 评论 -
sqlserver 索引相关常用sql
online建索引CREATE NONCLUSTERED INDEX [Ind_name] ON [dbo].[table_name]( col1,col2 desc)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = ...原创 2020-08-25 15:30:19 · 3991 阅读 · 1 评论 -
MySQL pt-kill & pt-deadlock-logger 死锁检测
一、 pt-kill1. 常用参数 --match-command:匹配show processlist中的 Command 字段,常用的有 Query,Sleep,Binlog Dump,Connect,Delayed insert,Execute,Fetch,Init DB,Kill,Prepare,Processlist,Quit,Reset stmt,Table Dumpmysql> show processlist;+----+------+-----------+--...原创 2019-08-24 16:02:53 · 1842 阅读 · 1 评论 -
MySQL 轻量级Online DDL工具 —— gh-ost
一、gh-ost 介绍gh-ost是 GitHub 发布的一款用于 MySQL 的无触发器在线模式迁移解决方案。它是可测试的,并提供暂停,动态控制/重新配置,审计和许多操作特权。它在整个迁移过程中,对主服务器产生的工作量很少,与已迁移表上的现有工作分离。此外,它还提供了许多可操作的特权,使其更安全、可信赖且易于使用。gh-ost操作方式与现有的在线模式更改工具类似:它们以与原始表相似的方式创建幽灵表,将数据从原始表缓慢且增量地复制到幽灵表,同时应用正在进行的更改(INSERT,DELETE,UP..转载 2024-02-14 21:35:54 · 3037 阅读 · 1 评论 -
sqlserver 修改数据库隔离级别
always-on中的数据库进行某些设置,如改为单用户模式、改为sample模式等时会有如下报错:MSG 1468, LEVEL 16, STATE 1THE OPERATION CANNOT BE PERFORMED ON DATABASE “TESTDB” BECAUSE IT IS INVOLVED IN A DATABASE MIRRORING SESSION OR AN AVAI...原创 2020-09-28 19:15:22 · 5240 阅读 · 1 评论 -
pt-online-schema-change
pt-table-checksum使用须知1、根据测试,需要一个即能登录主库,也能登录从库的账号;2、只能指定一个host,必须为主库的IP;3、在检查时会向表加S锁;4、运行命令之前需要从库的同步IO和SQL进程是YES状态5、pt-table-checksum是当前MySQL主从数据库数据一致性校验比较好的工具,但也会对服务器性能造成影响,尽管影响的范围有限,在进行每个chunk检查校验时会对chunk中涉及的表行加锁,所以,检验还是尽量在业务低峰期进行操作;6、pt-table-che转载 2020-12-20 18:22:45 · 2604 阅读 · 0 评论