2023年11月27日,aws 宣布了他们的新的产品,aws无限数据库(limitless database)。我比较关注这个新产品,简单谈谈对他的看法。 大部分的信息,是来自于《AWS re:Invent 2023 – Monday Night Live Keynote with Pe […]
阿里云rds mysql更新证书的逻辑
证书更换的逻辑: 1. 只读节点是高可用版本的情况下(不适合只读节点是basic的版本), 先对只读节点的slave进行更新证书。 1.1 更新证书的过程,先把证书路径下的证书文件进行删除或者重命名。因为如果生成新证书时,在同一路径下存在同名文件,则创建失败。(证书路径是数据库中 show vari […]
用一个思维导图告诉你什么是GPT-4和如何申请GPT-4
在当前情况下,想要使用先进的GPT-4技术,只有两种途径。这款人工智能语言模型在各个领域都有着广泛的应用,然而目前要获得它的使用权并不容易。以下是可以让您体验到GPT-4功能的两种方法。 首先,您可以选择使用Poe App。这款应用提供了一个简单易用的平台,让用户能够体验到GPT-4带来的惊人能力。 […]
深度测试了一下ChatGPT
之前有泛泛的跟ChatGPT聊过数据库未来发展方向,数据库的优化工作是否可以有AI替代人类完成。 —— 这次我想问的再深入和专业一些。同时,我也用英文提问了。我希望英文给它的训练能给我更好的答案。 我先抛出了一个问题,SQL Server是否可以将普通表转换成分区表。 回答的算是中规中矩,说无法直接 […]
谈谈这次阿里云香港可用区C故障
阿里云在上周日(2022-12-18)发生了发生了香港region的可用区C的大规模故障,阿里云自己在也微信公共账号贴出了处理过程,服务影响,问题分析和改进措施。(《关于阿里云香港Region可用区C服务中断事件的说明》) 我使用阿里云不算多也不算少,2000个不到的实例,rds的mysql、pg、 […]
阿里云的rds的几个问题的探究
1. 阿里云的pg一键上云,其实是调用了pg_basebackup,这个功能不仅仅可以用在一键上云上,还能用在rds pg到rds pg的小版本升级上。 2. 阿里云的pg大版本升级过程: (一)准备阶段: 2.1 界面发起大版本升级; 2.2 原实例snapshot(注,需要打开秒级备份功能,不然 […]
pg_hba.conf文件的策略顺序
原来一直以为这个文件中,每一行的顺序是没有区别的,但是最近的一个需求,研究时发现,原来这个文件对登录的会话,是从上往下依次判断的: 具体的规则是:
1 2 3 |
1. 登录的会话,会顺着pg_hba.conf的策略一条一条往下走。 2. 如果遇到匹配到的规则,那么做成判断,是信任,还是拒绝,还是验证密码。后续就不往下走继续判断规则了。 3. 如果某一条规则不符合,没匹配成功,就继续往下走,继续做判断,直到所有的规则都判断完毕。 |
因此,如果我有一个用于备份的用户,叫anybackup(爱数备份软件),由于权限设置的 […]
数据库IO链路访问图
从千年虫bug的问题谈开去
最近微软又爆了一个千年虫的bug,微软FIP-FS反恶意软件扫描引擎由于Year 2022漏洞导致Exchange服务器无法发送邮件。 另外,本田、讴歌汽车也爆了Y2K22千年虫漏洞。 这是因为,在程序中,或者数据库中,字段类型定义成int32字段类型。而int32,一共32位,第一位表示符号,因此 […]
减少mysqlbackup 对IO压力的影响
通常情况下,我们总是系统备份的速度是越快越好。 但是,有时候这会导致IO压力,我们需要削峰处理。 我之前写过一个减少rman备份对OLTP系统的影响,其实mysql的备份(使用 MySQL Enterprise Backup)也可以采用类似的方法: 我们在mysqlbackup命令中,添加sleep […]
Oralce undo健康检查脚本
Oracle的进程,如果在os层面kill -9了,那么在v$transaction中是看不到的,需要在v$fast_start_transactions中去看。可以用下面2种方法预估回滚时间: 方法一:(利用v$fast_start_transaction) [crayon-6737b1e14cc […]
Postgresql数据库层限流脚本
Postgresql数据库层限流脚本:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
with tmp3 as (select count(*) as cnt from pg_stat_activity WHERE pid <> pg_backend_pid() and datname='mypg1' and usename='postgres' and state='idle' and query like '%select now%') select case when cnt <= 400 then (with tmp1 as ( select pg_terminate_backend(pid) from (select pid from pg_stat_activity WHERE 1=2 ) as foo1) select count(*) from tmp1 ) when cnt > 400 then (with tmp2 as ( select pg_terminate_backend(pid) from (select pid from pg_stat_activity WHERE pid <> pg_backend_pid() and datname='mypg1' and usename='postgres' and state='active' and query like '%select now%' order by backend_start limit 10) as foo2) select count(*) from tmp2 ) end as kill_if_too_many_process from tmp3 \watch 1 |
作用:程序执行的语句为类似select now语句,并且该进程是activie的,当这样的进程超过400个时,按照进程发起的先后顺序,先杀掉早期的进程。该语句每秒检查一次,每次发现有超过400个 […]