mysql 加密 en_以极少的停机时间加密运行 MySQL 或 MariaDB 的 Amazon RDS 数据库实例...
如何以极少的停机时间对未加密的 Amazon RDS MySQL 或 MariaDB 数据库实例进行加密?
上次更新时间:2020 年 8 月 19 日
我尝试为未加密的 Amazon Relational Database Service (Amazon RDS) MySQL 或 MariaDB 实例创建加密只读副本。但是我收到了以下错误:
“您无法从未加密的数据库实例创建加密只读副本。(服务:AmazonRDS;状态代码:400;错误代码:InvalidParameterCombination;请求 ID:”
如何以极少的停机时间对未加密的数据库实例进行加密?
简短描述
Amazon RDS 对加密的数据库实例有以下限制:
无法通过修改现有未加密的 Amazon RDS 数据库实例来加密该实例。
无法在未加密实例的基础上创建加密的只读副本。
执行以下操作:
1. 对您拍摄的该实例的未加密只读副本的未加密快照进行加密。
2. 从加密快照还原新的 RDS 数据库实例,以此部署新的加密数据库实例。
3. 使用 MySQL 复制功能将更改从源数据库实例同步到新的加密数据库实例。
4. 验证新的加密数据库实例与源数据库实例是否同步。
5. 切换连接,并将您的流量重定向到新数据库实例。
此过程可实现最短的停机时间。
解决方法
1. 为未加密的源 Amazon RDS 数据库实例创建临时只读副本。在此示例中,未加密的源数据库实例称为 SOURCE-UE,临时只读副本称为 TEMP-RR。
2. 连接到 TEMP-RR,然后监控副本滞后情况,直到 Seconds_Behind_Master 稳定在 0 值。这表明 TEMP-RR 与 SOURCE-EU 同步:
mysql> SHOW SLAVE STATUS \G
Seconds_Behind_Master: 0
MySQL > call mysql.rds_stop_replication;
+---------------------------+
| Message |
+---------------------------+
| Slave is down or disabled |
+---------------------------+
4. 记下来自 TEMP-RR 的 Relay_Master_Log_File 和 Exec_Master_Log_Pos 的值:
mysql> SHOW SLAVE STATUS \G
Relay_Master_Log_File: mysql-bin-changelog.000012
Exec_Master_Log_Pos: 123
5. 在
SOURCE-EU 中,设置
binlog retention hours 参数,以便在完成操作所需的时间内保留二进制日志。在以下示例中,
binlog retention hours 设置为 24 小时:
mysql> call mysql.rds_set_configuration('binlog retention hours', 24);
6. 为 TEMP-RR 拍摄快照。您也可以选择在拍摄快照后删除 TEMP-RR。
7. 复制 TEMP-RR 的快照,然后将启用加密设置为是。
8. 从已启用加密的已复制快照还原新的数据库实例。在此示例中,新的加密数据库实例称为 NEW-RR-EN。
9. 修改 SOURCE-EU 的安全组中的入站规则,以允许来自 NEW-RR-EN 的流量。如果两个数据库实例使用的安全组相同,则您可以使用与 SOURCE-EU 相同的安全组 ID 参考。从 Amazon RDS 控制台中选择数据库。选择数据库实例,然后选择连接与安全选项卡。选择安全组,然后选择入站选项卡。选择编辑,输入您的安全组 ID,然后选择保存。
注意:请确保允许从 NEW-RR-EN 到SOURCE-EU 的出站流量。
10. 登录 SOURCE-EU,设置复制用户,然后向该用户授予必要的权限:
mysql> create user repl_user@'%' identified by ‘password123’;
mysql> grant replication slave, replication client on *.* to repl_user@'%';
mysql> show grants for repl_user@'%';
注意:将 repl_user 和 password123 分别替换成您自己的复制用户名和密码。
11. 连接 NEW-RR-EN,然后建立到 SOURCE-EU 的复制连接:
mysql> CALL mysql.rds_set_external_master ( 'rds-endpoint' , 3306 , 'repl_user' , 'password123’ , 'mysql-bin.000012' , 123 , 0 );
注意:rds-endpoint 是 SOURCE-EU 的终端节点。如果未加密的源数据库实例 (SOURCE-UE) 可公开访问(数据库实例的可公开访问属性设置为是),则需要提供一个私有 IP 地址而不是 rds-endpoint。
用户名 (repl_user) 和密码 (password123) 与您在第 10 步中创建的用户名和密码相同。使用在第 4 步获得的 Relay_Master_Log_File 和 Exec_Master_Log_Pos 的值,来使用 mysql.rds_set_external_master procedure 设置复制。
12. 在 NEW-RR-EN 中,开始复制:
mysql > CALL mysql.rds_start_replication;
13. 在 NEW-RR-EN 中,确认 SOURCE-EU和 NEW-RR-EN 之间的复制保持同步。
mysql> SHOW SLAVE STATUS \G
Seconds Behind master: 0
14. 当 Seconds_Behind_Master 稳定在 0 值后,停止流量并关闭 SOURCE-EU 上的连接。停机随后开始。
注意:必须停止连接到 SOURCE-EU 的所有应用程序服务器和客户端,以确保未对 SOURCE-EU 作出任何新的更改。您还可以临时锁定 SOURCE-EU 使用的安全组。这可以阻止来自任何任何应用程序或客户端(NEW-RR-EN 以及用户执行这些操作时所使用的主机除外)的入站流量。
15. 以数据库主用户身份连接到 NEW-RR-EN并停止复制:
MySQL > call mysql.rds_stop_replication;
重要提示:运行此命令后,NEW-RR-EN 将不会从 SOURCE-EU 复制数据。
16. 停止 SOURCE-EU 和 NEW-RR-EN 之间的复制关系,以将 NEW-RR-EN 提升为独立服务器:
MySQL > call mysql.rds_reset_external_master;
17. 在所有连接字符串中指定 NEW-RR-EN 的 DNS 终端节点,以将所有应用程序、客户端和数据库连接指向 NEW-RR-EN。或者,您可以重命名 SOURCE-EU,然后修改 NEW-RR-EN,以使用与 SOURCE-EU 所用相同的名称。
18. 确认 NEW-RR-EN 上的安全组规则允许来自相应应用程序和客户端的入站流量。
19. 将应用程序和客户端均指向 NEW-RR-EN 并测试了环境后,便可以删除 SOURCE-EU。
提示:最佳实践是先在还原后的实例上测试此项操作,然后再在生产环境中应用此项操作。
mysql 加密 en_以极少的停机时间加密运行 MySQL 或 MariaDB 的 Amazon RDS 数据库实例...相关推荐
- aws rds mysql 连接_解决连接到 Amazon RDS 数据库实例的问题
如何解决连接到 Amazon RDS 数据库实例时出现的问题? 上次更新时间:2020 年 12 月 21 日 我无法连接到我的 Amazon Relational Database Service ...
- docker 安装mysql 实战文档_在docker上安装运行mysql实例
ps:实验环境是:CentOS Linux release 7.3 64位 1.获取mysql镜像 从docker hub的仓库中拉取mysql镜像 docker pull mysql 查看镜像 d ...
- mysql 数据迁移_【AWS 功能】Mysql 数据库迁移至Amazon RDS方案
今天,我们讲讲如何使用源MySQL数据库执行数据库迁移到MySQL数据库的目标Amazon RDS的方案,同时由于(源和目标数据库引擎是相同的)--模式结构.数据类型和数据库代码在源和目标数据库之间是 ...
- 全新 Amazon RDS for MySQL 和 PostgreSQL 多可用区部署选项
今天,我们宣布推出全新的 Amazon Relational Database Service (RDS) 多可用区部署选项,其事务提交延迟最多可提速 2 倍,自动故障转移时间通常少于 35 秒,并包 ...
- 全新 Amazon RDS for MySQL 和 PostgreSQL 多可用区 (Multi-AZ) 部署选项
月初,我们宣布推出全新的 Amazon Relational Database Service (RDS) 多可用区 (Multi-AZ) 部署选项 https://aws.amazon.com/rd ...
- 电信云mysql地址_天翼云 RDS数据库操作
1.RDS数据库创建好之后点击RDS实例管理找到已下信息 如图: IP : 链接地址一列下方对应的是IP:POST(ip:端口),获取冒号左边的数据就是IP地址 HOST : 端口号(获取(IP:PO ...
- 样本量极少如何机器学习?最新Few-Shot Learning综述
点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 作者丨鼓动衣衫的晚风 来源丨极市平台 导读 本文首先介绍了用小样本训练模型会导致的问题 ...
- 《乌合之众》读书笔记(part3)--在群体当中,个人的利益极少会成为强大的动因
摘抄书中论点,不代表个人观点,仅供学习参考 书籍:<乌合之众:大众心理研究>–古斯塔夫·勒庞 乌合之众 无论群体所表现出来的情感是好是坏,它们都具有的双重特点就是:极为简单和极为夸张. 尤 ...
- 谷歌扩展程序设置ajax请求允许跨域(极少人知道的解决方案)
谷歌扩展程序设置ajax请求允许跨域(极少人知道的解决方案) 参考文章: (1)谷歌扩展程序设置ajax请求允许跨域(极少人知道的解决方案) (2)https://www.cnblogs.com/ga ...
最新文章
- PNAS:土壤氮循环微生物功能特征的全球生物地理学
- Linux的kickstart安装详解
- stm32车联网监控源码_物联网DIY,STM32配合ESP8266,APP控制LED,可以绑定天猫精灵...
- 王者荣耀中有哪些获胜率高的玩法?
- 《深入剖析Tomcat》一2.2 应用程序 1
- MySQL 优化 —— SQL优化概述(优化专题开篇词)
- RJ-45接口信号定义
- mvn dependency命令
- ADS1110输入阻抗
- 基于JavaWeb的新闻发布管理系统设计与实现 毕业论文+任务书+开题报告+答辩PPT+项目源码及数据库文件
- C#分享网址到QQ空间带参数
- Fedora9的虚拟机安装
- DappRadar x BGA 7月链游报告:链游占行业用量近60%,融资额降至3亿美元
- Android studio百度地图之定位到国外
- 2016.5.27 Kal系统安装到U盘的方法,U盘启动Kali
- 汇编语言: 试编制一个程序:从键盘输入一行字符,要求第一个键入的字符必须是空格符,如不 是,则退出程序;如是,则开始接收键入的字符并顺序存放在首地址为buffer的缓冲区中(空 格符不存入),直到接收
- 城市如何缓解交通拥堵
- 几个有关智能的小问题
- 【报告分享】2020年高科技互联网行业人才趋势与关键岗位薪酬报告.pdf(附下载链接)...
- 白月黑羽教python之selenium:课后练习
热门文章
- flowjo软件使用方法_流式技术讲座流式分选技术、配色原则以及分析软件Flowjo的使用...
- java 返回两个值_Java - Number类
- python实现IIR高通低通,带通,带阻滤波器详解及应用案例
- IndexedQueueT——C#中的自定义队列
- c# 对各数据库、数据集链接字符串
- odoo10参考系列--Odoo中的安全机制
- android 绑定微信号,Android工作整理-梳理微信的登录、分享与支付
- ps自定义形状工具_ps中借助形状工具绘制卡通图
- lenovo电脑_诠释什么叫性价比?LENOVO联想ThinkPad P72/P73 ?仅售16200.00元?
- oracle视图查询机制,物化视图及日志内部机制的一点研究