- 博客(38)
- 收藏
- 关注
原创 阿里云CEN创建实验
阿里云的VPC Peering 和 AWS VPC Peering 使用上还是有点差别的,阿里云VPC Peering使用比较少了,但AWS VPC Peering使用相对还是较多的。阿里云 VPC Peering 其实相当于CEN第一代,性能跟当前的CEN二代相比还是差了点~CEN,中文名:云企业网(CEN, Cloud Enterprise Network):构建全球VPC、本地IDC互联的网络骨干。每个连接的VPC实例必须至少有两个可用区,有交换机。首先是创建CEN实例,而后添加VPC到CEN。
2025-03-17 13:16:55
259
原创 阿里云PAI Model Gallery 控制台一键部署DeepSeek step-by-step Guidance
点击“下一步”完成配置。点击“新建工作空间”
2025-02-05 17:00:51
393
原创 各知名云平台对于 MySQL TDE的支持汇总和对比
TDE: Transparent Data Encryption, 也就是透明传输加密。在MySQL community官网上有这样原文介绍:WithMySQLMySQLMySQLTDE因此,对于TDE功能,其实社区版MySQL5.7是不支持的,只有Enterprise版本才支持。而后到了MySQL 8.0版本,社区版也支持TDE插件了: All MySQL editions provide a那么,对于各大云厂商,对这个MySQL TDE的支持都如何呢?
2025-01-03 01:02:27
713
原创 阿里云:aliyun-cli和ali-instance-cli
ali-instance-cli 主要用于通过会话管理功能直接连接到你的ECS实例上,而不需要开放公网IP或者设置复杂的网络安全规则。1. aliyun cli 是一个通用的阿里云命令行接口工具,它允许用户通过命令行来管理和操作阿里云的各种服务。aliyun cli 和 ali-instance-cli 都是阿里云提供的命令行工具,但它们的功能和使用场景有所不同。aliyun-cli和aws的aws cli是一样的用途和概念。和aws的session manager是一样的概念。
2024-12-02 20:23:06
815
原创 AWS RDS Oracle hit ORA-39405
当实例使用过时的时区文件版本时,可能会发生停机。有个误区,是可能此时大家会检查RDS Oracle的小版本,而后将目标端把版本升级到更高版本。但是timezone_file的版本,不一定会跟着RDS Oracle的升级而升级。正确的方式是,根据文档[1], 首先将RDS Oracle的选项组,如果是默认选项组,那么需要更改为自建选项组。这个报错是由于timezone_file的版本,源端比目标端高,于是impdp不支持。在原生Oracle上,将timezone_file的patch应用,完成升级即可解决。
2024-11-02 15:30:45
779
原创 使用AWS Redshift从AWS MSK中读取数据
Amazon Redshift 流式摄取的目的是简化将流式数据直接从流式服务摄取到 Amazon Redshift 或 Amazon Redshift Serverless 的过程。官方文档[1]中有详细步骤。用unauthenticated, IAM 的方式均可以进行连接,只不过使用的是不同端口:9092或者9098。
2024-11-02 11:55:32
490
原创 AWS RDS MySQL内存使用
AWS RDS所拥有的内存(实例类型),和数据库能够使用的内存是不同的。DBInstanceClassMemory 的75%用于 InnoDB Buffer Pool 缓冲池空间,也就是innodb_buffer_pool_size. 默认情况下,但是如果我们想降低innodb_buffer_pool_size的值,那么我们可以自建一个参数组,然后修改自定义参数组中的参数值来降低这个值[2]。
2024-11-02 10:29:29
1118
原创 AWS Redshift把老用户权限赋予新用户
我们可以用这个脚本,将user A的权限寻找出来,并在ddl编辑中替换成B,这样可以直接运行这个view产生的ddl,给B赋予所有A的权限。建议运行时将第一行CREATE OR REPLACE VIEW admin.v_generate_user_grant_revoke_ddl 改为了 public.v_generate_user_grant_revoke_ddl。Redshift内已经有了一个user A,不知道赋予了A什么权限,希望将所有权限都赋予User B。
2024-09-30 17:19:07
757
1
原创 AWS Redshift 如何让新的table创建即自动赋予权限
Redshift这样设置的原因是,Redshift底层是与PostgreSQL 8版本兼容的,根据PostgreSQL官网,这个设置本身就是PostgreSQL对于权限的管理,而不是Redshift这个服务对于权限的特定设置。对于schema1后续创建的future table,也不会默认赋予user1 select权限,需要每次创建了新的table以后手动grant权限。这样schematest1里面新创建的table就也默认对user1有select权限了。
2024-09-30 16:48:06
811
原创 AWS DMS遇到 Error : no handler found for uri
所以其实是因为我们的目标端OpenSearch/ElasticSearch版本高于7.*, 所以DMS在查数据的时候,必须插入为/test/_doc, 而不是/test/doc.首先,从报错[TARGET_LOAD] 部分就可以看到,整个任务在Fullload阶段就失败了,连Index都没创建出来,根本没到CDC阶段。我们在Endpoint Settings里加了这样一项:useNewMappingType=true。我检查了跟文档中的描述没什么问题,那么为什么我会遇到这个报错呢?
2024-08-05 16:24:23
721
原创 AWS 中国区同账号0etl integration配置步骤
所以超出的长度无法传入 redshift 中.有些数据类型会在导入 redshift 时会被转换成 varchar,这些类型的数据在通过 zero-ETL 传入 redshift 时,如果超过 65535 时都有可能遇到报错。并且0etl处于异常状态的时候,不支持修改这个integration,也就是无法通过修改表增加主键,再把这个表reload一遍。同时根据如下文档,在创建集成后添加筛选条件,Aurora 会重新评估筛选条件,所有受影响的表都需要重新同步。下一篇会更新跨账号配置0etl步骤。
2024-07-24 15:29:48
1462
原创 AWS DocumentDB如何开启变更流
2. 默认情况下,DocumentDB集群中变更流保留3小时(10800秒), 我们可以通过修改DocumentDB参数组中的change_stream_log_retention_duration 参数来修改保留时间,最长可以保留7天。这个参数change_stream_log_retention_duration为动态参数,修改这个参数也是不需要重启DocumentDB集群的。
2024-07-23 20:48:28
390
原创 AWS DMS MySQL为源端,如何在更改分区的时候避免报错
文档[1]中描述MySQL compatible Databases作为DMS任务的源端,不支持MySQL 分区表的 DDL 更改。AWS DMS 不支持 MySQL 分区表的 DDL 更改。要跳过 CDC 期间因分区 DDL 更改而暂停表的情况,请将。
2024-07-22 14:56:58
595
原创 将AWS RDS MySQL实例从存储未加密改为加密的方案
之后,选定此快照,通过复制(copy)的方式,复制一个快照的副本【3】,而copy的过程中,我们可以选定KMS加密并选定使用加密的key。在创建出新的加密RDS以后,我们可以使用Database Migration Service【5】服务,创建一个fullload + CDC,全量+持续复制任务,指定我们的未加密的RDS为源,已经加密的新的RDS为目标端。将我们的未加密的RDS中的数据,全部迁移到已经加密的新的RDS中。另一种方式是,我们创建一个新的RDS,并在创建RDS的过程中,选择加密RDS的存储。
2024-07-19 17:25:19
1313
1
原创 用ssh tunnel的方式设置 AWS DocumentDB 公网访问
我们需要DocumentDB在同一个VPC内的,具有公网IP的EC2,来实现ssh tunnel的方式。在下面的测试例子中,我们将DocumentDB所在VPC内的公网访问的EC2 跳板机标记为EC2 A,然后从EC2 B上去访问DocumentDB:EC2 B --> EC2 A --> DocumentDB。AWS DocumentDB的设定是只允许VPC内进行访问的,同时官方文档给了步骤,通过ssh tunnel的方式,可以从公网,或者从VPC外的网络,对DocumentDB进行访问。
2024-07-18 11:59:13
1307
原创 AWS backup服务和 RDS snapshot的关系
RDS 控制台的auto backup和AWS backup的连续备份是一个概念,也是最长保留周期35天,每天备份一次,不能选择备份频率。--删除所有 Amazon RDS 备份计划,并保护该资源的持续备份。首先,其实RDS的snapshot,自动备份和手动备份,就是调用的AWS backup服务,只不过是通过RDS控制台,API等等进行控制和管理的。要在 Amazon RDS 中查看我们设置的持续备份,请在Amazon RDS 控制台,选择维护和备份,然后找到自动备份字段中返回的子位置类型。
2024-07-18 10:20:29
1447
原创 AWS Redshift 类型升级后物化视图丢失?
因此我们确定了,因为我们的所有Materialized View创建时都是BACKUP NO, 并且刚好是用了elastic resize方式将dc2集群升级到ra3类型,才导致了升级集群类型之后,MV的消失。接下来我们就继续查看,创建这些Materialized View的DDL, 然后惊喜地发现,创建MV的语句都有parameter BACKUP NO 这样的字样。那么此时再查询MV的DDL,以及文档中的定义,也是可以排查出原因的。然后我们惊讶地发现,我们没删MV呀哈哈哈。
2024-07-17 20:50:32
1042
原创 AWS DMS迁移表莫名报错列数不匹配
所以,这个问题的原因很简单,就是DMS任务源端的这张表里有LOB字段,同时还没有Primary Key,所以在目标端就被drop了,DMS迁移任务是首先迁移没有LOB字段的列的,因此DMS任务启动以后的一段时间内这个表不会报错,但是终究还是会因为LOB列被drop而报错。表面上,出现这个报错,大家就不会从报错继续往下查了,一般就认为是我们自己无意中在源端或者目标端更改了table DDL,源端增加或者目标端去掉了一列。是这样:通过这个表的名字,比如test.test1, 搜索一下日志。那么如何深入排查呢?
2024-07-16 16:15:38
633
原创 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
825
原创 只读副本设置了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
650
原创 AWS Redshift - Differences on connection terminating
如果我们在使用AWS Redshift时候遇到自己的会话被杀或者中断的情况,需要细致排查或者解释,可以参考如上几项细节解释和测试步骤。
2024-07-10 12:18:22
519
原创 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
348
原创 AWS Redshift 修改编码压缩的影响
在进行修改前,如果之前没有设置自动执行 vacuum 操作,很长时间也没有进行过手动的vacuum 操作,建议依据参考链接[2]执行vacuum,由于vacuum操作在大数据量又有很多未排序列的情况下,会占用很多资源并且比较费时,文档中建议也可以使用深层复制的方式进行优化,相应对资源的占用会相对较低,并耗时较短。在表比较大的情况下,列修改的耗时也会比较长。在集群的存储空间比较富裕的情况下,我们建议可以考虑在原表的基础上,做一个深层复制[1]创建出一个一样的新表,然后在新表上进行表结构的修改。
2024-07-10 09:21:39
337
原创 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
461
原创 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
1634
原创 mysqldump/AWS DMS是否可以迁移中文表
当我们的RDS MySQL 5.7库中有中文表名的时候,如果我们的mysqldump用5.7版本,或者通过AWS DMS 工具的Fullload,均是可以迁移成功的。
2024-07-09 11:03:45
196
原创 AWS Redshift内copy和unload操作如何提高性能和效率
需要注意的是,根据文档[2], 从单个文件加载数据会迫使 Redshift 执行串行化加载,这比并行加载慢得多。因此,如果我们需要将多个文件加载到单个表,我们应该使用单个COPY命令来执行表,而不是使用多个COPY命令并行执行。根据Best Practice, 为保证集群资源的最佳使用,Copy 加载的数据文件应该被放置到多个大小均匀的文件中。Redshift中没有明确写明性能控制,但是使用Parquet文件格式,会比使用CSV格式等文本文件,卸载速度提高2倍[1].
2024-07-09 10:43:12
814
原创 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
816
原创 AWS RDS 扩展支持
RDS创建以后,如果是PostgreSQL, MySQL这类引擎,会在控制台上有“Extended Support” 部分,或者显示为Enabled, 或者显示为Disabled.如果启用RDS扩展支持,那么控制台上,Extended Support会显示为Enabled. 在使用的版本结束支持以后,会自动注册到扩展支持中,并继续使用当前版本。如果选择不起用RDS 扩展支持,那么控制台上 Extended Support会显示为Disabled. 在使用版本结束支持以后,会自动并强制升级到新的版本。
2024-07-05 17:32:09
278
原创 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
600
原创 云上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
1016
原创 用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
492
原创 AWS RDS MySQL是否能实现登录限制类需求
此外,RDS Proxy有类似功能可以实现此需求:根据文档[2]中的RDS Proxy的IdleClientTimeout参数,您可以通过此参数指定在代理关闭客户端连接之前,客户端连接可以处于空闲状态的时长。对于RDS MySQL 5.7来说,如上功能不支持,仅能做到,一旦连续的失败登陆次数超过设定阈值,那么就会产生延迟,并且延迟随着失败次数增加而增加,上限为connection_control_max_connection_delay的设置;可能需要您在客户端方面进行设置,让客户端在超时以后主动退出。
2024-07-04 17:07:29
437
原创 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
690
原创 如何更改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
204
原创 如何检查AWS RDS证书更新是否需要重启RDS实例
建议可以先在非生产环境测试证书轮换以后的应用程序连接,如果应用程序受到影响,需要更新应用侧证书捆绑包,那么可以参考文档[2]将证书捆绑包导入。若我们的应用,使用SSL证书连接数据库,那么我们需要在数据库更新证书后,及时更新应用侧的数据库证书捆绑包[1].如果我们的应用程序没有使用SSL连接RDS呢, 那么证书轮换除了特定版本会造成重启以外,没有任何影响。本文章发表比较晚了,因为在本轮北京区更新完证书以后,后续的证书都是RDS自动轮换,不再需要手动轮换。
2024-07-04 15:45:33
503
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人