华为云RDS-MariaDB从入门到精通:完整对接使用流程与SQL语法详解
前言
华为云RDS for MariaDB是一项基于云计算平台的关系型数据库服务,它基于开源MariaDB数据库引擎构建,为用户提供高可用、高性能、高安全的数据库托管能力。MariaDB作为MySQL分支的杰出代表,在语法、协议和使用方式上与MySQL保持高度兼容,使得从MySQL迁移过来的应用几乎无需修改即可无缝运行。
本文将从零开始,系统讲解华为云RDS for MariaDB的完整对接使用流程与SQL语法核心知识,内容涵盖账号准备、实例购买、多种连接方式、SQL语法详解、性能优化、备份恢复、安全配置等全链路操作,并辅以大量代码示例,帮助开发者与DBA快速上手。
需要先登录华为云控制台,点击:华为云控制台,还没有账号,点击:注册并关联,已有账号点击:登录后关联
一、准备工作:账号注册与权限配置
1.1 注册华为账号并完成实名认证
使用华为云RDS for MariaDB服务的第一步是注册华为账号并完成实名认证。访问华为云官网,点击注册按钮,按照指引填写手机号、邮箱、密码等信息完成账号注册。注册成功后,需要根据账号类型(个人或企业)完成实名认证。实名认证是使用华为云付费服务的前提条件,也是保障账号安全的重要措施。
1.2 账户充值
RDS for MariaDB采用包年/包月或按需计费模式,购买实例前需要确保账户有足够余额。按需计费模式采用先使用后付费的方式,秒级计费、按小时结算,适合业务量波动较大的场景。包年/包月模式则是一种预付费模式,购买周期越长折扣越大,适合需求量长期稳定的成熟业务。
1.3 IAM权限管理
如果企业中有多个员工需要操作RDS资源,建议使用统一身份认证服务(IAM)进行精细的权限管理。通过IAM,可以为不同职能部门的员工创建IAM用户,并授予具体的操作权限。例如,开发人员可以被授予RDS的使用权限,但不应被授予删除RDS实例等高危操作的权限。IAM服务本身免费,只需为所管理的云资源付费。
// IAM权限策略示例(JSON格式)
{
"Version": "1.1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"rds:instance:create",
"rds:instance:list",
"rds:instance:modify"
],
"Resource": ["*"]
},
{
"Effect": "Deny",
"Action": ["rds:instance:delete"],
"Resource": ["*"]
}
]
}
二、购买RDS for MariaDB实例
2.1 进入购买页面
登录华为云管理控制台,在页面左上角选择区域和项目,然后选择"数据库 > 云数据库 RDS",进入RDS管理页面。点击"购买数据库实例"进入自定义购买页面。
2.2 基础配置选型
在购买页面中,需要配置以下核心参数:
- 区域:选择实例所在的物理区域。不同区域之间的产品内网不互通,且创建后不能更换,需要根据业务用户分布和应用部署位置谨慎选择。
- 计费模式:按需计费或包年/包月。
- 数据库引擎:选择MariaDB。
- 数据库版本:华为云RDS for MariaDB目前支持10.5版本。
- 实例类型:主备或单机。主备采用一主一备的经典高可用架构,备机与主机规格一致,主机创建过程中同步创建备机。单机实例只包含一个节点,性价比高,适用于个人学习、微型网站及中小企业的开发测试环境。
- 存储类型:SSD云盘,决定实例的读写速度。
2.3 高级配置
在高级配置中,可以设置管理员账号(默认为root)的密码、VPC网络、安全组、参数模板等。安全组用于控制入方向和出方向的网络流量,建议将安全组规则设置为仅允许可信IP地址访问数据库端口(默认3306)。
配置完成后,单击"立即购买",等待实例创建完成。实例创建通常需要几分钟时间,可以在实例管理页面查看创建进度。
三、连接RDS for MariaDB实例
华为云RDS for MariaDB提供三种连接方式:数据管理服务DAS、内网连接和公网连接。
3.1 通过DAS连接(推荐)
数据管理服务(Data Admin Service,简称DAS)是一款专业的可视化数据库管理工具,提供优质的可视化操作界面,大幅提高工作效率。RDS服务默认为用户开通了远程主机登录权限,推荐使用DAS连接实例。
操作步骤:在RDS实例管理页面,找到目标实例,单击"登录"按钮,进入DAS控制台。DAS支持SQL编辑器、数据表管理、用户管理、性能监控等功能,无需安装任何客户端工具,通过浏览器即可完成所有数据库操作。
3.2 通过内网连接(ECS与RDS同VPC)
当应用部署在弹性云服务器(ECS)上,且该ECS与RDS实例处于同一区域、同一VPC时,建议使用内网IP连接。内网连接具有低延迟、高带宽、免流量费等优势。
操作步骤:
- 购买一台Linux ECS实例,确保与RDS实例在同一区域、同一VPC内。
- 测试ECS到RDS实例内网IP和端口的网络连通性。
- 在ECS上安装MariaDB客户端。
- 使用命令行连接RDS实例。
# 在ECS上安装MariaDB客户端(CentOS/RHEL)
sudo yum install -y mariadb
# 在ECS上安装MariaDB客户端(Ubuntu/Debian)
sudo apt-get update
sudo apt-get install -y mariadb-client
# 通过内网IP连接RDS for MariaDB实例
mysql -h <内网IP地址> -P 3306 -u root -p
# 输入密码后进入MariaDB命令行界面
MariaDB [(none)]> SHOW DATABASES;
MariaDB [(none)]> USE mysql;
MariaDB [mysql]> SELECT user, host FROM user;
3.3 通过公网连接
当无法通过内网IP访问RDS实例时,可以绑定弹性公网IP(EIP)进行公网连接。只有主实例和只读实例才能绑定弹性公网IP。公网连接存在一定的安全风险,建议仅在测试或临时场景下使用,且务必通过安全组限定访问源IP。
# 通过公网IP连接RDS for MariaDB实例
mysql -h <弹性公网IP地址> -P 3306 -u root -p
3.4 通过JDBC连接(Java应用)
Java应用程序可以通过JDBC驱动连接RDS for MariaDB实例。推荐使用MariaDB官方JDBC驱动或MySQL JDBC驱动(因兼容性良好)。
<!-- Maven依赖 -->
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<version>3.1.4</version>
</dependency>
// Java代码示例
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class RDSMariaDBConnector {
public static void main(String[] args) {
String url = "jdbc:mariadb://<内网IP或公网IP>:3306/<数据库名>";
String user = "root";
String password = "your_password";
try (Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement()) {
ResultSet rs = stmt.executeQuery("SELECT VERSION()");
if (rs.next()) {
System.out.println("MariaDB版本: " + rs.getString(1));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
3.5 通过Python连接
Python应用可以使用PyMySQL或mysql-connector-python库连接RDS for MariaDB。
# 安装PyMySQL
pip install pymysql
# Python代码示例
import pymysql
# 连接配置
config = {
'host': '<内网IP或公网IP>',
'port': 3306,
'user': 'root',
'password': 'your_password',
'database': 'test_db',
'charset': 'utf8mb4'
}
try:
conn = pymysql.connect(**config)
cursor = conn.cursor()
# 执行查询
cursor.execute("SELECT VERSION()")
result = cursor.fetchone()
print(f"MariaDB版本: {result[0]}")
# 创建表
cursor.execute("""
CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(200) UNIQUE,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)
""")
conn.commit()
# 插入数据
cursor.execute(
"INSERT INTO users (name, email) VALUES (%s, %s)",
('张三', 'zhangsan@example.com')
)
conn.commit()
cursor.close()
conn.close()
except Exception as e:
print(f"连接失败: {e}")
四、SQL语法详解
4.1 MariaDB与MySQL的语法兼容性
MariaDB作为MySQL的分支,在语法、协议和使用方式上与MySQL保持良好的兼容性。绝大多数针对MySQL编写的SQL语句可以在MariaDB上直接运行。然而,两者在版本演进过程中也产生了一些差异:
- 存储引擎差异:MariaDB 10.5默认使用InnoDB存储引擎,但某些版本中MariaDB将XtraDB作为默认存储引擎(InnoDB的增强版)。
- 系统变量差异:部分系统变量名称和默认值在MariaDB与MySQL中有所不同。
- 特有功能:MariaDB拥有一些MySQL不具备的特有功能,如CONNECT引擎、序列(SEQUENCE)等。如果应用程序使用了MariaDB的专有特性,迁移到RDS for MySQL时可能会遇到问题。
4.2 数据库与表的基本操作
-- 创建数据库
CREATE DATABASE IF NOT EXISTS myapp_db
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
-- 切换数据库
USE myapp_db;
-- 创建表
CREATE TABLE IF NOT EXISTS orders (
order_id BIGINT AUTO_INCREMENT PRIMARY KEY,
customer_id INT NOT NULL,
order_date DATETIME DEFAULT CURRENT_TIMESTAMP,
total_amount DECIMAL(12, 2) NOT NULL,
status TINYINT DEFAULT 1 COMMENT '1:待支付 2:已支付 3:已发货 4:已完成 5:已取消',
remark TEXT,
INDEX idx_customer_id (customer_id),
INDEX idx_order_date (order_date)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单表';
-- 查看表结构
DESC orders;
-- 查看建表语句
SHOW CREATE TABLE orders;
-- 修改表结构
ALTER TABLE orders ADD COLUMN shipping_address VARCHAR(500) AFTER total_amount;
ALTER TABLE orders MODIFY COLUMN status TINYINT DEFAULT 1 NOT NULL;
ALTER TABLE orders DROP COLUMN remark;
-- 删除表
DROP TABLE IF EXISTS temp_table;
4.3 CRUD操作
-- INSERT:插入数据
INSERT INTO orders (customer_id, total_amount, status, shipping_address)
VALUES
(1001, 299.50, 1, '北京市海淀区中关村大街1号'),
(1002, 1599.00, 2, '上海市浦东新区张江高科技园区'),
(1003, 89.90, 4, '深圳市南山区科技园');
-- INSERT ... ON DUPLICATE KEY UPDATE(类似UPSERT)
INSERT INTO users (id, name, email) VALUES (1, '李四', 'lisi@example.com')
ON DUPLICATE KEY UPDATE name = VALUES(name), email = VALUES(email);
-- REPLACE INTO(先删后插)
REPLACE INTO users (id, name, email) VALUES (1, '王五', 'wangwu@example.com');
-- SELECT:基础查询
SELECT order_id, customer_id, total_amount, status
FROM orders
WHERE status IN (1, 2)
ORDER BY order_date DESC
LIMIT 10;
-- SELECT:聚合查询
SELECT
status,
COUNT(*) AS order_count,
SUM(total_amount) AS total_sales,
AVG(total_amount) AS avg_amount,
MIN(total_amount) AS min_amount,
MAX(total_amount) AS max_amount
FROM orders
WHERE order_date >= DATE_SUB(NOW(), INTERVAL 30 DAY)
GROUP BY status
HAVING order_count > 5
ORDER BY total_sales DESC;
-- SELECT:多表JOIN
SELECT
o.order_id,
c.name AS customer_name,
o.total_amount,
o.status
FROM orders o
INNER JOIN customers c ON o.customer_id = c.id
WHERE o.order_date BETWEEN '2026-01-01' AND '2026-06-30';
-- SELECT:子查询
SELECT * FROM orders
WHERE total_amount > (SELECT AVG(total_amount) FROM orders);
-- SELECT:窗口函数(MariaDB 10.5+支持)
SELECT
order_id,
customer_id,
total_amount,
RANK() OVER (ORDER BY total_amount DESC) AS amount_rank,
ROW_NUMBER() OVER (PARTITION BY status ORDER BY order_date) AS seq_in_status
FROM orders;
-- UPDATE:更新数据
UPDATE orders
SET status = 3, shipping_date = NOW()
WHERE order_id = 1001 AND status = 2;
-- DELETE:删除数据
DELETE FROM orders WHERE status = 5 AND order_date < DATE_SUB(NOW(), INTERVAL 90 DAY);
-- TRUNCATE:快速清空表
TRUNCATE TABLE temp_logs;
4.4 索引操作
-- 创建普通索引
CREATE INDEX idx_customer_id ON orders(customer_id);
-- 创建唯一索引
CREATE UNIQUE INDEX uk_email ON users(email);
-- 创建复合索引
CREATE INDEX idx_customer_status ON orders(customer_id, status);
-- 创建全文索引(MariaDB 10.5+支持)
ALTER TABLE articles ADD FULLTEXT INDEX ft_content (title, body);
-- 查看索引
SHOW INDEX FROM orders;
-- 删除索引
DROP INDEX idx_customer_id ON orders;
-- 强制使用索引
SELECT * FROM orders FORCE INDEX (idx_customer_id) WHERE customer_id = 1001;
4.5 视图、存储过程与触发器
-- 创建视图
CREATE VIEW v_order_summary AS
SELECT
DATE(order_date) AS order_day,
COUNT(*) AS total_orders,
SUM(total_amount) AS daily_sales
FROM orders
WHERE status >= 2
GROUP BY DATE(order_date);
-- 查询视图
SELECT * FROM v_order_summary WHERE order_day >= '2026-06-01';
-- 创建存储过程
DELIMITER //
CREATE PROCEDURE sp_get_customer_orders(IN cust_id INT, OUT total_amt DECIMAL(12,2))
BEGIN
SELECT SUM(total_amount) INTO total_amt
FROM orders
WHERE customer_id = cust_id AND status >= 2;
SELECT order_id, total_amount, status, order_date
FROM orders
WHERE customer_id = cust_id
ORDER BY order_date DESC;
END //
DELIMITER ;
-- 调用存储过程
CALL sp_get_customer_orders(1001, @total);
SELECT @total AS total_spent;
-- 创建触发器
CREATE TRIGGER trg_orders_audit
AFTER UPDATE ON orders
FOR EACH ROW
BEGIN
INSERT INTO orders_audit_log(order_id, old_status, new_status, changed_at)
VALUES (OLD.order_id, OLD.status, NEW.status, NOW());
END;
-- 删除触发器
DROP TRIGGER IF EXISTS trg_orders_audit;
4.6 事务与锁
-- 开启事务
START TRANSACTION;
-- 或者使用BEGIN
BEGIN;
-- 执行操作
UPDATE accounts SET balance = balance - 100 WHERE account_id = 1;
UPDATE accounts SET balance = balance + 100 WHERE account_id = 2;
-- 提交事务
COMMIT;
-- 回滚事务
ROLLBACK;
-- 设置保存点
SAVEPOINT sp1;
-- 回滚到保存点
ROLLBACK TO SAVEPOINT sp1;
-- 查看事务隔离级别
SELECT @@tx_isolation;
-- 设置事务隔离级别
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
-- 行级锁(SELECT ... FOR UPDATE)
START TRANSACTION;
SELECT * FROM orders WHERE order_id = 1001 FOR UPDATE;
UPDATE orders SET status = 2 WHERE order_id = 1001;
COMMIT;
-- 表级锁
LOCK TABLES orders WRITE;
-- 执行操作
UNLOCK TABLES;
五、性能优化与SQL调优
5.1 慢查询日志分析
慢查询日志用于记录执行时间超过阈值"long_query_time"的SQL语句,默认阈值为1秒。通过分析慢查询日志,可以找出执行效率低下的SQL语句并进行优化。
查看慢日志的步骤:登录管理控制台 → 选择"数据库 > 云数据库 RDS" → 在实例管理页面选择目标实例 → 进入实例概览页签 → 在左侧导航栏单击"慢日志"页签 → 选择"日志明细"查看慢SQL语句的详细信息。慢日志支持按SQL语句类型和指定时间段搜索,目前支持查看近1个月的慢日志。
慢日志相关参数:
- long_query_time:大于等于此时间记录慢日志,精度可达微秒级别,默认为1秒,建议设置为1秒。
- log_queries_not_using_indexes:是否记录未使用索引的查询,默认OFF。
5.2 常见慢SQL原因与解决方案
慢SQL的产生通常有以下几类原因:
- SQL异常:库表结构设计不合理、索引缺失、扫描行数太多等。解决方案是优化SQL语句、添加合适的索引、重构查询逻辑。
- 实例瓶颈:业务量持续增长而没有扩容、硬件老化性能损耗、数据量增加导致SQL变慢。解决方案是升级实例规格。
- 参数设置不当:部分参数(如innodb_spin_wait_delay)设置不当会导致性能变慢。可以通过控制台的参数管理功能调整参数。
- 批量操作:大批量的数据导入、删除、查询操作会导致SQL执行变慢。建议将批量操作分散到业务低峰期执行。
- 定时任务:实例负载随时间规律性变化,可能是存在定时任务。需要评估定时任务的必要性和执行时间窗口。
5.3 SQL优化最佳实践
-- 避免使用SELECT *,只查询需要的列
-- 不推荐
SELECT * FROM orders WHERE customer_id = 1001;
-- 推荐
SELECT order_id, total_amount, status FROM orders WHERE customer_id = 1001;
-- 使用EXISTS代替IN(子查询返回大量数据时)
-- 不推荐
SELECT * FROM customers WHERE id IN (SELECT customer_id FROM orders WHERE total_amount > 1000);
-- 推荐
SELECT c.* FROM customers c WHERE EXISTS (SELECT 1 FROM orders o WHERE o.customer_id = c.id AND o.total_amount > 1000);
-- 避免在WHERE子句中对列使用函数
-- 不推荐
SELECT * FROM orders WHERE DATE(order_date) = '2026-06-30';
-- 推荐
SELECT * FROM orders WHERE order_date >= '2026-06-30' AND order_date < '2026-07-01';
-- 使用LIMIT限制返回行数
SELECT * FROM orders ORDER BY order_id LIMIT 100;
-- 使用EXPLAIN分析执行计划
EXPLAIN SELECT o.*, c.name FROM orders o JOIN customers c ON o.customer_id = c.id WHERE o.status = 2;
5.4 参数调优
RDS for MariaDB支持通过自定义参数模板来优化数据库性能。在控制台的"参数管理"页面可以查看和修改实例参数。常见的性能相关参数包括:
- innodb_buffer_pool_size:InnoDB缓冲池大小,通常设置为实例内存的70%-80%。
- max_connections:最大连接数,根据业务并发量合理设置。
- innodb_log_file_size:InnoDB日志文件大小,影响写入性能。
- query_cache_size:查询缓存大小(MariaDB 10.5中此功能已被标记为废弃)。
修改参数时需要注意:并非所有数据库引擎参数都可以在自定义参数模板中修改。参数修改后,部分参数需要重启实例才能生效。
六、高可用与读写分离
6.1 主备高可用架构
RDS for MariaDB主备实例采用一主一备的经典高可用架构,主备实例的每个节点规格保持一致。备机提高了实例的可靠性,当主机发生故障时,系统会自动将备机提升为主机,实现秒级切换,最大程度保障业务连续性。备机创建成功后对用户不可见,用户无需关心主备切换的细节。
6.2 只读实例与读写分离
在对数据库有少量写请求但有大量读请求的应用场景下,单个实例可能无法抵抗读取压力。RDS for MariaDB支持创建只读实例来实现读取能力的弹性扩展。1个主实例最多可以创建5个只读实例。只读实例不能单独购买,必须在购买主实例后才能创建。只读实例与主实例使用独立的IP连接地址。
创建只读实例的步骤:在实例管理页面选择指定的实例,单击操作列的"更多 > 创建只读",进入创建只读页面进行配置。
七、备份与恢复
7.1 自动备份与手动备份
RDS for MariaDB支持自动备份和手动备份两种方式。自动备份是在实例的备份时段中由系统自动创建,备份保留期可自定义。手动备份由用户按需触发,可用于在重大操作前保存数据状态。
7.2 数据恢复
RDS for MariaDB提供多种数据恢复方案:
- 恢复到当前实例:使用备份文件将当前实例恢复到备份时的状态。
- 恢复到新实例:通过备份文件创建一个新的实例,数据与备份时一致。
- 指定时间点恢复:支持将实例恢复到备份保留期内的任意指定时间点。
- 回收站恢复:退订的包年/包月实例和删除的按需实例会进入回收站,支持在1-7天内重建恢复。
恢复操作的速率平均为40MB/s,恢复时长与实例数据量有关。
7.3 数据迁移(DRS)
数据复制服务(DRS)支持将自建MariaDB数据库或其他云上的MariaDB数据库迁移到华为云RDS for MariaDB。DRS会在预检查阶段对数据库账号权限进行自动检查。通过DRS进行数据迁移,可以实现零停机或短停机的业务迁移。
八、安全最佳实践
8.1 密码安全
创建实例时,系统会进行密码复杂度校验。密码长度至少8个字符,建议包含大小写字母、数字和特殊字符的组合。由于root用户可以修改密码复杂度,建议修改后的密码复杂度不低于RDS for MariaDB的初始化设置。应定期修改数据库密码,避免密码泄露风险。
8.2 网络访问控制
通过安全组可以限定访问数据库的源IP地址,保障只允许可信来源连接数据库。强烈建议保护好弹性公网IP、DNS、数据库端口、数据库账号和密码等信息。对于不需要公网访问的场景,应避免绑定弹性公网IP。
8.3 SSL加密传输
RDS for MariaDB支持非SSL和SSL两种传输协议,为保证数据传输的安全性,推荐使用SSL协议。启用SSL加密后,客户端与数据库服务器之间的所有数据都将被加密传输,有效防止数据在传输过程中被窃听或篡改。
8.4 多可用区部署
为了达到更高的可靠性,RDS for MariaDB支持选择多可用区部署主实例和备实例。可用区之间内网互通,不同可用区之间物理隔离,可以实现跨可用区的容灾能力。
九、监控与告警
9.1 关键监控指标
用户需要重点关注的监控指标包括:CPU利用率、内存利用率、磁盘空间利用率。当这些指标异常升高时,可能预示着实例性能瓶颈或存储不足。此外,还应关注数据库连接数、IOPS、QPS(每秒查询数)、TPS(每秒事务数)等指标。
9.2 设置告警规则
通过云监控服务(CES)可以为RDS实例设置告警规则。告警规则包括规则名称、资源类型、监控对象、监控指标、告警阈值、监控周期和是否发送通知等参数。例如,可以设置CPU使用率连续3个周期(每个周期5分钟)超过80%时触发告警。当收到告警后,可以采取相应措施消除告警。
十、常见问题问答
问1:RDS for MariaDB与RDS for MySQL有什么区别?
答:RDS for MariaDB基于MariaDB数据库引擎,RDS for MySQL基于MySQL数据库引擎。两者在语法和协议上高度兼容,但MariaDB拥有一些特有功能(如序列、CONNECT引擎等),如果应用使用了这些专有特性,迁移到RDS for MySQL时可能遇到兼容性问题。华为云同时提供两种服务,用户可根据业务需求选择。
问2:如何查看RDS for MariaDB的慢查询日志?
答:登录管理控制台,选择"数据库 > 云数据库 RDS",在实例管理页面选择目标实例,进入实例概览页签,在左侧导航栏单击"慢日志"页签,选择"日志明细"即可查看慢SQL语句的详细信息。慢日志默认记录执行时间超过1秒的SQL语句,可通过修改long_query_time参数调整阈值。
问3:RDS for MariaDB最多可以创建多少个只读实例?
答:1个主实例默认最多可以创建5个只读实例。如果需要创建更多只读实例,可以提交工单申请,最多可以创建10个只读实例。只读实例不能单独购买,必须在购买主实例后才能创建。
问4:RDS for MariaDB支持哪些连接方式?
答:RDS for MariaDB提供三种连接方式:数据管理服务DAS(推荐)、内网连接和公网连接。DAS是可视化的Web管理工具,无需安装客户端。内网连接适用于ECS与RDS同VPC的场景,延迟低且免流量费。公网连接需要绑定弹性公网IP。
问5:如何将自建MariaDB数据库迁移到华为云RDS for MariaDB?
答:可以使用华为云数据复制服务(DRS)进行数据迁移。DRS支持将自建MariaDB或其他云上的MariaDB数据库实时同步到华为云RDS for MariaDB。DRS会在预检查阶段自动检查数据库账号权限,支持全量迁移和增量同步,可实现零停机或短停机的业务迁移。
问6:RDS for MariaDB的备份恢复会影响业务吗?
答:自动备份在实例的备份时段中执行,对业务影响较小。数据恢复操作会根据恢复方式有所不同:恢复到当前实例会覆盖现有数据,建议在业务低峰期操作;恢复到新实例则会创建一个全新的实例,不影响原有实例的运行。恢复时长与数据量有关,平均恢复速率为40MB/s。



