自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 AWS JDBC Driver连接中国区的Aurora需要配置参数 enableClusterAwareFailover=false

AWS JDBC Driver 中国区和Global区域的区别是,由于中国区Aurora Endpoint与Global的后缀不同,中国区的AWS JDBC Driver其实无法识别中国区endpoint, 因为中国区的资源endpoint是以".cn" 结尾,这个endpoint不被认为是aurora的endpoint,会被认为是custom domain.其实用MySQL JDBC Driver也没啥问题的~~

2024-07-11 17:34:51 341

原创 只读副本设置了replicate-do-db但是依旧复制了别的库的query

因此,因为DML语句中的table所在的DB为shiran5, 不在replicate-do-db=shiran1,shiran2之列,所以这个指令完全不会被复制到从库。因为binlog_format=statement会告诉复制SQL线程,将复制限制到default database(即USE选择的shiran1)的语句,而shiran1是在replicate-do-db设置下的,所以SQL线程依旧会读取update shiran5.test5这个sql.---> 这个指令依旧会被复制到从库。

2024-07-10 16:48:18 514

原创 AWS Redshift - Differences on connection terminating

如果我们在使用AWS Redshift时候遇到自己的会话被杀或者中断的情况,需要细致排查或者解释,可以参考如上几项细节解释和测试步骤。

2024-07-10 12:18:22 255

原创 AWS DMS将MongoDB作为源端,是否会自动排除系统集合

对于其他引擎,如果我们遇到类似问题,也可以将metadata_manager组件的detailed debug日志打开并进行测试,这是解决DMS问题的一个常规且有效的途径。MongoDB作为AWS DMS的source endpoint,启动了system.profile,但是DMS迁移完成后,目标端没有这个集合。AWS DMS 服务的内部代码是写死的,自动skip掉所有的system集合,包括system.profile。DMS服务确实通过内部组件,默认skip掉所有的system开头的集合。

2024-07-10 09:31:23 273

原创 AWS Redshift 修改编码压缩的影响

在进行修改前,如果之前没有设置自动执行 vacuum 操作,很长时间也没有进行过手动的vacuum 操作,建议依据参考链接[2]执行vacuum,由于vacuum操作在大数据量又有很多未排序列的情况下,会占用很多资源并且比较费时,文档中建议也可以使用深层复制的方式进行优化,相应对资源的占用会相对较低,并耗时较短。在表比较大的情况下,列修改的耗时也会比较长。在集群的存储空间比较富裕的情况下,我们建议可以考虑在原表的基础上,做一个深层复制[1]创建出一个一样的新表,然后在新表上进行表结构的修改。

2024-07-10 09:21:39 247

原创 AWS Aurora PostgreSQL 集群用户名长度限制

我在测试中,从Aurora Postgres数据库中测试创建超过63bytes的Role,可以看到,输入指令以后,PG返回一个:NOTICE: identifier "xxxxx" - 即将超过63 byte的字符进行了截断。而登录的Aurora PG之后,创建的用户名,其实是受identifier length 63 bytes这个限制的[1]。当创建该用户名的时候,如果不加双引号,那么该用户名会在Postgres中以小写来创建。

2024-07-09 14:59:29 368

原创 FATAL: terminating connection due to session timeout [1022502] (ar_odbc_stmt.c:4828)

也就是说,DMS任务在启动以后,在UTC时间01:27结束了fullload,并完成了在Target Redshift的写入。的指令以后,用DMS User 当前连结的用户session并不会生效,只有在运行了alter的时间之后新建立的session,才会采用新的session timeout设置。“FATAL: terminating connection due to session timeout” 的报错与文档中的4小时空闲会话会导致Redshift断开连接的限制相符。

2024-07-09 12:11:06 1116

原创 mysqldump/AWS DMS是否可以迁移中文表

当我们的RDS MySQL 5.7库中有中文表名的时候,如果我们的mysqldump用5.7版本,或者通过AWS DMS 工具的Fullload,均是可以迁移成功的。

2024-07-09 11:03:45 109

原创 AWS Redshift内copy和unload操作如何提高性能和效率

需要注意的是,根据文档[2], 从单个文件加载数据会迫使 Redshift 执行串行化加载,这比并行加载慢得多。因此,如果我们需要将多个文件加载到单个表,我们应该使用单个COPY命令来执行表,而不是使用多个COPY命令并行执行。根据Best Practice, 为保证集群资源的最佳使用,Copy 加载的数据文件应该被放置到多个大小均匀的文件中。Redshift中没有明确写明性能控制,但是使用Parquet文件格式,会比使用CSV格式等文本文件,卸载速度提高2倍[1].

2024-07-09 10:43:12 637

原创 AWS Redshift RA3集群内存管理

如果我们的Redshift使用手动WLM,那么我们在定义每个队列所分派的内存的时候,需要手动输入这个队列所用到的内存。当我们使用手动WLM的时候,当Redshift中的query已经用掉了所有的查询槽,那么未分配的内存会由Redshift自行管理。如果我们的Redshift使用自动WLM,那么Redshift会自动管理我们业务运行的每个队列(queue)的并发级别和每个已分派查询的内存分配。我们可以通过增加使用的查询槽数来分配更多内存,例如:set wlm_query_slot_count to 3;

2024-07-08 14:09:49 703

原创 AWS 中国区:从S3导入csv到RDS PostgreSQL

【代码】AWS 中国区:从S3导入csv到RDS PostgreSQL。

2024-07-08 09:11:16 287

原创 AWS RDS 扩展支持

RDS创建以后,如果是PostgreSQL, MySQL这类引擎,会在控制台上有“Extended Support” 部分,或者显示为Enabled, 或者显示为Disabled.如果启用RDS扩展支持,那么控制台上,Extended Support会显示为Enabled. 在使用的版本结束支持以后,会自动注册到扩展支持中,并继续使用当前版本。如果选择不起用RDS 扩展支持,那么控制台上 Extended Support会显示为Disabled. 在使用版本结束支持以后,会自动并强制升级到新的版本。

2024-07-05 17:32:09 165

原创 lower_case_table_names参数与AWS RDS MySQL5.7 - 8.0升级

由于default MySQL 8 参数组为lower_case_table_names为0的设置,因此在原地升级时,选择默认参数组为目标参数组,便会遇到“The parameter value for lower_case_table_names can't be changed for MySQL 8.0 DB instances.”报错。而后选择原地升级,或者蓝绿部署的方式,均可以使用新建的MySQL 8自建参数组作为升级后的参数组,这样便可以保持lower_case_table_names一致。

2024-07-04 18:26:08 361

原创 云上RDS MySQL + 云下自建MySQL类主从创建

在完成mysqldump以后,可以启动RDS只读副本的主从复制,并通过dump建立自建MySQL从库,而后启动RDS -- 自建MySQL的主从复制。提前配置并测试本地数据库和RDS所在VPC,子网之间的网络连通性,确保我们班可以通过RDS的endpoint连接到数据库,并提前在RDS中创建我们本地从库所使用的user,赋予相应的权限(grant replication slave)。, mysql_binary_log_file_location //-- 2.2中记录的binlog位置。

2024-07-04 18:05:04 843

原创 用AWS中国区的Redshift集群访问AWS Global的RDS

可以通过Redshift Serverless eni flow log中的记录进行排查,比如此eni访问Amazon Web Service服务网段被443端口拒掉,由于443端口是去访问secretmanager的端口,因此从Redshift Serverless服务的安全组中,将outbound rule增加了443端口的开放。Redshift访问secret manager是通过443端口,如果redshift 安全组outbound rule有限制,那么需要打开443.

2024-07-04 17:48:43 385

原创 AWS RDS MySQL是否能实现登录限制类需求

此外,RDS Proxy有类似功能可以实现此需求:根据文档[2]中的RDS Proxy的IdleClientTimeout参数,您可以通过此参数指定在代理关闭客户端连接之前,客户端连接可以处于空闲状态的时长。对于RDS MySQL 5.7来说,如上功能不支持,仅能做到,一旦连续的失败登陆次数超过设定阈值,那么就会产生延迟,并且延迟随着失败次数增加而增加,上限为connection_control_max_connection_delay的设置;可能需要您在客户端方面进行设置,让客户端在超时以后主动退出。

2024-07-04 17:07:29 352

原创 AWS DMS 迁移到Kafka报错:Payload size exceeds Kafka limit

2. 再看日志中的报错信息:“Payload size exceeds Kafka limit”的原因是kafka生产者,也就是DMS发送的信息大小超过了 Kafka 所允许的最大限制。这个问题通常发生在处理大型文档或者包含大量数据的记录时,尤其是当从像 DocumentDB 这样的 NoSQL 数据库迁移数据时,因为 NoSQL 数据库往往存储较大的文档。1. 首先,从日志来看,这个报错在[TARGET_APPLY]阶段出现。因此,哪怕不看报错信息,我们也能够知道,报错是出现在目标端Kafka端的。

2024-07-04 16:48:27 587

原创 如何更改AWS RDS的VPC

需要注意的就是更改VPC仅支持单可用区实例(single-az instance), 多可用区部署的实例,或者Aurora cluster,都是不支持的。建议是先在target VPC中建立安全组(Security Group),可以让目标VPC的安全组入站出站规则都和原VPC的安全组保持一致。在Modify RDS的时候,直接更改RDS的子网组即可,需要几分钟完成。期间因为网络环境的更改,会影响RDS的客户端连接。

2024-07-04 16:08:11 92

原创 如何检查AWS RDS证书更新是否需要重启RDS实例

建议可以先在非生产环境测试证书轮换以后的应用程序连接,如果应用程序受到影响,需要更新应用侧证书捆绑包,那么可以参考文档[2]将证书捆绑包导入。若我们的应用,使用SSL证书连接数据库,那么我们需要在数据库更新证书后,及时更新应用侧的数据库证书捆绑包[1].如果我们的应用程序没有使用SSL连接RDS呢, 那么证书轮换除了特定版本会造成重启以外,没有任何影响。本文章发表比较晚了,因为在本轮北京区更新完证书以后,后续的证书都是RDS自动轮换,不再需要手动轮换。

2024-07-04 15:45:33 359

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除