- 博客(159)
- 收藏
- 关注
原创 oracle统计信息
estimate_percent:采样率,0.0000001~100,一般设置为30degree :设置cpu负载method_opt :直方图收集策略(for all columns size 1:所有列不收集,for all columns size skewonly:对所有列自动判断是否收集,for all columns size auto:对出现在where条件中的列自动判断是否收集,for all columns size repeat:当前哪些列收集统计信息,还对那些列收集)
2023-10-24 20:26:44
1465
原创 mysql-强制InnoDB恢复
只有在紧急情况下才将innodb_force_recovery设置为大于0的值,这样才能启动和转储表。在此之前,确保有数据库的备份副本,以备需要重新创建时使用。值为4或更大可能永久损坏数据文件。只有在数据库的单独物理副本上成功测试了innodb_force_recovery设置后,才能在生产服务器实例上使用4或更大的innodb_force_recovery设置。当强制恢复时,应该始终以innodb_force_recovery=1开始,并且只在必要时增量地增加值。
2023-10-09 15:22:19
727
原创 mysql-隔离级别
一个事务只能读取另一个事务已经提交的数据【无法解决不可重复读的问题】在同一个事务中、多个相同的查询返回相同的结果。一个事务读取到了另一个事务没有提交的数据。MySQL 读已提交。
2023-10-09 11:39:06
160
原创 GTID参数
二进制日志中的事件使用多种格式记录。这些称为基于语句的复制 (SBR) 或基于行的复制 (RBR)。第三种类型是混合格式复制 (MIXED),它自动使用 SBR 或 RBR 复制,以便在适当的时候利用 SBR 和 RBR 格式的优点。gtid_owned:只读参数enforce_gtid_consistency,gtid_mode:控制gtid的开关,在5.7之前是静态参数,修改需要重启数据库,5.7之后的版本升级为动态参数,可在线更改off:所有新事物和复制中的事务都必须是匿名事务。
2023-10-08 15:09:35
135
原创 mysql-执行计划
id相同表示加载表的顺序是从上到下。id不同id值越大,优先级越高,越先被执行。id有相同,也有不同,同时存在。id相同的可以认为是一组,从上往下顺序执行;在所有的组中,id的值越大,优先级越高,越先执行。ID为NULL、最后执行【一般出现在UNION场景】
2023-10-04 17:10:08
700
1
转载 InnoDB Cluster故障处理手册
当集群中有部分节点出现UNREACHABLE状态,此时集群无法做出决策,会出现以下局面,此时只剩下一个活跃节点,此节点只能提供查询,无法写入,执行写入操作会hang住。当出现磁盘损坏、链路问题或操作系统问题或数据库bug导致磁盘损坏,当前正在使用的日志文件损坏,导致无法提供应用访问。当出现磁盘损坏、链路问题或操作系统问题或数据库bug导致磁盘损坏、数据盘出现大量坏块, 导致无法提供应用访问。当出现磁盘损坏、网络问题或操作系统问题或数据库bug出现服务器中断或者关机,单台节点损坏不影响应用正常访问。
2023-09-28 14:28:05
1216
原创 PG-多版本并发控制
多版本并发控制(Multi-Version Concurrency Control,MVCC),是数据库中并发访问数据时保证数据一致性的一种方法。
2023-09-18 17:35:08
223
原创 Postgresql与执行计划相关的配置项
在PostgreSQL中有一些以“ENABLE_”开头的参数,这些参数提供了影响查询优化器选择不同执行计划的方法。有时,如果优化器为特定查询选择的执行计划并不是最优的,可以设置这些参数强制优化器选择一个更好的执行计划来临时解决这个问题。一般不会在PostgreSQL中配置来改变这些参数值的默认值,因为通常情况下,PostgreSQL不会走错执行计划。PostgreSQL走错执行计划是统计信息收集得不及时导致的,可通过更频繁地运行ANALYZE来解决这个问题,使用“ENABLE_”只是一个临时的解决方法。
2023-09-18 17:00:33
365
原创 PostgreSQL执行计划
这种方式适用于较小的表可以完全放于内存中的情况,这样总成本就是访问两个表的成本之和。但是如果表很大,不能完全放入内存,优化器会将它分割成若干不同的分区,把不能放入内存的部分写入磁盘的临时段,此时要有较大的临时段从而尽量提高I/O的性能。在嵌套循环中,内表被外表驱动,外表返回的每一行都要在内表中检索找到与它匹配的行,因此整个查询返回的结果集不能太大(大于1万不适合),要把返回子集较小的表作为外表,而且在内表的。索引扫描,就是在索引中找出需要的数据行的物理位置,然后再到表的数据块中把相应的数据读出来的过程。
2023-09-17 16:51:35
638
原创 PG-事务、并发和锁
原子性(Atomicity):事务必须以一个整体单元的形式进行工作,对于其数据的修改,要么全都执行,要么全都不执行。如果只执行事务中多个操作的前半部分就出现错误,那么必须回滚所有的操作,让数据在逻辑上回滚到原先的状态。·一致性(Consistency):在事务完成时,必须使所有的数据都保持在一致状态。·隔离性(Isolation):事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务是不会查看中间状态的数据的。
2023-09-17 14:17:28
406
原创 pg-备份和还原
PostgreSQL中提供了pg_dump、pg_dumpall命令进行数据库的逻辑备份。pg_dump与pg_dumpall命令的功能差不多,只是pg_dumpall是将一个PostgreSQL数据库集群全部转储到一个脚本文件中,而pg_dump命令可以选择一个数据库或部分表进行备份。使用pg_dump命令甚至可以在数据库处于使用状态时进行完整一致的备份,它并不阻塞其他用户对数据库的访问(读或写)。pg_dump生成的备份文件可以是一个SQL脚本文件,也可以是一个归档文件。
2023-09-16 23:20:37
1621
原创 pg服务-配置文件管理
-PostgreSQL中支持以下几种验证方法。·trust:无条件地允许连接。此方法允许任何可以与PostgreSQL数据库服务器连接的用户以任意PostgreSQL数据库用户身份进行连接,不需要口令或任何其他认证。·reject:无条件地拒绝连接。reject行可以阻止一个特定的主机连接,而允许其他主机连接数据库。这相当于设置了一个黑名单。·md5:要求客户端提供一个MD5加密的口令进行认证。·password:要求客户端提供一个未加密的口令进行认证。
2023-09-16 15:15:17
395
原创 PostgreSQL的核心架构
-只有在参数logging_collect设置为“on”时,主进程才会启动Logger辅助进程。在PostgreSQL中,BgWriter辅助进程是把共享内存中的脏页写到磁盘上的进程。当向数据库中插入或更新数据时,并不会马上把数据持久化到数据文件中。这主要是为了提高插入、更新、删除数据的性能。BgWriter辅助进程可周期性地把内存中的脏数据刷新到磁盘中,刷新频率既不能太快,也不能太慢。如果一个数据块被改变了多次,而此时刷新频率又太快,那么这些改变每次都会被保存到磁盘中,这会导致I/O次数增多。
2023-09-14 23:33:24
442
原创 pg~用户和角色
PostgreSQL中的权限是按以下几个层次进行管理的: 1 )首先管理赋在用户特殊属性上的权限,如超级用户的权限、创建数据库的权限、创建用户的权限、LOGIN权限,等等。2 )然后是在数据库中创建模式的权限。3 )接着是在模式中创建数据库对象的权限,如创建表、索引等。4 )之后是查询表、向表中插入数据、更新表、删除表中数据的权限。5 )最后是操作表中某些字段的权限。
2023-09-14 19:45:43
115
原创 pg~schmeas
模式(Schema)是数据库中的一个概念,可以将其理解为一个命名空间或目录,不同的模式下可以有相同名称的表、函数等对象而不会产生冲突。提出模式的概念是为了便于管理,只要有权限,各个模式的对象可以互相调用·允许多个用户使用同一个数据库且用户之间又不会互相干扰。·把数据库对象放在不同的模式下组织成逻辑组,使数据库对象更便于管理。·第三方的应用可以放在不同的模式中,这样就不会和其他对象的名字产生冲突了。
2023-09-14 15:55:46
86
原创 mysql基本信息查询
MDL的最大等待时间由lock_wait_timeout参数决定,其默认值为31536000(365天)。在使用工具进行DDL操作时,这个值就不太合理。事实上,pt-online-schema-change和gh-ost对其就进行了相应的调整,其中,前者60s,后者3s。MDL出现的初衷就是为了保护一个处于事务中的表的结构不被修改。
2023-08-05 13:56:57
462
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人