• [数据库] 【第49课】本地Microsoft SQL Server备份迁移至华为云RDS for SQL Server实例—上篇
    1. 场景介绍由于安全原因,数据库的IP地址有时不能暴露在公网上,但是选择专线网络进行数据库迁移,成本又高。这种情况下,您可以选用数据复制服务提供的备份迁移,通过将本地Microsoft SQL Server数据库的备份文件上传至对象存储服务,然后恢复到目标数据库。备份迁移可以帮助您在云服务不触碰源数据库的情况下,实现数据迁移。数据复制服务的备份迁移功能支持全量和全量+增量场景的数据库迁移,本示例以全量+增量场景为例,介绍如何进行备份迁移。全量+增量备份迁移该场景为数据持续性迁移,需要在完成全量备份恢复的基础上,通过多次增量备份文件恢复,实现迁移过程中业务中断的最小化。一次典型的增量恢复过程,会涉及多次恢复增量备份。每个增量备份恢复均会使目标数据库保持还原中状态,此时数据库不可读写,直至最后一个增量备份恢复完成后,数据库才能变成可用状态。2. 迁移准备本小节介绍通过数据复制服务进行备份迁移前的准备工作。在正式使用数据复制服务之前,请先阅读以确保您已完成创建备份迁移任务所需的各项准备工作。更多使用须知可参见 “使用须知”章节。目标数据库准备已有RDS for SQL Server数据库实例,如果没有,请参考《关系型数据库用户指南》中的“购买实例”章节,创建RDS实例。目标数据库的可用磁盘空间至少为待还原数据库总数据量大小的1.5倍。源数据库恢复模式设置仅进行全量备份迁移时,对数据库的恢复模式没有要求。进行全量+增量备份迁移时,数据库备份文件的恢复模式需要设置为“完整”。具体操作方法如下:方法一:通过Microsoft SQL Server Management Studio 数据库管理软件登录到本地数据库中心,选择需要迁移的数据库,单击鼠标右键,选择“属性”,选择“选项 > 恢复模式”,将恢复模式设置为“完整”即可。方法二:使用如下SQL命令的方式进行设置。USE master; ALTER DATABASE database_name SET RECOVERY FULL;迁移时间的评估参考一次完整的备份迁移主要经历以下4个阶段。阶段名称描述①导出数据库备份文件该阶段主要耗时为生成数据库备份文件所需的时间,通常取决于源数据库的配置,需要您根据源数据库的配置进行预估。②上传备份文件至OBS桶OBS对象存储不限速,如果您是通过公网访问OBS对象存储时,上传下载速度受公网带宽限制。例如:公网带宽为10MB/s时,在没有其他因素影响网络的情况下,则上传的速度为10MB/s。③通过DRS下载备份文件至目标端RDS for SQL Server一般情况下,下载速度约为:100MB/s或者300GB/h。④将源数据库的备份文件恢复至目标数据库从经验值来讲,一般的恢复速度约为5GB/min或者300GB/h。合计总耗时总耗时=阶段①耗时+阶段②耗时+阶段③耗时+阶段④耗时业务中断时长= 业务停机->进行最后一次增量备份->上传OBS->创建DRS任务恢复 3. 导出数据库备份文件本小节介绍了数据库全量备份文件和事务日志(增量)备份文件的导出方法。步骤一:检查本地数据库参数配置。步骤二:由于数据库存在日志截断和收缩配置,在导出全量备份文件前,需要将数据库恢复模式配置成“完整”模式,且一直保持到整个数据库完全迁移到本云数据库实例和业务切割后,才能修改。该操作为全量+增量迁移的必操作项,仅进行全量迁移时,可以跳过该步骤。通过Microsoft SQL Server Management Studio 数据库管理软件登录到本地数据库中心。选择需要迁移的数据库,单击鼠标右键,选择“属性”,在属性弹出框左边列表选择“选项”。在“恢复模式”下拉菜单中选择“完整”,单击“确定”。步骤三:配置备份文件压缩参数,该操作为可选操作。如果客户本地数据中心带宽不高,OBS Browser上传时间比较久,建议配置备份文件压缩参数。使用数据库管理员帐号,通过Microsoft SQL Server Management Studio 数据库管理软件登录到数据库中心。在对象资源管理器中,右键单击服务器并选择 “属性”。单击 “数据库设置” 。在“备份和还原” 下,勾选“压缩备份” 。          该设置确定压缩备份的服务器级默认设置,具体如下:如果未勾选 “压缩备份” ,在默认情况下将不会压缩新备份。如果 已勾选“压缩备份” ,则默认情况下将压缩新备份。步骤四:导出全量备份文件。通过Microsoft SQL Server Management Studio 数据库管理软件登录到本地数据库中心。选择需要迁移的数据库,单击鼠标右键,选择“任务>备份”。备份类型选择“完整”,单击“添加”,填写备份文件输出路径,注意后缀名为.bak。建议备份文件名称和数据库名称保持一致(区分大小写),同时加上“.bak”后缀。建议将所有的数据库备份在一个bak文件里或者少量的bak文件里,这样可以减少频繁的上传与恢复,实现打包上传和打包恢复的效果。步骤五:导出增量备份文件。通过Microsoft SQL Server Management Studio 数据库管理软件登录到本地数据库中心。选择需要迁移的数据库,单击鼠标右键,选择“任务>备份”。备份类型选择“完整”,单击“添加”,填写备份文件输出路径,注意后缀名为.bak。建议备份文件名称和数据库名称保持一致(区分大小写),同时加上时间戳和“.bak”后缀,例如:[数据库名]_Incr_[时间戳].bak。建议将所有的数据库备份在一个bak文件里或者少量的bak文件里,这样可以减少频繁的上传与恢复,实现打包上传和打包恢复的效果。例如:可以将A、B、C三个数据库备份到一个bak文件中,整体进行打包上传和恢复,这样有助于提高数据恢复的成功率。4. 上传备份文件本小节介绍了上传备份文件的方法。步骤一:创建OBS桶,并将备份文件上传OBS桶。如果单次上传文件不大于5GB时,可以登录OBS控制台创建OBS自建桶,存储类别选择“标准存储”,桶策略选择“公共读”。如果批量上传多个文件(单次最多支持100个文件同时上传,总大小不超过5GB),或单次上传文件大于5GB时,需要下载并安装OBS Browser+客户端,支持大文件断点续传功能。相关操作请参见《对象存储服务客户端指南》。          此时建议备份文件放置于同区域且独立的公共桶,混用其他公共桶可能会因为其他文件过多,而无法展示迁移备份文件。          上传备份文件之前,创建用户的Access Key ID和Secret Access Key,参考创建访问密钥(AK 和SK)。          上传备份文件时,OBS文档模式需要选择“标准存储”。目前Microsoft SQL Server只支持后缀为.bak的文件,且不支持高版本恢复到低版本。建议备份文件放置于同区域且独立的公共桶,混用其他公共桶可能会因为其他文件过多,而无法展示迁移备份文件。登录OBS管理控制台,相关操作请参见登录OBS管理控制台。创建OBS自建桶,相关操作请参见添加桶。将导出的数据库备份文件上传至OBS桶内,相关操作请参见上传文件。如何创建全量+增量备份迁移任务并手动配置信息,请参见【第50课】本地Microsoft SQL Server备份迁移至华为云RDS for SQL Server实例—下篇
  • [技术干货] 【云小课】【第46课】openGauss_gsql入门[转载]
    【云小课】【第46课】openGauss_gsql入门 数据库的小云妹 发表于 2022/05/05 09:42:50  338  0  0【摘要】 gsql是GaussDB(for openGauss)提供在命令行下运行的数据库连接工具,可以通过此工具连接服务器并对其进行操作和维护,除了具备操作数据库的基本功能,gsql还提供了若干高级特性,便于用户使用。基本功能连接数据库:可以通过gsql远程连接数据库实例。如何使用gsql连接数据库请参考连接实例。执行SQL语句:支持交互式地键入并执行SQL语句,也可以执行一个文件中指定的SQL语句...gsql是GaussDB(for openGauss)提供在命令行下运行的数据库连接工具,可以通过此工具连接服务器并对其进行操作和维护,除了具备操作数据库的基本功能,gsql还提供了若干高级特性,便于用户使用。基本功能连接数据库:可以通过gsql远程连接数据库实例。如何使用gsql连接数据库请参考连接实例。执行SQL语句:支持交互式地键入并执行SQL语句,也可以执行一个文件中指定的SQL语句。执行元命令:元命令可以帮助管理员查看数据库对象的信息、查询缓存区信息、格式化SQL输出结果,以及连接到新的数据库等。使用指导步骤 1 使用gsql连接到GaussDB(for openGauss)实例。gsql工具使用-d参数指定目标数据库名、-U参数指定数据库用户名、-h参数指定主机名、-p参数指定端口号信息。若未指定数据库名称,则使用初始化时默认生成的数据库名称;若未指定数据库用户名,则默认使用当前操作系统用户作为数据库用户名;当某个值没有前面的参数(-d、-U等)时,若连接的命令中没有指定数据库名(-d)则该参数会被解释成数据库名;如果已经指定数据库名(-d)而没有指定数据库用户名(-U)时,该参数则会被解释成数据库用户名。示例,使用jack用户连接到远程主机postgres数据库的8000端口。gsql -h 10.180.123.163 -d postgres -U jack -p 8000详细的gsql参数请参见命令参考。步骤 2 执行SQL语句。以创建数据库human_staff为例。CREATE DATABASE human_staff; CREATE DATABASE通常,输入的命令行在遇到分号的时候结束。如果输入的命令行没有错误,结果就会输出到屏幕上。步骤 3 执行gsql元命令。以列出GaussDB(for openGauss)中所有的数据库和描述信息为例。postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges ----------------+----------+-----------+---------+-------+----------------------- human_resource | root | SQL_ASCII | C | C | postgres | root | SQL_ASCII | C | C | template0 | root | SQL_ASCII | C | C | =c/root + | | | | | root=CTc/root template1 | root | SQL_ASCII | C | C | =c/root + | | | | | root=CTc/root human_staff | root | SQL_ASCII | C | C | (5 rows)更多gsql元命令请参见元命令参考。示例以把一个查询分成多行输入为例。注意提示符的变化:postgres=# CREATE TABLE HR.areaS( postgres(# area_ID NUMBER, postgres(# area_NAME VARCHAR2(25) postgres-# )tablespace EXAMPLE; CREATE TABLE查看表的定义:postgres=# \d HR.areaS Table "hr.areas" Column | Type | Modifiers -----------+-----------------------+----------- area_id | numeric | not null area_name | character varying(25) |向HR.areaS表插入四行数据:postgres=# INSERT INTO HR.areaS (area_ID, area_NAME) VALUES (1, 'Europe'); INSERT 0 1 postgres=# INSERT INTO HR.areaS (area_ID, area_NAME) VALUES (2, 'Americas'); INSERT 0 1 postgres=# INSERT INTO HR.areaS (area_ID, area_NAME) VALUES (3, 'Asia'); INSERT 0 1 postgres=# INSERT INTO HR.areaS (area_ID, area_NAME) VALUES (4, 'Middle East and Africa'); INSERT 0 1切换提示符:postgres=# \set PROMPT1 '%n@%m %~%R%#' root@[local] postgres=#查看表:root@[local] postgres=#SELECT * FROM HR.areaS; area_id | area_name ---------+------------------------ 1 | Europe 4 | Middle East and Africa 2 | Americas 3 | Asia (4 rows)可以用\pset命令以不同的方法显示表:root@[local] postgres=#\pset border 2 Border style is 2. root@[local] postgres=#SELECT * FROM HR.areaS; +---------+------------------------+ | area_id | area_name | +---------+------------------------+ | 1 | Europe | | 2 | Americas | | 3 | Asia | | 4 | Middle East and Africa | +---------+------------------------+ (4 rows) root@[local] postgres=#\pset border 0 Border style is 0. root@[local] postgres=#SELECT * FROM HR.areaS; area_id area_name ------- ---------------------- 1 Europe 2 Americas 3 Asia 4 Middle East and Africa (4 rows)使用元命令:root@[local] postgres=#\a \t \x Output format is unaligned. Showing only tuples. Expanded display is on. root@[local] postgres=#SELECT * FROM HR.areaS; area_id|2 area_name|Americas area_id|1 area_name|Europe area_id|4 area_name|Middle East and Africa area_id|3 area_name|Asia链接:https://bbs.huaweicloud.com/blogs/351149
  • [数据库] 【第48课】GaussDB如何创建和管理定时任务
    当用户在使用数据库过程中,如果白天执行一些耗时比较长的任务(例如:统计数据汇总之类或从其他数据库同步数据的任务),会对正常的业务有性能影响,所以用户经常选择在晚上执行,这增加了用户的工作量。因此数据库GaussDB提供定时任务的功能,可以由用户创建定时任务,当任务时间点到达后可以自动触发任务的执行,从而可以减少用户户运维的工作量。GaussDB提供定时任务的创建、任务到期自动执行、任务删除、修改任务属性(包括:任务id、任务的关闭开启、任务的触发时间、触发时间间隔、任务内容等)。定时任务管理步骤 1 创建测试表:postgres=# CREATE TABLE test(id int, time date);当结果显示为如下信息,则表示创建成功。CREATE TABLE步骤 2 创建自定义存储过程:postgres=# CREATE OR REPLACE PROCEDURE PRC_JOB_1() AS N_NUM integer :=1; BEGIN FOR I IN 1..1000 LOOP INSERT INTO test VALUES(I,SYSDATE); END LOOP; END; /当结果显示为如下信息,则表示创建成功。CREATE PROCEDURE步骤 3 创建任务:新创建的任务(未指定job_id)表示每隔1分钟执行一次存储过程PRC_JOB_1。postgres=# call dbe_task.submit('call public.prc_job_1(); ', sysdate, 'interval ''1 minute''', :a); job ----- 1 (1 row)指定job_id创建任务,其中job_id可用范围为1~32767。postgres=# call dbe_task.id_submit(2,'call public.prc_job_1(); ', sysdate, 'interval ''1 minute'''); isubmit --------- (1 row)步骤 4 通过视图查看当前用户已创建的任务信息。postgres=# select job,dbname,start_date,last_date,this_date,next_date,broken,status,interval,failures,what from my_jobs; job | dbname | start_date | last_date | this_date | next_date | broken | status | interval | failures | what -----+--------+---------------------+----------------------------+----------------------------+---------------------+--------+--------+---------------------+----------+--------------------------- 1 | postgres | 2017-07-18 11:38:03 | 2017-07-18 13:53:03.607838 | 2017-07-18 13:53:03.607838 | 2017-07-18 13:54:03 | n | s | interval '1 minute' | 0 | call public.prc_job_1(); (1 row)步骤 5 停止任务。postgres=# call dbe_task.finish(1,true); broken -------- (1 row)步骤 6 启动任务。postgres=# call dbe_task.finish(1,false); broken -------- (1 row)步骤 7 修改任务属性:修改JOB的Next_date参数信息。--修改Job1的Next_date为1小时以后开始执行。postgres=# call dbe_task.next_time(1, sysdate+1.0/24); next_date ----------- (1 row)修改JOB的Interval参数信息。--修改Job1的Interval为每隔1小时执行一次。postgres=# call dbe_task.interval(1,'sysdate + 1.0/24'); interval ---------- (1 row)修改JOB的What参数信息。--修改Job1的What为执行SQL语句“insert into public.test values(333, sysdate+5);”。postgres=# call dbe_task.content(1,'insert into public.test values(333, sysdate+5);'); what ------ (1 row)同时修改JOB的Next_date、Interval、What等多个参数信息。postgres=# call dbe_task.update(1, 'call public.prc_job_1();', sysdate, 'interval ''1 minute'''); change -------- (1 row)步骤 8 删除JOB。postgres=# call dbe_task.cancel(1); remove -------- (1 row)
  • 【第47课】GaussDB如何创建和管理视图
    什么是视图当用户对数据库中的一张或者多张表的某些字段的组合感兴趣,而又不想每次键入这些查询时,用户就可以定义一个视图,以便解决这个问题。视图与基本表不同,不是物理上实际存在的,是一个虚表。数据库中仅存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。若基本表中的数据发生变化,从视图中查询出的数据也随之改变。从这个意义上讲,视图就像一个窗口,透过它可以看到数据库中用户感兴趣的数据及变化。视图每次被引用的时候都会运行一次。构造测试数据步骤 1 执行如下语句,创建测试表。CREATE TABLE infotest (  id int,  name varchar(30) ,  price float ,  PRIMARY KEY (id)) ;步骤 2 执行如下语句,在表中插入数据。insert into infotest values (1001,'牙刷',10.5),(1002,'毛巾',21.5),(1003,'茶几',999.9),(1004,'电视',3199),(1005,'冰箱',2999),(1006,'1 手机',1999),(1007,'2 手机',7699),(1008,'.3 手机',699.9),(1009,'T恤',21.5),(1010,'牛仔裤',99);创建视图执行如下语句创建新视图MyView,其中infotest为构造测试数据中创建的表。CREATE OR REPLACE VIEW MyView AS SELECT * FROM infotest WHERE price < 1000;CREATE VIEWCREATE VIEW中的OR REPLACE可有可无,当存在OR REPLACE时,表示若以前存在该视图就进行替换。关于CREATE VIEW的更多用法请参考创建视图。查询视图执行如下语句查询MyView视图。SELECT * FROM MyView; id | name | price ------+-----------+------- 1001 | 牙刷 | 10.5 1002 | 毛巾 | 21.5 1003 | 茶几 | 999.9 1008 | .3 手机 | 699.9 1009 | T恤 | 21.5 1010 | 牛仔裤 | 99 (6 rows)查看某视图的具体信息执行如下语句查询MyView视图的详细信息。\d+ MyView View "root.myview" Column | Type | Modifiers | Storage | Description --------+-----------------------+-----------+----------+------------- id | integer | | plain | name | character varying(30) | | extended | price | double precision | | plain | View definition: SELECT * FROM infotest WHERE infotest.price < 1000::double precision;更新数据步骤 1 执行如下语句更新数据。UPDATE infotest SET name = '手机' where id = 1008;步骤 2 更新数据后,通过视图查询更新后的信息。SELECT * FROM MyView; id | name | price ------+-----------+------- 1001 | 牙刷 | 10.5 1002 | 毛巾 | 21.5 1003 | 茶几 | 999.9 1009 | T恤 | 21.5 1010 | 牛仔裤 | 99 1008 | 手机 | 699.9 (6 rows) 更改视图名称步骤 1 执行如下语句将视图改名。ALTER VIEW  MyView RENAME TO YourView;ALTER VIEW更多用法请参考更改视图。步骤 2 执行如下命令,查看改名效果。\d+ YourView View "root.yourview" Column | Type | Modifiers | Storage | Description--------+-----------------------+-----------+----------+------------- id | integer | | plain | name | character varying(30) | | extended | price | double precision | | plain |View definition: SELECT * FROM infotest WHERE infotest.price < 1000::double precision;删除视图执行如下命令删除MyView视图。drop view YourView;DROP VIEW
  • 【第46课】Gauss_gsql入门
    gsql是GaussDB提供在命令行下运行的数据库连接工具,可以通过此工具连接服务器并对其进行操作和维护,除了具备操作数据库的基本功能,gsql还提供了若干高级特性,便于用户使用。基本功能连接数据库:可以通过gsql远程连接数据库实例。如何使用gsql连接数据库请参考连接实例。执行SQL语句:支持交互式地键入并执行SQL语句,也可以执行一个文件中指定的SQL语句。执行元命令:元命令可以帮助管理员查看数据库对象的信息、查询缓存区信息、格式化SQL输出结果,以及连接到新的数据库等。使用指导步骤 1 使用gsql连接到GaussDB实例。gsql工具使用-d参数指定目标数据库名、-U参数指定数据库用户名、-h参数指定主机名、-p参数指定端口号信息。若未指定数据库名称,则使用初始化时默认生成的数据库名称;若未指定数据库用户名,则默认使用当前操作系统用户作为数据库用户名;当某个值没有前面的参数(-d、-U等)时,若连接的命令中没有指定数据库名(-d)则该参数会被解释成数据库名;如果已经指定数据库名(-d)而没有指定数据库用户名(-U)时,该参数则会被解释成数据库用户名。示例,使用jack用户连接到远程主机postgres数据库的8000端口。gsql -h 10.180.123.163 -d postgres -U jack -p 8000详细的gsql参数请参见命令参考。步骤 2 执行SQL语句。以创建数据库human_staff为例。CREATE DATABASE human_staff;CREATE DATABASE通常,输入的命令行在遇到分号的时候结束。如果输入的命令行没有错误,结果就会输出到屏幕上。步骤 3 执行gsql元命令。以列出GaussDB中所有的数据库和描述信息为例。postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges ----------------+----------+-----------+---------+-------+----------------------- human_resource | root | SQL_ASCII | C | C | postgres | root | SQL_ASCII | C | C | template0 | root | SQL_ASCII | C | C | =c/root + | | | | | root=CTc/root template1 | root | SQL_ASCII | C | C | =c/root + | | | | | root=CTc/root human_staff | root | SQL_ASCII | C | C | (5 rows)更多gsql元命令请参见元命令参考。示例以把一个查询分成多行输入为例。注意提示符的变化:postgres=# CREATE TABLE HR.areaS(postgres(# area_ID NUMBER,postgres(# area_NAME VARCHAR2(25)postgres-# )tablespace EXAMPLE;CREATE TABLE查看表的定义:postgres=# \d HR.areaS Table "hr.areas" Column | Type | Modifiers -----------+-----------------------+----------- area_id | numeric | not null area_name | character varying(25) |向HR.areaS表插入四行数据:postgres=# INSERT INTO HR.areaS (area_ID, area_NAME) VALUES (1, 'Europe');INSERT 0 1postgres=# INSERT INTO HR.areaS (area_ID, area_NAME) VALUES (2, 'Americas');INSERT 0 1postgres=# INSERT INTO HR.areaS (area_ID, area_NAME) VALUES (3, 'Asia');INSERT 0 1postgres=# INSERT INTO HR.areaS (area_ID, area_NAME) VALUES (4, 'Middle East and Africa');INSERT 0 1切换提示符:postgres=# \set PROMPT1 '%n@%m %~%R%#'root@[local] postgres=#查看表:root@[local] postgres=#SELECT * FROM HR.areaS; area_id | area_name ---------+------------------------ 1 | Europe 4 | Middle East and Africa 2 | Americas 3 | Asia(4 rows)可以用\pset命令以不同的方法显示表:root@[local] postgres=#\pset border 2Border style is 2.root@[local] postgres=#SELECT * FROM HR.areaS;+---------+------------------------+| area_id | area_name |+---------+------------------------+| 1 | Europe || 2 | Americas || 3 | Asia || 4 | Middle East and Africa |+---------+------------------------+(4 rows)root@[local] postgres=#\pset border 0Border style is 0.root@[local] postgres=#SELECT * FROM HR.areaS;area_id area_name ------- ---------------------- 1 Europe 2 Americas 3 Asia 4 Middle East and Africa(4 rows)使用元命令:root@[local] postgres=#\a \t \xOutput format is unaligned.Showing only tuples.Expanded display is on. root@[local] postgres=#SELECT * FROM HR.areaS;area_id|2area_name|Americas area_id|1area_name|Europe area_id|4area_name|Middle East and Africa area_id|3area_name|Asia
  • [数据库] 【第45课】DDM分片变更的原理和使用场景
    分片变更简介分片变更是分布式数据库中间件(Distributed Database Middleware,简称DDM)的一项核心功能,通过增加数据节点数或者增加分片数,提高数据存储能力和并发支持能力。可解决随着业务增长,逻辑库对应的物理存储空间不足问题。分片变更过程对业务秒级影响,可在不影响您业务使用的情况下快速解决业务在快速发展的过程中针对数据库扩展性产生的后顾之忧与运维压力。数据节点也称DN节点,是分布式数据库中间件服务的最小管理单元,表示DDM下关联的RDS for MySQL、GaussDB(for MySQL)两种引擎的实例。本节以RDS for MySQL实例为例说明分片变更的使用方法。本节内容简单介绍一下DDM分片变更三种变更方式的原理,使用场景和操作步骤。变更原理和使用场景分片数不变,增加数据节点数量此种变更方式不改变当前分片数,只增加数据节点数量。将原数据节点的部分分片平移到新增数据节点上,分片数据进行平移,数据相对位置不需要重新分布,所以变更速度为三种变更方式中最快的一种。推荐您优先使用此方式进行分片变更。适用于水平拆分业务后业务规模快速增长的场景,可在业务初期减少成本。也适用于RDS for MySQL实例无法满足存储空间, 读写性能的场景。增加分片数不增加数据节点数量增加分片数不增加数据节点数量。此种情况分片总数、分表总数、分表规则都会发生变化,数据将重新分布到不同的分片中,广播表分片数量增加。适用于单个物理表数据量过大, 查询性能受到限制, 但是整体RDS for MySQL实例可用空间充足的场景。增加分片数也增加数据节点数量既增加分片数也增加数据节点数量。此种情况分片总数、分表总数、分表规则都会发生变化,数据将重新分布到不同的分片中,广播表分片数量增加。适用于RDS for MySQL实例无法满足存储空间, 读写性能,且单个物理表数据量过大, 查询性能受到限制的场景。分片变更操作步骤1.   在分布式数据库中间件服务,实例管理列表页面,选择目标DDM实例,单击实例名称,进入实例基本信息页面。2.   在实例基本信息页面左侧导航栏,选择“逻辑库管理”选项卡,查看DDM实例逻辑库。3.   在逻辑库列表页面,单击“操作”列“分片变更”。     4.   在“分片变更”页面,按需填选对应参数,单击“测试”连接。分片数不变,增加数据节点数量的情况无需修改“变更后逻辑库总分片数”,只增加RDS for MySQL实例。增加分片数不增加数据节点数量的情况下根据业务数据量修改“变更后逻辑库总分片数”,RDS for MySQL实例数无需改动。增加分片数也增加数据节点数量的情况下根据业务数据量修改“变更后逻辑库总分片数”,同时增加RDS for MySQL实例。5.   连接通过后,单击“下一步”,进入预检查页面。6.   检查完成后,单击“开始分片变更”。7.   分片变更任务提交成功,可在“任务中心”查看进度。若切换策略选择了手动切换,需在“任务中心”点击“切换”将路由切换到新的分片上或者数据节点上。若切换策略选择了自动切换,任务将在设置的切换时间内,自动进行切换。8.   分片变更结束后数据将会重新分布,确认完数据无误后可单击“清理”来清除原RDS for MySQL数据库实例的数据。     9.   请仔细阅读弹窗内容,确认任务没有问题后单击“是”进行清理。10.   清理完成。     
  • [数据库] 【第44课】文档数据库服务DDS小版本升级攻略
    使用场景DDS支持手动进行内核小版本升级,内核小版本升级涉及性能提升、新功能或问题修复等。华为云DDS有新的补丁发布时,您可以在“实例管理”页面看到补丁升级的提示,单击“补丁升级”跳转到升级页面对DDS内核小版本进行升级。注意事项当有对应的补丁更新时(定期同步开源社区问题、漏洞修复),请及时进行升级。补丁升级会重启实例,服务可能会出现闪断,请您尽量在业务低峰期执行该操作,或确保您的应用有自动重连机制。补丁升级过程中禁止event的ddl操作,如create event、drop event和alter event。约束条件目前支持补丁升级的实例类型有集群和副本集。实例的版本需为3.4、4.0和4.2。实例状态异常或执行其他action时,无法进行补丁升级。实例中存在异常节点,无法进行补丁升级。只读节点不支持补丁升级。操作步骤1.   登录管理控制台。2.   单击管理控制台左上方的,选择区域和项目。3.   在页面左上角单击,选择“数据库 > 文档数据库服务 DDS”,进入文档数据库服务信息页面。4.   在“实例管理”页面,选择指定的实例,单击“数据库版本”列的“补丁升级”。          您还可以单击目标实例名称,在“基本信息”页面,“数据库信息”模块的“数据库版本”处,选择“补丁升级”。     5.   在弹出框中,根据业务需求选择升级方式,单击“确定”。您可在任务中心查看补丁升级情况。中断时间最短:升级过程对业务影响较小。变更时长最短:升级过程时长相对较短。     
  • [产品介绍] 【DRS云小课】其他云MySQL迁移到RDS for MySQL实例
    数据复制服务(Data Replication Service,简称DRS)支持将其他云MySQL数据库的数据迁移到本云云数据库MySQL。通过DRS提供的实时迁移任务,实现在数据库迁移过程中业务和数据库不停机,业务中断时间最小化。本节小课为您介绍将其他云MySQL迁移到RDS for MySQL实例。部署架构更多关于MySQL数据迁移须知请单击这里了解。一.  创建RDS for MySQL实例创建MySQL业务实例,选择已规划的业务实例所属VPC和安全组。1.   登录华为云控制台。2.   单击管理控制台左上角的,选择区域“华南-广州”。3.   单击左侧的服务列表图标,选择“数据库 > 云数据库 RDS”。4.   单击“购买数据库实例”。5.   配置实例名称和实例基本信息。      6.   选择实例规格。      7.   选择实例所属的VPC和安全组、配置数据库端口。      8.   配置实例密码。      9.   单击“立即购买”。10.   返回云数据库实例列表。当RDS实例运行状态为“正常”时,表示实例创建完成。二、其他云MySQL实例准备帐号权限要求当使用DRS将其他云MySQL数据库的数据迁移到本云云数据库MySQL实例时,帐号权限要求如下表所示,授权的具体操作请参考授权操作。迁移帐号权限迁移类型全量迁移全量+增量迁移源数据库(MySQL)SELECT、SHOW VIEW、EVENT。SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。网络设置源数据库MySQL实例需要开放外网域名的访问。白名单设置其他云MySQL实例需要将目标端DRS迁移实例的弹性公网IP添加到其网络白名单中,目标端DRS迁移实例的弹性公网IP在创建完DRS迁移实例后可以获取到,确保源数据库可以与DRS实例互通,各厂商云数据库添加白名单的方法不同,请参考各厂商云数据库官方文档进行操作。三、创建DRS迁移任务1.   登录华为云控制台。2.   单击管理控制台左上角的,选择区域,即为目标实例所在的区域。3.   单击左侧的服务列表图标,选择“数据库 > 数据复制服务 DRS”。4.   单击“创建迁移任务”。5.   填写迁移任务参数。      配置迁移任务名称。            填写迁移数据并选择模板库。这里的目标库选择创建的RDS实例。      6.   单击“下一步”。      迁移实例创建中,大约需要5-10分钟。迁移实例创建完成后可获取弹性公网IP信息。      7.   配置源库信息和目标库数据库密码。      8.   单击“下一步”。9.   在“迁移设置”页面,设置流速模式、迁移用户和迁移对象。流速模式:不限速迁移对象:全部迁移10.   单击“下一步”,在“预检查”页面,进行迁移任务预校验,校验是否可进行任务迁移。查看检查结果,如有不通过的检查项,需要修复不通过项后,单击“重新校验”按钮重新进行迁移任务预校验。预检查完成后,且所有检查项结果均成功时,单击“下一步”。11.   参数对比。若您选择不进行参数对比,可跳过该步骤,单击页面右下角“下一步”按钮,继续执行后续操作。若您选择进行参数对比,对于常规参数,如果源库和目标库存在不一致的情况,建议将目标数据库的参数值通过“一键修改”按钮修改为和源库对应参数相同的值。12.   单击“提交任务”。      返回DRS实时迁移管理,查看迁移任务状态。      启动中状态一般需要几分钟,请耐心等待。            当状态变更为“已结束”,表示迁移任务完成。四、确认迁移结果确认迁移结果可参考如下两种方式:DRS会针对迁移对象、用户、数据等维度进行对比,从而给出迁移结果,详情参见在DRS管理控制台查看迁移结果。直接登录数据库查看库、表、数据是否迁移完成。手工确认数据迁移情况,详情参见在RDS管理控制台查看迁移结果。在DRS管理控制台查看迁移结果1.   登录华为云控制台。2.   单击管理控制台左上角的,选择目标区域。3.   单击左侧的服务列表图标,选择“数据库 > 数据复制服务 DRS”。4.   单击DRS实例名称。5.   单击“迁移对比”,选择“对象级对比”,单击“开始对比”,校验数据库对象是否缺失。6.   选择“数据级对比”,单击“创建对比任务”,查看迁移的数据库和表内容是否一致。7.   选择“用户对比”,查看迁移的源库和目标库的账号和权限是否一致。在RDS管理控制台查看迁移结果1.    登录华为云控制台。2.   单击管理控制台左上角的,选择目标区域。3.   单击左侧的服务列表图标,选择“数据库 > 云数据库 RDS”。4.   单击迁移的目标实例的操作列的“更多 > 登录”。      5.   在弹出的对话框中输入密码单击“测试连接”检查。6.   连接成功后单击“登录”。7.   输入实例密码,登录RDS实例。8.   查看并确认目标库名和表名等。确认相关数据是否迁移完成。
  • [产品介绍] 【DRS云小课】如何将自建MySQL迁移到RDS for MySQL
    数据复制服务DRS支持将本地MySQL数据库的数据迁移至RDS for MySQL。通过DRS提供的实时迁移任务,实现在数据库迁移过程中业务和数据库不停机,业务中断时间最小化。本节小课为您介绍将自建MySQL迁移到RDS for MySQL的过程。部署架构本示例中,数据库源端为ECS自建MySQL,目的端为RDS实例,同时假设ECS和RDS实例在同一个VPC中。更多关于MySQL数据迁移须知请单击这里了解。一.  创建ECS(MySQL服务器)并安装MySQL社区版购买并登录弹性云服务器,用于安装MySQL社区版。1.   登录华为云控制台。2.   单击管理控制台左上角的,选择区域“华东-上海一”。3.   单击左侧的服务列表图标,选择“计算 > 弹性云服务器 ECS”。4.   单击“购买云服务器”。5.   配置弹性云服务器参数,填选信息后,单击“立即购买”。            选择镜像和磁盘规格。      6.   在创建的ECS上单击“远程登录”。选择“CloudShell登录”。7.   输入root用户密码,完成登录。8.   执行如下命令,创建mysql文件夹。      mkdir /mysql9.   执行如下命令,查看数据盘信息。      fdisk -l10.   执行如下命令,初始化数据盘。      mkfs.ext4 /dev/vdb11.   执行如下命令,挂载磁盘。      mount /dev/vdb /mysql12.   执行如下命令,查看磁盘是否挂在成功。      df -h      当回显出现 /dev/vdb的数据时,表示挂载成功。13.   依次执行如下命令,创建文件夹并切换至install文件夹。      mkdir -p /mysql/install/data      mkdir -p /mysql/install/tmp      mkdir -p /mysql/install/file      mkdir -p /mysql/install/log      cd /mysql/install14.   下载依赖包并上传到/mysql/install/file命令。15.   下载并安装社区版MySQL。二. 创建ECS并安装MySQL客户端1.   创建MySQL客户端的弹性云服务器。确保和MySQL服务器所在ECS配置成相同Region、相同可用区、相同VPC、相同安全组。不用购买数据盘。云服务器名配置为:ecs-client。其他参数同MySQL服务器的ECS配置。2.   下载并安装MySQL客户,请参考安装MySQL客户端。三.  创建RDS实例本章节介绍创建RDS实例,该实例选择和自建MySQL服务器相同的VPC和安全组。1.   登录华为云控制台。2.   单击管理控制台左上角的,选择区域“华东-上海一”。3.   单击左侧的服务列表图标,选择“数据库 > 云数据库 RDS”。4.   填选信息后,单击“购买数据库实例”。            选择实例规格。            选择实例所属的VPC和安全组、配置数据库端口。            配置实例密码。      四. 创建DRS迁移任务介绍自建MySQL服务器上的loadtest数据库迁移到RDS MySQL实例的详细操作过程。1.   登录华为云控制台。2.   单击管理控制台左上角的,选择区域“华东-上海一”。3.   单击左侧的服务列表图标,选择“数据库 > 数据复制服务 DRS”。4.   单击“创建迁移任务”。5.   填写迁移任务参数,直到任务创建完成。      配置迁移任务名称。            填写迁移数据并选择模板库。这里的目标库选择创建的RDS实例。      6.   配置源库信息和目标库数据库密码。      7.   单击“下一步”,直到迁移任务提交成功,数据迁移完成。
  • [产品介绍] 【DRS云小课】实时迁移or实时同步?这是个问题!
    1. 什么是数据复制服务数据复制服务(Data Replication Service,简称DRS)是一种易用、稳定、高效、用于数据库实时迁移和数据库实时同步的云服务。数据复制服务围绕云数据库,降低了数据库之间数据流通的复杂性,有效地帮助您减少数据传输的成本。您可通过数据复制服务快速解决多场景下,数据库之间的数据流通问题,以满足数据传输业务需求。 2. 实时迁移实时迁移是指在数据复制服务器能够同时连通源数据库和目标数据库的情况下,只需要配置迁移的源、目标数据库实例及迁移对象即可自动完成整个数据迁移过程。实时迁移支持多种网络迁移方式,如:公网网络、VPC网络、VPN网络和专线网络。特点:通过增量迁移技术,能够最大限度允许迁移过程中业务继续对外提供使用,有效的将业务系统中断时间和业务影响最小化,实现数据库平滑迁移上云,支持全部数据库对象的迁移。图1 实时迁移3. 实时同步实时同步是指在不同的系统之间,将数据通过同步技术从一个数据源拷贝到其他数据库,并保持一致,实现关键业务的数据实时流动。特点:满足多种灵活性的需求,例如多对一、一对多,动态增减同步表,不同表名之间同步数据等。图2 多对一实时同步4. 实时迁移与实时同步有什么不同4.1 适用场景不同实时迁移支持通过多种网络,实现跨云平台数据库迁移、云下数据库迁移上云或云上跨Region的数据库迁移等多种业务场景。实时同步维持不同业务系统之间数据的持续流动,常见的场景是:实时分析、报表系统、数仓环境。4.2 支持的对象不同实时迁移以整体数据库搬迁为目的,支持全部的数据库对象,包括:表、数据、索引、视图、存储过程、函数、数据库账号、数据库参数等。实时同步则聚焦于表和数据,并满足多种灵活性的需求,例如多对一、一对多,动态增减同步表,不同表名之间同步数据等。以MySQL->RDS for MySQL实时迁移和实时同步选择对象为例,如图:图3 实时迁移图4 实时同步具体的任务创建步骤,还可参考华为云官网资料:实时迁移https://support.huaweicloud.com/realtimemig-drs/drs_08_0089.html实时同步https://support.huaweicloud.com/realtimesyn-drs/drs_05_0005.html4.3 功能特性不同对比项实时迁移实时同步支持数据库引擎支持多种数据库之间的数据迁移,不同数据库的支持详情请参考实时迁移。支持多种数据库类型的实时同步,且支持多个源数据库到同一个目标数据库之间的实时同步,详情请参考实时同步。功能特性实时迁移提供修改流速模式、快捷对比、异常诊断、续传、重试、暂停、重置等多种特性,详情请参考任务管理。实时同步除了提供异常诊断、续传、重试、暂停、重置等特性,还支持数据过滤和对象名映射,详情请参考任务管理。使用限制详情请参考各链路使用须知。详情请参考各链路使用须知。 更多具体内容,请移步这里,了解详情。
  • [产品介绍] 【DRS云小课】聊一聊DRS的数据过滤特性
    众所周知,数据复制服务(Data Replication Service,简称DRS)是一种易用、稳定、高效、用于数据库在线迁移和数据库实时同步的云服务。目前,DRS已支持其他云、本地IDC、ECS自建MySQL、SQL Server、MongoDB(数据库种类)、PostgreSQL等多种数据库引擎,支持通过公网网络、华为VPN、华为云VPC网络环境下等多种网络场景的数据实时迁移和实时同步。同时,DRS还提供了丰富的数据辅助功能,今天,我们就来聊聊在您进行数据同步过程中的“小助手”---数据过滤。首先,我们来了解一下数据过滤特性的业务场景----数据同步。 1      数据同步介绍功能介绍数据同步是DRS的重要功能之一。即在不同的系统之间,将数据通过同步技术从一个数据源拷贝到其他数据库,并保持一致,实现关键业务的数据实时流动。常用场景实时分析,报表系统,数仓环境。功能特点数据同步功能聚焦于表和数据,并满足多种灵活性的需求,例如多对一(如下图所示)、一对多,动态增减同步表,不同表名之间同步数据等。对于数据同步有了初步的了解之后,我们可以知道,数据同步不同于迁移,迁移是以整体数据库搬迁为目的,而数据同步是维持不同业务之间的数据持续性流动。那么,在数据的定期同步、拆分汇总数据表等多种应用场景中,我们时常想要实时获取各个表中的某一部分数据来做汇总分析,这个时候,如果能够设定一些同步的规则,来帮助我们更准确、更高效的同步数据,就变得尤为重要。DRS的数据过滤特性,就是解决这种场景的必备“良药”,通过对同步的对象进行加工,为选择的对象添加规则,方便您自己设定想要同步的数据条件。下面,我们就来了解一下今天的主角----数据过滤。2      数据过滤原理基于以数据一致性为首要目标的原则,我们通过一个例子,来看看数据过滤规则添加后,在源库执行更新操作会遇到的几种场景:假设,源库中的id为1、2、3、5、6。我们设置数据过滤条件为id between 1 and 5,那么数据同步后目标库的id为1、2、3、5。如下图所示:首先,我们来看几种常见的更新场景:■  如果在源库中插入id=1.5,此id符合过滤条件(id between 1 and 5),则目标库会执行相同的更新操作。如下图所示:■  如果在源库中删除id=2,此id符合过滤条件(id between 1 and 5),则目标库会执行相同的删除动作。如下图所示:■  如果在源库中将id=3更新为id=3.5,更新后的id仍符合过滤条件(id between 1 and 5),则目标库会执行相同的更新操作。如下图所示:以上,是我们在进行数据同步时,常常遇到的几种场景。当然,有时我们也会遇到如下几种较为特殊的更新场景:■  如果我们执行更新操作,将源库中的id=2更新为id=7,即更新前源库中的id=2符合过滤条件(id between 1 and 5),更新后id=7不符合过滤条件,继续同步时,目标库会执行相同的更新操作,同步后目标库的id为1、3、5、7。如下图所示: ■  如果我们执行更新操作,将源库的id=6更新为id=4,即更新前源库中的id=6不符合过滤条件(id between 1 and 5),更新后id=4符合过滤条件,继续同步时,目标库执行相同的更新操作,但是此时目标库并没有id=6,无法匹配数据。这时,我们会根据当前同步任务选定的冲突处理策略来处理:    ●  冲突处理策略为“覆盖”,则id=4变成新数据在目标数据库插入,源库和目标库的结果仍然一致。如下图所示:    ●  冲突处理策略为“忽略”,则会忽略该更新动作,即源库有id=4,而目标库没有,这种情况目标库数据将少于源库。如下图所示:    ●  冲突处理策略为“报错”,则任务将会失败并立即中止。操作步骤1.  登录管理控制台。2.  单击管理控制台左上角的 ,选择区域和项目。    数据复制服务目前也支持通过使用专属计算集群服务购买的物理机资源,创建所需的实例,实现数据迁移和数据同步。您可以选择自己的专属计算集群。3.  在“所有服务”或“服务列表”中,选择“数据库 > 数据复制服务”,进入数据复制服务信息页面。4.  在“数据同步管理”页面,单击“创建同步任务”。5.  在“场景选择”页面,分别选择“源数据库来源”和“目标数据库来源”后,单击“下一步”进入“同步实例”页面。6.  在“同步实例”页面,填选任务名称、通知收件人信息、描述、同步实例信息,单击“下一步”。7.  同步实例创建成功后,在“源库及目标库”页面,填选源库信息和目标库信息后,单击“源库和目标库”处的“测试连接”,分别测试并确定与源库和目标库连通后,勾选协议,单击“下一步”。            8. 在“设置同步”页面,选择数据冲突策略和同步对象,单击“下一步”。                图1 同步模式                    表1 同步模式和对象参数描述冲突策略数据复制服务提供的数据同步功能使用了主键或唯一键冲突策略,这些策略可以由您自主选择,尽可能保证源数据库中有主键约束或唯一键约束的表同步到目标数据库是符合预期的。冲突策略目前支持如下三种形式:●   忽略当同步数据与目标数据库已有数据冲突时(主键/唯一键存在重复等),将跳过冲突数据,继续进行后续同步。●    报错当同步数据与目标数据库已有数据冲突时(主键/唯一键存在重复等),同步任务将失败并立即中止。●    覆盖当同步数据与目标数据库已有数据冲突时(主键/唯一键存在重复等),将覆盖原来的冲突数据。说明目前仅MySQL->RDS for MySQL的同步场景支持设置“覆盖”冲突策略。当数据发生冲突时,针对如下情况,建议选择“忽略”或者“覆盖”,否则建议选择“报错”:●   目标数据库存在数据●   多对一同步场景●   目标数据库手动更新数据是否过滤DROP   DATABASE数据同步过程中,源数据库端执行的DDL操作在一定程度上会影响数据的同步能力,为了降低同步数据的风险,数据复制服务提供了过滤DDL操作的功能。目前支持默认过滤删除数据库的操作。●    是,表示数据同步过程中不会同步用户在源数据库端执行的删除数据库的操作。    否,则表示数据同步过程中将相关操作同步到目标库。说明目前仅MySQL->MySQL的数据同步场景支持过滤DDL操作。对象同步范围对象同步范围支持索引同步,您可以根据业务需求选择是否进行索引同步。同步对象同步对象支持库级和表级同步,您可以根据业务场景选择对应的数据进行同步。如果有切换源数据库的操作,请在选择同步对象前单击右上角的,以确保待选择的对象为最新源数据库对象。数据同步功能可以支持源数据库和目标数据库中的同步对象(包括数据库、schema、表)的名称不同。如果同步的数据库对象在源数据库和目标数据库中的命名不同,那么可以使用数据复制服务提供的对象名映射功能进行映射。其中包括:库映射、schema映射、表映射。          9.  在“数据加工”页面,“加工类型”选择“数据过滤”            图2 数据加工10.   在“对象选择”区域选择需要加工的表对象。11.   在过滤条件区域,填写过滤条件(只需填写SQL语句的WHERE之后部分,例如id=1)后,单击“校验”。●    每张表仅支持添加一个校验规则。●    Oracle为源库的数据过滤每次最多支持20000张表,MySQL为源库的数据过滤每次最多支持10000张表。●    过滤条件不支持使用某种数据库引擎特有的packege、函数、变量、常量等写法,须使用通用SQL标准。12.   校验通过后,单击“生成加工规则”,即可在加工规则表格中看到该规则。13.   检查无误后,单击“下一步”,进入下一步操作。----结束DRS的数据同步功能除了提供数据过滤的贴心特性之外,还提供了对象名映射、异常诊断、续传、重试、暂停、重置等多种特性,给您的数据同步场景提供保障,解决您的后顾之忧,欲了解详情请戳这里。DRS提供在线迁移、备份迁移、数据同步、数据订阅和多活灾备等多种功能,以各自独有的特点适用不同的数据流通场景,为您提供安心且省心的数据复制体验。欲了解详情请戳这里。
  • [产品介绍] 【DRS云小课】什么是单主灾备?什么是双主灾备?
    伴随着信息技术的高速发展,数据和信息在现代企业中扮演着越来越重要的角色,信息数据的丢失和损坏将对企业造成难以估量的损失。如何抵御大规模的灾难事件受到人们越来越多的关注,现阶段而言,容灾是较好的解决方案。关键数据的备份与恢复操作已经成为系统日常运行维护的一个重要组成部分。华为云云数据库服务的双AZ高可用实例,可以满足同城级别的灾备。数据复制服务提供的多活灾备功能具有跨区域、跨云灾备的能力,分为单主灾备和双主灾备。单主灾备单主灾备即使用一主一备的架构,当灾难发生时原灾备数据库作为业务数据库保证业务正常运行。DRS的主备倒换功能可以实现主备切换,主备倒换前,业务正常运行在业务数据库,并且将数据实时同步至灾备数据库。此时,灾备数据库不可写入数据。主备倒换后,原灾备数据库为可读写状态,可将业务切换到原灾备数据库运行,原业务数据库不可写 。双主灾备双主灾备多用于灾备双方互为主备,共同承担业务流量的场景。其角色分为主1、主2,使用之前需要首先确立本云(本区)RDS的角色,才可以更好的完成多活灾备的搭建。完整的双主灾备是由正、反两条链路构成的,其创建顺序有着严格的要求。开始时,主1为可读写状态、主2为只读状态,正向灾备将初始化数据全量同步到主2后,方可启动反向灾备。此时,主1、主2均为可读写状态,正/反向灾备分别向主2、主1持续同步增量数据。特点及使用约束·  重要! 双主灾备是对环境要求比较高的架构,实施部署双主灾备前请务必阅读约束和设计思考。·  双主灾备的搭建过程对步骤是有严格要求的,请按照以下步骤进行部署,以确保双主任务顺利部署。创建正向灾备任务,具体操作步骤请参见创建灾备任务。创建完成后,会生成两个子任务,即正向灾备和反向灾备任务,此时反向灾备任务为配置状态。当正向灾备任务进入“灾备中”状态时(反向任务操作列出现编辑),配置并启动反向任务。       在“多活灾备管理”页面,选择该灾备任务的反向任务,单击操作列的编辑,进入“创建灾备任务”页面,继续完成创建反向任务。建议您在主2进行验证,满足预期后,启动反向任务。更多内容,猛戳>>>
  • [产品介绍] 【DRS云小课】数据复制服务,如何实现对象名映射
    数据复制服务(Data Replication Service,简称DRS)是一种易用、稳定、高效、用于数据库在线迁移和数据库实时同步的云服务。数据复制服务提供了在线迁移、备份迁移、数据同步、数据订阅和多活灾备等多种功能。数据复制服务支持哪些对象名映射数据复制服务的数据同步功能支持源数据库和目标数据库中同步对象的名称不同,即源库中的对象A同步到目标库,成为目标库中的对象B。可以使用对象名映射功能实现该目的,支持库映射、表映射和schema映射。持对象映射的同步场景映射类型支持同步场景库映射MySQL->MySQL同步MySQL->PostgreSQL同步表映射MySQL->PostgreSQL同步Schema映射MySQL->PostgreSQL同步操作步骤库映射1.     在“设定同步”页面,同步对象右侧已选对象框中,选择需要进行映射的数据库,单击“编辑”按钮。图1 库映射2.     修改库名。在“编辑库名”的弹出框中,填写新的数据库名,修改后的名称即为保存在目标数据库中的库名。图2 修改库名3.     查看修改结果。库名修改成功后,您会看到修改前的库名和修改后的新数据库名,至此,表示完成库映射的配置。图3 查看库名修改结果schema映射schema指数据库对象的集合,这个集合包含了各种对象如:表、视图、存储过程、索引等。1.     在“设定同步”页面,同步对象右侧已选对象框中,选择需要进行映射的schema,单击“编辑”按钮。图4 schema映射2.     修改schema名。在“编辑schema名”的弹出框中,填写新的schema名,修改后的名称即为保存在目标数据库中的schema名。图5 修改schema名3.     查看修改结果。schema名修改成功后,您会看到修改前的schema名和修改后的新schema名,至此,表示完成schema映射的配置。图6 查看schema修改结果表映射1.     在“设定同步”页面,同步对象右侧已选对象框中,选择需要进行映射的表,单击“编辑”按钮。图7 表映射2.     修改表名。在“编辑表名”的弹出框中,填写新的表名,修改后的名称即为保存在目标数据库中的表名。图8 修改表名3.     查看修改结果。表名修改成功后,您会看到修改前的表名和修改后的新表名,至此,表示完成表映射的配置。图9 查看表名修改结果 了解更多,请戳我...
  • [数据库] 【第41课】如何通过DRS实现他云MySQL到GaussDB(for MySQL)的数据迁移
    数据复制服务(DRS)是一种易用、稳定、高效、用于数据同步的云服务,本节小课为您介绍,如何通过DRS将其他云 MySQL实例的数据迁移到华为云GaussDB(for MySQL)。使用场景DRS实时迁移可自动化迁存量数据并持续同步增量数据,保证源和目标数据近实时一致,可自由选择业务割接窗口实现平滑无感搬家,可迁表、视图、存储过程、触发器、用户权限、参数等特性。本实践中的选择均为测试简化基本操作,仅做参考,实际情况请用户按业务场景选择,更多关于DRS的使用场景请单击这里了解。部署架构本示例中,DRS源数据库为其他云MySQL,目标端为华为云云数据库GaussDB(for MySQL),通过公网网络,将源数据库迁移到目标端。创建GaussDB(for MySQL)实例1. 登录华为云控制台。2. 单击管理控制台左上角的,选择区域“华南-广州”。3. 单击左侧的服务列表图标,选择“数据库 > 云数据库 GaussDB”。4. 选择GaussDB(for MySQL),单击“购买数据库实例”。5. 配置实例名称和实例基本信息。6. 选择实例规格。7. 选择实例所属的VPC和安全组、配置数据库端口。VPC和安全组已在创建VPC和安全组中准备好。8. 配置实例密码。9. 单击“立即购买”。10. 返回云数据库GaussDB实例列表。当GaussDB(for MySQL)实例运行状态为“正常”时,表示实例创建完成。其他云MySQL实例准备前提条件已购买其他云数据库MySQL实例。帐号权限符合要求,具体见帐号权限要求。帐号权限要求当使用DRS将其他云MySQL数据库的数据迁移到华为云云数据库GaussDB(for MySQL)实例时,在不同迁移类型的情况下,对源数据库的帐号权限要求如下:迁移类型全量迁移全量+增量迁移源数据库(MySQL)SELECT、SHOW VIEW、EVENT。SELECT、SHOW VIEW、EVENT、LOCK TABLES、REPLICATION SLAVE、REPLICATION CLIENT。MySQL的相关授权操作可参考操作指导。网络设置源数据库MySQL实例需要开放外网域名的访问。各厂商云数据库对应方法不同,请参考各厂商云数据库官方文档进行操作。以阿里云RDS MySQL为例,需要通过申请外网地址来允许外部的应用对接,具体的操作及注意事项可以参考其官方文档进行操作他云提供的相关指导。创建DRS迁移任务本章节介绍如何创建DRS实例,将其他云MySQL上的数据库迁移到华为云GaussDB(for MySQL)。迁移前检查在创建任务前,需要针对迁移条件进行手工自检,以确保您的同步任务更加顺畅。本示例为MySQL到GaussDB(for MySQL)入云迁移,您可以参考入云迁移使用须知获取相关信息。创建迁移任务1. 登录华为云控制台。2. 单击管理控制台左上角的,选择区域,本示例中为“华北-北京四”。3. 单击左侧的服务列表图标,选择“数据库 > 数据复制服务 DRS”。4. 单击“创建迁移任务”。5. 填写迁移任务参数:配置迁移任务名称。填写迁移数据并选择模板库。这里的目标库选择创建GaussDB(for MySQL)实例所创建的GaussDB(for MySQL)实例。6. 单击“下一步”。迁移实例创建中,大约需要5-10分钟。7. 配置源库网络白名单。源数据库MySQL实例需要将DRS迁移实例的弹性公网IP添加到其网络白名单中,确保源数据库可以与DRS实例互通。各厂商云数据库添加白名单的方法不同,请参考各厂商云数据库官方文档进行操作。以阿里云RDS MySQL为例,具体设置网络白名单的操作及注意事项可以参考相关指导。8. 配置源库信息和目标库数据库密码。配置源库信息,单击“测试连接”。当界面显示“测试成功”时表示连接成功。配置源库信息,单击“测试连接”。当界面显示“测试成功”时表示连接成功。9. 单击“下一步”。10. 在“迁移设置”页面,设置迁移用户和迁移对象。迁移用户:否迁移对象:全部迁移11. 单击“下一步”,在“预检查”页面,进行迁移任务预校验,校验是否可进行任务迁移。查看检查结果,如有不通过的检查项,需要修复不通过项后,单击“重新校验”按钮重新进行迁移任务预校验。预检查完成后,且所有检查项结果均成功时,单击“下一步”。12. 单击“提交任务”。返回DRS实时迁移管理,查看迁移任务状态。启动中状态一般需要几分钟,请耐心等待。当状态变更为“已结束”,表示迁移任务完成。说明:目前MySQL到GaussDB(for MySQL)迁移支持全量、全量+增量两种模式。如果创建的任务为全量迁移,任务启动后先进行全量数据迁移,数据迁移完成后任务自动结束。如果创建的任务为全量+增量迁移,任务启动后先进入全量迁移,全量数据迁移完成后进入增量迁移状态。增量迁移会持续性迁移增量数据,不会自动结束。确认迁移结果确认迁移结果可参考如下两种方式:DRS会针对迁移对象、用户、数据等维度进行对比,从而给出迁移结果,详情参见在DRS管理控制台查看迁移结果。直接登录数据库查看库、表、数据是否迁移完成。手工确认数据迁移情况,详情参见在GaussDB管理控制台查看迁移结果。在DRS管理控制台查看迁移结果1. 登录华为云控制台。2. 单击管理控制台左上角的,选择目标区域。3. 单击左侧的服务列表图标,选择“数据库 > 数据复制服务 DRS”。4. 单击DRS实例名称。5. 单击“迁移对比”,选择“对象级对比”,查看数据库对象是否缺失。6. 选择“数据级对比”,查看迁移对象行数是否一致。7. 选择“用户对比”,查看迁移的源库和目标库的账号和权限是否一致。在GaussDB管理控制台查看迁移结果1. 登录华为云控制台。2. 单击管理控制台左上角的,选择目标区域。3. 单击左侧的服务列表图标,选择“数据库 > 云数据库 GaussDB”。4. 选择GaussDB(for MySQL),单击迁移的目标实例的操作列的“登录”。5. 在弹出的对话框中输入密码,单击“测试连接”检查。6. 连接成功后单击“登录”。7. 查看并确认目标库名和表名等。确认相关数据是否迁移完成。
  • [数据库] 【第40课】如何通过DRS实现RDS for MySQL到Kafka的数据同步
    数据复制服务(DRS)是一种易用、稳定、高效、用于数据同步的云服务,本节小课为您介绍,如何通过DRS将RDS for MySQL实例的增量数据同步到分布式消息服务Kafka。使用场景DRS实时同步功能一般用于建立数据同步通道,解决数据共享问题,也可以用于数据流式集成,具有数据转换能力,如库表映射,行列过滤等。本实践中的选择均为测试简化基本操作,仅做参考,实际情况请用户按业务场景选择,更多关于DRS的使用场景请单击这里了解。部署架构本示例中,DRS源数据库为华为云RDS for MySQL,目标端为华为云同Region下的分布式消息服务Kafka,通过VPC网络,将源数据库的增量数据同步到目标端。更多关于DRS的使用场景请单击这里了解。源端RDS for MySQL准备创建RDS for MySQL实例如何创建RDS for MySQL实例,请点击这里查看详细步骤。构造数据1. 登录华为云控制台。2. 单击管理控制台左上角的,选择区域“华南-广州”。3. 单击左侧的服务列表图标,选择“数据库 > 云数据库 RDS”。4. 选择RDS实例,单击实例后的“更多 > 登录”。5. 在弹出的对话框中单击“测试连接”检查。6. 连接成功后单击“登录”。7. 输入实例密码,登录RDS实例。8. 单击“新建数据库”,创建db_test测试库。9. 在db_test库中执行如下语句,创建对应的测试表table3_。CREATE TABLE `db_test`.`table3_` ( `Column1` INT(11) UNSIGNED NOT NULL, `Column2` TIME NULL, `Column3` CHAR NULL, PRIMARY KEY (`Column1`) ) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;目标端Kafka准备创建Kafka实例1. 登录华为云控制台。2. 单击管理控制台左上角的,选择区域“华南-广州”。3. 单击左侧的服务列表图标,选择“应用中间件 > 分布式消息服务Kafka版”。4. 单击“购买Kafka实例”。5. 选择实例区域和可用区。6. 配置实例名称和实例规格等信息。7. 选择存储空间和容量阈值策略。8. 选择实例所属的VPC和安全组。VPC和安全组已在创建VPC和安全组中准备好。9. 配置实例密码。10. 单击“立即购买”。11. 返回实例列表。当Kafka实例运行状态为“运行中”时,表示实例创建完成。创建Topic1. 在“Kafka专享版”页面,单击Kafka实例的名称。2. 选择“Topic管理”页签,单击“创建Topic”。3. 在弹出的“创建Topic”的对话框中,填写Topic名称和配置信息,单击“确定”,完成创建Topic。创建DRS同步任务本章节介绍创建DRS实例,将RDS for MySQL上的数据库增量同步到Kafka。同步前检查在创建任务前,需要针对同步条件进行手工自检,以确保您的同步任务更加顺畅。本示例中,为RDS for MySQL到Kafka的出云同步,您可以参考出云同步使用须知获取相关信息。操作步骤介绍RDS for MySQL到Kafka增量同步任务的详细操作过程。1. 登录华为云控制台。2. 单击管理控制台左上角的,选择区域“华南-广州”。3. 单击左侧的服务列表图标,选择“数据库 > 数据复制服务 DRS”。4. 选择左侧“实时同步管理”,单击“创建同步任务”。5. 填写同步任务参数:配置同步任务名称。选择需要同步任务的源库、目标数据库以及网络信息。这里的目标库选择源端RDS for MySQL准备创建的RDS实例。企业项目选择“default”。   6. 单击“下一步”。同步实例创建中,大约需要5-10分钟。7. 配置源库信息和目标库数据库密码。配置源库信息。单击“测试连接”。当界面显示“测试成功”时表示连接成功。      选择目标库所在VPC和子网,填写Kafka的IP地址和端口。单击“测试连接”。当界面显示“测试成功”时表示连接成功。      8. 单击“下一步”。9. 选择同步信息、策略、消息格式和对象等,投递到Kafka的消息格式。本次选择如下。表1 同步设置类别设置同步Topic策略集中投递到一个Topic,Topic名称“testTopic”。同步到Kafka partition策略按表名+库名的hash值投递到不同Partition。投递到Kafka的数据格式可选择JSON格式,可参考Kafka消息格式。同步对象同步对象选择db_test下的table3_表。10.单击“下一步”。11. 选择数据加工方式。RDS for MySQL到Kafka数据同步目前只支持列加工,列加工提供列级的查询和过滤能力。12. 单击“下一步”,等待预检查结果。13. 当所有检查都是“通过”时,单击"下一步”。14. 确认同步任务信息正确后,单击“启动任务”。返回DRS实时同步管理,查看同步任务状态。启动中状态一般需要几分钟,请耐心等待。当状态变更为“增量同步”,表示同步任务已启动。说明:目前RDS for MySQL到Kafka仅支持增量同步,任务启动后为增量同步状态。如果创建的任务为全量同步,任务启动后进行全量数据同步,数据同步完成后任务自动结束。如果创建的任务为全量+增量同步,任务启动后先进入全量同步,全量数据同步完成后进入增量同步状态。增量同步会持续性同步增量数据,不会自动结束。确认同步任务执行结果由于本次实践为增量同步模式,DRS任务会将源库的产生的增量数据持续同步至目标库中,直到手动任务结束。下面我们通过在源库RDS for MySQL中插入数据,查看Kafka的接收到的数据来验证同步结果。操作步骤1. 登录华为云控制台。2. 单击管理控制台左上角的,选择区域“华南-广州”。3. 单击左侧的服务列表图标,选择“数据库 > 云数据库 RDS””。4. 单击RDS实例后的“更多 > 登录”。5. 在弹出的对话框中单击“测试连接”检查。6. 连接成功后单击“登录”。7. 输入实例密码,登录RDS实例。8. 在DRS同步对象的db_test.table3_表中,执行如下语句,插入数据。INSERT INTO `db_test`.`table3_` (`Column1`,`Column2`,`Column3`) VALUES(4,'00:00:44','ddd');9. 单击左侧的服务列表图标,选择“应用中间件 > 分布式消息服务Kafka版”。10. 在“Kafka专享版”页面,单击Kafka实例的名称。11. 选择“消息查询”页签,在Kafka对应的Topic中,查看接收到相应的JSON格式数据。12. 结束同步任务。根据业务情况,确认数据已全部同步至目标库,可以结束当前任务。单击“操作”列的“结束”。仔细阅读提示后,单击“是”,结束任务。     
总条数:144 到第
上滑加载中