AWS Database Migration Service - 分步迁移指南

Size: px
Start display at page:

Download "AWS Database Migration Service - 分步迁移指南"

Transcription

1 AWS Database Migration Service 分步迁移指南

2 AWS Database Migration Service: 分步迁移指南

3 Table of Contents AWS Database Migration Service 分步演练... 1 将数据库迁移到 Amazon Web Services (AWS)... 2 AWS 迁移工具... 2 本指南中的演练... 2 将本地 Oracle 数据库迁移到 Amazon Aurora MySQL... 4 成本... 4 迁移简要概述... 5 步骤 1 准备 Oracle 源数据库... 5 步骤 2 启动和准备 Aurora MySQL 目标数据库... 5 步骤 3 启动复制实例... 6 步骤 4 创建源终端节点... 6 步骤 5 创建目标终端节点... 6 步骤 6 创建并运行迁移任务... 6 迁移分步指南... 8 步骤 1 配置 Oracle 源数据库... 8 步骤 2 配置 Aurora 目标数据库 步骤 3 创建复制实例 步骤 4 创建 Oracle 源终端节点 步骤 5 创建 Aurora MySQL 目标终端节点 步骤 6 创建迁移任务 步骤 7 监控迁移任务 故障排除 使用示例数据库进行迁移 将 Amazon RDS Oracle 数据库迁移到 Amazon Aurora MySQL 成本 先决条件 迁移架构 分步迁移 步骤 1 使用 CloudFormation 模板启动 VPC 中的 RDS 实例 步骤 2 在本地计算机上安装 SQL 工具和 AWS Schema Conversion Tool 步骤 3 测试到 Oracle 数据库实例的连接并创建示例架构 步骤 4 测试与 Aurora MySQL 数据库实例的连接 步骤 5 使用 AWS Schema Conversion Tool (AWS SCT) 将 Oracle 架构转换为 Aurora MySQL 架构 步骤 6 验证架构转换 步骤 7 创建 AWS DMS 复制实例 步骤 8 创建 AWS DMS 源和目标终端节点 步骤 9 创建并运行 AWS DMS 迁移任务 步骤 10 验证数据迁移是否已成功完成 步骤 11 删除演练资源 后续步骤 将 SQL Server 数据库迁移到 Amazon Aurora MySQL 先决条件 分步迁移 步骤 1 在本地计算机上安装 SQL 驱动程序和 AWS Schema Conversion Tool 步骤 2 配置 Microsoft SQL Server 源数据库 步骤 3 配置 Aurora MySQL 目标数据库 步骤 4 使用 AWS SCT 将 SQL Server 架构转换为 Aurora MySQL 步骤 5 创建 AWS DMS 复制实例 步骤 6 创建 AWS DMS 源和目标终端节点 步骤 7 创建并运行 AWS DMS 迁移任务 步骤 8 切换到 Aurora MySQL 故障排除 将 Oracle 数据库迁移到 PostgreSQL iii

4 先决条件 分步迁移 步骤 1 在本地计算机上安装 SQL 驱动程序和 AWS Schema Conversion Tool 步骤 2 配置 Oracle 源数据库 步骤 3 配置 PostgreSQL 目标数据库 步骤 4 使用 AWS Schema Conversion Tool (AWS SCT) 将 Oracle 架构转换为 PostgreSQL 步骤 5 创建 AWS DMS 复制实例 步骤 6 创建 AWS DMS 源和目标终端节点 步骤 7 创建并运行 AWS DMS 迁移任务 步骤 8 切换到 PostgreSQL 回滚迁移 故障排除 将 Amazon RDS for Oracle 数据库迁移到 Amazon Redshift 先决条件 迁移架构 分步迁移 步骤 1 使用 CloudFormation 模板启动 VPC 中的 RDS 实例 步骤 2 在本地计算机上安装 SQL 工具和 AWS Schema Conversion Tool 步骤 3 测试到 Oracle 数据库实例的连接并创建示例架构 步骤 4 测试与 Amazon Redshift 数据库的连接 步骤 5 使用 AWS SCT 将 Oracle 架构转换为 Amazon Redshift 架构 步骤 6 验证架构转换 步骤 7 创建 AWS DMS 复制实例 步骤 8 创建 AWS DMS 源和目标终端节点 步骤 9 创建并运行 AWS DMS 迁移任务 步骤 10 验证数据迁移是否已成功完成 步骤 11 删除演练资源 后续步骤 将与 MySQL 兼容的数据库迁移到 AWS 将与 MySQL 兼容的数据库迁移到 Amazon Aurora MySQL 使用 Amazon S3 将数据从外部 MySQL 数据库迁移到 Amazon Aurora MySQL 先决条件 步骤 1 备份文件以还原为数据库群集 步骤 2 将文件复制到 Amazon S3 存储桶 步骤 3 从 S3 存储桶还原 Aurora MySQL 数据库集群 使用 mysqldump 将 MySQL 迁移到 Amazon Aurora MySQL 将数据从 Amazon RDS MySQL 数据库实例迁移到 Amazon Aurora MySQL 数据库集群 将 RDS MySQL 快照迁移到 Aurora MySQL 文档历史记录 iv

5 AWS Database Migration Service 分 步演练 您可以使用 AWS Database Migration Service (AWS DMS) 将数据迁入 迁出使用最为广泛的商 用和开源数据库 如 Oracle PostgreSQL Microsoft SQL Server Amazon Redshift Amazon Aurora MariaDB MySQL 等 该服务支持同构迁移 如 Oracle 到 Oracle 也支持不同数据库平台之间 的异构迁移 如 Oracle 到 MySQL 或 MySQL 到 Amazon Aurora 与 MySQL 的兼容性 源数据库或目标 数据库必须位于 AWS 服务上 在本指南中 您可以找到分步演练 这些演练可引导您完成将示例数据迁移到 AWS 的过程 将数据库迁移到 Amazon Web Services (AWS) (p. 2) 将本地 Oracle 数据库迁移到 Amazon Aurora MySQL (p. 4) 将 Amazon RDS Oracle 数据库迁移到 Amazon Aurora MySQL (p. 22) 将 SQL Server 数据库迁移到 Amazon Aurora MySQL (p. 56) 将 Oracle 数据库迁移到 PostgreSQL (p. 77) 将 Amazon RDS for Oracle 数据库迁移到 Amazon Redshift (p. 100) 将与 MySQL 兼容的数据库迁移到 AWS (p. 135) 将与 MySQL 兼容的数据库迁移到 Amazon Aurora MySQL (p. 136) 1

6 AWS 迁移工具 将数据库迁移到 Amazon Web Services (AWS) AWS 迁移工具 您可以使用多种 AWS 工具和服务将数据从外部数据库迁移到 AWS 根据您正在进行的数据库迁移类型 您 可能会发现也可使用数据库引擎的原生迁移工具 AWS Database Migration Service (AWS DMS) 帮助您高效 安全地将数据库迁移到 AWS 源数据库可在迁 移过程中保持全面运行 从而最大程度地为依赖该数据库的应用程序减少停机时间 AWS DMS 可将 Oracle 数据迁移到 AWS 上最广泛使用的商业开源数据库 AWS DMS 将数据 表和主键迁移到目标数据库 不会迁移所有其他数据库元素 例如 如果要将 Oracle 数 据库迁移到 Amazon Aurora 与 MySQL 的兼容性 可将 AWS Schema Conversion Tool 与 AWS DMS 一起 使用 AWS Schema Conversion Tool (SCT) 通过以下方法来简化异构数据库的迁移工作 将源数据库架构和大部 分的自定义代码 (包括视图 存储过程和函数等) 自动转换成与目标数据库兼容的格式 它会清楚地标记无法 自动转换的任意代码 以便您进行手动转换 您可以使用该工具将源 Oracle 数据库转换为 Amazon RDS 或 EC2 上的 Amazon Aurora MySQL MySQL 或 PostgreSQL 目标数据库 需要了解的是 DMS 和 SCT 是两种不同的工具 适用于不同的需求 它们在迁移过程中彼此并不交互 根 据 DMS 最佳实践 本教程的迁移方法概述如下 AWS DMS 采用极简方法 仅创建有效迁移数据所需的那些对象 例如带有主键的表 因此 我们将使用 DMS 来加载其数据不含任何外键或约束的表 (我们也可在通过 DMS 执行加载之前 使用 SCT 生成表脚 本并在目标上创建该表) 我们将利用 SCT 确定架构转换的问题 限制和操作 生成目标架构脚本 包括外键和约束 将代码 (例如过程和视图) 从源转换到目标并在目标上应用 您要执行的 Oracle 数据库迁移的大小和类型很大程度上决定了应使用的工具 例如异构迁移 这种情况下您 从 Oracle 数据库迁移到 AWS 上的其他数据库引擎 此时最好使用 AWS DMS 来完成 而对于从 Oracle 数 据库迁移到 AWS 上的 Oracle 数据库的同构迁移 最好使用原生 Oracle 工具完成 本指南中的演练 将本地 Oracle 数据库迁移到 Amazon Aurora MySQL (p. 4) 将 Amazon RDS Oracle 数据库迁移到 Amazon Aurora MySQL (p. 22) 将 SQL Server 数据库迁移到 Amazon Aurora MySQL (p. 56) 将 Oracle 数据库迁移到 PostgreSQL (p. 77) 将 Amazon RDS for Oracle 数据库迁移到 Amazon Redshift (p. 100) 2

7 本指南中的演练 将与 MySQL 兼容的数据库迁移到 AWS (p. 135) 将与 MySQL 兼容的数据库迁移到 Amazon Aurora MySQL (p. 136) 3

8 成本 将本地 Oracle 数据库迁移到 Amazon Aurora MySQL 您可以在下面找到简要概述以及完整分步演练 它们说明了使用 AWS Database Migration Service (AWS DMS) 和 AWS Schema Conversion Tool (AWS SCT) 将本地 Oracle 数据库 源终端节点 迁移到 Amazon Aurora 与 MySQL 的兼容性 目标终端节点 的过程 AWS DMS 将数据从 Oracle 源迁移到 Aurora MySQL 目标 AWS DMS 还捕获在源数据库上进行的数据操 作语言 (DML) 和数据定义语言 (DDL) 更改 并将这些更改应用于目标数据库 这样 AWS DMS 可以帮助将 源和目标数据库保持同步 为了便于数据迁移 DMS 会在目标数据库上创建表和主键索引 (如果需要) 但是 AWS DMS 不会迁移辅助索引 序列 默认值 存储过程 触发器 同义词 视图以及与数据迁移 不明确相关的其他架构对象 要将这些对象迁移到 Aurora MySQL 目标 请使用 AWS Schema Conversion Tool 强烈建议您使用 Amazon 示例数据库进行后续操作 要查找使用示例数据库的教程和有关如何获取示例数据 库副本的说明 请参阅使用示例数据库进行迁移 (p. 21) 如果之前已使用 AWS DMS 或更愿意通过单击鼠标来阅读 则可能需要使用简要概述 如果您需要了解详细 信息 并且需要更稳健的方法 (或遇到问题) 则您可能需要分步指南 主题 在 Amazon RDS 上 从本地 Oracle 迁移到 Aurora MySQL 或 MySQL 时间: 成本: 源数据库 Oracle 目标数据库 Amazon Aurora MySQL/MySQL 限制: Oracle 版本 Enterprise Standard Express 和 Personal 版本 Oracle 版本 10g (10.2 和更高版本) 11g 12c (在 Amazon Relational Database Service (Amazon RDS) 上 需要 11g 或更高版本 ) MySQL 或相关数据库版本 MariaDB Amazon Aurora MySQL 字符集 当前不支持 utf8mb4 成本 由于 AWS DMS 尚未集成到结算器中 请参阅下表以了解定价估算 除了您自己 PC 上的设置以外 您还必须创建几个 AWS 组件来完成迁移过程 AWS 组件包括 4

9 迁移简要概述 AWS 服务 类型 说明 Amazon Aurora MySQL 数据库实例 db.r3.large 单可用区 10 GB 存储空间 100 万 I/O AWS DMS 复制实例 T2.large 包含用于保留复制 日志的 50 GB 存储 空间 AWS DMS 数据传输 免费 基于为示例 数据库传输的数据 量 数据传出 每月第一个 GB 免 费 迁移简要概述 要使用 AWS DMS 将数据从 Oracle 迁移到 Aurora MySQL 请执行以下步骤 如果之前已使用 AWS DMS 或更愿意通过单击鼠标来阅读 以下摘要可帮助您开始迁移 要获取有关迁移的详细信息或者如果您遇到问 题 请参阅分步指南 步骤 1 准备 Oracle 源数据库 要使用 AWS DMS 迁移 Oracle 源数据库中的数据 需要做一些准备 作为最佳实践 我们还建议执行几个 附加步骤 AWS DMS 账户 - 较好的做法是创建单独的账户来专门迁移数据 此账户应具有迁移数据所需的最小权限 集 下面概述了有关这些权限的特定详细信息 如果只是想在非生产数据库上测试 AWS DMS 则任意一 个 DBA 账户都够用 补充日志记录 要捕获更改 您必须启用补充日志记录以使用 DMS 要在数据库级别启用补充日志记录 请发出以下命令 ALTER DATABASE ADD SUPPLEMENTAL LOG DATA 此外 对于将迁移的每个表 AWS DMS 要求至少设置键级别的补充日志记录 如果包含源连接的以下额 外连接参数 则 AWS DMS 会自动添加此补充日志记录 addsupplementallogging=y 源数据库 - 要迁移数据 AWS DMS 复制服务器需要对源数据库的访问权限 确保防火墙规则允许 AWS DMS 复制服务器进入 步骤 2 启动和准备 Aurora MySQL 目标数据库 以下是在启动 Aurora MySQL 实例时要考虑的一些事项 要获得最佳结果 建议将 Aurora MySQL 实例和复制实例放在相同的 VPC 和可用区 如果可能 中 建议您创建一个具有最小权限的独立账户用于迁移数据 AWS DMS 账户需要将数据迁移到的所有数据库 的以下权限 5

10 步骤 3 启动复制实例 ALTER, CREATE, DROP, INDEX, INSERT, UPDATE, DELETE, SELECT 此外 AWS DMS 还需要具有 awsdms_control 数据库的完全访问权限 此数据库包含 AWS DMS 所需的 特定于迁移的信息 要提供访问权限 请运行以下命令 ALL PRIVILEGES ON awsdms_control.* TO 'dms_user' 步骤 3 启动复制实例 AWS DMS 服务将从复制实例连接到源和目标数据库 以下是在启动复制实例时要考虑的一些事项 要获得最佳结果 建议在目标数据库所在的同一 VPC 和可用区 此示例中为 Aurora MySQL 中定位复制 实例 如果源或目标数据库位于您从中启动复制服务器的 VPC 的外部 则复制服务器必须可公开访问 AWS DMS 会占用大量的内存和 CPU 不过 如果需要 可以轻松纵向扩展 如果您预计在单个复制服务 器上运行几个任务 或 对于大多数迁移来说 默认存储空间通常已足够 步骤 4 创建源终端节点 要让 AWS DMS 能够访问 Oracle 源数据库 您需要创建源终端节点 源终端节点定义 AWS DMS 从复制服 务器连接到源数据库所需的所有信息 以下是源终端节点的一些要求 需要能够从复制服务器访问源终端节点 要允许这样做 您可能需要修改防火墙规则以将复制服务器列入 白名单 您可以在 AWS DMS 管理控制台中查找复制服务器的 IP 地址 为了使 AWS DMS 能够捕获更改 Oracle 要求启用补充日志记录 如果需要 AWS DMS 为您启用补充日 志记录 请将以下内容添加到 Oracle 源终端节点的额外连接属性 addsupplementallogging=y 步骤 5 创建目标终端节点 要使 AWS DMS 能够访问 Aurora MySQL 目标数据库 您需要创建目标终端节点 目标终端节点定义 DMS 连接到 Aurora MySQL 数据库所需的所有信息 需要能够从复制服务器访问目标终端节点 您可能需要修改您的安全组以使目标终端节点可访问 如果您已在目标上预创建数据库 则在完全加载期间禁用外键检查是不错的做法 为此 请将以下内容添 加到您的额外连接属性 initstmt=set FOREIGN_KEY_CHECKS=0 步骤 6 创建并运行迁移任务 AWS DMS 可通过迁移任务获知数据的迁移位置和迁移方式 在创建迁移任务时 您应考虑设置迁移参数 如下所示 Endpoints and replication server (终端节点和复制服务器) 选择上面创建的终端节点和复制服务器 6

11 步骤 6 创建并运行迁移任务 Migration type (迁移类型) 在大多数情况下 您需要选择 migrate existing data and replication ongoing changes (迁移现有数据并复制持续更改) 使用该选项时 AWS DMS 加载源数据并捕获对该数据进行的更 改 在数据完全加载后 AWS DMS 将应用所有未完成的更改 并使源数据库和目标数据库保持同步 直到 任务停止 Target table preparation mode (目标表准备模式) 如果让 AWS DMS 创建表 请选择 drop tables on target (删除目标中的表) 如果您使用某种其他方法创建目标表 (例如 AWS Schema Conversion Tool) 请选 择截断 LOB parameters (LOB 参数) 如果直接尝试使用 AWS DMS 请选择 include LOB columns in replication (在复制时包括 LOB 列) 和 Limited LOB mode (受限 LOB 模式) 然后将 max LOB size (最大 LOB 大小) 设 置为 16 即 16k 有关 LOB 的更多信息 请参阅分步指南中的详细信息 Enable logging (启用日志记录) 要帮助调试迁移问题 请始终启用日志记录 Table mappings (表映射) 在从 Oracle 迁移到 Aurora MySQL 时 建议将架构 表和列的名称转换为小写 形式 为此 请创建一个自定义表映射 以下示例迁移架构 DMS_SAMPLE 并将架构 表和列的名称转换为 小写形式 { "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "DMS_SAMPLE", "table-name": "%" }, "rule-action": "include" }, { "rule-type": "transformation", "rule-id": "6", "rule-name": "6", "rule-action": "convert-lowercase", "rule-target": "schema", "object-locator": { "schema-name": "%" } }, { "rule-type": "transformation", "rule-id": "7", "rule-name": "7", "rule-action": "convert-lowercase", "rule-target": "table", "object-locator": { "schema-name": "%", "table-name": "%" } }, { "rule-type": "transformation", "rule-id": "8", "rule-name": "8", "rule-action": "convert-lowercase", "rule-target": "column", "object-locator": { "schema-name": "%", "table-name": "%", "column-name": "%" } 7

12 迁移分步指南 ] } } 迁移分步指南 您可以在下面找到将 Oracle 数据库从本地环境迁移到 Amazon Aurora MySQL 的分步说明 这些说明假定您 已完成设置以使用 AWS Database Migration Service 中的有关使用 AWS DMS 的设置步骤 主题 步骤 1 配置 Oracle 源数据库 (p. 8) 步骤 2 配置 Aurora 目标数据库 (p. 10) 步骤 3 创建复制实例 (p. 10) 步骤 4 创建 Oracle 源终端节点 (p. 12) 步骤 5 创建 Aurora MySQL 目标终端节点 (p. 14) 步骤 6 创建迁移任务 (p. 16) 步骤 7 监控迁移任务 (p. 20) 故障排除 (p. 20) 步骤 1 配置 Oracle 源数据库 要将 Oracle 作为 AWS Database Migration Service (AWS DMS) 源 您必须先确保 ARCHIVELOG MODE 已启用以便向 LogMiner 提供信息 AWS DMS 使用 LogMiner 读取存档日志中的信息 以便 AWS DMS 能 够捕获更改 要让 AWS DMS 读取此信息 请确保在 AWS DMS 需要存档日志时 在数据库服务器上保留这些日志 如 果将任务配置为立即开始捕获更改 则存档日志的保留时间只需比运行时间最长的事务的持续时间略长一 点 通常 将存档日志保留 24 小时已足够 如果将任务配置为从过去的某个时间点开始 则存档日志需要 从该时间点起可用 有关启用 ARCHIVELOG MODE 并确保本地 Oracle 数据库的日志保留的更详细说明 请参阅 Oracle 文档 为了捕获更改数据 AWS DMS 需要在源数据库上为 AWS DMS 启用补充日志记录 必须在数据库级别启用 最小补充日志记录 AWS DMS 还需要启用识别键日志记录 每次更新包含主键的行时 该选项导致数据库 将该行的主键的所有列放在重做日志文件中 (即使主键中的值未更改) 您可以在数据库级别或表级别设置该 选项 如果您的 Oracle 源在 Amazon RDS 中 则当且仅当您启用备份时 数据库将置于 ARCHIVELOG MODE 中 以下命令将确保在 RDS 源上将存档日志保留 24 小时 exec rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',24); 配置 Oracle 源数据库 1. 运行以下命令可在数据库级别启用补充日志记录 AWS DMS 要求这样做 ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; For RDS: exec rdsadmin.rdsadmin_util.alter_supplemental_logging('add'); 8

13 步骤 1 配置 Oracle 源数据库 2. 使用以下命令可在数据库级别启用识别键补充日志记录 AWS DMS 需要数据库级别的补充键日志记 录 除非您允许 AWS DMS 自动按需添加补充日志记录或在表级别启用键级别补充日志记录 ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS; For RDS: exec rdsadmin.rdsadmin_util.alter_supplemental_logging('add','primary KEY'); 3. 在启用键级别补充日志记录时 您的源数据库会产生少量开销 因此 如果您仅迁移一部分表 则可能 需要在表级别启用键级别补充日志记录 要在表级别启用键级别补充日志记录 请使用以下命令 alter table table_name add supplemental log data (PRIMARY KEY) columns; 如果表没有主键 则您有两种选择 您可以向表中的第一个唯一索引涉及的所有列添加补充日志记录 (按索引名称排序 ) 您可以在表的所有列上添加补充日志记录 要在表中的一部分列 (唯一索引涉及的列) 上添加补充日志记录 请运行以下命令 ALTER TABLE table_name ADD SUPPLEMENTAL LOG GROUP example_log_group (ID,NAME) ALWAYS; 要为表的所有列添加补充日志记录 请运行以下命令 alter table table_name add supplemental log data (ALL) columns; 4. 创建或配置要由 AWS DMS 使用的数据库账户 建议使用具有 AWS DMS 所需的最小权限的账户进行 AWS DMS 连接 AWS DMS 需要以下权限 CREATE SELECT SELECT SELECT SELECT SELECT SELECT SELECT SELECT SELECT SELECT SELECT SELECT SELECT SELECT SELECT SELECT SELECT SELECT SELECT SELECT SELECT SELECT SELECT SESSION ANY TRANSACTION on V_$ARCHIVED_LOG on V_$LOG on V_$LOGFILE on V_$DATABASE on V_$THREAD on V_$PARAMETER on V_$NLS_PARAMETERS on V_$TIMEZONE_NAMES on V_$TRANSACTION on ALL_INDEXES on ALL_OBJECTS on ALL_TABLES on ALL_USERS on ALL_CATALOG on ALL_CONSTRAINTS on ALL_CONS_COLUMNS on ALL_TAB_COLS on ALL_IND_COLUMNS on ALL_LOG_GROUPS on SYS.DBA_REGISTRY on SYS.OBJ$ on DBA_TABLESPACES 9

14 步骤 2 配置 Aurora 目标数据库 SELECT on ALL_TAB_PARTITIONS SELECT on ALL_ENCRYPTED_COLUMNS * SELECT on all tables migrated 如果您需要捕获和应用更改 (CDC) 则您还需要以下权限 EXECUTE on DBMS_LOGMNR SELECT on V_$LOGMNR_LOGS SELECT on V_$LOGMNR_CONTENTS LOGMINING /* For Oracle 12c and higher. */ * ALTER for any table being replicated (if you want DMS to add supplemental logging) 对于 之前的 Oracle 版本 您需要以下权限 如果视图已公开 则您需要以下权限 SELECT on DBA_OBJECTS /* versions before */ SELECT on ALL_VIEWS (required if views are exposed) 步骤 2 配置 Aurora 目标数据库 对于源数据库 最好是限制您与之连接的用户的访问权限 您也可以创建一个可在迁移后删除的临时用户 CREATE USER 'dms_user'@'%' IDENTIFIED BY 'dms_user'; GRANT ALTER, CREATE, DROP, INDEX, INSERT, UPDATE, DELETE, SELECT ON <target database(s)>.* TO 'dms_user'@'%'; AWS DMS 在数据库 awsdms_control 中的目标上使用某些控制表 以下命令可确保您的 dms_user 具有 awsdms_control 数据库的必要访问权限 GRANT ALL PRIVILEGES ON awsdms_control.* TO 'dms_user'@'%'; flush privileges; 步骤 3 创建复制实例 AWS DMS 复制实例执行源和目标之间的实际数据迁移 此复制实例还在迁移期间对更改进行缓存 复制实 例具有的 CPU 和内存容量将影响迁移所需的总体时间 使用以下过程可设置复制实例的参数 创建 AWS DMS 复制实例 1. 登录 AWS 管理控制台 并在 上打开 AWS DMS 控制台 然后选 择 Replication instances (复制实例) 如果以 AWS Identity and Access Management (IAM) 用户身份登 录 则必须具有 AWS DMS 的相应访问权限 有关所需权限的更多信息 请参阅使用 AWS DMS 所需 的 IAM 权限 2. 选择创建复制实例 3. 在创建复制实例页中 指定您的复制实例信息 如下所示 10

15 步骤 3 创建复制实例 4. 对于此参数 执行该操作 名称 如果您计划启动多个复制实例或共享一个账户 请选择一个 可帮助您快速区分不同的复制实例的名称 描述 一个好的描述可使其他人了解复制实例将用于的项目 并可 以防止发生意外 实例类 AWS DMS 会占用大量的内存和 CPU 如果您有一个大型 数据库 (许多表) 或使用大量 LOB 数据类型 则设置一个大 型实例可能会更好 如下所述 您也许能够通过运行多个任 务来增加吞吐量 多个任务会占用更多的资源并需要大型实 例 在运行测试时关注 CPU 和内存消耗量 如果您发现您 使用了 CPU 或交换空间的全部容量 则可以轻松地纵向扩 展 VPC 在这里 您可以选择从中启动复制实例的 VPC 建议 如 果可能 选择源和/或目标数据库所在的同一 VPC AWS DMS 需要从该 VPC 中访问源和目标数据库 如果任一或两 个数据库终端节点位于该 VPC 的外部 则修改防火墙规则 以允许 AWS DMS 访问 多可用区 如果选择多可用区 AWS DMS 将在单独的可用区中启动主 复制实例和辅助复制实例 如果出现灾难性磁盘故障 主复 制实例将自动故障转移到辅助复制实例 并阻止服务中断 在大多数情况下 如果您执行迁移 则不需要多可用区 如 果您的初始数据加载花费了很长时间 并且您需要使源数据 库与目标数据库在相当长的一段时间保持同步 则可以考虑 在多可用区配置下运行迁移服务器 公开访问 如果您的源数据库或目标数据库在复制实例所在的 VPC 的 外部 则需要使您的复制实例可公开访问 在高级部分中设置以下参数 然后选择下一步 对于此选项 请执行该操作 分配的存储空间 (GB) 存储空间主要由日志文件和缓存的事务消耗 对于缓存事 务 仅在需要将缓存的事务写入磁盘时消耗存储空间 因 此 AWS DMS 不会使用大量存储空间 一些例外情况包 括 产生大量事务负载的超大型表 加载大型表可能需要花费 一些时间 因此 在大型表加载期间 很有可能将缓存的 事务写入磁盘 配置为在加载缓存的事务之前暂停的任务 在此情况下 将缓存所有事务 直到为所有表完成完全加载 在使用此 配置时 缓存的事务可能会占用大量存储空间 使用将加载到 Amazon Redshift 中的表配置的任务 但在 目标为 Aurora MySQL 的情况下 此配置不会成为问题 在大多数情况下 默认分配的存储空间已足够 不过 关注 与存储相关的指标并在您发现使用的存储空间大于默认分配 值时纵向扩展始终是不错的做法 11

16 步骤 4 创建 Oracle 源终端节点 对于此选项 请执行该操作 复制子网组 如果您在多可用区配置中运行 则需要至少两个子网组 可用区 如果可能 请将主复制服务器与目标数据库放在同一可用区 中 VPC 安全组 利用安全组 您可以控制 VPC 的传入和传出 利用 AWS DMS 可以将一个或多个安全组与从中启动复制服务器的 VPC 关联 KMS 主密钥 利用 AWS DMS 可使用 KMS 加密密钥来加密所有静态数 据 默认情况下 AWS DMS 为复制服务器创建一个新的加 密密钥 不过 您可以使用现有密钥 (如果需要) 步骤 4 创建 Oracle 源终端节点 在创建复制实例时 可以使用 AWS 管理控制台指定 Oracle 源终端节点 但是 您只能在创建复制实例后测 试连接 因为复制实例将用于测试连接 使用 AWS 控制台指定源或目标数据库终端节点 1. 在 AWS DMS 控制台中 在导航窗格中选择 Endpoints (终端节点) 2. 选择创建终端节点 将显示创建数据库终端节点页 如下所示 12

17 步骤 4 创建 Oracle 源终端节点 指定源 Oracle 数据库的连接信息 下表描述了源设置 对于此参数 请执行该操作 终端节点类型 选择源 终端节点标识符 键入 Oracle 终端节点的标识符 终端节点的标识符在 AWS 区域中必须是唯一的 Source Engine 选择 oracle 服务器名称 如果您的数据库是本地数据库 请键入可供 AWS DMS 用 来从复制服务器连接到您的数据库的 IP 地址 如果您的数 据库正在 Amazon Elastic Compute Cloud (Amazon EC2) 或 Amazon RDS 上运行 请键入公共域名服务 (DNS) 地 址 端口 键入数据库正在为连接侦听的端口 (对于 Oracle 默认值为 1521) SSL 模式 如果您需要为此终端节点启用连接加密 请选择安全套接字 层 (SSL) 模式 根据您选择的模式 您可能需要提供证书和 服务器证书信息 Username 键入 AWS 账户的用户名 建议您创建特定于您的迁移的 AWS 账户 密码 提供前面的用户名的密码 选择高级选项卡以设置额外连接字符串和加密密钥值 对于此选项 请执行该操作 额外的连接属性 您可以在此处为用于控制终端节点的行为的额外属性添加 值 此处列出了几个最相关的属性 有关完整列表 请参阅 文档 使用分号 (;) 将多个条目分隔开来 addsupplementallogging 如果启用该选项 (addsupplementallogging=y) AWS DMS 将自动添加 补充日志记录 uselogminerreader 默认情况下 AWS DMS 使用 Oracle LogMiner 从日志捕获更改数据 AWS DMS 也可 以使用其专有技术来分析日志 如果您使用 Oracle 12c 并且需要捕获对包含 LOBS 的表的更改 请将此项设置为 No (uselogminerreader=n) numberdatatypescale Oracle 支持不具有精度或小 数位数的 NUMBER 数据类型 默认情况下 NUMBER 将转换为精度为 38 且小数位数为 10 的数字 即 number(38,10) 有效值为 0 38 或 -1 对于 FLOAT archivedlogdestid 该选项指定已存档重做日志的目 标 该值应与 $archived_log 表中的 DEST_ID 数相同 在使用多个日志目标 (DEST_ID) 时 建议您为存档的重 做日志指定位置标识符 这样做将确保从一开始便访问正 确的日志 从而提高性能 该选项的默认值为 0 13

18 步骤 5 创建 Aurora MySQL 目标终端节点 对于此选项 请执行该操作 KMS 主密钥 选择要用于加密复制存储和连接信息的加密密钥 如果选择 (默认值) aws/dms 则会使用与您的账户和区域关联的默认 AWS KMS 密钥 在保存终端节点之前 您可以对其进行测试 为此 请选择从中执行测试的 VPC 和复制实例 在测试期 间 AWS DMS 将刷新与终端节点关联的架构的列表 (在使用此源终端节点创建任务时 架构将显示为源选 项 ) 步骤 5 创建 Aurora MySQL 目标终端节点 接下来 您可以指定目标终端节点设置 以便为目标 Amazon Aurora MySQL 数据库提供信息 下表描述了 目标设置 使用 AWS 管理控制台指定目标数据库终端节点 1. 在 AWS DMS 控制台中 在导航窗格中选择 Endpoints (终端节点) 2. 选择创建终端节点 将显示创建数据库终端节点页 如下所示 3. 为目标 Aurora MySQL 数据库指定连接信息 下表描述了目标设置 14

19 步骤 5 创建 Aurora MySQL 目标终端节点 4. 对于此参数 请执行该操作 终端节点类型 选择目标 终端节点标识符 键入 Aurora MySQL 终端节点的标识符 终端节点的标识符 在 AWS 区域中必须是唯一的 目标引擎 选择 aurora 服务器名称 键入 Aurora MySQL 实例的写入器终端节点 写入器终端节 点是主实例 端口 键入分配给实例的端口 SSL 模式 如果您需要为此终端节点启用连接加密 请选择 SSL 模 式 根据您选择的模式 您可能需要提供证书和服务器证书 信息 Username 键入将用于迁移的账户的用户名 建议您创建特定于您的迁 移的账户 密码 提供前面的用户名的密码 选择高级选项卡以设置额外连接字符串和加密密钥值 (如果需要) 对于此选项 请执行该操作 额外的连接属性 您可以在此处为用于控制终端节点的行为的附加 属性输入值 此处列出了几个最相关的属性 有 关完整列表 请参阅文档 使用分号 (;) 将多个条 目分隔开来 targetdbtype 默认情况下 AWS DMS 为每个要迁移的架构创建一个单独的 MySQL 数据库 有时 您可能需要将多 个架构中的对象合并为一个数据库 为 此 请将该选项设置为 specific_database (targetdbtype=specific_database) initstmt 您可使用该选项调用 MySQL initstmt 连接参数并接受 mysql initstmt 所接受的任何内 容 在使用 Aurora MySQL 目标时 禁用外键 检查通常会很有用 为此 请按以下所示使用 initstmt 参数 initstmt=set FOREIGN_KEY_CHECKS=0 KMS 主密钥 选择要用于加密复制存储和连接信息的加密密 钥 如果选择 (默认值) aws/dms 则会使用与您 的账户和区域关联的默认 AWS KMS 密钥 在保存您的终端节点之前 您有机会对其进行测试 为此 您需要选择从中执行测试的 VPC 和复制实例 15

20 步骤 6 创建迁移任务 步骤 6 创建迁移任务 在创建迁移任务时 您告知 AWS DMS 所需的数据迁移方式 在一个任务中 您定义要迁移的表 这些表的 迁移位置以及迁移方式 如果计划使用 AWS DMS 的更改捕获和应用功能 则必须了解单个任务中维护的事 务 换言之 您应迁移所有参与同一个任务中的单个事务的表 利用 AWS DMS 任务 您可以指定要迁移的架构和迁移类型 您可以迁移现有数据 迁移现有数据并复制正 在进行的更改或仅复制数据更改 此演练仅迁移现有数据 创建迁移任务 1. 在导航窗格中 选择任务 2. 选择创建任务 3. 在创建任务页中 指定任务选项 下表描述了设置 对于此选项 执行该操作 任务名称 为任务提供有助于组织识别的描述性名称始终是不错的做 法 任务描述 键入任务的说明 源终端节点 选择您的源终端节点 目标终端节点 选择您的目标终端节点 复制实例 选择在其上运行任务的复制实例 请记住 必须可从该实例 访问您的源和目标终端节点 迁移类型 可对 AWS DMS 使用三种不同的迁移类型 迁移现有数据 如果选择该选项 AWS DMS 仅迁移现有数据 不捕获对 源数据进行的更改 也不会将这些更改应用于目标 如果 您能够承受在完全加载的持续时间内发生中断 则可使用 该选项轻松直接地迁移 此外 此方法也适合在创建数据 库的测试副本时使用 迁移现有数据并复制持续更改 利用该选项 AWS DMS 可在迁移现有数据时捕获更改 甚至在加载批量数据后 AWS DMS 也会继续捕获和应用 更改 最终 源数据库和目标数据库将保持同步 从而实 现停机时间最少的迁移 为此 请执行以下步骤 关闭应用程序 让最终更改流向目标 执行任何管理任务 例如 启用外键和触发器 启动指向新目标数据库的应用程序 Note AWS DMS 逐个表加载批量数据 一次加载 <n> 个表 在进行完全加载期间 AWS DMS 开始 尽快将缓存的更改应用于目标表 在批量加载期 间 违反了引用完整性 因此必须为完全加载禁 用现有外键 在完全加载完成后 您的目标数据 库将具有完整性 并且更改将作为事务应用 16

21 步骤 6 创建迁移任务 对于此选项 执行该操作 仅复制数据更改 在某些情况下 您可以选择使用其他方法来加载批量数 据 此方法通常仅适用于同构迁移 在创建时启动任务 4. 在大多数情况下 让任务立即启动是不错的做法 有时 您 可能需要延迟启动任务以更改日志记录级别 接下来 设置高级设置 如下所示 对于此选项 执行该操作 目标表准备模式 AWS DMS 可让您指定加载前准备目标表的方式 Do nothing (不执行任何操作) - 如果选择该选项 AWS DMS 不会执行任何操作以准备表 您的表结构将保留原 样 并且任何现有数据将保留在表中 您可以使用此方法来 整合多个系统中的数据 Drop tables on target (删除目标中的表) - 如果需要 AWS DMS 创建目标表 通常使用该选项 如果选择该选 项 AWS DMS 在迁移前删除并重新创建要迁移的表 截断 如果您希望在目标系统上预创建一些或所有表 (可能 使用 AWS Schema Conversion Tool) 请选择该选项 如 果选择该选项 AWS DMS 在加载目标表之前将其截断 如 果目标表不存在 AWS DMS 将创建该表 在复制时包括 LOB 列 有时 大对象 (LOB) 难以在系统之间迁移 AWS DMS 提供 了大量选项来帮助优化 LOB 列 要查看 AWS DMS 将哪些 数据类型视为 LOBS 以及执行此操作的时间 请参阅 AWS DMS 文档 不包括 LOB 列 在将数据从一个数据库迁移到另一个数据 库时 您可能有机会重新考虑 LOB 的存储方式 特别是异 构迁移 如果您需要这样做 则无需迁移 LOB 数据 完整 LOB 模式 - 在完整 LOB 模式下 AWS DMS 将所 有 LOB 从源迁移到目标 而不管大小如何 在此配置 中 AWS DMS 没有与预计的 LOB 的最大大小相关的信 息 因此 逐个迁移 LOB 一次迁移一个 完整 LOB 模式 下的速度非常慢 受限 LOB 模式 - 在受限 LOB 模式下 您设置 AWS DMS 接受的最大大小 LOB 这样做将允许 AWS DMS 预分配内 存并批量加载 LOB 数据 超出最大 LOB 大小的 LOB 将 被截断 并且会将警告发布到日志文件 在受限 LOB 模 式下 您可以获得比完整 LOB 模式高得多的性能 如果可 能 建议您使用受限 LOB 模式 Note 对于 Oracle LOB 将被视为 VARCHAR 数据类 型 (如果可能) 此方法意味着 AWS DMS 将批 量捕获数据库中的数据 速度大大快于其他方 法 Oracle 中的 VARCHAR 的最大大小为 64K 17

22 步骤 6 创建迁移任务 对于此选项 执行该操作 因此 当 Oracle 为源数据库时 小于 64k 的有限 LOB 大小最佳 最大 LOB 大小 (K) 如果将任务配置为在 limited LOB mode (受限 LOB 模式) 下 运行 该选项确定 AWS DMS 接受的最大大小 LOB 任何 大于此值的 LOB 将被截断至此值 LOB 块大小 (K) 如果将任务配置为使用完整 LOB 模式 AWS DMS 将分段 检索 LOB 该选项决定每个分段的大小 在设置该选项时 请特别注意网络配置允许的最大包大小 如果 LOB 块大小 超出允许的最大包大小 则可能会看到连接断开错误 自定义 CDC 启动时间 该参数适合配置为仅复制数据更改的任务 它告知 AWS DMS 从何处开始查找更改流中的更改 启用日志记录 始终启用日志记录 设置附加参数 对于此选项 请执行该操作 在目标架构中创建控制表 AWS DMS 需要目标数据库中的一些控制表 默认情况下 将在数据所在的数据库中创建这些表 利用该参数 您可以 告知 AWS DMS 将这些项放置在其他位置 可并行加载的表数量上限 AWS DMS 对数据执行逐表加载 您可以使用该参数控制 AWS DMS 将并行加载的表的数目 默认值为 8 (大多数情 况下 这是最佳值) 指定任何表映射设置 表映射告知 AWS DMS 任务应将哪些表从源迁移到目标 表映射以 JSON 形式表示 但可使用 AWS 管 理控制台进行一些设置 表映射还可包含转换 例如 将表名从大写形式更改为小写形式 AWS DMS 为源数据库中的每个 非系统 架构生成默认表映射 大多数情况下 您需要自定义您的表 映射 要自定义您的表映射 请选择自定义单选按钮 有关创建表映射的详细信息 请参阅 AWS DMS 文档 以下表映射执行下列操作 它在迁移中包含 DMS_SAMPLE 架构 它排除表 NFL_DATA MLB_DATA NAME_DATE 和 STADIUM_DATA 它将架构 表和列的名称转换为小写形式 { "rules": [ { "rule-type": "selection", "rule-id": "1", "rule-name": "1", "object-locator": { "schema-name": "DMS_SAMPLE", "table-name": "%" }, "rule-action": "include" }, { 18

23 步骤 6 创建迁移任务 "rule-type": "selection", "rule-id": "2", "rule-name": "2", "object-locator": { "schema-name": "DMS_SAMPLE", "table-name": "MLB_DATA" }, "rule-action": "exclude" { }, "rule-type": "selection", "rule-id": "3", "rule-name": "3", "object-locator": { "schema-name": "DMS_SAMPLE", "table-name": "NAME_DATA" }, "rule-action": "exclude" }, { "rule-type": "selection", "rule-id": "4", "rule-name": "4", "object-locator": { "schema-name": "DMS_SAMPLE", "table-name": "NFL_DATA" }, "rule-action": "exclude" }, { "rule-type": "selection", "rule-id": "5", "rule-name": "5", "object-locator": { "schema-name": "DMS_SAMPLE", "table-name": "NFL_STADIUM_DATA" }, "rule-action": "exclude" },{ "rule-type": "transformation", "rule-id": "6", "rule-name": "6", "rule-action": "convert-lowercase", "rule-target": "schema", "object-locator": { "schema-name": "%" } }, { "rule-type": "transformation", "rule-id": "7", "rule-name": "7", "rule-action": "convert-lowercase", "rule-target": "table", "object-locator": { "schema-name": "%", "table-name": "%" } }, { "rule-type": "transformation", "rule-id": "8", "rule-name": "8", "rule-action": "convert-lowercase", 19

24 步骤 7 监控迁移任务 } ] } "rule-target": "column", "object-locator": { "schema-name": "%", "table-name": "%", "column-name": "%" } 步骤 7 监控迁移任务 您可以通过控制台中的三个部分来了解迁移任务所执行的操作 任务监控 在任务监控选项卡中 您可以了解完全加载吞吐量以及更改捕获和应用延迟 表统计数据 表统计数据选项卡提供有关处理的行数 处理的事务类型和数量以及 DDL 操作的详细信息 日志 从日志选项卡中 您可以查看任务的日志文件 (假设已启用日志记录) 如果您的任务因某种原因而 失败 请在此文件中搜索错误 此外 您可以在此文件中查找任何警告 在日志文件中 任务中的任何数 据截断将显示为警告 如果您需要 可以使用 AWS 命令行接口 (CLI) 提高日志记录级别 故障排除 在将 Oracle 用作源并将 Aurora MySQL 用作目标时 最容易出现问题的两个方面是 补充日志记录和区分 大小写 补充日志记录 对于 Oracle 必须启用补充日志记录以便复制更改数据 不过 如果您在数据库级别启用 补充日志记录 则在创建新表时 有时仍需要启用它 针对此情况的最佳补救措施是 允许 DMS 使用额 外的连接属性来启用补充日志记录 addsupplementallogging=y 区分大小写 Oracle 不区分大小写 (除非您用引号将对象名引起来) 但文本将显示为大写形式 因 此 AWS DMS 默认为以大写形式命名目标对象 大多数情况下 您希望使用转换将架构 表和列名称更 改为小写形式 有关更多提示 请参阅 AWS DMS 用户指南中的 AWS DMS 故障排除部分 要解决特定于 Oracle 的问题 请参阅 Oracle 故障排除部分 CHAP_Troubleshooting.html#CHAP_Troubleshooting.Oracle 要解决 Aurora MySQL 问题 请参阅 MySQL 故障排除部分 CHAP_Troubleshooting.html#CHAP_Troubleshooting.MySQL 20

25 使用示例数据库进行迁移 使用示例数据库进行迁移 建议使用 Amazon 提供的示例 Oracle 数据库来演练前面的大纲和指南 此数据库模拟简单的体育赛事票务 系统 可以在 找到用于生成示例数据库的脚 本 要构建示例数据库 请转到 oracle/sampledb/v1 文件夹并按照 README.md 文件中的说明操作 该示例创建约 8-10 GB 数据 示例数据库还包含 ticketmanagment 包 可使用此包生成一些事务 要生成事 务 请登录 SQL*Plus 或 SQL Developer 并以 dms_sample 身份运行以下命令 SQL>exec ticketmanagement.generateticketactivity(0.01,1000); 第一个参数为事务延迟 (以秒为单位) 第二个参数为要生成的事务数 前面的过程仅向客户 售票 您将看到 对 sporting_event_ticket 和 ticket_purchase_history 表进行的更新 在您 售出 一些票后 可使用以下命令传输这些票 SQL>exec ticketmanagement.generatetransferactivity(1,100); 第一个参数为事务延迟 (以秒为单位) 第二个参数为要生成的事务数 该过程还更新 sporting_event_ticket 和 ticket_purchase_history 21

26 成本 将 Amazon RDS Oracle 数据库迁移 到 Amazon Aurora MySQL 本演练帮助您开始使用 AWS Database Migration Service 和 AWS Schema Conversion Tool 将异构数据库 从 Amazon RDS Oracle 迁移到 Amazon Aurora 与 MySQL 的兼容性 这是一个入门练习 它未涵盖所有方 案 但可让您很好地了解执行此类迁移所需的步骤 了解 AWS DMS 和 AWS SCT 是两种不同的工具并且可满足不同的需求很重要 在迁移过程中 二者之间不 会交互 总体来说 此迁移中涉及的步骤是 1. 使用 AWS SCT 可以 运行从 Oracle 到 Aurora MySQL 的转换报告以标识架构转换的问题 限制和所需操作 在执行数据加载之前 通过 AWS DMS 生成架构脚本并在目标上应用这些脚本 AWS SCT 将为对象 (如过程和视图) 执行必要的代码转换 2. 标识和实施针对 AWS SCT 报告的问题的解决方案 例如 可以使用 auto_increment 选项在应用程序层 填充序列代理键或开发逻辑 以处理 Amazon Aurora MySQL 中不支持的对象类型 例如 Oracle 序列 3. 禁用外键或任何其他可能影响 AWS DMS 数据加载的约束 4. AWS DMS 使用 完全加载 方法将数据从源加载到目标 虽然 AWS DMS 在加载期间能够在目标中创建对 象 但它将通过简约方式高效迁移数据 因此不会将整个架构结构从源复制到目标 5. 执行迁移后活动 (例如 创建附加索引 启用外键以及在应用程序中进行必要更改) 以指向新数据库 本演练使用一个自定义 AWS CloudFormation 模板为 Oracle 和 Amazon Aurora MySQL 创建 Amazon RDS 数据库实例 然后 该模板使用 SQL 命令脚本将示例架构和数据安装到 Amazon RDS Oracle 数据库实例 上 您可以随后将其迁移到 Amazon Aurora MySQL 本演练大约需要两个小时才能完成 使用 AWS 资源完成本演练的估计成本约为 5.00 USD 请确保在本演练 结束时遵循说明来删除资源以避免产生其他费用 主题 成本 (p. 22) 先决条件 (p. 23) 迁移架构 (p. 24) 分步迁移 (p. 25) 后续步骤 (p. 55) 成本 在本演练中 使用 AWS CloudFormation 和 AWS Database Migration Service (AWS DMS) 资源预置 Amazon Relational Database Service (Amazon RDS) 资源 通过配置这些资源 您的 AWS 账户需要按小 时付费 AWS Schema Conversion Tool 不会产生任何成本 它作为 AWS DMS 的一部分提供 虽然在本演练中只需使用最少量的资源 但其中一些资源没有资格享受 AWS 免费套餐 在本演练结束时 您将发现用于删除资源的部分 以避免产生额外费用 完成演练后 立即删除资源 22

27 先决条件 要估计在 AWS 上运行本演练所需的成本 您可以使用 AWS 简单月度成本结算器 但 AWS DMS 服务尚未 集成到该结算器中 下表显示了 AWS DMS 和 Amazon RDS Oracle Standard Edition Two 定价 AWS 服务 实例类型 存储和 I/O Amazon RDS Oracle 数据库实例 包含许可证 (Standard Edition Two) 单可用区 db.m3.medium 单可用区 10 GB 存储 GP2 Amazon Aurora MySQL 数据库实例 db.r3.large 单可用区 10 GB 存储空间 100 万 I/O AWS DMS 复制实例 t2.small 包含用于保留复制 日志的 50 GB 存储 空间 AWS DMS 数据传输 免费 AWS DMS 和同一可用区中的 RDS 实例中的数据 库之间的数据传输 是免费的 数据传出 每月第一个 GB 免 费 假定您运行本演练的时间为 2 小时 我们估算 AWS 资源的以下价格 使用 AWS 简单月度成本结算器估算的 Amazon Aurora MySQL + 10 GB 存储定价为 1.78 USD 按照定价网站上的公式 ($0.226) * 2 小时 + ($0.115) * 10 GB 估算 Amazon RDS Oracle SE2 (已包含许 可证) + 10 GB GP2 存储成本为 美元 按照定价网站上的公式 ($0.036) * 2 小时估算 带 50 GB GP2 存储的 t2.small 实例的 AWS DMS 服务成 本为 美元 运行此项目的估计总成本 = $ $ $0.072 = $3.454 约 5.00 USD 此定价基于以下假设 假设传输到 Internet 的数据总量不到 1 GB 前面的定价估算假定与 RDS 和 DMS 服务关联的数据传输和 备份费用在免费套餐限制内 Aurora MySQL 数据库占用的存储空间按每 GB 月增量计费 占用的 I/O 按每百万请求增量计费 DMS 和同一可用区中的 RDS 实例的数据库之间的数据传输是免费的 先决条件 此外 还需要满足以下先决条件才能完成本演练 熟悉 Amazon RDS 适用的数据库技术和 SQL 包含创建要迁移的表的自定义脚本和用于确认迁移的 SQL 查询 如下所示 Oracle-HR-Schema-Build.sql 用于构建 HR 架构的 SQL 语句 Oracle_Aurora_For_DMSDemo.template 一个 AWS CloudFormation 模板 可访问以下链接来获得这些脚本 dms-sbs-rdsoracle2aurora.zip 23

28 迁移架构 演练中的每个步骤还包含用于下载相关文件的链接或包含准确查询 一个带 AWS Identity and Access Management (IAM) 凭证的 AWS 账户 通过这些凭证可在 AWS 区域 中启动 Amazon Relational Database Service (Amazon RDS) 和 AWS Database Migration Service (AWS DMS) 实例 有关 IAM 凭证的信息 请参阅创建 IAM 用户 Amazon Virtual Private Cloud (Amazon VPC) 服务和安全组的基础知识 有关将 Amazon VPC 和 Amazon RDS 结合使用的信息 请参阅 Virtual Private Cloud (VPC) 和 Amazon RDS 有关 Amazon RDS 安全组的信息 请参阅 Amazon RDS 安全组 了解 AWS DMS 的受支持功能和限制 有关 AWS DMS 的信息 请参阅什么是 AWS Database Migration Service 了解 Oracle 和 Amazon Aurora MySQL 支持的数据类型转换选项 有关作为源的 Oracle 的数据类型的信 息 请参阅 将 Oracle 数据库作为 AWS Database Migration Service 源 有关作为目标的 Amazon Aurora MySQL 的数据类型的信息 请参阅将与 MySQL 兼容的数据库用作 AWS Database Migration Service 的 目标 有关 AWS DMS 的更多信息 请参阅 AWS DMS 文档 迁移架构 本演练使用 AWS CloudFormation 为数据库迁移创建简单网络拓扑 其中包含同一 VPC 中的源数据库 复 制实例和目标数据库 有关 AWS CloudFormation 的更多信息 请参阅 CloudFormation 文档 我们将通过 AWS CloudFormation 预置此 AWS Database Migration Service (AWS DMS) 演练需要的 AWS 资源 这些资源包括 VPC 以及适用于 Oracle 和 Amazon Aurora MySQL 的 Amazon Relational Database Service (Amazon RDS) 实例 我们通过 AWS CloudFormation 进行预置 因为它能够简化流程 以便我们 能够专注于与数据迁移相关的任务 在从 AWS CloudFormation 模板创建堆栈时 它将预置以下资源 一个带 CIDR ( /24) 的 VPC 具有区域中的两个公有子网 可用区 1 (AZ 1) 中地址为 /26 的 DBSubnet1 AZ 2 中地址为 /26 的 DBSubnet2 一个包含 DBSubnet1 和 DBSubnet2 的数据库子网组 具有以下部署选项的 Oracle RDS Standard Edition Two 附带许可 单可用区设置 db.m3.medium 或等效实例类 端口 1521 默认选项和参数组 具有以下部署选项的 Amazon Aurora MySQL 数据库实例 无副本 db.r3.large 或等效实例类 端口 3306 默认选项和参数组 根据输入参数 具有来自计算机或的入口访问或 /0 (来自任何位置的访问) 的安全组 我们设计了 CloudFormation 模板以要求用户提供一些输入 它预置具有建议的最低配置的必要 AWS 资源 不过 如果您需要更改某些配置和参数 (例如 VPC CIDR 块和 Amazon RDS 实例类型) 请随意更新模板 我们将使用 AWS 管理控制台来预置 AWS DMS 资源 例如复制实例 终端节点和任务 您将在本地计算 机上安装客户端工具 (例如 SQL Workbench/J 和 AWS Schema Conversion Tool (AWS SCT)) 以便连接到 Amazon RDS 实例 24

29 分步迁移 以下是本演练的迁移架构的说明 分步迁移 下面几节提供将 Amazon Relational Database Service (Amazon RDS) Oracle 数据库迁移到 Amazon Aurora MySQL 的分步说明 这些步骤假定您已按照前面部分中所述准备了源数据库 主题 步骤 1 使用 CloudFormation 模板启动 VPC 中的 RDS 实例 (p. 25) 步骤 2 在本地计算机上安装 SQL 工具和 AWS Schema Conversion Tool (p. 30) 步骤 3 测试到 Oracle 数据库实例的连接并创建示例架构 (p. 32) 步骤 4 测试与 Aurora MySQL 数据库实例的连接 (p. 35) 步骤 5 使用 AWS Schema Conversion Tool (AWS SCT) 将 Oracle 架构转换为 Aurora MySQL 架 构 (p. 37) 步骤 6 验证架构转换 (p. 44) 步骤 7 创建 AWS DMS 复制实例 (p. 46) 步骤 8 创建 AWS DMS 源和目标终端节点 (p. 47) 步骤 9 创建并运行 AWS DMS 迁移任务 (p. 49) 步骤 10 验证数据迁移是否已成功完成 (p. 52) 步骤 11 删除演练资源 (p. 54) 步骤 1 使用 CloudFormation 模板启动 VPC 中的 RDS 实例 在开始之前 您需要下载一个 AWS CloudFormation 模板 按照以下说明进行操作 25

30 步骤 1 使用 CloudFormation 模板启动 VPC 中的 RDS 实例 1. 将以下存档下载到您的计算机 2. 从存档中提取 CloudFormation 模板 (Oracle_Aurora_For_DMSDemo.template) 3. 将 Oracle_Aurora_For_DMSDemo.template 文件复制并粘贴到当前目录中 现在 您需要为本演练预置所需的 AWS 资源 使用 AWS CloudFormation 为本演练创建 Amazon RDS 资源 1. 登录 AWS 管理控制台并通过以下网址打开 AWS CloudFormation 控制台 console.amazonaws.cn/cloudformation 2. 选择创建堆栈 3. 在 Select Template (选择模板) 页面上 选择 Upload a template to Amazon S3 (将模板上传到 Amazon S3) 4. 单击 Choose File (选择文件) 然后选择您已从 dms-sbs-rdsoracle2aurora.zip 存档中提取的 Oracle_Aurora_For_DMSDemo.template 文件 5. 选择 Next (下一步) 在指定详细信息页中 提供如下所示的参数值 对于此参数 执行该操作 Stack Name Type DMSdemo. OracleDBName 为您的数据库提供唯一名称 该名称应以字母开头 默认为 ORCL OracleDBUsername 指定用于管理 Oracle 实例的管理员 (DBA) 用户 默认为 oraadmin OracleDBPassword 提供管理员用户的密码 默认为 oraadmin123 AuroraDBUsername 指定用于管理 Aurora MySQL 实例的管理员 (DBA) 用户 默认为 auradmin AuroraDBPassword 提供管理员用户的密码 默认为 auradmin123 ClientIP 为本地计算机指定 CIDR (x.x.x.x/32) 格式的 IP 地址 您可 以从 whatsmyip.org 中获取您的 IP 地址 您的 RDS 实例的 安全组将允许对此 IP 地址的传入 默认为从任何位置访问 ( /0) 建议不要这样做 您应对本演练使用您的 IP 地 址 26

31 步骤 1 使用 CloudFormation 模板启动 VPC 中的 RDS 实例 6. 选择 Next 在选项页中 (如下所示) 选择下一步 27

32 步骤 1 使用 CloudFormation 模板启动 VPC 中的 RDS 实例 7. 在审核页中 查看详细信息 如果正确无误 请选择创建堆栈 您可以选择成本以获取运行该 CloudFormation 模板的估算成本 8. AWS 使用 Amazon RDS Oracle 和 Amazon Aurora MySQL 实例创建堆栈可能需要 20 分钟或更长的时 间 28

33 步骤 1 使用 CloudFormation 模板启动 VPC 中的 RDS 实例 9. 在创建堆栈后 选择堆栈 选择 DMSdemo 堆栈 然后选择输出 记录 JDBC 连接字符 串 OracleJDBCConnectionString 和 AuroraJDBCConnectionString 以便稍后在本演练中用于连接到 Oracle 和 Aurora MySQL 数据库实例 29

34 步骤 2 在本地计算机上安装 SQL 工 具和 AWS Schema Conversion Tool Note Oracle 12c SE Two 许可证版本 v4 在所有区域中都可用 不过 Amazon Aurora MySQL 并非在所有区域中都可用 Amazon Aurora MySQL 当前在美国东部 弗吉尼亚北部 美国西部 俄勒冈 欧洲 爱尔兰 亚太地区 东京 亚太地区 孟买 亚太地区 悉尼 和亚太 地区 首尔 中可用 如果尝试在 Aurora MySQL 不可用的区域中创建堆栈 则创建将失败 并显 示错误 Invalid DB Engine for AuroraCluster 步骤 2 在本地计算机上安装 SQL 工具和 AWS Schema Conversion Tool 接下来 您需要在本地计算机上安装 SQL 客户端和 AWS Schema Conversion Tool (AWS SCT) 本演练假定您使用 SQL Workbench/J 客户端连接到 RDS 实例以进行迁移验证 您可能需要考虑的其他几个 软件工具为 JACK DB 一个联机 Web 接口 通过 JDBC 使用 RDS 数据库 Oracle 和 Aurora MySQL DBVisualizer Oracle SQL Developer 安装 SQL 客户端软件 1. 从 SQL Workbench/J 网站下载 SQL Workbench/J 然后将其安装到本地计算机上 此 SQL 客户端是免 费的 开源的且独立于 DBMS 的客户端 30

35 步骤 2 在本地计算机上安装 SQL 工 具和 AWS Schema Conversion Tool 2. 下载您的 Oracle 数据库版本的 JDBC 驱动程序 有关更多信息 请转至 3. 下载 MySQL JDBC 驱动程序.jar 文件 有关更多信息 请转至 downloads/connector/j/ 4. 通过使用 SQL Workbench/J 配置适用于 Oracle 和 Aurora MySQL 的 JDBC 驱动程序以设置连接 如 下所述 a. 在 SQL Workbench/J 中 选择 File 然后选择 Manage Drivers b. 从驱动程序列表中 选择 Oracle c. 选择 Open (打开) 图标 然后选择您在上一步中下载的 Oracle JDBC 驱动程序的.jar 文件 选择 OK d. 从驱动程序列表中 选择 MySQL e. 选择 Open 图标 然后选择您在上一步中下载的 MySQL JDBC 驱动程序 选择 OK 紧接着 安装 AWS Schema Migration Tool 和所需的 JDBC 驱动程序 31

36 步骤 3 测试到 Oracle 数据库实例的连接并创建示例架构 安装 AWS Schema Migration Tool 和 JDBC 驱动程序 1. 从 AWS Schema Conversion Tool 用户指南 中的安装和更新 AWS Schema Conversion Tool 下 载 AWS Schema Conversion Tool 默认情况下 该工具安装在 C:\Program Files\AWS Schema Conversion Tool\AWS 目录中 2. 启动 AWS Schema Conversion Tool 3. 在 AWS Schema Conversion Tool 中 从 Settings 中选择 Global Settings 4. 在 Global Settings 中 选择 Driver 然后为 Oracle Driver Path 选择 Browse 找到 JDBC Oracle 驱动 程序 然后选择 OK 接下来 为 MySql Driver Path 选择 Browse 找到 JDBC MySQL 驱动程序 然 后选择 OK 选择 OK 以关闭对话框 步骤 3 测试到 Oracle 数据库实例的连接并创建示例架 构 在创建 CloudFormation 堆栈后 使用 SQL Workbench/J 测试到 Oracle 数据库实例的连接 然后创建 HR 示例架构 使用 SQL Workbench/J 测试到 Oracle 数据库实例的连接 并创建示例架构 1. 在 SQL Workbench/J 中 选择 File 然后选择 Connect window 使用以下信息创建新的连接配置文 件 如下所示 对于此参数 执行该操作 New profile name Type RDSOracleConnection. 驱动程序 选择 Oracle (oracle.jdbc.oracledriver) 32

37 步骤 3 测试到 Oracle 数据库实例的连接并创建示例架构 2. 对于此参数 执行该操作 URL 使用您在上一步中检查 DMSdemo 堆栈输出详细信息时记录 的 OracleJDBCConnectionString 值 Username Type oraadmin. 密码 提供在使用 AWS CloudFormation 模板创建 Oracle 数据库 实例时分配的管理员用户的密码 选择 Test 以测试连接 选择 OK 关闭该对话框 然后选择 OK 创建连接配置文件 Note 如果连接失败 请确保在创建 CloudFormation 模板时分配的 IP 地址是您尝试从其连接的 IP 地 址 这是在尝试连接到实例时最常出现的问题 3. 使用自定义 SQL 脚本 (Oracle-HR-Schema-Build.sql) 创建将用于迁移的 HR 架构 要获取此脚本 请执 行以下操作 1. 将以下存档下载到您的计算机 dms-sbs-rdsoracle2aurora.zip 2. 从存档中提取 SQL 脚本 (Oracle-HR-Schema-Build.sql) 3. 将 Oracle-HR-Schema-Build.sql 文件复制并粘贴到当前目录中 4. 在文本编辑器中打开提供的 SQL 脚本 复制整个脚本 5. 在 SQL Workbench/J 中 将 SQL 脚本粘贴到显示 Statement 1 的 Default.wksp 窗口中 6. 选择 SQL 然后选择 Execute All 在运行该脚本时 您将收到一条错误消息 指示用户 HR 不存在 您可以忽略此错误并运行脚本 此脚 本会先删除用户 然后再创建用户 这会生成错误 7. 通过运行以下 SQL 查询验证是否已成功创建 HR 架构中的对象类型和计数 33

38 步骤 3 测试到 Oracle 数据库实例的连接并创建示例架构 Select OBJECT_TYPE, COUNT(*) from dba_objects where owner='hr' GROUP BY OBJECT_TYPE; 此查询的结果应类似于以下内容 OBJECT_TYPE INDEX PROCEDURE SEQUENCE TABLE VIEW 8. COUNT(*) 通过运行以下 SQL 查询验证 HR 架构中的约束数 Select CONSTRAINT_TYPE,COUNT(*) from dba_constraints where owner='hr' AND (CONSTRAINT_TYPE IN ('P','R')OR SEARCH_CONDITION_VC NOT LIKE '%NOT NULL%') GROUP BY CONSTRAINT_TYPE; 此查询的结果应类似于以下内容 CONSTRAINT_TYPE COUNT(*) R 10 P 7 C 1 9. 通过运行以下命令来分析 HR 架构 BEGIN dbms_stats.gather_schema_stats('hr'); END; / 10. 通过运行以下 SQL 查询验证表总数以及每个表的行数 SELECT table_name, num_rows from dba_tables where owner='hr' 此查询的结果应类似于以下内容 TABLE_NAME COUNTRIES DEPARTMENTS EMPLOYEES JOBS JOB_HISTORY LOCATIONS REGIONS NUM_ROWS order by 1;

39 步骤 4 测试与 Aurora MySQL 数据库实例的连接 11. 验证表的关系 通过运行以下 SQL 查询检查拥有 10 名以上的员工的部门 Select b.department_name,count(*) from HR.Employees a,hr.departments b where a.department_id=b.department_id group by b.department_name having count(*) > 10 order by 1; 此查询的结果应类似于以下内容 DEPARTMENT_NAME Sales Shipping COUNT(*) 步骤 4 测试与 Aurora MySQL 数据库实例的连接 接下来 测试与 Aurora MySQL 数据库实例的连接 使用 SQL Workbench/J 测试与 Aurora MySQL 数据库实例的连接 在 SQL Workbench/J 中 选择 File 然后选择 Connect window 选择 创建新的连接配置文件 图标 使用以下信息 在 SQL Workbench/J 中 使用如下所示的信息连接到 Aurora MySQL 数据库实例 对于此参数 执行该操作 New profile name Type RDSAuroraConnection. 驱动程序 选择 MySQL (com.mysql.jdbc.driver) URL 使用您在上一步中检查 DMSdemo 堆栈输出详细信息时记录 的 AuroraJDBCConnectionString 值 Username Type auradmin. 密码 提供在使用 AWS CloudFormation 模板创建 Aurora MySQL 数据库实例时分配的管理员用户的密码 选择 Test 以测试连接 选择 OK 关闭该对话框 然后选择 OK 创建连接配置文件 35

40 步骤 4 测试与 Aurora MySQL 数据库实例的连接 Note 如果连接失败 请确保在创建 CloudFormation 模板时分配的 IP 地址是您尝试从其连接的 IP 地 址 这是在尝试连接到实例时最常出现的问题 3. 使用主管理员凭证登录到 Aurora MySQL 实例 4. 通过运行示例 SQL 命令 例如 SHOW DATABASES; 验证与 Aurora MySQL 数据库实例的连接 36

41 步骤 5 使用 AWS Schema Conversion Tool (AWS SCT) 将 Oracle 架构转换为 Aurora MySQL 架构 步骤 5 使用 AWS Schema Conversion Tool (AWS SCT) 将 Oracle 架构转换为 Aurora MySQL 架构 在将数据迁移到 Aurora MySQL 之前 您需要将 Oracle 架构转换为 Aurora MySQL 架构 如下所述 使用 AWS Schema Conversion Tool (AWS SCT) 将 Oracle 架构转换为 Aurora MySQL 架构 启动 AWS Schema Conversion Tool (AWS SCT) 在 AWS SCT 中 选择 File 然后选择 New Project 创建一个名为 DMSDemoProject 的新项目 在 New Project (新建项目) 窗口中输入以下信 息 然后选择 OK (确定) 对于此参数 执行该操作 Project Name Type DMSDemoProject. 位置 使用默认 Projects 文件夹和默认 Transactional Database (OLTP) 选项 Source Database Engine 选择 Oracle Target Database Engine 选择 Amazon Aurora (MySQL Compatible) 选择 Connect to Oracle 在 Connect to Oracle 对话框中 输入以下信息 然后选择 Test Connection 对于此参数 执行该操作 Type (类型) 选择 SID 服务器名称 使用用于连接到 Oracle 数据库实例的 OracleJDBCConnectionString 值 但删除 JDBC 前缀信 息 例如 用于 SQL Workbench/J 的示例连接字符串可 能为 jdbc:oracle:thin:@do1xa4grferti8y.cqiw4tcs0mg7.uswest-2.rds.amazonaws.com:1521:orcl 对于 AWS SCT 服务器名称 您删除 jdbc:oracle:thin:@// 和 ":1521 以 37

42 步骤 5 使用 AWS Schema Conversion Tool (AWS SCT) 将 Oracle 架构转换为 Aurora MySQL 架构 对于此参数 执行该操作 仅使用服务器名称 do1xa4grferti8y.cqiw4tcs0mg7.uswest-2.rds.amazonaws.com 3. Server port Type Oracle SID Type ORCL. 用户名 Type oraadmin. 密码 提供在使用 AWS CloudFormation 模板创建 Oracle 数据库 实例时分配的管理员用户的密码 选择 OK 以关闭警报框 然后选择 OK 以关闭对话框并开始连接到 Oracle 数据库实例 这将显示 Oracle 数据库实例的数据库结构 仅选择 HR 架构 38

43 步骤 5 使用 AWS Schema Conversion Tool (AWS SCT) 将 Oracle 架构转换为 Aurora MySQL 架构 4. 选择 Connect to Amazon Aurora 在 Connect to Amazon Aurora 对话框中 输入以下信息 然后选择 Test Connection 对于此参数 执行该操作 Type (类型) 选择 SID 服务器名称 使用您用于连接到 Aurora MySQL 数据库实例的 AuroraJDBCConnectionString 值 但需要删除 JDBC 前缀信息以及端口后缀 例如 用于 SQL Workbench/ J 的示例连接字符串可能为 jdbc:mysql://dmsdemoauroracluster-1u1ogdfg35v.cluster-cqiw4tcs0mg7.uswest-2.rds.amazonaws.com:3306 对于 AWS SCT 服 务器名称 您删除 jdbc:mysql:// 和 :3306 以仅使用服务 器名称 dmsdemo-auroracluster-1u1ogdfg35v.clustercqiw4tcs0mg7.us-west-2.rds.amazonaws.com Server port Type 用户名 Type auradmin. 39

44 步骤 5 使用 AWS Schema Conversion Tool (AWS SCT) 将 Oracle 架构转换为 Aurora MySQL 架构 对于此参数 执行该操作 密码 提供在使用 AWS CloudFormation 模板创建 Oracle 数据库 实例时分配的管理员用户的密码 AWS SCT 分析 HR 架构 并为到 Amazon Aurora MySQL 的转换创建数据库迁移评估报告 5. 选择 OK (确定) 以关闭警报框 然后选择 OK (确定) 以关闭对话框并开始连接到 Amazon Aurora MySQL 数据库实例 6. 右键单击 HR 架构 然后选择 Create Report 40

45 步骤 5 使用 AWS Schema Conversion Tool (AWS SCT) 将 Oracle 架构转换为 Aurora MySQL 架构 7. 检查报告以及报告建议的操作项 此报告讨论了可使用 AWS SCT 转换的对象类型 以及可能的迁移问 题与解决这些问题的措施 在本演练中 您将看到与以下类似的内容 41

46 步骤 5 使用 AWS Schema Conversion Tool (AWS SCT) 将 Oracle 架构转换为 Aurora MySQL 架构 您可以选择将报告另存为.csv 或.pdf 格式 以便稍后分析 8. 选择 Action Items (操作项) 选项卡 然后审查您看到的任何建议 9. 右键单击 HR 架构 然后选择 Convert schema 10. 对于确认消息 请选择 Yes 然后 AWS SCT 会将架构转换为目标数据库格式 42

47 步骤 5 使用 AWS Schema Conversion Tool (AWS SCT) 将 Oracle 架构转换为 Aurora MySQL 架构 11. 选择 HR 架构 然后选择 Apply to database (应用到数据库) 将架构脚本应用于目标 Aurora MySQL 实 例 如下所示 12. 选择 HR 架构 然后选择 Refresh from Database 从目标数据库刷新 如下所示 43

48 步骤 6 验证架构转换 数据库架构现已转换 并且已从源导入目标 步骤 6 验证架构转换 要验证架构转换 可使用 SQL Workbench/J 将在 Oracle 中找到的对象与 Aurora MySQL 数据库进行比较 使用 SQL Workbench/J 验证架构转换 在 SQL Workbench/J 中 选择 File 然后选择 Connect window 选择在上一步骤中创建的 RDSAuroraConnection 单击 OK (确定) 运行以下脚本以验证目标 Aurora MySQL 数据库中的 HR 架构中的对象类型数和计数 这些值应匹配源 Oracle 数据库中的对象数 SELECT a.object_type, COUNT(*) FROM ( SELECT OBJECT_TYPE,OBJECT_SCHEMA,OBJECT_NAME FROM ( SELECT 'TABLE' AS OBJECT_TYPE,TABLE_NAME AS OBJECT_NAME,TABLE_SCHEMA AS OBJECT_SCHEMA FROM information_schema.tables where TABLE_TYPE='BASE TABLE' 44

49 步骤 6 验证架构转换 UNION SELECT 'VIEW' AS OBJECT_TYPE,TABLE_NAME AS OBJECT_NAME,TABLE_SCHEMA AS OBJECT_SCHEMA FROM information_schema.views UNION SELECT 'INDEX' AS OBJECT_TYPE,CONCAT ( CONSTRAINT_TYPE,' : ',CONSTRAINT_NAME,' : ',TABLE_NAME ) AS OBJECT_NAME,TABLE_SCHEMA AS OBJECT_SCHEMA FROM information_schema.table_constraints where constraint_type='primary KEY' UNION SELECT ROUTINE_TYPE AS OBJECT_TYPE,ROUTINE_NAME AS OBJECT_NAME,ROUTINE_SCHEMA AS OBJECT_SCHEMA FROM information_schema.routines UNION SELECT 'TRIGGER' AS OBJECT_TYPE,CONCAT ( TRIGGER_NAME,' : ',EVENT_OBJECT_SCHEMA,' : ',EVENT_OBJECT_TABLE ) AS OBJECT_NAME,TRIGGER_SCHEMA AS OBJECT_SCHEMA FROM information_schema.triggers ) R WHERE R.OBJECT_SCHEMA ='HR' order by 1) a GROUP BY a.object_type; 此查询的输出应类似以下内容 OBJECT_TYPE INDEX PROCEDURE TABLE TRIGGER VIEW COUNT(*) 接下来 运行以下查询以获取表约束信息 SELECT CONSTRAINT_TYPE,COUNT(*) FROM information_schema.table_constraints where constraint_schema='hr' GROUP BY CONSTRAINT_TYPE; 此查询的输出应类似以下内容 45

50 步骤 7 创建 AWS DMS 复制实例 CONSTRAINT_TYPE FOREIGN KEY PRIMARY KEY UNIQUE COUNT(*) 步骤 7 创建 AWS DMS 复制实例 在验证源数据库和目标数据库之间的架构结构 (如前所述) 后 我们将继续本演练的核心部分 即数据迁移 下图显示了迁移过程的概要视图 DMS 复制实例执行源和目标之间的实际数据迁移 在迁移过程中 复制实例还将对事务日志进行缓存 复制 实例具有的 CPU 和内存容量将影响迁移所需的总体时间 创建 AWS DMS 复制实例 1. 登录到 AWS 管理控制台 选择 AWS DMS ( 然后选择 Create Migration (创建迁移) 如果您以 AWS Identity and Access Management (IAM) 用户身份登录 则必须 具有 AWS DMS 的适当访问权限 有关所需权限的更多信息 请参阅使用 AWS DMS 所需的 IAM 权 限 2. 选择下一步 从控制台的 欢迎 页中开始迁移数据库 3. 在创建复制实例页中 指定您的复制实例信息 如下所示 4. 对于此参数 执行该操作 名称 Type DMSdemo-repserver. 描述 键入简要描述 例如 DMS demo replication server 实例类 选择 dms.t2.medium 此实例类足够大 可以迁移少量的 表 VPC 选择 DMSDemoVPC 它是已由 CloudFormation 堆栈创建的 VPC 多可用区 选择 No 公开访问 将此项保持选中状态 对于高级部分 保留默认设置 然后选择下一步 46

51 步骤 8 创建 AWS DMS 源和目标终端节点 步骤 8 创建 AWS DMS 源和目标终端节点 在创建复制实例时 可以使用 AWS 管理控制台指定源和目标数据库终端节点 但是 您只能在创建复制实 例后测试连接 因为连接中已使用复制实例 使用 AWS 控制台指定源或目标数据库终端节点 1. 指定源 Oracle 数据库和目标 Amazon Aurora MySQL 数据库的连接信息 下表描述了源设置 对于此参数 执行该操作 终端节点标识符 键入 Orasource Amazon RDS Oracle 终端节点 Source Engine 选择 oracle 服务器名称 提供 Oracle 数据库实例名称 这是用于 AWS SCT 的服 务器名称 例如 do1xa4grferti8y.cqiw4tcs0mg7.uswest-2.rds.amazonaws.com 端口 Type SSL 模式 选择 None Username Type oraadmin. 密码 提供 Oracle 数据库实例的密码 SID 提供 Oracle 数据库名称 下表描述了目标设置 对于此参数 执行该操作 终端节点标识符 键入 Aurtarget Amazon Aurora MySQL 终端节点 目标引擎 选择 aurora 服务器名称 提供 Aurora MySQL 数据库实例名称 这是用 于 AWS SCT 的服务器名称 例如 dmsdemoauroracluster-1u1oyqny35jwv.cluster-cqiw4tcs0mg7.uswest-2.rds.amazonaws.com 端口 Type SSL 模式 选择 None Username Type auraadmin. 密码 提供 Aurora MySQL 数据库实例的密码 完成页面应与以下内容类似 47

52 步骤 8 创建 AWS DMS 源和目标终端节点 2. 要在初始数据加载期间禁用外键检查 必须将以下命令添加到目标 Aurora MySQL 数据库实例 在高 级部分中 (如下所示) 为额外的连接属性键入以下命令 initstmt=set FOREIGN_KEY_CHECKS=0, autocommit=1 第一条命令将在加载期间禁用外键检查 第二条命令提交 DMS 执行的事务 48

53 步骤 9 创建并运行 AWS DMS 迁移任务 3. 选择 Next 步骤 9 创建并运行 AWS DMS 迁移任务 利用 AWS DMS 任务 可以指定要迁移的架构和迁移类型 您可以迁移现有数据 迁移现有数据并复制正在 进行的更改或仅复制数据更改 此演练仅迁移现有数据 创建迁移任务 1. 在创建任务页中 指定任务选项 下表描述了设置 对于此参数 执行该操作 任务名称 Type migratehrschema. 任务描述 键入任务的说明 源终端节点 显示 orasource Amazon RDS Oracle 终端节点 目标终端节点 显示 aurtarget Amazon Aurora MySQL 终端节点 复制实例 显示 DMSdemo-repserver 上一步中创建的 AWS DMS 复制实例 49

54 步骤 9 创建并运行 AWS DMS 迁移任务 对于此参数 执行该操作 迁移类型 选择迁移现有数据选项 在创建时启动任务 选择该选项 页面应该类似以下内容 2. 在任务设置下面 为目标表准备模式选择不执行任何操作 因为您已通过 Schema Migration Tool 创建 了表 由于此迁移不包含任何 LOB 因此您可以将 LOB 设置保留为默认值 (可选) 您可以选择启用日志记录 如果您启用日志记录功能 则创建 CloudWatch 日志会产生额外的 Amazon CloudWatch 费用 在本演练中 日志不是必要的 50

55 步骤 9 创建并运行 AWS DMS 迁移任务 3. 将 高级 设置保留为默认值 4. 选择 Table mappings (表映射) 为 Mapping method (映射方法) 选择 Default (默认) 然后为 Schema to migrate (要迁移的架构) 选择 HR 完成部分应与以下内容类似 5. 选择创建任务 此任务将立即开始 51

56 步骤 10 验证数据迁移是否已成功完成 任务 部分显示迁移任务的状态 如果在设置任务时选择启用日志记录 则可以监控您的任务 随后 您可以执行以下操作来查看 CloudWatch 指标 监控正在进行的数据迁移任务 1. 在导航窗格中 选择任务 2. 选择您的迁移任务 (migratehrschema) 3. 选择任务监控选项卡 然后在该选项卡上监控正在执行的任务 步骤 10 验证数据迁移是否已成功完成 在迁移任务完成后 您可以将任务结果与预期结果进行比较 将迁移任务结果与预期结果进行比较 1. 在导航窗格中 选择任务 2. 选择您的迁移任务 (migratehrschema) 3. 选择表统计数据选项卡 如下所示 52

57 步骤 10 验证数据迁移是否已成功完成 4. 使用 SQL Workbench/J 连接到 Amazon Aurora MySQL 实例 然后运行如下所示的 SQL 脚本以检查是 否成功将数据库表从 Oracle 迁移到 Aurora MySQL SELECT TABLE_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'HR' and TABLE_TYPE='BASE TABLE' order by 1; 53

58 步骤 11 删除演练资源 5. 运行以下查询来检查表中的关系 此查询将检查拥有 10 名以上的员工的部门 SELECT B.DEPARTMENT_NAME,COUNT(*) FROM HR.EMPLOYEES A,HR.DEPARTMENTS B WHERE A.DEPARTMENT_ID=B.DEPARTMENT_ID GROUP BY B.DEPARTMENT_NAME HAVING COUNT(*) > 10 ORDER BY 1; 此查询的输出应类似以下内容 department_name count(*) Sales 34 Shipping 45 现在 您已成功完成从 Amazon RDS Oracle 数据库实例到 Amazon Aurora MySQL 的数据库迁移 步骤 11 删除演练资源 完成本演练后 请执行以下步骤以避免演练中使用的 AWS 资源产生额外费用 按顺序执行这些步骤很有必 要 因为如果一些资源依赖于其他资源 则将无法删除这些资源 删除 AWS DMS 资源 1. 在导航窗格中 选择 Tasks (任务) 选择迁移任务 (migratehrschema) 然后选择 Delete (删除) 2. 在导航窗格中 选择 Endpoints (终端节点) 选择 Oracle 源终端节点 (orasource) 然后选择 Delete (删除) 3. 选择 Amazon Aurora MySQL 目标终端节点 (aurtarget) 然后选择 Delete (删除) 4. 在导航窗格中 选择 Replication instances (复制实例) 选择复制实例 (DMSdemo-repserver) 然后 选择 Delete (删除) 54

59 后续步骤 接下来 必须删除 AWS CloudFormation 堆栈 即 DMSdemo 删除 AWS CloudFormation 堆栈 1. 登录 AWS 管理控制台并通过以下网址打开 AWS CloudFormation 控制台 console.amazonaws.cn/cloudformation 2. 请注意 如果您以 AWS Identity and Access Management (IAM) 用户身份登录 则必须具有 AWS CloudFormation 的适当访问权限 选择 CloudFormation 堆栈 即 DMSdemo 3. 对于操作 请选择删除堆栈 当 AWS CloudFormation 清除与 DMSdemo 堆栈关联的资源时 堆栈的状态将变为 DELETE_IN_PROGRESS 当 AWS CloudFormation 清除完资源时 它会从列表中删除该堆栈 后续步骤 您可以了解本演练中未包含的 AWS DMS 的其他功能 包括 AWS DMS 更改数据捕获 (CDC) 功能 适用于正在复制的数据 转换操作 可让您指定转换并在迁移过程中将其应用于所选架构或表 有关更多信息 请参阅 AWS DMS 文档 55

60 先决条件 将 SQL Server 数据库迁移到 Amazon Aurora MySQL 通过使用本演练 您可以了解如何使用 AWS Schema Conversion Tool (AWS SCT) 和 AWS Database Migration Service (AWS DMS) 将 Microsoft SQL Server 数据库迁移到 Amazon Aurora 与 MySQL 的兼容性 数据库 AWS DMS 将您的数据从 SQL Server 源迁移到 Aurora MySQL 目标 AWS DMS 不会迁移辅助索引 序列 默认值 存储过程 触发器 同义词 视图以及与数据迁移不明确相 关的其他架构对象 要将这些对象迁移到 Aurora MySQL 目标 请使用 AWS SCT 主题 先决条件 (p. 56) 分步迁移 (p. 57) 故障排除 (p. 75) 先决条件 需要满足以下先决条件才能完成本演练 了解 Amazon Relational Database Service (Amazon RDS) 适用的数据库技术和 SQL 创建一个具有 AWS Identity and Access Management (IAM) 凭证的 AWS 账户 以允许在您的 AWS 区域 中启动 Amazon RDS 和 AWS Database Migration Service (AWS DMS) 实例 有关 IAM 凭证的信息 请 参阅创建 IAM 用户 了解 Amazon Virtual Private Cloud (Amazon VPC) 服务和安全组 有关将 Amazon VPC 与 Amazon RDS 一起使用的信息 请参阅 Amazon Virtual Private Cloud (VPC) 和 Amazon RDS 有关 Amazon RDS 安全 组的信息 请参阅 Amazon RDS 安全组 了解 AWS DMS 支持的功能和限制 有关 AWS DMS 的信息 请参阅什么是 AWS Database Migration Service 了解如何将 Microsoft SQL Server 作为源 并将 Amazon Aurora MySQL 作为目标 有关将 SQL Server 作为源的信息 请参阅将 SQL Server 数据库作为 AWS Database Migration Service 源 Aurora MySQL 是与 MySQL 兼容的数据库 有关将 Aurora MySQL 作为目标的信息 请参阅将与 MySQL 兼容的数据库 作为 AWS Database Migration Service 目标 了解 SQL Server 和 Aurora MySQL 支持的数据类型转换选项 有关作为源的 SQL Server 的数据类型的 信息 请参阅 Microsoft SQL Server 的源数据类型 有关作为目标的 Aurora MySQL 的数据类型的信息 请参阅 MySQL 的目标数据类型 设置目标 Aurora MySQL 数据库主机大小 DBA 应了解当前源 SQL Server 数据库主机的负载配置情况 请考虑 CPU 内存和 IOPS 通过使用 Amazon RDS 您可以在迁移后增加或减小目标数据库主机大小 如果是首次迁移到 Aurora MySQL 建议您配置额外的容量以解决性能问题和进行优化 检查源 SQL Server 数据库 对于每个架构以及其中的所有对象 请确定是否不再使用任何对象 在源 SQL Server 数据库中弃用这些对象 因为如果不使用这些对象 则不需要进行迁移 使用以下任一迁移选项 仅迁移现有数据或迁移现有数据并复制持续更改 如果仅迁移现有数据 则迁移是从 SQL Server 源数据库到 Aurora MySQL 目标数据库的一次性数据传 输 如果在迁移期间可以更改源数据库 必须在完成迁移后将这些更改应用于目标数据库 56

61 分步迁移 Note 如果 SQL Server 数据库是 Amazon RDS 数据库 则不支持复制 必须使用该选项才能只迁移 现有数据 如果迁移现有数据并复制持续更改 一个选项是复制源数据库更改 复制在迁移过程中将源数据库和目 标数据库保持同步 并且可以减少数据库停机时间 在使用该选项时 您先完成初始同步操作 然后配 置 MS-REPLICATION 该选项要求使用 SQL Server Standard Enterprise 或 Developer 版本 您可以 为每个要作为数据库源的 SQL Server 实例启用 MS-REPLICATION 如果要迁移现有数据并复制持续更改 另一个选项是更改数据捕获 (CDC) 而不是复制 该选项允许 AWS DMS 执行持续数据迁移 对于 CDC AWS DMS 使用 CDC 表以启用持续数据库迁移 该选项要 求使用 SQL Server Enterprise 或 Developer 版本 有关 AWS DMS 的更多信息 请参阅 AWS DMS 用户指南 分步迁移 以下步骤提供将 Microsoft SQL Server 数据库迁移到 Amazon Aurora MySQL 数据库的说明 这些步骤假定 您已按照先决条件 (p. 56)中所述准备了源数据库 主题 步骤 1 在本地计算机上安装 SQL 驱动程序和 AWS Schema Conversion Tool (p. 57) 步骤 2 配置 Microsoft SQL Server 源数据库 (p. 58) 步骤 3 配置 Aurora MySQL 目标数据库 (p. 59) 步骤 4 使用 AWS SCT 将 SQL Server 架构转换为 Aurora MySQL (p. 60) 步骤 5 创建 AWS DMS 复制实例 (p. 68) 步骤 6 创建 AWS DMS 源和目标终端节点 (p. 69) 步骤 7 创建并运行 AWS DMS 迁移任务 (p. 72) 步骤 8 切换到 Aurora MySQL (p. 75) 步骤 1 在本地计算机上安装 SQL 驱动程序和 AWS Schema Conversion Tool 首先 在本地计算机上安装 SQL 驱动程序和 AWS Schema Conversion Tool (AWS SCT) 安装 SQL 客户端软件 1. 下载适用于 Microsoft SQL Server 的 JDBC 驱动程序 2. 下载适用于 Aurora MySQL 的 JDBC 驱动程序 Amazon Aurora MySQL 使用 MySQL 驱动程序 3. 安装 AWS SCT 和所需的 JDBC 驱动程序 a. 请参阅 AWS Schema Conversion Tool 用户指南 中的安装和更新 AWS Schema Conversion Tool 然后选择相应的链接以下载 AWS SCT b. 启动 AWS SCT 然后选择 Settings (设置) 和 Global Settings (全局设置) c. 在 Global Settings 中 选择 Drivers 然后为 Microsoft Sql Server 选择 Browse 找到适用于 SQL Server 的 JDBC 驱动程序 然后选择 OK d. 为 MySql Driver Path 选择 Browse 找到为 Aurora MySQL 下载的 JDBC 驱动程序 然后选择 OK (确定) 57

62 步骤 2 配置 Microsoft SQL Server 源数据库 e. 选择 OK 以关闭 Global Settings 对话框 步骤 2 配置 Microsoft SQL Server 源数据库 在安装 SQL 驱动程序和 AWS Schema Conversion Tool 后 您可以使用几个选项之一配置 Microsoft SQL Server 源数据库 具体取决于您打算如何迁移数据 配置 SQL Server 源数据库 在配置源数据库时 您可以选择仅迁移现有数据 迁移现有数据并复制持续更改 或者迁移现有数据并 使用更改数据捕获 (CDC) 复制持续更改 有关这些选项的更多信息 请参阅先决条件 仅迁移现有数据 不需要为 SQL Server 数据库执行任何配置步骤 您可以转到步骤 3 配置 Aurora MySQL 目标数据 库 (p. 59) Note 如果 SQL Server 数据库是 Amazon RDS 数据库 则不支持复制 必须使用该选项才能只迁 移现有数据 迁移现有数据并复制持续更改 Note 复制需要使用要复制的所有表的主键 如果表未定义主键 请考虑改用 CDC 要配置 MS-REPLICATION 请完成以下步骤 1. 在 Microsoft SQL Server Management Studio 中 打开复制文件夹的上下文 (右键单击) 菜单 然 后选择配置分发 58

63 步骤 3 配置 Aurora MySQL 目标数据库 2. 在分发服务器步骤中 选择 db_name 将充当自己的分发服务器 SQL Server 创建分发数据库和 日志 有关更多信息 请参阅 Microsoft 文档 在完成配置后 将为您的服务器启用复制 将配置一个分发数据库 或者将您的服务器配置为使 用远程分发数据库 迁移现有数据并使用更改数据捕获 (CDC) 复制持续更改 要配置 MS-CDC 请完成以下步骤 1. 使用具有 SYSADMIN 角色成员资格的登录名连接到 SQL Server 2. 对于包含要迁移的数据的每个数据库 请在数据库上下文中运行以下命令 use [DBname] EXEC sys.sp_cdc_enable_db 3. 对于要配置持续迁移的每个表 请运行以下命令 EXEC = = = NULL; 有关更多信息 请参阅 Microsoft 文档 Note 如果要迁移参与 AlwaysOn 可用性组的数据库 最好的做法是使用复制进行迁移 要使用该选 项 必须启用发布 并且必须为 AlwaysOn 可用性组的每个节点配置一个分发数据库 此外 还 要确保您使用数据库的可用性组侦听器的名称 而不是当前托管目标服务器名称的可用性组数据 库的服务器的名称 这些要求适用于群集中的每个 SQL Server 实例 不能使用可用性组侦听器 配置这些要求 如果您的数据库不支持 MS-REPLICATION 或 MS-CDC (例如 如果运行 SQL Server Workgroup 版本) 仍然可以捕获一些更改 (如 INSERT 和 DELETE 语句) 但不会捕获其他 DML 语句 (如 UPDATE 和 TRUNCATE TABLE) 因此 建议不要在该配置中进行使用持续数据复制的迁移 应 考虑改用静态一次性迁移 (或重复一次完整迁移) 有关使用 MS-REPLICATION 和 MS-CDC 的更多信息 请参阅将 Microsoft SQL Server 数据库配置为 AWS Database Migration Service 复制源 步骤 3 配置 Aurora MySQL 目标数据库 AWS DMS 将 SQL Server 源中的数据迁移到 Amazon Aurora MySQL 目标 在该步骤中 您可以配置 Aurora MySQL 目标数据库 1. 创建用于连接到目标数据库的 AWS DMS 用户 然后授予超级用户或所需的各种权限 或者对于 Amazon RDS 使用主用户名 或者 您也可以为现有用户授予权限 59

64 步骤 4 使用 AWS SCT 将 SQL Server 架构转换为 Aurora MySQL CREATE USER 'aurora_dms_user' IDENTIFIED BY 'password'; GRANT ALTER, CREATE, DROP, INDEX, INSERT, UPDATE, DELETE, SELECT ON target_database.* TO 'aurora_dms_user'; 2. AWS DMS 在目标上的数据库 awsdms_control 中使用控制表 请执行以下命令 以确保用户具有 awsdms_control 数据库所需的访问权限 GRANT ALL PRIVILEGES ON awsdms_control.* TO 'aurora_dms_user'; FLUSH PRIVILEGES; 步骤 4 使用 AWS SCT 将 SQL Server 架构转换为 Aurora MySQL 在将数据迁移到 Amazon Aurora MySQL 之前 请使用 AWS Schema Conversion Tool (AWS SCT) 将 Microsoft SQL Server 架构转换为 Aurora MySQL 架构 将 SQL Server 架构转换为 Aurora MySQL 架构 1. 在 AWS SCT 中 选择 File (文件) 然后选择 New Project (新建项目) 创建一个名为 AWS Schema Conversion Tool SQL Server to Aurora MySQL 的新项目 2. 在 New Project 对话框中 输入以下信息 然后选择 OK 参数 说明 Project Name Type AWS Schema Conversion Tool SQL Server to Aurora MySQL. 位置 使用默认 Projects 文件夹和默认 Transactional Database (OLTP) 选项 Source Database Engine 选择 Microsoft SQL Server Target Database Engine 选择 Amazon Aurora (MySQL compatible) 60

65 步骤 4 使用 AWS SCT 将 SQL Server 架构转换为 Aurora MySQL 3. 选择 Connect to Microsoft SQL Server 在 Connect to Microsoft SQL Server 对话框中 输入以下信 息 然后选择 Test Connection 参数 说明 服务器名称 键入服务器名称 Server port 键入 SQL Server 端口号 默认为 1433 Instance name 键入 SQL Server 数据库实例名称 用户名 键入 SQL Server 管理员用户名 密码 提供管理员用户的密码 61

66 步骤 4 使用 AWS SCT 将 SQL Server 架构转换为 Aurora MySQL 4. 选择 OK 以关闭警报框 然后选择 OK 以关闭对话框并开始连接到 SQL Server 数据库实例 将显示 SQL Server 数据库实例上的数据库结构 5. 选择 Connect to Amazon Aurora (MySQL compatible) 在 Connect to Amazon Aurora (MySQL compatible) 对话框中 输入以下信息 然后选择 Test Connection 参数 说明 服务器名称 键入服务器名称 Server port 键入 SQL Server 端口号 默认为 3306 用户名 键入 Aurora MySQL 管理员用户名 密码 提供管理员用户的密码 62

67 步骤 4 使用 AWS SCT 将 SQL Server 架构转换为 Aurora MySQL 6. 选择 OK 以关闭警报框 然后选择 OK (确定) 以关闭对话框并开始连接到 Aurora MySQL 数据库实例 7. 打开要迁移的架构的上下文 (右键单击) 菜单 然后选择 Convert schema 63

68 步骤 4 使用 AWS SCT 将 SQL Server 架构转换为 Aurora MySQL 8. 对于确认消息 请选择 Yes (是) 然后 AWS SCT 将架构转换为目标数据库格式 64

69 步骤 4 使用 AWS SCT 将 SQL Server 架构转换为 Aurora MySQL AWS SCT 分析架构并为到 Aurora MySQL 的转换创建数据库迁移评估报告 9. 从 View 中选择 Assessment Report View 以检查报告 该报告按每种对象类型以及成功转换所需的手动更改量进行细分 65

70 步骤 4 使用 AWS SCT 将 SQL Server 架构转换为 Aurora MySQL 通常 包 过程和函数最可能会出现一些需要解决的问题 因为它们包含大多数的自定义 PL/SQL 代 码 AWS SCT 还提供有关如何修复这些对象的提示 10. 选择 Action Items 选项卡 Action Items 选项卡显示每个对象需要引起注意的各个问题 对于每个转换问题 您可以完成以下操作之一 在源 SQL Server 数据库上修改这些对象 以便 AWS SCT 可以将这些对象转换为目标 Aurora MySQL 数据库中的对象 1. 在源 SQL Server 数据库上修改这些对象 2. 重复上述步骤以转换架构和检查评估报告 3. 如果需要 请重复该过程 直到没有转换问题为止 4. 从 View 中选择 Main View 打开目标 Aurora MySQL 架构的上下文 右键单击 菜单 选择 Apply to database (应用到数据库) 以将架构更改应用于 Aurora MySQL 数据库 然后确认您要 应用架构更改 66

71 步骤 4 使用 AWS SCT 将 SQL Server 架构转换为 Aurora MySQL 修改 AWS SCT 生成的脚本 而不是修改源模式 然后再在目标 Aurora MySQL 数据库上应用这些 脚本 1. 从 View 中选择 Main View 打开目标 Aurora MySQL 架构名称的上下文 右键单击 菜单 然后选择 Save as SQL (保存为 SQL) 接下来 选择脚本的名称和目标 2. 在脚本中 修改这些对象以纠正转换问题 您还可以从脚本中排除外键约束 触发器和辅助索引 因为它们可能会在迁移期间导致出现问 题 在迁移完成后 您可以在 Aurora MySQL 数据库上创建这些对象 3. 在目标 Aurora MySQL 数据库上运行该脚本 有关更多信息 请参阅 AWS Schema Conversion Tool 用户指南 中的使用 AWS Schema Conversion Tool 将数据库架构转换为 Amazon RDS 11. 可选 使用 AWS SCT 创建映射规则 a. 在 Settings 下面 选择 Mapping Rules b. 根据操作项 创建所需的额外映射规则 c. 保存映射规则 d. 选择 Export script for DMS (导出 DMS 的脚本) 以导出 AWS DMS 任务将使用的所有转换的 JSON 格式 选择 Save 67

72 步骤 5 创建 AWS DMS 复制实例 步骤 5 创建 AWS DMS 复制实例 在验证源和目标数据库之间的架构结构后 请继续执行本演练的核心部分 (即 数据迁移) 下图显示了迁移 过程的概要视图 AWS DMS 复制实例执行源和目标之间的实际数据迁移 在迁移过程中 复制实例还将对事务日志进行缓 存 复制实例具有的 CPU 和内存容量影响迁移所需的总时间 有关使用 AWS DMS 的最佳实践的信息 请参阅 AWS Database Migration Service 最佳实践 创建 AWS DMS 复制实例 1. 登录 AWS 管理控制台 并通过以下网址打开 AWS DMS 控制台 2. 在该控制台中 选择创建迁移 如果以 AWS Identity and Access Management (IAM) 用户身份登录 则必须具有适当权限才能访问 AWS DMS 有关所需的权限的更多信息 请参阅使用 AWS DMS 所需的 IAM 权限 3. 在 欢迎 页中 选择下一步以开始迁移数据库 4. 在创建复制实例页中 指定您的复制实例信息 5. 参数 说明 名称 为您的复制实例选择一个名称 如果使用多个复制服务器或 共享一个账户 请选择一个帮助您快速区分不同服务器的名 称 描述 键入简要描述 实例类 选择要创建的复制服务器的类型 实例类的各种大小和类型 具有逐渐增加的 CPU 内存和 I/O 容量 通常 t2 实例适 用于较低的负载任务 而 c4 实例适用于较高的负载和更多 的任务 VPC 选择将在其中启动复制实例的 Virtual Private Cloud (VPC) 如果可能 请选择源和/或目标数据库所在的相同 VPC 多可用区 如果选择Yes (是) AWS DMS 将在不同的可用区中创建第 二个复制服务器 以便在主复制服务器出现问题时进行故障 转移 公开访问 如果源或目标数据库位于复制服务器所在的 VPC 外部 则 必须能够公开访问复制服务器策略 对于高级部分 请指定以下信息 68

73 步骤 6 创建 AWS DMS 源和目标终端节点 参数 说明 分配的存储空间 (GB) 在复制服务器上为 AWS DMS 任务日志分配的存储量 包 括历史任务日志 AWS DMS 还使用磁盘存储缓存某些数 据 同时将其从源数据库复制到目标 此外 更多的存储通 常在服务器上提供更好的 IOPS 复制子网组 如果在多可用区配置中运行 您需要具有至少两个子网组 可用区 通常 如果主复制服务器位于与目标数据库相同的可用区 中 则会提供更高的性能 VPC 安全组 通过使用安全组 您可以控制 VPC 传入和传出 AWS DMS 允许将一个或多个安全组与从中启动复制服务器的 VPC 相关联 KMS 主密钥 利用 AWS DMS 可使用 KMS 加密密钥来加密所有静态数 据 默认情况下 AWS DMS 为复制服务器创建一个新的加 密密钥 不过 您可以选择使用现有的密钥 有关 KMS 主密钥的信息 请参阅设置加密密钥并指定 KMS 权限 6. 单击 Next (下一步) 步骤 6 创建 AWS DMS 源和目标终端节点 在创建复制实例时 您可以使用 AWS 管理控制台指定源和目标数据库终端节点 不过 您只能在创建复制 实例后测试连接 因为将在连接中使用复制实例 使用 控制台指定源或目标数据库终端节点 1. 在 AWS DMS 控制台中 指定源 SQL Server 数据库和目标 Aurora MySQL 数据库的连接信息 下表描 述了源设置 参数 说明 终端节点标识符 键入名称 例如 SQLServerSource Source Engine 选择 sqlserver 服务器名称 提供 SQL Server 数据库实例服务器名称 端口 键入数据库的端口号 SQL Server 的默认值为 1433 SSL 模式 如果要为连接的流量启用加密 请选择 SSL 模式 用户名 键入要用于连接到源数据库的用户的名称 密码 提供用户的密码 数据库名称 提供 SQL Server 数据库名称 下表描述了高级源设置 69

74 步骤 6 创建 AWS DMS 源和目标终端节点 参数 说明 额外的连接属性 您可以在终端节点中设置这些额外参数以添加功能或更改 AWS DMS 行为 此处列出了几个最相关的属性 请使用分 号 (;) 分隔多个条目 safeguardpolicy - 使用以下方法更改 SQL Server 行 为 打开事务以防止在 AWS DMS 读取事务日志时截断 日志 有效值为 EXCLUSIVE_AUTOMATIC_TRUNCATION 或 RELY_ON_SQL_SERVER_REPLICATION_AGENT (默 认值) usebcpfullload - 指示 AWS DMS 使用 BCP 批量复 制 加载数据 有效值为 Y 或 N 如果目标表包含的身份 列在源表中不存在 您必须将该参数设置为 N 以禁止使用 BCP 加载表 BCPPacketSize 如果启用 BCP 以加载数据 请输入 BCP 使用的最大数据包大小 有效值为 (默 认为 16384) controltablesfilegroup - 指定用于 AWS DMS 过 程在数据库中创建的控制表的文件组 KMS 主密钥 如果选择加密您的复制实例的存储 请输入 KMS 主密钥 下表描述了目标设置 参数 说明 终端节点标识符 键入名称 例如 Auroratarget 目标引擎 选择 aurora 服务器名称 提供主实例的 Aurora MySQL 数据库服务器名称 端口 键入数据库的端口号 Aurora MySQL 的默认值为 3306 SSL 模式 选择 None 用户名 键入要用于连接到目标数据库的用户的名称 密码 提供用户的密码 下表描述了高级目标设置 70

75 步骤 6 创建 AWS DMS 源和目标终端节点 参数 说明 额外的连接属性 您可以在终端节点中设置这些额外参数以添加功能或更改 AWS DMS 行为 此处列出了几个最相关的属性 请使用分 号分隔多个条目 targetdbtype - 默认情况下 AWS DMS 为 迁移的每个架构创建不同的数据库 如果要将几 个架构合并到一个数据库中 请将该选项设置为 targetdbtype=specific_database initstmt 使用该选项调用 MySQL initstmt 连接 参数并接受 MySQL initstmt 接受的任何设置 对于 Aurora MySQL 目标 将该选项设置为 initstmt=set FOREIGN_KEY_CHECKS=0 以禁用外键检查通常是非常有 用的 KMS 主密钥 如果选择加密您的复制实例的存储 请输入 KMS 主密钥 以下是填写的页面示例 有关额外连接属性的信息 请参阅将额外的连接属性与 AWS Database Migration Service 一起使用 71

76 步骤 7 创建并运行 AWS DMS 迁移任务 2. 在创建终端节点和复制实例后 为源和目标终端节点选择运行测试以测试终端节点连接 3. 删除目标数据库上的外键约束和触发器 在完全加载过程中 AWS DMS 不会按任何特定顺序加载表 因此 可能会在加载父表数据之前加载子 表数据 因此 可能会违反外键约束 (如果已启用) 此外 如果在目标数据库上具有触发器 它们可能 会以意外方式更改 AWS DMS 加载的数据 ALTER TABLE 'table_name' DROP FOREIGN KEY 'fk_name'; DROP TRIGGER 'trigger_name'; 4. 如果删除了目标数据库上的外键约束和触发器 请生成一个脚本以启用外键约束和触发器 以后 如果要将这些内容添加到迁移的数据库中 您只需运行该脚本 5. (可选) 删除目标数据库上的辅助索引 辅助索引 (与所有索引一样) 可能会降低将数据完全加载到表的速度 因为必须在加载过程中保留和更新 这些索引 删除这些索引可以提高完全加载过程的性能 如果删除这些索引 您必须在完全加载完成后 重新添加这些索引 ALTER TABLE 'table_name' DROP INDEX 6. 'index_name'; 选择 Next 步骤 7 创建并运行 AWS DMS 迁移任务 利用 AWS DMS 任务 您可以指定要迁移的架构和迁移类型 您可以迁移现有数据 迁移现有数据并复制正 在进行的更改或仅复制数据更改 创建迁移任务 1. 在 AWS DMS 控制台的 Create task (创建任务) 页中 指定任务选项 下表描述了设置 参数 说明 任务名称 为迁移任务键入一个名称 任务描述 键入任务的说明 源终端节点 显示 SQL Server 源终端节点 如果在账户中具有多个终端节点 请从列表中选择正确的终 端节点 目标终端节点 显示 Aurora MySQL 目标终端节点 复制实例 显示 AWS DMS 复制实例 迁移类型 选择一个选项 Migrate existing data (迁移现有数据) - AWS DMS 仅迁移 现有的数据 不捕获对源数据进行的更改 也不会将这些 更改应用于目标 如果您能够承受在完全加载期间发生中 72

77 步骤 7 创建并运行 AWS DMS 迁移任务 参数 说明 断 这是最简单的选项 您还可以使用该选项创建数据库 的测试副本 如果源 SQL Server 数据库是 Amazon RDS 数据库 则必须选择该选项 Migrate existing data and replicate ongoing changes (迁 移现有数据并复制持续更改) - 利用该选项 AWS DMS 可在迁移现有数据时捕获更改 甚至在加载批量数据 后 AWS DMS 也会继续捕获和应用更改 最终 源和目 标数据库将保持同步 从而最大限度减少停机时间 仅复制数据更改 使用不同的方法批量加载数据 该方法 通常仅适用于同构迁移 在创建时启动任务 在大多数情况下 您应该选择该选项 有时 您可能需要延 迟启动任务 例如 如果要更改日志记录级别 该页面应类似于以下内容 2. 在任务设置下面指定设置 下表描述了设置 参数 说明 目标表准备模式 选择一个选项 Do nothing (不执行任何操作) - AWS DMS 不会执行任何 操作以准备表 表结构将保留原样 并且任何现有的数 据保留在表中 您可以使用此方法来整合多个系统中的数 据 Drop tables on target (删除目标中的表) - AWS DMS 为您 创建目标表 在迁移之前 AWS DMS 删除并重新创建要 迁移的表 AWS DMS 仅为异构迁移创建表和主键 Truncate (截断) - AWS DMS 在加载目标表之前将其截 断 如果目标表不存在 AWS DMS 将创建该表 73

78 步骤 7 创建并运行 AWS DMS 迁移任务 参数 说明 Important 如果 AWS Schema Conversion Tool 已在目标上创 建这些表 请选择 Do nothing (不执行任何操作) 或 Truncate (截断) 在复制时包括 LOB 列 选择一个选项 不包括 LOB 列 不迁移 LOB 数据 Full LOB mode (完整 LOB 模式) - AWS DMS 将所有 LOB 大型对象 从源迁移到目标 而不管大小如何 在 此配置中 AWS DMS 没有与预计的 LOB 的最大大小相 关的信息 因此 逐个迁移 LOB 一次迁移一个 完整 LOB 模式可能相对较慢 Limited LOB mode (受限 LOB 模式) - 您设置 AWS DMS 接受的最大大小 LOB 该选项允许 AWS DMS 预分配 内存并批量加载 LOB 数据 将截断超过最大 LOB 大小 的 LOB 并将警告发布到日志文件中 在受限 LOB 模式 下 您可以获得比完整 LOB 模式高得多的性能 如果可 能 建议您使用受限 LOB 模式 最大 LOB 大小 (kb) 如果选择 Limited LOB mode (受限 LOB 模式) 该选项确定 AWS DMS 接受的最大 LOB 大小 大于该值的任何 LOB 将 截断到该值 启用日志记录 最好选择启用日志记录 如果启用日志记录 您可以查看任 务遇到的任何错误或警告以及解决这些问题 将 高级 设置保留为默认值 如果在步骤 4 使用 AWS SCT 将 SQL Server 架构转换为 Aurora MySQL (p. 60) 的最后一步中通过 AWS SCT 创建并导出映射规则 请选择 Table mappings (表映射) 然后选择 JSON 选项卡 然后选 择启用 JSON 编辑 并输入保存的表映射 如果您没有创建映射规则 则转到下一步 5. 选择创建任务 将立即启动任务 任务部分显示迁移任务的状态 如果在设置期间选择启用日志记录 则可以监控您的任务 然后 您可以查看 Amazon CloudWatch 指标 监控正在进行的数据迁移任务 在导航窗格中 选择任务 选择您的迁移任务 3. 选择任务监控选项卡 然后在该选项卡上监控正在执行的任务 在完成完全加载并应用缓存的更改后 该任务将自行停止 74

79 步骤 8 切换到 Aurora MySQL 4. 在目标 Aurora MySQL 数据库上 如果禁用了外键约束和触发器 请使用以前保存的脚本启用外键约束 和触发器 如果以前删除了辅助索引 请在目标 Aurora MySQL 数据库上重新创建这些索引 如果选择使用 AWS DMS 复制更改 请在 AWS DMS 控制台中为 AWS DMS 任务选择 Start/Resume (启动/恢复) 以启动该任务 要监控的重要复制实例指标包括 CPU FreeableMemory DiskQueueDepth CDCLatencySource CDCLatencyTarget AWS DMS 任务将目标 Aurora MySQL 数据库与源数据库更改保持同步 AWS DMS 将任务中的所有表 保持最新状态 直到执行应用程序迁移为止 在目标与源保持同步后 延迟将变为零或接近于零 有关更多信息 请参阅监控 AWS Database Migration Service 任务 步骤 8 切换到 Aurora MySQL 执行以下步骤 将连接从 Microsoft SQL Server 数据库移动到 Amazon Aurora MySQL 数据库 切换到 Aurora MySQL 1. 结束所有 SQL Server 数据库依赖项和活动 例如 运行的脚本和客户端连接 确保 SQL Server Agent 服务已停止 以下查询将返回您的连接 而不返回任何其他结果 SELECT session_id, login_name from sys.dm_exec_sessions where session_id > 50; 2. 除了您自己的会话以外 终止任何其余会话 KILL session_id; 3. 关闭 SQL Server 服务 让 AWS DMS 任务在 Amazon Aurora MySQL 数据库上应用 SQL Server 数据库中的最终更改 在 AWS DMS 控制台中 为 AWS DMS 任务选择 Stop (停止) 以停止该任务 然后确认您要停止该任 务 故障排除 将 Microsoft SQL Server 作为源数据库并将 Amazon Aurora MySQL 作为目标数据库时 最容易出现问题的 两个方面是 SQL Server 更改数据捕获 (CDC) 和外键 MS-CDC 如果在 SQL Server 中使用 MS-CDC 进行迁移 经常会出现与权限相关的错误或在更改数据捕 获期间出现错误 如果不满足其中的一个先决条件 通常会出现这些类型的错误 例如 经常被忽视的先 决条件是完整数据库备份 75

80 故障排除 外键 在完全加载过程中 AWS DMS 不会按任何特定顺序加载表 因此 可能会在加载父表数据之前加 载子表数据 因此 可能会违反外键约束 (如果已启用) 您应该在 Aurora MySQL 目标数据库上禁用外 键 在迁移完成后 您可以在目标上启用外键 有关更多提示 请参阅 AWS DMS 用户指南中的 AWS DMS 故障排除部分 要解决 SQL Server 特定的问题 请参阅 SQL Server 故障排除部分 解决 Microsoft SQL Server 特定的问题 要解决 Aurora MySQL 问题 请参阅 Aurora MySQL 故障排除部分和 MySQL 故障排除部分 解决 Amazon Aurora MySQL 特定的问题 解决 MySQL 特定的问题 76

81 先决条件 将 Oracle 数据库迁移到 PostgreSQL 通过使用本演练 可以了解如何使用 AWS Database Migration Service (AWS DMS) 和 AWS Schema Conversion Tool (AWS SCT) 将 Oracle 数据库迁移到 PostgreSQL 数据库 AWS DMS 将您的数据从 Oracle 源迁移到 PostgreSQL 目标 AWS DMS 还捕获在源数据库上进行的数据操 作语言 (DML) 和支持的数据定义语言 (DDL) 更改 并将这些更改应用于目标数据库 这样 AWS DMS 就可 以将源和目标数据库保持同步 为了便于数据迁移 AWS SCT 在目标数据库上创建迁移的架构 包括目标 上的表和主键索引 (如果需要) AWS DMS 不会迁移辅助索引 序列 默认值 存储过程 触发器 同义词 视图以及与数据迁移不明确相 关的其他架构对象 要将这些对象迁移到 PostgreSQL 目标 请使用 AWS SCT 主题 先决条件 (p. 77) 分步迁移 (p. 78) 回滚迁移 (p. 98) 故障排除 (p. 98) 先决条件 需要满足以下先决条件才能完成本演练 了解 Amazon Relational Database Service (Amazon RDS) 适用的数据库技术和 SQL 创建一个具有 AWS Identity and Access Management (IAM) 凭证的 AWS 账户 以允许在您的 AWS 区域 中启动 Amazon RDS 和 AWS Database Migration Service (AWS DMS) 实例 有关 IAM 凭证的信息 请 参阅创建 IAM 用户 了解 Amazon Virtual Private Cloud (Amazon VPC) 服务和安全组 有关将 Amazon VPC 与 Amazon RDS 一起使用的信息 请参阅 Amazon Virtual Private Cloud (VPC) 和 Amazon RDS 有关 Amazon RDS 安全 组的信息 请参阅 Amazon RDS 安全组 了解 AWS DMS 支持的功能和限制 有关 AWS DMS 的信息 请参阅什么是 AWS Database Migration Service 了解 Oracle 和 PostgreSQL 支持的数据类型转换选项 有关作为源的 Oracle 的数据类型的信息 请参阅 将 Oracle 数据库作为 AWS Database Migration Service 源 有关将 PostgreSQL 作为目标的数据类型的 信息 请参阅将 PostgreSQL 数据库作为 AWS Database Migration Service 目标 设置目标 PostgreSQL 数据库主机大小 DBA 应了解当前源 Oracle 数据库主机的负载配置情况 请考虑 CPU 内存和 IOPS 通过使用 RDS 您可以在迁移后增加或减小目标数据库主机大小 如果是首次迁移 到 PostgreSQL 建议您配置额外的容量以解决性能问题和进行优化 检查源 Oracle 数据库 对于每个架构以及其中的所有对象 请确定是否不再使用任何对象 在源 Oracle 数据库中弃用这些对象 因为如果不使用这些对象 则不需要进行迁移 如果负载容量允许 请获取源数据库中的每种 LOB 类型的最大大小 (kb) 并保留该信息以供将来使用 如果可能 请将具有 BLOB CLOB NCLOB LONG LONG RAW 和 XMLTYPE 类型的列移动到 S3 Dynamo DB 或其他数据存储 这样做将简化源 Oracle 数据库以轻松进行迁移 这还会降低目标 PostgreSQL 数据库的容量要求 有关 AWS DMS 的更多信息 请参阅 AWS DMS 文档 77

82 分步迁移 分步迁移 以下步骤提供了将 Oracle 数据库迁移到 PostgreSQL 数据库的说明 这些步骤假定您已按照先决条 件 (p. 77)中所述准备了源数据库 主题 步骤 1 在本地计算机上安装 SQL 驱动程序和 AWS Schema Conversion Tool (p. 78) 步骤 2 配置 Oracle 源数据库 (p. 79) 步骤 3 配置 PostgreSQL 目标数据库 (p. 81) 步骤 4 使用 AWS Schema Conversion Tool (AWS SCT) 将 Oracle 架构转换为 PostgreSQL (p. 82) 步骤 5 创建 AWS DMS 复制实例 (p. 90) 步骤 6 创建 AWS DMS 源和目标终端节点 (p. 91) 步骤 7 创建并运行 AWS DMS 迁移任务 (p. 94) 步骤 8 切换到 PostgreSQL (p. 97) 步骤 1 在本地计算机上安装 SQL 驱动程序和 AWS Schema Conversion Tool 在本地计算机上安装 SQL 驱动程序和 AWS Schema Conversion Tool (AWS SCT) 安装 SQL 客户端软件 1. 下载您的 Oracle 数据库版本的 JDBC 驱动程序 有关更多信息 请转至 2. 下载 PostgreSQL 驱动程序 (postgresql jar) 3. 安装 AWS SCT 和所需的 JDBC 驱动程序 a. 按照 AWS Schema Conversion Tool 用户指南 的安装和更新 AWS Schema Conversion Tool 中的 说明下载 AWS SCT b. 启动 AWS SCT c. 在 AWS SCT 中 从 Settings 中选择 Global Settings d. 在 Global Settings 中 选择 Driver 然后为 Oracle Driver Path 选择 Browse 找到 JDBC Oracle 驱动程序 然后选择 OK e. 为 PostgreSQL Driver Path 选择 Browse 找到 JDBC PostgreSQL 驱动程序 然后选择 OK 78

83 步骤 2 配置 Oracle 源数据库 f. 选择 OK 以关闭对话框 步骤 2 配置 Oracle 源数据库 要将 Oracle 作为 AWS Database Migration Service (AWS DMS) 源 您必须先确保 ARCHIVELOG MODE 已启用以便向 LogMiner 提供信息 AWS DMS 使用 LogMiner 读取存档日志中的信息 以便 AWS DMS 能 够捕获更改 要让 AWS DMS 读取此信息 请确保在 AWS DMS 需要存档日志时 在数据库服务器上保留这些日志 如 果将任务配置为立即开始捕获更改 则存档日志的保留时间只需比运行时间最长的事务的持续时间略长一 点 通常 将存档日志保留 24 小时已足够 如果将任务配置为从过去的某个时间点开始 则存档日志必须 在该时间点之前可用 有关启用 ARCHIVELOG MODE 并确保保留 Oracle 数据库日志的更详细说明 请参 阅 Oracle 文档 要捕获更改数据 AWS DMS 需要在源数据库上启用补充日志记录 必须在数据库级别启用最小补充日志记 录 AWS DMS 还需要启用识别键日志记录 每次更新包含主键的行时 该选项导致数据库将该行的主键的 所有列放在重做日志文件中 即使主键中的值未更改 也会出现这种结果 您可以在数据库级别或表级别设 置该选项 配置 Oracle 源数据库 1. 创建或配置要由 AWS DMS 使用的数据库账户 建议使用具有 AWS DMS 所需的最小权限的账户进行 AWS DMS 连接 AWS DMS 需要以下权限 CREATE SELECT SELECT SELECT SELECT SELECT SESSION ANY TRANSACTION on V_$ARCHIVED_LOG on V_$LOG on V_$LOGFILE on V_$DATABASE 79

84 步骤 2 配置 Oracle 源数据库 SELECT on V_$THREAD SELECT on V_$PARAMETER SELECT on V_$NLS_PARAMETERS SELECT on V_$TIMEZONE_NAMES SELECT on V_$TRANSACTION SELECT on ALL_INDEXES SELECT on ALL_OBJECTS SELECT on ALL_TABLES SELECT on ALL_USERS SELECT on ALL_CATALOG SELECT on ALL_CONSTRAINTS SELECT on ALL_CONS_COLUMNS SELECT on ALL_TAB_COLS SELECT on ALL_IND_COLUMNS SELECT on ALL_LOG_GROUPS SELECT on SYS.DBA_REGISTRY SELECT on SYS.OBJ$ SELECT on DBA_TABLESPACES SELECT on ALL_TAB_PARTITIONS SELECT on ALL_ENCRYPTED_COLUMNS * SELECT on all tables migrated 如果要捕获并应用更改 (CDC) 您还需要具有以下权限 EXECUTE on DBMS_LOGMNR SELECT on V_$LOGMNR_LOGS SELECT on V_$LOGMNR_CONTENTS LOGMINING /* For Oracle 12c and higher. */ * ALTER for any table being replicated (if you want AWS DMS to add supplemental logging) 对于 之前的 Oracle 版本 您需要以下权限 SELECT on DBA_OBJECTS /* versions before */ SELECT on ALL_VIEWS (required if views are exposed) 2. 如果您的 Oracle 数据库是一个 AWS RDS 数据库 请以管理用户身份连接到该数据库 然后运行以下 命令以确保将存档日志在 RDS 源上保留 24 小时 exec rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',24); 如果您的 Oracle 源是一个 AWS RDS 数据库 当且仅当启用备份时 才会将其置于 ARCHIVELOG MODE 3. 运行以下命令可在数据库级别启用补充日志记录 AWS DMS 要求这样做 在 Oracle SQL 中 ALTER DATABASE ADD SUPPLEMENTAL LOG DATA; 在 RDS 中 exec rdsadmin.rdsadmin_util.alter_supplemental_logging('add'); 80

85 步骤 3 配置 PostgreSQL 目标数据库 4. 使用以下命令可在数据库级别启用识别键补充日志记录 AWS DMS 需要在数据库级别使用补充键日志 记录 例外情况是 如果允许 AWS DMS 自动按需添加补充日志记录或在表级别启用键级别补充日志记 录 在 Oracle SQL 中 ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS; 在 RDS 中 exec rdsadmin.rdsadmin_util.alter_supplemental_logging('add','primary KEY'); 在启用键级别补充日志记录时 您的源数据库会产生少量开销 因此 如果仅迁移一部分表 则可 能需要在表级别启用键级别补充日志记录 5. 要在表级别启用键级别补充日志记录 请使用以下命令 ALTER TABLE table_name ADD SUPPLEMENTAL LOG DATA (PRIMARY KEY) COLUMNS; 如果表没有主键 您有两种选择 您可以在表中的第一个唯一索引涉及的所有列上添加补充日志记录 (按索引名称排序) 您可以在表的所有列上添加补充日志记录 要在表中的一部分列 (如唯一索引涉及的列) 上添加补充日志记录 请运行以下命令 ALTER TABLE table_name ADD SUPPLEMENTAL LOG GROUP example_log_group (column_list) ALWAYS; 要为表的所有列添加补充日志记录 请运行以下命令 ALTER TABLE table_name ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS; 6. 为 AWS SCT 创建一个用户 CREATE USER oracle_sct_user IDENTIFIED BY password; GRANT CONNECT TO oracle_sct_user; GRANT SELECT_CATALOG_ROLE TO oracle_sct_user; GRANT SELECT ANY DICTIONARY TO oracle_sct_user; 步骤 3 配置 PostgreSQL 目标数据库 1. 如果迁移的架构在 PostgreSQL 数据库上不存在 请创建这些架构 81

86 步骤 4 使用 AWS Schema Conversion Tool (AWS SCT) 将 Oracle 架构转换为 PostgreSQL 2. 创建用于连接到目标数据库的 AWS DMS 用户 然后授予超级用户或所需的各种权限 或者使用 RDS 的主用户名 CREATE USER postgresql_dms_user WITH PASSWORD 'password'; ALTER USER postgresql_dms_user WITH SUPERUSER; 3. 为 AWS SCT 创建一个用户 CREATE USER postgresql_sct_user WITH PASSWORD 'password'; GRANT GRANT GRANT GRANT CONNECT ON DATABASE database_name TO postgresql_sct_user; USAGE ON SCHEMA schema_name TO postgresql_sct_user; SELECT ON ALL TABLES IN SCHEMA schema_name TO postgresql_sct_user; ALL ON SEQUENCES IN SCHEMA schema_name TO postgresql_sct_user; 步骤 4 使用 AWS Schema Conversion Tool (AWS SCT) 将 Oracle 架构转换为 PostgreSQL 在将数据迁移到 PostgreSQL 之前 您需要将 Oracle 架构转换为 PostgreSQL 架构 使用 AWS SCT 将 Oracle 架构转换为 PostgreSQL 架构 1. 启动 AWS SCT 在 AWS SCT 中 选择 File 然后选择 New Project 创建一个名为 AWS Schema Conversion Tool Oracle to PostgreSQL 的新项目 在 New Project (新建项目) 窗口中输入以 下信息 然后选择 OK (确定) 参数 说明 Project Name Type AWS Schema Conversion Tool Oracle to PostgreSQL. 位置 使用默认 Projects 文件夹和默认 Transactional Database (OLTP) 选项 Source Database Engine 选择 Oracle Target Database Engine 选择 Amazon RDS for PostgreSQL 82

87 步骤 4 使用 AWS Schema Conversion Tool (AWS SCT) 将 Oracle 架构转换为 PostgreSQL 2. 选择 Connect to Oracle 在 Connect to Oracle 对话框中 输入以下信息 然后选择 Test Connection 参数 说明 Type (类型) 选择 SID Server name 键入服务器名称 Server port 键入 Oracle 端口号 默认为 1521 Oracle SID 键入数据库 SID 用户名 键入 Oracle 管理员用户名 密码 提供管理员用户的密码 83

88 步骤 4 使用 AWS Schema Conversion Tool (AWS SCT) 将 Oracle 架构转换为 PostgreSQL 3. 选择 OK 以关闭警告框 然后选择 OK 以关闭对话框并开始连接到 Oracle 数据库实例 这将显示 Oracle 数据库实例上的数据库结构 4. 选择 Connect to Amazon RDS for PostgreSQL 在 Connect to Amazon PostgreSQL 对话框中 输入 以下信息 然后选择 Test Connection 参数 说明 服务器名称 键入服务器名称 Server port 键入 PostgreSQL 端口号 默认为 5432 Database (数据库) 键入数据库名称 用户名 键入 PostgreSQL 管理员用户名 密码 提供管理员用户的密码 84

89 步骤 4 使用 AWS Schema Conversion Tool (AWS SCT) 将 Oracle 架构转换为 PostgreSQL 5. 选择 OK 以关闭警告框 然后选择 OK 以关闭对话框并开始连接到 PostgreSQL 数据库实例 6. 打开要迁移的架构的上下文 (右键单击) 菜单 然后选择 Convert schema 85

90 步骤 4 使用 AWS Schema Conversion Tool (AWS SCT) 将 Oracle 架构转换为 PostgreSQL 7. 对于确认消息 请选择 Yes 然后 AWS SCT 将架构转换为目标数据库格式 86

91 步骤 4 使用 AWS Schema Conversion Tool (AWS SCT) 将 Oracle 架构转换为 PostgreSQL AWS SCT 分析架构 并为到 PostgreSQL 的转换创建数据库迁移评估报告 8. 从 View 中选择 Assessment Report View 以检查报告 该报告按每种对象类型以及成功转换所需的手动更改量进行细分 通常 包 过程和函数很可能会出现一些需要解决的问题 因为它们包含大多数的自定义 PL/SQL 代 码 AWS SCT 还提供有关如何修复这些对象的提示 87

92 步骤 4 使用 AWS Schema Conversion Tool (AWS SCT) 将 Oracle 架构转换为 PostgreSQL 9. 选择 Action Items 选项卡 Action Items 选项卡显示每个对象需要引起注意的各个问题 对于每个转换问题 您可以完成以下操作之一 在源 Oracle 数据库上修改这些对象 以便 AWS SCT 可以将这些对象转换为目标 PostgreSQL 数据 库中的对象 1. 在源 Oracle 数据库上修改这些对象 2. 重复上述步骤以转换架构和检查评估报告 88

93 步骤 4 使用 AWS Schema Conversion Tool (AWS SCT) 将 Oracle 架构转换为 PostgreSQL 3. 如果需要 请重复该过程 直到没有转换问题为止 4. 从 View 中选择 Main View 打开目标 PostgreSQL 架构的上下文 (右键单击) 菜单 然后选择 Apply to database 以将架构更改应用于 PostgreSQL 数据库 修改 AWS SCT 生成的脚本 而不是修改源模式 然后再在目标 PostgreSQL 数据库上应用这些脚 本 1. 打开目标 PostgreSQL 架构名称的上下文 (右键单击) 菜单 然后选择 Save as SQL 接下来 选择脚本的名称和目标 2. 在脚本中 修改这些对象以纠正转换问题 3. 在目标 PostgreSQL 数据库上运行该脚本 有关更多信息 请参阅 AWS Schema Conversion Tool 用户指南 中的使用 AWS Schema Conversion Tool 将数据库架构转换为 Amazon RDS 10. 使用 AWS SCT 创建一个映射规则 a. 在 Settings 下面 选择 Mapping Rules b. 除了将架构名称和表名称转换为小写形式的两个默认映射规则以外 还可以根据操作项创建所需的 额外映射规则 c. 保存映射规则 89

94 步骤 5 创建 AWS DMS 复制实例 d. 单击 Export script for DMS (导出 DMS 的脚本) 以导出所有转换的 JSON 格式 AWS DMS 任务将 使用这些转换确定源中的对象与目标上的哪些对象相对应 单击保存 步骤 5 创建 AWS DMS 复制实例 在验证源和目标数据库之间的架构结构后 请继续执行本演练的核心部分 (即 数据迁移) 下图显示了迁移 过程的概要视图 AWS DMS 复制实例执行源和目标之间的实际数据迁移 在迁移过程中 复制实例还将对事务日志进行缓 存 复制实例具有的 CPU 和内存容量将影响迁移所需的总体时间 创建 AWS DMS 复制实例 1. 登录到 AWS 管理控制台 然后选择 AWS DMS ( 接下来 选 择创建迁移 如果以 AWS Identity and Access Management (IAM) 用户身份登录 则必须具有 AWS DMS 的相应访问权限 有关所需权限的更多信息 请参阅使用 AWS DMS 所需的 IAM 权限 2. 选择下一步 从控制台的 欢迎 页中开始迁移数据库 3. 在创建复制实例页中 指定您的复制实例信息 参数 说明 名称 为您的复制实例选择一个名称 如果将使用多个复制服务器 或共享一个账户 请选择一个帮助您快速区分不同服务器的 名称 描述 键入简要描述 实例类 选择要创建的复制服务器的类型 实例类的各种大小和类型 具有逐渐增加的 CPU 内存和 I/O 容量 通常 t2 实例适 90

95 步骤 6 创建 AWS DMS 源和目标终端节点 参数 说明 用于较低的负载任务 而 c4 实例适用于较高的负载和更多 的任务 VPC 选择将在其中启动复制实例的 VPC 如果可能 请选择源 和/或目标数据库所在的相同 VPC 多可用区 如果选择 Yes (是) AWS DMS 将在不同的可用区中创建第 二个复制服务器 以便在主复制服务器出现问题时进行故障 转移 公开访问 如果源或目标数据库位于复制服务器所在的 VPC 外部 则 必须能够公开访问复制服务器策略 对于高级部分 请指定以下信息 参数 说明 分配的存储空间 (GB) 在复制服务器上为 AWS DMS 任务日志分配的存储量 包 括历史任务日志 AWS DMS 还使用磁盘存储缓存某些数 据 同时将其从源复制到目标 此外 更多的存储通常在服 务器上提供更好的 IOPS 复制子网组 如果在多可用区配置中运行 您需要具有至少两个子网组 可用区 通常 如果主复制服务器位于与目标数据库相同的可用区 中 则会提供更高的性能 VPC 安全组 通过使用安全组 您可以控制 VPC 传入和传出 AWS DMS 允许将一个或多个安全组与从中启动复制服务器的 VPC 相关联 KMS 主密钥 利用 AWS DMS 可使用 KMS 加密密钥来加密所有静态数 据 默认情况下 AWS DMS 为复制服务器创建新的加密密 钥 不过 您可以选择使用现有的密钥 有关 KMS 主密钥的信息 请参阅设置加密密钥并指定 KMS 权限 单击 Next (下一步) 步骤 6 创建 AWS DMS 源和目标终端节点 在创建复制实例时 可以使用 AWS 管理控制台指定源和目标数据库终端节点 但是 您只能在创建复制实 例后测试连接 因为连接中已使用复制实例 使用控制台指定源和目标数据库终端节点 1. 指定源 Oracle 数据库和目标 PostgreSQL 数据库的连接信息 下表描述了源设置 参数 说明 终端节点标识符 键入名称 例如 Orasource Source Engine 选择 oracle 服务器名称 提供 Oracle 数据库实例服务器名称 91

96 步骤 6 创建 AWS DMS 源和目标终端节点 参数 说明 端口 数据库的端口 Oracle的默认值为 1521 SSL 模式 如果要为连接的流量启用加密 请选择 SSL 模式 Username 要用于连接到源数据库的用户 密码 提供用户的密码 SID 提供 Oracle 数据库名称 下表描述了高级源设置 参数 说明 额外的连接属性 您可以在终端节点中设置这些额外参数以添加功能或更改 AWS DMS 行为 以下是为 Oracle 源数据库设置的一些最 常用和最方便的参数 使用分号 (;) 将多个条目分隔开来 addsupplementallogging 在设置为 Y 时 该参数 自动配置补充日志记录 uselogminerreader - 默认情况下 AWS DMS 在 Oracle 数据库上使用 Logminer 以捕获源数据库上的所 有更改 另一种模式称为 Binary Reader 在使用 Binary Reader 而不是 Logminer 时 AWS DMS 将存档的重做 日志从源 Oracle 数据库复制到复制服务器 并读取整个 日志以捕获更改 如果使用的是 ASM 建议使用 Binary Reader 选项 因为该选项在 ASM 上具有比 Logminer 更 高的性能优势 如果源数据库是 12c 则 Binary Reader 选项目前是在 Oracle 中捕获 LOB 对象 CDC 更改的唯一 方法 要使用 Logminer 请输入以下内容 uselogminerreader=y 要使用 Binary Reader 请输入以下内容 uselogminerreader=n; usebfile=y KMS 主密钥 如果选择加密您的复制实例的存储 请输入 KMS 主密钥 有关额外连接属性的信息 请参阅将额外的连接属性与 AWS Database Migration Service 一起使用 下表描述了目标设置 参数 说明 终端节点标识符 键入名称 例如 Postgrestarget 目标引擎 选择 postgres 服务器名称 提供 PostgreSQL 数据库实例服务器名称 92

97 步骤 6 创建 AWS DMS 源和目标终端节点 参数 说明 端口 数据库的端口 PostgreSQL 的默认值为 5432 SSL 模式 选择 None Username 要用于连接到目标数据库的用户 密码 提供 PostgreSQL 数据库实例的密码 以下是填写的页面示例 2. 在创建终端节点和复制实例后 为源和目标终端节点选择运行测试以测试每个终端节点连接 3. 删除目标数据库上的外键约束和触发器 93

98 步骤 7 创建并运行 AWS DMS 迁移任务 在完全加载过程中 AWS DMS 不会按任何特定顺序加载表 因此 可能会在加载父表数据之前加载子 表数据 因此 可能会违反外键约束 (如果已启用) 此外 如果在目标数据库上具有触发器 它可能会 以意外方式更改 AWS DMS 加载的数据 4. 如果没有启用外键约束和触发器的脚本 请生成一个脚本 以后 如果要将这些内容添加到迁移的数据库中 您只需运行该脚本 5. (可选) 删除目标数据库上的辅助索引 辅助索引 (与所有索引一样) 可能会降低将数据完全加载到表的速度 因为需要在加载过程中保留和更新 这些索引 删除这些索引可以提高完全加载过程的性能 如果删除这些索引 则需要在完全加载完成后 重新添加这些索引 6. 选择 Next 步骤 7 创建并运行 AWS DMS 迁移任务 在使用 AWS DMS 任务时 您可以指定要迁移的架构和迁移类型 您可以迁移现有数据 迁移现有数据并复 制正在进行的更改或仅复制数据更改 本演练迁移现有的数据并复制持续更改 创建迁移任务 1. 在创建任务页中 指定任务选项 下表描述了设置 参数 说明 任务名称 为迁移任务键入一个名称 任务描述 键入任务的说明 源终端节点 显示 Oracle 源终端节点 如果在账户中具有多个终端节点 请从列表中选择正确的终 端节点 目标终端节点 显示 PostgreSQL 目标终端节点 复制实例 显示 AWS DMS 复制实例 迁移类型 选择迁移现有数据并复制持续更改选项 在创建时启动任务 选择该选项 页面应该类似以下内容 94

99 步骤 7 创建并运行 AWS DMS 迁移任务 2. 在任务设置下面 为目标表准备模式选择不执行任何操作或截断 因为您已使用 AWS Schema Conversion Tool 创建表 如果 Oracle 数据库具有 LOB 并且要复制所有表的整个 LOB 请为在复制时包括 LOB 列选择完整 LOB 模式 如果要仅复制不超过特定大小的 LOB 请选择受限 LOB 模式 您可以在最大 LOB 大小 (kb) 中 指定要迁移的 LOB 大小 最好选择启用日志记录 如果启用日志记录 您可以查看任务遇到的任何错误或警告以及解决这些问 题 3. 将 高级 设置保留为默认值 95

100 步骤 7 创建并运行 AWS DMS 迁移任务 4. 选择表映射 然后选择 JSON 选项卡 接下来 选择启用 JSON 编辑 然后输入在步骤 4 使用 AWS Schema Conversion Tool (AWS SCT) 将 Oracle 架构转换为 PostgreSQL (p. 82)的最后一步中保存 的表映射 以下是将架构名称和表名称转换为小写的映射示例 { } 5. "rules": [ { "rule-type": "transformation", "rule-id": "100000", "rule-name": "Default Lowercase Table Rule", "rule-action": "convert-lowercase", "rule-target": "table", "object-locator": { "schema-name": "%", "table-name": "%" } }, { "rule-type": "transformation", "rule-id": "100001", "rule-name": "Default Lowercase Schema Rule", "rule-action": "convert-lowercase", "rule-target": "schema", "object-locator": { "schema-name": "%" } } ] 选择创建任务 此任务将立即开始 任务 部分显示迁移任务的状态 如果在设置任务时选择启用日志记录 则可以监控您的任务 随后 您可以执行以下操作来查看 CloudWatch 指标 监控正在进行的数据迁移任务 1. 在导航窗格中 选择任务 2. 选择您的迁移任务 3. 选择任务监控选项卡 然后在该选项卡上监控正在执行的任务 在完成完全加载并应用缓存的更改后 该任务将自行停止 4. 在目标 PostgreSQL 数据库上 使用以前保存的脚本启用外键约束和触发器 96

101 步骤 8 切换到 PostgreSQL 5. 如果以前删除了辅助索引 请在目标 PostgreSQL 数据库上重新创建这些索引 6. 在 AWS DMS 控制台中 为 AWS DMS 任务单击 Start/Resume (启动/恢复) 以启动该任务 AWS DMS 任务将目标 PostgreSQL 数据库与源数据库更改保持同步 AWS DMS 将任务中的所有表保 持最新状态 直到执行应用程序迁移为止 在目标与源保持同步后 延迟将变为零或接近于零 步骤 8 切换到 PostgreSQL 执行以下步骤以将连接从 Oracle 数据库移到 PostgreSQL 数据库 切换到 PostgreSQL 1. 结束所有 Oracle 数据库依赖项和活动 例如 运行的脚本和客户端连接 以下查询不会返回任何结果 SELECT MACHINE, COUNT FROM V$SESSION GROUP BY MACHINE; 2. 列出并终止任何其余会话 SELECT SID, SERIAL#, STATUS FROM V$SESSION; ALTER SYSTEM KILL 'sid, serial_number' IMMEDIATE; 3. 关闭 Oracle 数据库上的所有侦听器 4. 让 AWS DMS 任务在 PostgreSQL 数据库上应用 Oracle 数据库中的最终更改 ALTER SYSTEM CHECKPOINT; 5. 在 AWS DMS 控制台中 为 AWS DMS 任务单击 Start/Resume (启动/恢复) 以停止该任务 然后确认您 要停止该任务 6. (可选) 设置回滚 您可以选择创建一个按相反方向执行的任务以设置回滚任务 以防止遇到显示停止问题 由于应在两个 数据库之间同步所有表 您只需要设置一个 CDC 任务 因此 您不必禁用任何外键约束 由于颠倒了 源和目标数据库 您必须按照以下章节中的说明进行操作 将 PostgreSQL 数据库作为 AWS Database Migration Service 源 将 Oracle 数据库作为 AWS Database Migration Service 目标 a. 禁用源 Oracle 数据库上的触发器 SELECT 'ALTER TRIGGER' owner '.' trigger_name 'DISABLE;' FROM DBA_TRIGGERS WHERE OWNER = 'schema_name'; 您不必禁用外键约束 在 CDC 过程中 将按照与应用程序用户更新外键约束的相同顺序更新这些 约束 97

102 回滚迁移 b. 创建新的仅限 CDC 的 AWS DMS 任务并颠倒终端节点 源 PostgreSQL 终端节点和目标 Oracle 终 端节点数据库 请参阅步骤 7 创建并运行 AWS DMS 迁移任务 (p. 94) 对于回滚任务 请将迁移类型设置为仅复制数据更改 并将目标表准备模式设置为不执行任何操 作 c. 7. 启动 AWS DMS 任务 以使您能够将更改从新 PostgreSQL 数据库推送回原始源 Oracle 数据库 如果需要回滚 连接到 PostgreSQL 数据库并启用触发器 ALTER TABLE table_name ENABLE TRIGGER ALL; 8. 如果设置回滚 请完成回滚设置 a. 在新目标 PostgreSQL 数据库上启动应用程序服务 (包括脚本 客户端软件等) b. 在新 PostgreSQL 数据库上添加 Cloudwatch 监控 请参阅监控 Amazon RDS 回滚迁移 如果出现无法及时解决的重大迁移问题 您可以回滚迁移 这些步骤假定您已按照步骤 8 切换到 PostgreSQL (p. 97)中所述做好回滚准备 回滚迁移 1. 停止目标 PostgreSQL 数据库上的所有应用程序服务 2. 让 AWS DMS 任务将其余更改复制回源 Oracle 数据库 3. 停止 PostgreSQL 到 Oracle AWS DMS 任务 4. 在源 Oracle 数据库上重新启动所有应用程序 故障排除 在将 Oracle 作为源并将 PostgreSQL 作为目标时 最容易出现问题的两个方面是补充日志记录和区分大小 写 补充日志记录 对于 Oracle 必须启用补充日志记录才能复制更改数据 不过 如果您在数据库级别启用 补充日志记录 在创建新表时 有时仍需启用该功能 针对此情况的最佳补救措施是 允许 AWS DMS 使 用额外的连接属性来启用补充日志记录 addsupplementallogging=y 区分大小写 Oracle 不区分大小写 (除非您用引号将对象名引起来) 但文本将显示为大写形式 因 此 AWS DMS 默认为以大写形式命名目标对象 大多数情况下 您希望使用转换将架构 表和列名称更 改为小写形式 有关更多提示 请参阅 AWS DMS 用户指南中的 AWS DMS 故障排除部分 要解决特定于 Oracle 的问题 请参阅 Oracle 故障排除部分 解决 Oracle 特定的问题 98

103 故障排除 要解决 PostgreSQL 问题 请参阅 PostgreSQL 故障排除部分 解决 PostgreSQL 特定的问题 99

104 先决条件 将 Amazon RDS for Oracle 数据库迁 移到 Amazon Redshift 本演练帮助您开始使用 AWS Database Migration Service (AWS DMS) 和 AWS Schema Conversion Tool (AWS SCT) 将异构数据库从 Amazon RDS for Oracle 迁移到 Amazon Redshift 本入门练习不会涵盖所有 方案 设置本练习的目的是让您更好地了解此类迁移所涉及的步骤 了解 AWS DMS 和 AWS SCT 是两种不同的工具并且可满足不同的需求很重要 在迁移过程中 二者之间不 会交互 概括来说 此迁移中涉及的步骤如下 1. 使用 AWS SCT 执行以下操作 运行从 Oracle 到 Amazon Redshift 的转换报告以标识架构转换的问题 限制和所需操作 在执行数据加载之前 通过 AWS DMS 生成架构脚本并在目标上应用这些脚本 AWS SCT 将为对象 (如过程和视图) 执行必要的代码转换 2. 标识和实施针对 AWS SCT 报告的问题的解决方案 3. 禁用外键或任何其他可能影响 AWS DMS 数据加载的约束 4. AWS DMS 使用 完全加载 方法将数据从源加载到目标 虽然 AWS DMS 在加载期间能够在目标中创建对 象 但它将通过简约方式高效迁移数据 因此不会将整个架构结构从源复制到目标 5. 执行迁移后活动 (例如 创建附加索引 启用外键和在应用程序中进行必要更改) 以指向新数据库 本演练使用自定义 AWS CloudFormation 模板以创建适用于 Oracle 和 Amazon Redshift 的 RDS 数据库实 例 然后 它使用 SQL 命令脚本将示例架构和数据安装到随后将迁移到 Amazon Redshift 的 RDS Oracle 数 据库实例 本演练大约需要两个小时才能完成 请确保在本演练结束时遵循说明来删除资源以避免产生其他费用 主题 先决条件 (p. 100) 迁移架构 (p. 101) 分步迁移 (p. 102) 后续步骤 (p. 134) 先决条件 此外 还需要满足以下先决条件才能完成本演练 熟悉 Amazon RDS Amazon Redshift 适用的数据库技术和 SQL 包含创建要迁移的表的自定义脚本和用于确认迁移的 SQL 查询 如下所示 Oracle_Redshift_For_DMSDemo.template 一个 AWS CloudFormation 模板 Oraclesalesstarschema.sql 用于构建 SH 架构的 SQL 语句 可访问以下链接来获得这些脚本 dms-sbs-rdsoracle2redshift.zip 100

105 迁移架构 演练中的每个步骤还包含用于下载相关文件的链接或包含准确查询 一个带 AWS Identity and Access Management (IAM) 凭证的 AWS 账户 这些凭证使您能够在 AWS 区域 中启动 RDS AWS Database Migration Service (AWS DMS) 实例和 Amazon Redshift 集群 有关 IAM 凭证的信息 请参阅创建 IAM 用户 Amazon Virtual Private Cloud (Amazon VPC) 服务和安全组的基础知识 有关将 Amazon VPC 和 Amazon RDS 结合使用的信息 请参阅 Virtual Private Cloud (VPC) 和 Amazon RDS 有关 Amazon RDS 安全组的信息 请参阅 Amazon RDS 安全组 有关在 VPC 中使用 Amazon Redshift 的信息 请参 阅在 Amazon Virtual Private Cloud (VPC) 中管理集群 了解 AWS DMS 的受支持功能和限制 有关 AWS DMS 的信息 请参阅什么是 AWS Database Migration Service 了解 Oracle 和 Amazon Redshift 支持的数据类型转换选项 有关作为源的 Oracle 的数据类型的信息 请 参阅将 Oracle 数据库作为 AWS Database Migration Service 的源 有关作为目标的 Amazon Redshift 的 数据类型的信息 请参阅将 Amazon Redshift 数据库作为 AWS Database Migration Service 的目标 有关 AWS DMS 的更多信息 请参阅 AWS DMS 文档 迁移架构 本演练使用 AWS CloudFormation 为数据库迁移创建简单网络拓扑 其中包含同一 VPC 中的源数据库 复 制实例和目标数据库 有关 AWS CloudFormation 的更多信息 请参阅 CloudFormation 文档 我们将通过 AWS CloudFormation 预置此 AWS DMS 演练需要的 AWS 资源 这些资源包括 VPC 适用于 Oracle 的 Amazon RDS 实例以及 Amazon Redshift 集群 我们通过 CloudFormation 进行预置 因为它能 够简化流程 以便我们能够专注于与数据迁移相关的任务 在从 CloudFormation 模板创建堆栈时 它将预 置以下资源 一个带 CIDR ( /24) 的 VPC 具有区域中的两个公有子网 可用区 (AZ) 1 中地址为 /26 的 DBSubnet1 AZ 12 中地址为 /26 的 DBSubnet2 一个包含 DBSubnet1 和 DBSubnet2 的数据库子网组 具有以下部署选项的 Oracle RDS Standard Edition Two 附带许可 单可用区设置 db.m3.medium 或等效实例类 端口 1521 默认选项和参数组 带以下部署选项的 Amazon Redshift 集群 dc1.large 端口 5439 默认参数组 根据输入参数 具有来自计算机或的入口访问或 /0 (来自任何位置的访问) 的安全组 我们设计了 CloudFormation 模板以要求用户提供一些输入 它预置具有建议的最低配置的必要 AWS 资源 不过 如果您需要更改某些配置和参数 (例如 VPC CIDR 块和 Amazon RDS 实例类型) 请随意更新模板 我们使用 AWS 管理控制台来预置 AWS DMS 资源 例如复制实例 终端节点和任务 您在本地计算机上安 装客户端工具 (例如 SQL Workbench/J 和 AWS Schema Conversion Tool (AWS SCT)) 以便连接到 Amazon RDS 实例 以下是本演练的迁移架构的说明 101

106 分步迁移 分步迁移 在以下部分中 您可以找到有关将 Amazon RDS for Oracle database 迁移到 Amazon Redshift 的分步说 明 这些步骤假定您已按照前面部分中所述准备了源数据库 主题 步骤 1 使用 CloudFormation 模板启动 VPC 中的 RDS 实例 (p. 103) 步骤 2 在本地计算机上安装 SQL 工具和 AWS Schema Conversion Tool (p. 106) 步骤 3 测试到 Oracle 数据库实例的连接并创建示例架构 (p. 109) 步骤 4 测试与 Amazon Redshift 数据库的连接 (p. 113) 步骤 5 使用 AWS SCT 将 Oracle 架构转换为 Amazon Redshift 架构 (p. 114) 步骤 6 验证架构转换 (p. 122) 步骤 7 创建 AWS DMS 复制实例 (p. 123) 步骤 8 创建 AWS DMS 源和目标终端节点 (p. 124) 步骤 9 创建并运行 AWS DMS 迁移任务 (p. 127) 102

107 步骤 1 使用 CloudFormation 模板启动 VPC 中的 RDS 实例 步骤 10 验证数据迁移是否已成功完成 (p. 131) 步骤 11 删除演练资源 (p. 133) 步骤 1 使用 CloudFormation 模板启动 VPC 中的 RDS 实例 在开始之前 您需要下载一个 AWS CloudFormation 模板 按照以下说明进行操作 1. 将以下存档下载到您的计算机 2. 从存档中提取 CloudFormation 模板 (Oracle_Redshift_For_DMSDemo.template) 3. 将 Oracle_Redshift_For_DMSDemo.template 文件复制并粘贴到当前目录中 现在 您需要为本演练预置所需的 AWS 资源 使用 AWS CloudFormation 为本演练创建 Amazon RDS 资源 1. 登录 AWS 管理控制台并通过以下网址打开 AWS CloudFormation 控制台 console.amazonaws.cn/cloudformation 2. 选择 Create Stack 3. 在 Select Template (选择模板) 页面上 选择 Upload a template to Amazon S3 (将模板上传到 Amazon S3) 4. 单击 Choose File (选择文件) 然后选择您已从 dms-sbs-rdsoracle2redshift.zip 存档中提取的 Oracle_Redshift_For_DMSDemo.template 文件 5. 选择 Next (下一步) 在指定详细信息页中 提供如下所示的参数值 对于此参数 执行该操作 Stack Name Type OracletoRedshiftDWusingDMS. OracleDBName 为您的数据库提供唯一名称 该名称应以字母开头 默认为 ORCL OracleDBUsername 指定用于管理 Oracle 实例的管理员 (DBA) 用户 默认为 oraadmin OracleDBPassword 提供管理员用户的密码 默认值为 oraadmin123 RedshiftDBName 为您的数据库提供任意唯一名称 该名称应以字母开头 默 认为 test RedshiftDBUsername 提供主用户的密码 默认为 Redshift#123 ClientIP 为本地计算机指定 CIDR (x.x.x.x/32) 格式的 IP 地址 您可 以从 whatsmyip.org 中获取您的 IP 地址 您的 RDS 实例的 安全组将允许对此 IP 地址的传入 默认为从任何位置访问 ( /0) 建议不要这样做 您应对本演练使用您的 IP 地 址 103

108 步骤 1 使用 CloudFormation 模板启动 VPC 中的 RDS 实例 6. 选择 Next 在 Options 页面上 选择 Next 7. 在审核页中 查看详细信息 如果正确无误 请选择创建 104

109 步骤 1 使用 CloudFormation 模板启动 VPC 中的 RDS 实例 105

110 步骤 2 在本地计算机上安装 SQL 工 具和 AWS Schema Conversion Tool 8. AWS 使用 Amazon RDS Oracle 实例和 Amazon Redshift 集群创建堆栈需要 20 分钟或更多时间 9. 在创建堆栈后 选择 OracletoRedshiftDWusingDMS 堆栈 然后选择输出视图 记录 JDBC 连接字符 串 OracleJDBCConnectionString 和 RedshiftJDBCConnectionString 以便稍后在本演练中用于连接到 Oracle 和 Amazon Redshift 数据库 步骤 2 在本地计算机上安装 SQL 工具和 AWS Schema Conversion Tool 接下来 您需要在本地计算机上安装 SQL 客户端和 AWS SCT 本演练假定您使用 SQL Workbench/J 客户端连接到 RDS 实例以进行迁移验证 安装 SQL 客户端软件 1. 从 SQL Workbench/J 网站下载 SQL Workbench/J 然后将其安装到本地计算机上 此 SQL 客户端是免 费的 开源的且独立于 DBMS 的客户端 106

111 步骤 2 在本地计算机上安装 SQL 工 具和 AWS Schema Conversion Tool 2. 下载您的 Oracle 数据库版本的 JDBC 驱动程序 有关更多信息 请转至 3. 下载 Amazon Redshift 驱动程序 (RedshiftJDBC jar) 4. 通过使用 SQL Workbench/J 配置适用于 Oracle 和 Amazon Redshift 的 JDBC 驱动程序以设置连接 如下所述 a. 在 SQL Workbench/J 中 选择 File 然后选择 Manage Drivers b. 从驱动程序列表中 选择 Oracle c. 选择打开图标 然后选择您在上一步中下载的 ojdbc.jar 文件 选择 OK d. 从驱动程序列表中 选择 Redshift e. 选择打开图标 然后选择您在上一步中下载的 Amazon Redshift JDBC 驱动程序 选择 OK 107

112 步骤 2 在本地计算机上安装 SQL 工 具和 AWS Schema Conversion Tool 接下来 安装 AWS SCT 和必需的 JDBC 驱动程序 安装 AWS SCT 和必需的 JDBC 驱动程序 1. 从 AWS Schema Conversion Tool 用户指南 中的安装和更新 AWS Schema Conversion Tool 下载 AWS SCT 2. 按照说明安装 AWS SCT 默认情况下 该工具安装在 C:\Program Files\AWS Schema Conversion Tool\AWS 目录中 3. 启动 AWS SCT 4. 在 AWS SCT 中 从 Settings 中选择 Global Settings 5. 依次选择 Settings Global Settings 和 Drivers 然后为 Oracle Driver Path 选择 Browse 找到 Oracle JDBC 驱动程序 然后选择 OK 6. 为 Amazon Redshift Driver Path 选择 Browse 找到 Amazon Redshift JDBC 驱动程序 然后选择确 定 选择 OK 以关闭对话框 108

113 步骤 3 测试到 Oracle 数据库实例的连接并创建示例架构 步骤 3 测试到 Oracle 数据库实例的连接并创建示例架 构 在创建 CloudFormation 堆栈后 使用 SQL Workbench/J 测试到 Oracle 数据库实例的连接 然后创建 HR 示例架构 使用 SQL Workbench/J 测试到 Oracle 数据库实例的连接 并创建示例架构 1. 在 SQL Workbench/J 中 选择 File 然后选择 Connect window 使用以下信息创建新的连接配置文 件 对于此参数 执行该操作 New profile name Type RDSOracleConnection. 驱动程序 选择 Oracle (oracle.jdbc.oracledriver) URL 使用您在上一步中检查 DMSdemo 堆栈输出详细信息时记录 的 OracleJDBCConnectionString 值 109

114 步骤 3 测试到 Oracle 数据库实例的连接并创建示例架构 2. 对于此参数 执行该操作 Username Type oraadmin. 密码 Type oraadmin123. 选择 Test 以测试连接 选择 OK 关闭该对话框 然后选择 OK 创建连接配置文件 Note 如果连接失败 请确保在创建 CloudFormation 模板时分配的 IP 地址是您尝试从其连接的 IP 地 址 此问题是在尝试连接到实例时最常出现的问题 3. 使用自定义 SQL 脚本 (Oraclesalesstarschema.sql) 创建将用于迁移的 SH 架构 要获取此脚本 请执 行以下操作 110

115 步骤 3 测试到 Oracle 数据库实例的连接并创建示例架构 将以下存档下载到您的计算机 dms-sbs-rdsoracle2redshift.zip 从存档中提取 SQL 脚本 (Oraclesalesstarschema.sql) 将 Oraclesalesstarschema.sql 文件复制并粘贴到当前目录中 a. 在文本编辑器中打开 SQL 脚本 复制整个脚本 b. 在 SQL Workbench/J 中 将 SQL 脚本粘贴到显示 Statement 1 的 Default.wksp 窗口中 c. 选择 SQL 然后选择 Execute All 111

116 步骤 3 测试到 Oracle 数据库实例的连接并创建示例架构 4. 通过运行以下 SQL 查询验证是否已成功创建 SH 架构中的对象类型和计数 Select OBJECT_TYPE, COUNT(*) from dba_objects where owner='sh' GROUP BY OBJECT_TYPE; 此查询的结果应类似于以下内容 112

117 步骤 4 测试与 Amazon Redshift 数据库的连接 OBJECT_TYPE COUNT(*) INDEX PARTITION 40 TABLE PARTITION 8 TABLE 5 INDEX 通过运行以下 SQL 查询验证表总数以及每个表的行数 Select table_name, num_rows from dba_tables where owner='sh' order by 1; 此查询的结果应类似于以下内容 TABLE_NAME NUM_ROWS CHANNELS 5 CUSTOMERS 8 PRODUCTS 66 PROMOTIONS 503 SALES 验证表中的完整性 通过运行以下 SQL 查询来查看通过不同的渠道实现的销售数量 Select b.channel_desc,count(*) from SH.SALES a,sh.channels b where a.channel_id=b.channel_id group by b.channel_desc order by 1; 此查询的结果应类似于以下内容 CHANNEL_DESC COUNT(*) Direct Sales 710 Internet 52 Partners 344 Note 上面的示例是一个有代表性的验证查询 在执行实际迁移时 您应制定类似查询以验证架构和数据 完整性 步骤 4 测试与 Amazon Redshift 数据库的连接 接下来 测试与 Amazon Redshift 数据库的连接 使用 SQL Workbench/J 测试与 Amazon Redshift 数据库的连接 1. 在 SQL Workbench/J 中 选择 File 然后选择 Connect window 选择 Create a new connection profile 图标 在 SQL Workbench/J 中 使用如下所示信息连接到 Amazon Redshift 数据库 对于此参数 执行该操作 New profile name Type RedshiftConnection. 113

118 步骤 5 使用 AWS SCT 将 Oracle 架构转换为 Amazon Redshift 架构 2. 对于此参数 执行该操作 驱动程序 选择 Redshift (com.amazon.redshift.jdbc42.driver) URL 使用您在上一步中检查 DMSdemo 堆栈输出详细信息时记录 的 RedshiftJDBCConnectionString 值 Username Type redshiftadmin. 密码 Type Redshift#123. 选择 Test 以测试连接 选择 OK 关闭该对话框 然后选择 OK 创建连接配置文件 Note 如果连接失败 请确保在创建 CloudFormation 模板时分配的 IP 地址是您尝试从其连接的 IP 地 址 此问题是在尝试连接到实例时最常出现的问题 3. 通过运行示例 SQL 命令 例如 select current_date; 验证与 Amazon Redshift 数据库实例的连 接 步骤 5 使用 AWS SCT 将 Oracle 架构转换为 Amazon Redshift 架构 在将数据迁移到 Amazon Redshift 之前 您需要将 Oracle 架构转换为 Amazon Redshift 架构 如下所述 使用 AWS SCT 将 Oracle 架构转换为 Amazon Redshift 架构 1. 启动 AWS SCT 在 AWS SCT 中 选择 File 然后选择 New Project 创建一个名为 DWSchemaMigrationDemoProject 的新项目 在 New Project 窗口中输入以下信息 然后选择 OK 114

119 步骤 5 使用 AWS SCT 将 Oracle 架构转换为 Amazon Redshift 架构 2. 对于此参数 执行该操作 Project Name Type DWSchemaMigrationDemoProject. 位置 使用默认 Projects 文件夹和默认 Data Warehouse (OLAP) 选项 Source Database Engine 选择 Oracle DW Target Database Engine 选择 Amazon Redshift 选择 Connect to Oracle 在 Connect to Oracle 对话框中 输入以下信息 然后选择 Test Connection 对于此参数 执行该操作 Type (类型) 选择 SID 服务器名称 使用用于连接到 Oracle 数据库实例的 OracleJDBCConnectionString 值 但删除 JDBC 前缀信息以及端口和数据库名称后缀 例如 用 于 SQL Workbench/J 的示例连接字符串可能为 "jdbc:oracle:thin:@abc cqi87654abc.uswest-2.rds.amazonaws.com:1521:orcl" 对于 AWS SCT 服务器名称 请删除 "jdbc:oracle:thin:@" 和 ":1521:ORCL" 并仅使用服务器名 称 "abc cqi87654abc.uswest-2.rds.amazonaws.com" Server port Type Oracle SID Type ORCL. 用户名 Type oraadmin. 115

120 步骤 5 使用 AWS SCT 将 Oracle 架构转换为 Amazon Redshift 架构 3. 对于此参数 执行该操作 密码 Type oraadmin123. 选择 OK 以关闭警报框 然后选择 OK 以关闭对话框并开始连接到 Oracle 数据库实例 Oracle 数据库 实例上的数据库结构如下所示 仅选择 SH 架构 Note 如果在列表中未显示 SH 架构 请选择 Actions 然后选择 Refresh from Database 116

121 步骤 5 使用 AWS SCT 将 Oracle 架构转换为 Amazon Redshift 架构 4. 选择 Connect to Amazon Redshift (连接到 Amazon Redshift) 在 Connect to Amazon Redshift (连接到 Amazon Redshift) 对话框中 输入以下信息 然后选择 Test Connection (测试连接) 对于此参数 执行该操作 Type (类型) 选择 SID 服务器名称 使用用于连接到 Amazon Redshift 集群的 RedshiftJDBCConnectionString 值 但删除 JDBC 前缀信 息和端口后缀 例如 用于 SQL Workbench/J 的示例连接 字符串可能为 jdbc:redshift://oracletoredshiftdwusingdmsredshiftcluster-abc abc uswest-2.redshift.amazonaws.com:5439/test 对于 AWS SCT Server name 您删除 jdbc:redshift:// 和 :5439/ test 以仅使用服务器名称 oracletoredshiftdwusingdmsredshiftcluster-abc abc uswest-2.redshift.amazonaws.com Server port Type 用户名 Type redshiftadmin. 密码 Type Redshift#

122 步骤 5 使用 AWS SCT 将 Oracle 架构转换为 Amazon Redshift 架构 AWS SCT 分析 SH 架构并为到 Amazon Redshift 的转换创建数据库迁移评估报告 5. 选择 OK (确定) 以关闭警报框 然后选择 OK (确定) 以关闭对话框并开始连接到 Amazon Redshift 数据 库实例 6. 在 Oracle DW 视图中 打开 SH 架构的上下文 (右键单击) 菜单 然后选择 Create Report 7. 查看报告摘要 要保存报告 请选择 Save to CSV 或 Save to PDF 此报告讨论了可使用 AWS SCT 转换的对象类型 以及可能的迁移问题与解决这些问题的措施 在本演 练中 您将看到与以下类似的内容 118

123 步骤 5 使用 AWS SCT 将 Oracle 架构转换为 Amazon Redshift 架构 119

124 步骤 5 使用 AWS SCT 将 Oracle 架构转换为 Amazon Redshift 架构 8. 选择 Action Items 选项卡 此报告讨论了可使用 AWS SCT 转换的对象类型 以及可能的迁移问题与解 决这些问题的措施 在本演练中 您将看到与以下类似的内容 9. 打开 Schemas 列表中的 SH 项的上下文 (右键单击) 菜单 然后选择 Collect Statistics AWS SCT 分 析源数据以建议最适合目标 Amazon Redshift 数据库的密钥 有关更多信息 请参阅收集或更新 AWS Schema Conversion Tool 的统计数据 10. 打开 SH 架构的上下文 (右键单击) 菜单 然后选择 Convert schema 11. 对于确认消息 请选择 Yes 然后 AWS SCT 会将架构转换为目标数据库格式 120

125 步骤 5 使用 AWS SCT 将 Oracle 架构转换为 Amazon Redshift 架构 Note Amazon Redshift 排序键和分配键的选择对于实现最佳性能至关重要 可以使用 AWS SCT 中 的键管理来自定义键选择 在本演练中 我们使用 AWS SCT 推荐的默认值 有关更多信息 请参阅使用 AWS Schema Conversion Tool 优化 Amazon Redshift 12. 在 Amazon Redshift 视图中 打开 SH 架构的上下文 右键单击 菜单 然后选择 Apply to database (应用到数据库) 以将架构脚本应用于目标 Amazon Redshift 实例 13. 打开 SH 架构的上下文 (右键单击) 菜单 然后选择 Refresh from Database 以从目标数据库中进行刷 新 121

126 步骤 6 验证架构转换 数据库架构现已转换 并且已从源导入目标 步骤 6 验证架构转换 要验证架构转换 可使用 SQL Workbench/J 将在 Oracle 中找到的对象与 Amazon Redshift 数据库进行比 较 使用 SQL Workbench/J 验证架构转换 1. 在 SQL Workbench/J 中 选择 File 然后选择 Connect window 选择在上一步中创建的 RedshiftConnection 选择 OK 2. 运行以下脚本以验证目标 Amazon Redshift 数据库中的 SH 架构中的对象类型数和计数 这些值应匹配 源 Oracle 数据库中的对象数 SELECT 'TABLE' AS OBJECT_TYPE, TABLE_NAME AS OBJECT_NAME, TABLE_SCHEMA AS OBJECT_SCHEMA FROM information_schema.tables WHERE TABLE_TYPE = 'BASE TABLE' AND OBJECT_SCHEMA = 'sh'; 此查询的输出应类似以下内容 object_type object_name object_schema TABLE channels sh TABLE customers sh TABLE products sh TABLE promotions sh TABLE sales sh 3. 使用以下查询验证在 Amazon Redshift 集群中创建的排序键和分配键 set search_path to '$user', 'public', 'sh'; SELECT tablename, "column", TYPE, encoding, distkey, sortkey, "notnull" FROM pg_table_def WHERE (distkey = TRUE OR sortkey <> 0); 查询结果反映了使用 AWS SCT 键管理进行的分配键 (distkey) 和排序键 (sortkey) 选择 tablename column type encoding distkey sortkey notnull channels channel_id numeric(38,18) none true 1 true customers cust_id numeric(38,18) none false 4 true customers cust_gender character(2) none false 1 true customers cust_year_of_birth smallint none false 3 true 122

127 步骤 7 创建 AWS DMS 复制实例 customers cust_marital_status 2 false products prod_id 4 true products prod_subcategory 3 true products prod_category 2 true products prod_status 1 true promotions promo_id 1 true sales prod_id 4 true sales cust_id 3 true sales time_id 1 true sales channel_id 2 true sales promo_id 5 true character varying(40) none false integer none true character varying(100) none false character varying(100) none false character varying(40) none false integer none true numeric(38,18) none false numeric(38,18) none false timestamp without time zone none true numeric(38,18) none false numeric(38,18) none false 步骤 7 创建 AWS DMS 复制实例 在验证源数据库和目标数据库之间的架构结构 (如前所述) 后 我们将继续本演练的核心部分 即数据迁移 下图显示了迁移过程的概要视图 DMS 复制实例执行源和目标之间的实际数据迁移 在迁移过程中 复制实例还将对事务日志进行缓存 复制 实例具有的 CPU 和内存容量将影响迁移所需的总体时间 创建 AWS DMS 复制实例 1. 登录到 AWS 管理控制台 打开 AWS DMS 控制台 ( 然后选 择创建迁移 如果以 AWS Identity and Access Management (IAM) 用户身份登录 则必须具有适当权限 才能访问 AWS DMS 有关所需权限的更多信息 请参阅使用 AWS DMS 所需的 IAM 权限 2. 选择创建迁移以开始迁移数据库 3. 在欢迎页中 选择下一步 4. 在创建复制实例页中 指定您的复制实例信息 如下所示 对于此参数 执行该操作 名称 Type DMSdemo-repserver. 描述 键入简要描述 例如 DMS demo replication server 123

128 步骤 8 创建 AWS DMS 源和目标终端节点 5. 对于此参数 执行该操作 实例类 选择 dms.t2.medium 此实例类足够大 可以迁移少量的 表 VPC 选择 OracletoRedshiftusingDMS 它是已由 CloudFormation 堆栈创建的 VPC 多可用区 选择 No 公开访问 将此项保持选中状态 对于高级部分 保留默认设置 然后选择下一步 步骤 8 创建 AWS DMS 源和目标终端节点 在创建复制实例时 可以使用 AWS 管理控制台指定源和目标数据库终端节点 但是 您只能在创建复制实 例后测试连接 因为连接中已使用复制实例 使用 AWS 控制台指定源或目标数据库终端节点 1. 指定源 Oracle 数据库和目标 Amazon Redshift 数据库的连接信息 下表描述了源设置 对于此参数 执行该操作 终端节点标识符 键入 Orasource Amazon RDS Oracle 终端节点 Source Engine 选择 oracle 服务器名称 提供 Oracle 数据库实例名称 该名称是用于 AWS SCT 的服务器名称值 例如 abc abc uswest-2.rds.amazonaws.com 端口 Type SSL 模式 选择 None Username Type oraadmin. 密码 Type oraadmin123. SID Type ORCL. 下表描述了目标设置 对于此参数 执行该操作 终端节点标识符 键入 Redshifttarget Amazon Redshift 终端节点 目标引擎 选择 redshift 服务器名称 提供 Amazon Redshift 数据库实例名称 该名称是用于 AWS SCT 的服务器名称值 例如 "oracletoredshiftdwusingdmsredshiftcluster-abc abc uswest-2.redshift.amazonaws.com" 124

129 步骤 8 创建 AWS DMS 源和目标终端节点 对于此参数 执行该操作 端口 Type SSL 模式 选择 None Username Type redshiftadmin. 密码 Type Redshift#123. 数据库名称 Type test. 完成页面应与以下内容类似 125

130 步骤 8 创建 AWS DMS 源和目标终端节点 2. 等待状态变为已成功创建复制实例 3. 要测试源和目标连接 请为源和目标连接选择运行测试 4. 选择 Next 126

131 步骤 9 创建并运行 AWS DMS 迁移任务 步骤 9 创建并运行 AWS DMS 迁移任务 利用 AWS DMS 任务 您可以指定要迁移的架构和迁移类型 您可以迁移现有数据 迁移现有数据并复制正 在进行的更改或仅复制数据更改 此演练仅迁移现有数据 创建迁移任务 1. 在创建任务页中 指定任务选项 下表描述了设置 对于此参数 执行该操作 任务名称 Type migrateshschema. 复制实例 显示 DMSdemo-repserver 上一步中创建的 AWS DMS 复制实例 源终端节点 显示 orasource Amazon RDS for Oracle 终端节点 目标终端节点 显示 redshifttarget Amazon Redshift 终端节点 迁移类型 选择迁移现有数据选项 在创建时启动任务 选择该选项 页面应该类似以下内容 127

132 步骤 9 创建并运行 AWS DMS 迁移任务 2. 在任务设置部分中指定设置 如下表中所示 对于此参数 执行该操作 目标表准备模式 选择不执行任何操作 在复制时包括 LOB 列 选择受限的 LOB 模式 最大 LOB 大小 (kb) 接受默认值 (32) 此部分应与以下内容类似 128

133 步骤 9 创建并运行 AWS DMS 迁移任务 3. 在选择规则部分中指定设置 如下表中所示 对于此参数 执行该操作 架构名称为 选择 Enter a schema 架构名称类似于 Type SH%. 表名称类似于 类型 %. 操作 选择 Include 此部分应与以下内容类似 129

134 步骤 9 创建并运行 AWS DMS 迁移任务 4. 选择添加选择规则 5. 选择创建任务 5.选择创建任务 任务将立即开始 任务部分显示迁移任务的状态 130

135 步骤 10 验证数据迁移是否已成功完成 步骤 10 验证数据迁移是否已成功完成 在迁移任务完成后 您可以将任务结果与预期结果进行比较 将迁移任务结果与预期结果进行比较 1. 在导航窗格中 选择任务 2. 选择您的迁移任务 (migrateshschema) 3. 选择表统计数据选项卡 如下所示 131

136 步骤 10 验证数据迁移是否已成功完成 4. 使用 SQL Workbench/J 连接到 Amazon Redshift 实例 然后通过运行如下所示的 SQL 脚本检查数据库 表是否已成功从 Oracle 迁移到 Amazon Redshift select "table", tbl_rows from svv_table_info where SCHEMA = 'sh' 132

137 步骤 11 删除演练资源 order by 1; 您的结果应类似于以下内容 table tbl_rows channels 5 customers 8 products 66 promotions 503 sales 要验证上一查询中的表输出和行数是否与 RDS Oracle 的预期值匹配 可将您的结果与前面的步骤中的 结果进行比较 6. 运行以下查询来检查表中的关系 此查询将检查拥有 10 名以上的员工的部门 Select b.channel_desc,count(*) from SH.SALES a,sh.channels b where a.channel_id=b.channel_id group by b.channel_desc order by 1; 此查询的输出应类似以下内容 channel_desc count Direct Sales 355 Internet 26 Partners 验证列压缩编码 DMS 使用 Amazon Redshift COPY 操作加载数据 默认情况下 COPY 命令在加载到空目标表时将应 用自动压缩 本演练的示例数据不足以应用自动压缩 在迁移较大的数据集时 COPY 将应用自动压 缩 有关 Amazon Redshift 表的自动压缩的更多详细信息 请参阅使用自动压缩加载表 要查看压缩编码 请运行以下查询 SELECT * FROM pg_table_def WHERE schemaname = 'sh ; 现在 您已成功完成从 Amazon RDS for Oracle 数据库实例到 Amazon Redshift 的数据库迁移 步骤 11 删除演练资源 完成本演练后 请执行以下步骤以避免演练中使用的 AWS 资源产生额外费用 按顺序执行这些步骤很有必 要 因为如果一些资源依赖于其他资源 则将无法删除这些资源 删除 AWS DMS 资源 1. 在导航窗格中 选择 Tasks (任务) 选择迁移任务 (migratehrschema) 然后选择 Delete (删除) 2. 在导航窗格中 选择 Endpoints (终端节点) 选择 Oracle 源终端节点 (orasource) 然后选择 Delete (删除) 3. 选择 Amazon Redshift 目标终端节点 (redshifttarget) 然后选择 Delete (删除) 133

138 后续步骤 4. 在导航窗格中 选择 Replication instances (复制实例) 选择复制实例 (DMSdemo-repserver) 然后 选择 Delete (删除) 接下来 必须删除 AWS CloudFormation 堆栈 即 DMSdemo 删除 AWS CloudFormation 堆栈 1. 登录 AWS 管理控制台并通过以下网址打开 AWS CloudFormation 控制台 console.amazonaws.cn/cloudformation 如果您以 IAM 用户身份登录 则必须具有适当权限才能访问 AWS CloudFormation 2. 选择 CloudFormation 堆栈 即 OracletoRedshiftDWusingDMS 3. 对于操作 请选择删除堆栈 当 AWS CloudFormation 清除与 OracletoRedshiftDWusingDMS 堆栈关联的资源时 堆栈的状态将变为 DELETE_IN_PROGRESS 当 AWS CloudFormation 清除完资源时 它会从列表中删除该堆栈 后续步骤 您可以了解本演练中未包含的 AWS DMS 的其他功能 包括 AWS DMS 更改数据捕获 (CDC) 功能 适用于正在复制的数据 转换操作 可让您指定转换并在迁移过程中将其应用于所选架构或表 有关更多信息 请参阅 AWS DMS 文档 134

139 将与 MySQL 兼容的数据库迁移到 AWS Amazon Web Services (AWS) 提供了多种服务 可让您在 AWS 上运行与 MySQL 兼容的数据库 Amazon Relational Database Service (Amazon RDS) 支持与 MySQL 兼容的数据库 包括 MySQL MariaDB 和 Amazon Aurora MySQL AWS Elastic Cloud Computing Service (EC2) 提供了用于运行与 MySQL 兼容的 数据库的平台 迁移来源 解决方案 RDS MySQL 数据库实例 您可以将数据直接从 Amazon RDS MySQL 数据库快照迁移到 Amazon Aurora MySQL 数据库集群 有关详细信息 请参阅 将数据从 Amazon RDS MySQL 数据库实例迁移到 Amazon Aurora MySQL 数据库集 群 (p. 146) 在 Amazon RDS 之外运行的 MySQL 数据库 如果数据库支持 InnoDB 或 MyISAM 表空间 则可以使用以下选项将数 据迁移到 Amazon Aurora MySQL 数据库集群 您可以使用 mysqldump 实用工具创建数据的转储 然后将该数据导 入现有的 Amazon Aurora MySQL 数据库集群 可以从数据库中将源文件复制到 Amazon S3 (S3) 存储桶 然后从这 些文件还原 Amazon Aurora MySQL 数据库集群 此选项可能比使用 mysqldump 迁移数据要快得多 有关详细信息 请参阅 使用 mysqldump 将 MySQL 迁移到 Amazon Aurora MySQL (p. 146) 不与 MySQL 兼容的数据库 还可以使用 AWS Database Migration Service (AWS DMS) 从 MySQL 数据库中迁移数据 但是 对于大型数据库 可以通过复制数据库的 源文件 然后将这些文件还原到 Amazon Aurora MySQL 数据库实例 中 大大降低迁移数据所需的时间 如使用 Amazon S3 将数据从外部 MySQL 数据库迁移到 Amazon Aurora MySQL (p. 136) 中所述 有关 AWS DMS 的更多信息 请参阅什么是 AWS Database Migration Service 135

140 使用 Amazon S3 将数据从外部 MySQL 数据库迁移到 Amazon Aurora MySQL 将与 MySQL 兼容的数据库迁移到 Amazon Aurora MySQL 如果数据库支持 InnoDB 或 MyISAM 表空间 则可以使用以下选项将数据迁移到 Amazon Aurora MySQL 数 据库集群 您可以使用 mysqldump 实用工具创建数据的转储 然后将该数据导入现有的 Amazon Aurora MySQL 数据库集群 有关更多信息 请参阅使用 mysqldump 将 MySQL 迁移到 Amazon Aurora MySQL (p. 146) 可以从数据库中将源文件复制到 S3 存储桶 然后从这些文件还原 Amazon Aurora MySQL 数据库集群 此选项可能比使用 mysqldump 迁移数据要快得多 有关更多信息 请参阅使用 Amazon S3 将数据从外 部 MySQL 数据库迁移到 Amazon Aurora MySQL (p. 136) 使用 Amazon S3 将数据从外部 MySQL 数据库迁移 到 Amazon Aurora MySQL 您可以从源 MySQL 版本 5.5 或 5.6 数据库中将源文件复制到 S3 存储桶 然后从这些文件还原 Amazon Aurora MySQL 数据库集群 此选项可能比使用 mysqldump 迁移数据要快得多 因为使用 mysqldump 可重放所有命令以便在新 的 Amazon Aurora MySQL 数据库集群中从源数据库重新创建架构和数据 通过复制源 MySQL 数据文 件 Amazon Aurora MySQL 可以立即将这些文件用作数据库集群的数据 Note 亚太地区 孟买 区域不支持通过 S3 存储桶中的备份文件还原 Amazon Aurora MySQL 数据库集 群 Amazon Aurora MySQL 不会还原数据库中的所有内容 您应从源 MySQL 或 MariaDB 数据库保存数据库 架构和以下项目的值 然后将这些内容添加到已还原的 Amazon Aurora MySQL 数据库集群 在创建此集群 后 用户账户 函数 存储过程 时区信息 从 Amazon Aurora MySQL 数据库集群的本地操作系统中加载时区信息 先决条件 在将数据复制到 S3 存储桶并从这些文件还原数据库集群之前 您必须执行以下操作 在您的本地服务器上安装 Percona XtraBackup 准许 Amazon Aurora MySQL 代表您访问您的 S3 存储桶 安装 Percona XtraBackup Amazon Aurora MySQL 可以从使用 Percona XtraBackup 创建的文件还原数据库集群 您可以从 Percona 网站 安装 Percona XtraBackup 136

141 先决条件 所需权限 要将 MySQL 数据迁移到 Amazon Aurora MySQL 数据库集群 需要几种权限 请求该 Amazon RDS 从 S3 存储桶创建新集群的用户必须有权列出您的 AWS 账户的存储桶 通过使用 AWS Identity and Access Management (IAM) 策略 可以向用户授予此权限 Amazon RDS 需要代表您访问 S3 存储桶 在该存储桶中 您存储了用于创建 Amazon Aurora MySQL 数 据库集群的文件 的权限 通过使用 IAM 服务角色 可以向 Amazon RDS 授予必需的权限 提出请求的用户还必须有权列出您的 AWS 账户的 IAM 角色 如果提出请求的用户将创建 IAM 服务角色或将请求 Amazon RDS 创建 IAM 服务角色 通过使用控制 台 则用户必须有权为您的 AWS 账户创建 IAM 角色 例如 以下 IAM 策略向用户授予使用控制台列出 IAM 角色 创建 IAM 角色和列出您的账户的 S3 存储桶所 需的最低权限 { } "Version": " ", "Statement": [ { "Effect": "Allow", "Action": [ "iam:listroles", "iam:createrole", "iam:createpolicy", "iam:attachrolepolicy", "s3:listbucket", "s3:listobjects" ], "Resource": "*" } ] 此外 为使用户可以将 IAM 角色与 S3 存储桶关联 IAM 用户必须具有该 IAM 角色的 iam:passrole 权 限 此权限允许管理员限制用户可关联到 S3 存储桶的 IAM 角色 例如 以下 IAM 策略允许用户将名为 S3Access 的角色与 S3 存储桶关联 { } "Version":" ", "Statement":[ { "Sid":"AllowS3AccessRole", "Effect":"Allow", "Action":"iam:PassRole", "Resource":"arn:aws:iam:: :role/S3Access" } ] 创建 IAM 服务角色 可以通过选择选择新角色选项 本主题稍后将展示 让 Amazon RDS 管理控制台为您创建角色 如果选择 此选项并为新角色指定名称 那么 Amazon RDS 将使用您提供的名称创建 Amazon RDS 访问 S3 存储桶所 需的 IAM 服务角色 作为替代方法 您可以使用以下程序手动创建角色 137

142 步骤 1 备份文件以还原为数据库群集 为 Amazon RDS 创建 IAM 角色以便访问 S3 1. 登录 AWS 管理控制台 并通过以下网址打开 IAM 控制台 2. 在左侧导航窗格中 选择 Roles 3. 选择 Create New Role 为新角色指定 Role Name 值 然后选择 Next Step 4. 在 AWS Service Roles 下 找到 Amazon RDS 并选择 Select 5. 请勿选择策略以附加在 Attach Policy 步骤中 而是选择 Next Step 6. 检查角色信息 然后选择 Create Role 7. 在角色列表中 选择您新创建的角色的名称 选择 Permissions 选项卡 8. 选择 Inline Policies 由于您的新角色没有附加策略 系统将提示您创建一个 单击链接可创建新的策 略 9. 在 Set Permissions 页面上 选择 Custom Policy 然后选择 Select 10. 键入 Policy Name 例如 S3-bucket-policy 为策略文档添加以下代码 从而将 <存存存存存> 替换为您允许访问的 S3 存储桶的名称 作为策略文档的一部分 您还可以包含文件名前缀 如果指定前缀 则 Amazon Aurora MySQL 将使用 S3 存储桶中以指定前缀开头的文件创建数据库集群 如果不指定前缀 则 Amazon Aurora MySQL 将使 用 S3 存储桶中的所有文件创建数据库集群 要指定前缀 请将 <prefix> 替换为文件名的前缀 在前缀后面包含星号 (*) 如果您不想指定前缀 请仅指定星号 { } "Version": " ", "Statement": [ { "Effect": "Allow", "Action": [ "s3:listbucket", "s3:getbucketlocation" ], "Resource": [ "arn:aws:s3:::<bucket name>" ] }, { "Effect": "Allow", "Action": [ "s3:getobject" ], "Resource": [ "arn:aws:s3:::<bucket name>/<prefix>*" ] } ] 11. 选择 Apply Policy 步骤 1 备份文件以还原为数据库群集 要创建 MySQL 数据库文件的备份 以便从 S3 还原它来创建 Amazon Aurora MySQL 数据库集群 请使用 Percona Xtrabackup 实用工具 (innobackupex) 备份数据库 例如 以下命令创建 MySQL 数据库的备份并将备份文件存储在 /s3-restore/backup 文件夹中 138

143 步骤 2 将文件复制到 Amazon S3 存储桶 innobackupex --user=myuser --password=<password> --no-timestamp /s3-restore/backup 如果您要将备份压缩为单个文件 可在需要时进行拆分 则可以使用 --stream 选项来采用下列格式之一 保存备份 Gzip (.gz) tar (.tar) Percona xbstream (.xbstream) 例如 以下命令为您的 MySQL 数据库创建一个拆分成多个 Gzip 文件的备份 显示的参数值适用于小型测试 数据库 对于您的情况 应确定所需的参数值 innobackupex --user=myuser --password=<password> --stream=tar \ /mydata/s3-restore/backup split -d --bytes= \ - /mydata/s3-restore/backup3/backup.tar.gz 例如 以下命令为您的 MySQL 数据库创建一个拆分成多个 tar 文件的备份 innobackupex --user=myuser --password=<password> --stream=tar \ /mydata/s3-restore/backup split -d --bytes= \ - /mydata/s3-restore/backup3/backup.tar 例如 以下命令为您的 MySQL 数据库创建一个拆分成多个 xbstream 文件的备份 innobackupex --stream=xbstream \ /mydata/s3-restore/backup split -d --bytes= \ - /mydata/s3-restore/backup/backup.xbstream S3 将上传至存储桶的文件大小限制为 5 TB 如果数据库的备份数据超过 5 TB 您就必须使用 split 命令 将备份文件拆分为多个文件 每个小于 5 TB Amazon Aurora MySQL 不支持使用 Percona Xtrabackup 创建的部分备份 您无法在备份数据库的源文件时 使用 --include --tables-file 或 --databases 选项创建部分备份 有关更多信息 请参阅 innobackupex 脚本 Amazon Aurora MySQL 根据文件名使用您的备份文件 确保根据文件格式为备份文件指定相应的文件扩展 名 例如对于使用 Percona xbstream 格式存储的文件 指定.xbstream Amazon Aurora MySQL 按照字母顺序以及自然数字顺序使用您的备份文件 始终在您发出 innobackupex 命令时使用 split 选项 以确保备份文件按适当的顺序写入和命名 步骤 2 将文件复制到 Amazon S3 存储桶 您使用 Percona Xtrabackup 实用工具备份 MySQL 数据库后 可以将备份文件复制到 S3 存储桶 有关创建文件并将其上传到 S3 存储桶的信息 请参阅 Amazon S3 入门指南 中的 Amazon Simple Storage Service 入门 步骤 3 从 S3 存储桶还原 Aurora MySQL 数据库集群 可以通过使用 Amazon RDS 控制台 从 Amazon S3 存储桶还原备份文件以创建新的 Amazon Aurora MySQL 数据库集群 139

144 步骤 3 从 S3 存储桶还原 Aurora MySQL 数据库集群 通过 S3 存储桶上的文件还原 Amazon Aurora MySQL 数据库集群 1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台 rds/ 2. 在 RDS 控制面板中 选择 Restore Aurora MySQL DB Cluster from S3 (从 S3 还原 Aurora MySQL 数 据库集群) 3. 在 Specify Source Backup Details 中 指定以下内容 对于此选项 请执行该操作 Source Engine Amazon Aurora MySQL 当前仅支持针对 mysql 数据库引擎 从备份文件还原 Source Engine Version 指定从中创建备份文件的 MySQL 数据库的版本 例如 支持 MySQL 版本 5.5 和 5.6 Select S3 Bucket 选择存储了备份文件的 S3 存储桶 S3 Bucket Prefix 可选 为在 S3 存储桶中存储的文件指定文件路径前缀 S3 Bucket Prefix 是可选的 如果未指定前缀 则 Amazon Aurora MySQL 将使用 S3 存储桶的根文件夹中的所有文件创建数据 库集群 如果指定前缀 Amazon Aurora MySQL 将使用 S3 存储桶中完整路径以指定前缀开头的文件创建数据库集群 Amazon Aurora MySQL 不会遍历 S3 存储桶中的子文件夹 来查找备份文件 仅使用由 S3 Bucket Prefix 标识的文件夹 中的文件 如果将您的备份文件存储在 S3 存储桶中的子文 件夹中 则必须指定一个标识用于存储文件的文件夹的完整 路径的前缀 例如 如果将您的备份文件存储在 S3 存储桶中名为 backups 的子文件夹中 并且您拥有多个备份文件集 每个文件集位于其自己的目录 gzip_backup1 gzip_backup2 等 中 则将指定前缀 backups/ gzip_backup1 以从 gzip_backup1 文件夹中的文件进行 还原 IAM 角色 选择您创建的用于授权 Amazon Aurora MySQL 代表您访问 S3 的 IAM 角色 如果您尚未创建 IAM 角色 您可以选择 Create a New Role 创建一个 4. 选择 Next Step 5. 在 Specify DB Details 页面上 指定数据库集群信息 下表显示数据库实例的设置 对于此选项 请执行该操作 数据库实例类 选择用于定义数据库集群中的每个实例的处理和 内存要求的数据库实例类 Aurora MySQL 支持 db.r3.large db.r3.xlarge db.r3.2xlarge db.r3.4xlarge 和 db.r3.8xlarge 数据库实例类 有关数据库实例类选项 的详细信息 请参阅 Amazon RDS 文档 Multi-AZ Deployment 确定是否要在其他可用区中创建 Aurora MySQL 副本以实现 故障转移支持 有关多可用区的更多信息 请参阅 Amazon RDS 文档 140

145 步骤 3 从 S3 存储桶还原 Aurora MySQL 数据库集群 对于此选项 请执行该操作 DB Instance Identifier 键入数据库群集中主实例的名称 此标识符将在数据库集群 主实例的终端节点地址中使用 数据库实例标识符具有以下限制 它必须包含 1 到 63 个字母数字字符或连字符 它的第一个字符必须是字母 它不能以连字符结束或包含两个连续连字符 它对于每个区域的每个 AWS 账户的所有数据库实例必须 是唯一的 Master Username (主用户名) 使用字母数字字符键入一个名称 该名称将用作您登录 数据库群集的主用户名 已授予主用户名账户的默认权 限包括 create, drop, references, event, alter, delete, index, insert, select, update, create temporary tables, lock tables, trigger, create view, show view, alter routine, create routine, execute, create user, process, show databases, grant option Master Password 键入一个包含 8 到 41 位可打印 ASCII 字符 (的密码用不包 括 / " 用作您的主用户密码 典型的 Specify DB Details 页面类似如下所示 141

146 步骤 3 从 S3 存储桶还原 Aurora MySQL 数据库集群 6. 确认您的主密码 然后选择 Next 7. 在 Configure Advanced Settings 页面上 可自定义您的 Aurora MySQL 数据库集群的其他设置 下表 列出了数据库集群的高级设置 对于此选项 请执行该操作 VPC 选择将托管数据库群集的 VPC 选择 Create a New VPC 以 让 Amazon RDS 为您创建 VPC 有关更多信息 请参阅本 主题前面的 子网组 选择要用于数据库集群的数据库子网组 选择 Create a New DB Subnet Group 以让 Amazon RDS 为您创建数据库子网 组 有关更多信息 请参阅本主题前面的 公开访问 选择 Yes 可向数据库集群提供公有 IP 地址 否则 请选择 No 数据库集群可以混合使用公有和私有数据库实例 有 关隐藏实例以防止公开访问的更多信息 请参阅 Amazon RDS 文档 可用区 确定您是否希望指定特定的可用区 有关可用区的更多信 息 请参阅 Amazon RDS 文档 VPC 安全组 选择一个或多个 VPC 安全组以保护对数据库群集的网络访 问 选择 Create a New VPC Security Group 以让 Amazon RDS 为您创建 VPC 安全组 有关更多信息 请参阅本主题 前面的 142

147 步骤 3 从 S3 存储桶还原 Aurora MySQL 数据库集群 对于此选项 请执行该操作 DB Cluster Identifier 为数据库集群键入一个名称 该名称在您选择的区域中对于 您的账户是唯一的 此标识符将在数据库集群的集群终端节 点地址中使用 有关集群终端节点的信息 请参阅 Amazon RDS 文档 数据库集群标识符具有以下限制 它必须包含 1 到 63 个字母数字字符或连字符 它的第一个字符必须是字母 它不能以连字符结束或包含两个连续连字符 它对于每个区域的每个 AWS 账户的所有数据库集群必须 是唯一的 Database Name 为您的数据库键入一个含有达 8 位字母和数字字符的名称 如果您未提供名称 Amazon RDS 将不会在您创建的数据库 集群上创建数据库 Database Port 指定应用程序和实用工具用来访问数据库的端口 Aurora MySQL 数据库集群默认为使用默认 MySQL 端口 3306 有 些公司的防火墙不允许连接到默认的 MySQL 端口.如果您公 司的防火墙不允许连接默认端口 请为新数据库集群选择其 他端口 参数组 选择参数组 Aurora MySQL 具有一个可使用的默认参数 组 或者您也可以创建自己的参数组 有关参数组的更多信 息 请参阅 Amazon RDS 文档 选项组 选择参数组 Aurora MySQL 具有一个可使用的默认选项 组 或者您也可以创建自己的选项组 有关选项组的更多信 息 请参阅 Amazon RDS 文档 启用加密 选择 Yes 可对此数据库集群启用静态加密 有关更多信息 请参阅 Amazon RDS 文档 优先级 选择实例的故障转移优先级 如果您未选择值 则默认值 为 tier-1 此优先级决定从主实例故障恢复时提升 Aurora MySQL 副本的顺序 有关更多信息 请参阅 Amazon RDS 文档 备份保留期 选择 Aurora MySQL 将保留数据库的备份副本的时间长度 1 到 35 天 可使用备份副本对数据库执行时间点还原 (PITR) 以还原到第二个时间点 启用增强监测 选择 Yes 可实时收集您的数据库集群在其上运行的操作系统 的指标 有关更多信息 请参阅 Amazon RDS 文档 粒度 此选项仅在 Enable Enhanced Monitoring 设置为 Yes 时可 用 设置为数据库集群收集指标的时间之间的间隔 (以秒为 单位) 143

148 步骤 3 从 S3 存储桶还原 Aurora MySQL 数据库集群 对于此选项 请执行该操作 Auto Minor Version Upgrade 如果希望在次要 MySQL 数据库引擎版本升级可用时 让 Aurora MySQL 数据库集群自动接收这些次要升级 请选 择是 Auto Minor Version Upgrade 选项仅适用于升级到 Amazon Aurora MySQL 数据库集群的 MySQL 次要引擎版本 它不 适用于应用于维持系统稳定性的常规修补程序 Maintenance Window 选择可以进行系统维护的每周时间范围 典型 Configure Advanced Settings 页面类似如下所示 144

149 步骤 3 从 S3 存储桶还原 Aurora MySQL 数据库集群 145

150 使用 mysqldump 将 MySQL 迁移到 Amazon Aurora MySQL 8. 选择 Launch DB Instance (启动数据库实例) 以启动 Aurora MySQL 数据库实例 然后选择 Close (关闭) 以关闭该向导 在 Amazon RDS 控制台中 新数据库实例显示在数据库实例列表中 数据库实例具有 creating 状态 直到该数据库实例完成创建并可供使用 当状态更改为 available 时 您可连接到数据库群集的主实例 根据所分配的数据库实例类和存储的不同 新实例可能需要数分钟时间才能变得可用 要查看新创建的集群 请选择 Amazon RDS 控制台中的 Clusters (集群) 视图 有关更多信息 请参阅 Amazon RDS 文档 记下群集的端口和终端节点 在执行写入或读取操作的任何应用程序的 JDBC 和 ODBC 连接字符串中 使用集群的终端节点和端口 使用 mysqldump 将 MySQL 迁移到 Amazon Aurora MySQL 您可以使用 mysqldump 实用工具创建数据的转储 然后将该数据导入现有的 Amazon Aurora MySQL 数据 库集群 因为 Amazon Aurora MySQL 是与 MySQL 兼容的数据库 所以您可以使用 mysqldump 实用工具从 MySQL 或 MariaDB 数据库中将数据复制到现有 Amazon Aurora MySQL 数据库集群 将数据从 Amazon RDS MySQL 数据库实例迁移到 Amazon Aurora MySQL 数据库集群 可以从 Amazon RDS 快照中将数据迁移 复制 到 Amazon Aurora MySQL 数据库集群 如下所述 Note 由于 Amazon Aurora MySQL 与 MySQL 兼容 因此您可通过设置 MySQL 数据库与 Amazon Aurora MySQL 数据库集群之间的复制来迁移 MySQL 数据库中的数据 建议您的 MySQL 数据库运 行 MySQL 版本 5.5 或更高版本 146

151 将 RDS MySQL 快照迁移到 Aurora MySQL 将 RDS MySQL 快照迁移到 Aurora MySQL 可迁移 Amazon RDS MySQL 数据库实例的数据库快照来创建 Aurora MySQL 数据库集群 将使用原始 Amazon RDS MySQL 数据库实例中的数据填充新的数据库集群 必须已从运行 MySQL 5.6 的 Amazon RDS 数据库实例创建此数据库快照 手动数据库快照和自动数据库快照都可以迁移 创建数据库集群后 您可创建可选 Aurora MySQL 副本 您必须采取的常见步骤如下 1. 确定要为 Amazon Aurora MySQL 数据库集群配置的空间量 有关更多信息 请参阅 Amazon RDS 文 档 2. 使用控制台在 Amazon RDS MySQL 5.6 实例所在的区域中创建快照 3. 如果数据库快照不在数据库集群所在的区域中 请使用 Amazon RDS 控制台将数据库快照复制到该区 域 有关复制数据库快照的信息 请参阅 Amazon RDS 文档 4. 使用控制台迁移数据库快照 并创建包含与原始 MySQL 5.6 数据库实例相同的数据库的 Amazon Aurora MySQL 数据库集群 Warning Amazon RDS 只允许每个 AWS 账户一次对应于每个区域中的一个快照副本 需要多少空间 将 MySQL 数据库实例的快照迁移到 Aurora MySQL 数据库集群时 Aurora MySQL 将先使用 Amazon Elastic Block Store (Amazon EBS) 卷设置快照中数据的格式 然后再迁移数据 在某些情况下 为迁移设置 数据格式操作需要额外的空间 将数据迁移到数据库集群的时候 请遵循以下指南和限制 虽然 Amazon Aurora MySQL 支持高达 64 TB 的存储 但是将快照迁移到 Aurora MySQL 数据库集群中的 过程受快照的 EBS 卷大小限制 因此 您可迁移的最大快照大小为 6 TB MyISAM 之外的未压缩的表的大小可高达 6 TB 如果有 MyISAM 表 则 Aurora MySQL 必须使用卷中的 额外空间转换这些表以使其与 Aurora MySQL 兼容 如果有压缩表 则 Aurora MySQL 必须使用卷中的额 外空间将这些表解压缩 然后再将它们存储在 Aurora MySQL 集群卷中 由于此额外的空间要求 您应确 保从 MySQL 数据库实例迁移的 MyISAM 表和压缩表的大小不会超出 3 TB 减少将数据迁移到 Amazon Aurora MySQL 中所需的空间量 您可能需要先修改数据库架构 然后再将其迁移到 Amazon Aurora MySQL 中 这种修改在以下情况下会很 有用 您需要加快迁移过程 您不确定需要配置的空间量 您已尝试迁移数据 但迁移因配置的空间不足而失败 您可进行以下更改来改善将数据库迁移到 Amazon Aurora MySQL 的过程 Important 请务必对从生产数据库快照还原的新数据库实例而非生产实例执行这些更新 然后 可以将新数据 库实例快照中的数据迁移到 Amazon Aurora MySQL 数据库集群 以避免生产数据库发生任何服务 中断 147

152 将 RDS MySQL 快照迁移到 Aurora MySQL 表类型 限制或指南 MyISAM 表 Amazon Aurora MySQL 仅支持 InnoDB 表 如果数据库中有 MyISAM 表 则必须转换这些表 然后再将其迁移到 Amazon Aurora MySQL 中 迁移过程中 转换过程需要额外的空间以便将 MyISAM 转换为 InnoDB 若要降低空间用尽的可能性或加快迁移过程 请先将所有 MyISAM 表 转换为 InnoDB 表 然后再迁移这些表 生成的 InnoDB 表的大小与 Amazon Aurora MySQL 要求该表具有的大小相同 要将 MyISAM 表转 换为 InnoDB 表 请运行以下命令 alter table <schema>.<table_name> engine=innodb, algorithm=copy; 压缩表 Amazon Aurora MySQL 不支持压缩表 即 使用 ROW_FORMAT=COMPRESSED 创建的表 为了避免用完空间或为了加速迁移过程 请通过将 ROW_FORMAT 设置为 DEFAULT COMPACT DYNAMIC 或 REDUNDANT 来扩展您的压缩表 有 关更多信息 请参阅 您可在现有 MySQL 数据库实例上使用以下 SQL 脚本来列出数据库中属于 MyISAM 表或压缩表的表 This script examines a MySQL database for conditions that will block migrating the database into an Amazon Aurora MySQL DB. It needs to be run from an account that has read permission for the INFORMATION_SCHEMA database. -- Verify that this is a supported version of MySQL. select msg as `==> Checking current version of MySQL.` from ( select 'This script should be run on MySQL version 5.6. ' + 'Earlier versions are not supported.' as msg, cast(substring_index(version(), '.', 1) as unsigned) * cast(substring_index(substring_index(version(), '.', 2), '.', -1) as unsigned) as major_minor ) as T where major_minor <> 506; -- List MyISAM and compressed tables. Include the table size. select concat(table_schema, '.', TABLE_NAME) as `==> MyISAM or Compressed Tables`, round(((data_length + index_length) / 1024 / 1024), 2) "Approx size (MB)" from INFORMATION_SCHEMA.TABLES where ENGINE <> 'InnoDB' and ( -- User tables TABLE_SCHEMA not in ('mysql', 'performance_schema', 'information_schema') or -- Non-standard system tables ( 148

153 将 RDS MySQL 快照迁移到 Aurora MySQL ) TABLE_SCHEMA = 'mysql' and TABLE_NAME not in ( 'columns_priv', 'db', 'event', 'func', 'general_log', 'help_category', 'help_keyword', 'help_relation', 'help_topic', 'host', 'ndb_binlog_index', 'plugin', 'proc', 'procs_priv', 'proxies_priv', 'servers', 'slow_log', 'tables_priv', 'time_zone', 'time_zone_leap_second', 'time_zone_name', 'time_zone_transition', 'time_zone_transition_type', 'user' ) ) or ( -- Compressed tables ROW_FORMAT = 'Compressed' ); 脚本会生成类似于以下示例的输出 该示例显示了两个必须从 MyISAM 转换为 InnoDB 的表 输出还包括每 个表的相应大小 (以 MB 为单位) ==> MyISAM or Compressed Tables Approx size (MB) test.name_table test.my_table rows in set (0.01 sec) 使用控制台迁移数据库快照 可迁移 Amazon RDS MySQL 数据库实例的数据库快照来创建 Aurora MySQL 数据库集群 将使用原始 Amazon RDS MySQL 数据库实例中的数据填充新的数据库集群 数据库快照必须从运行 MySQL 5.6 的 Amazon RDS 数据库实例进行创建 并且不得加密 有关创建数据库快照的信息 请参阅 Amazon RDS 文 档 如果数据库快照不在要从中查找数据的 AWS 区域中 请使用 Amazon RDS 控制台将数据库快照复制到该区 域 有关复制数据库快照的信息 请参阅 Amazon RDS 文档 使用控制台迁移数据库快照时 控制台将执行必要的操作创建数据库集群和主实例 您还可以选择使用 AWS Key Management Service (AWS KMS) 加密密钥对新的 Aurora MySQL 数据库集群 进行静态加密 此选项仅适用于未加密的数据库快照 使用控制台迁移 MySQL 5.6 数据库快照 1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台 rds/ 2. 选择 Snapshots 3. 在 Snapshots 页面上 选择要迁移到 Aurora MySQL 数据库集群的快照 4. 选择 Migrate Database 149

154 将 RDS MySQL 快照迁移到 Aurora MySQL 5. 在 Migrate Database 页面上设置以下值 数据库实例类 选择具有数据库所需的存储和容量的数据库实例类 例如 db.r3.large Aurora MySQL 集群卷会随着数据库中数据量的增长而自动扩展 最大大小可达 64 TB 因此 您只需选择满 足当前存储要求的数据库实例类 DB Instance Identifier 为数据库群集键入一个名称 该名称在您选择的区域中对于您的账户是唯一 的 此标识符将在数据库群集中实例的终端节点地址中使用 您可选择对该名称进行一些巧妙处理 例如将所选的区域和数据库引擎包括在名称中 如 aurora-cluster1 数据库实例标识符具有以下限制 它必须包含 1 到 63 个字母数字字符或连字符 它的第一个字符必须是字母 它不能以连字符结束或包含两个连续连字符 它对于每个 AWS 区域的每个 AWS 账户的所有数据库实例必须是唯一的 VPC 如果已经有 VPC 则可以通过选择 VPC 标识符 例如 vpc-a464d1c1 将该 VPC 用于 Amazon Aurora MySQL 数据库集群 有关使用现有 VPC 的信息 请参阅 Amazon RDS 文档 否则 可以通过选择 Create a new VPC 让 Amazon RDS 为您创建 VPC 子网组 如果已经有子网组 则可以通过选择子网组标识符 例如 gs-subnet-group1 将该子 网组用于 Amazon Aurora MySQL 数据库集群 否则 可以通过选择 Create a new subnet group 让 Amazon RDS 为您创建子网组 Publicly Accessible 选择 No 可指定数据库集群中的实例只能由 VPC 内的资源访问 选择 Yes 可指 定数据库集群中的实例可以由公用网络上的资源访问 默认值为 Yes 150

155 将 RDS MySQL 快照迁移到 Aurora MySQL Note 您的生产数据库群集可能不需要位于公有子网中 因为仅应用程序服务器将需要访问数据库 群集 如果数据库集群不需要位于公有子网中 请将 Publicly Accessible 设置为 No Availability Zone (可用区) 选择为 Aurora MySQL 数据库集群托管主实例的可用区 要让 Amazon RDS 选择可用区 请选择 No Preference (无首选项) Database Port 键入将在连接到数据库集群中的实例时使用的默认端口 默认为 3306 Note 您可能位于企业防火墙后面 该防火墙不允许访问默认端口 (例如 MySQL 默认端口 3306) 在此情况下 请提供企业防火墙允许的端口值 请记住此端口值 以便在稍后连接到 Aurora MySQL 数据库集群时使用 Enable Encryption (启用加密) 对于要进行静态加密的新 Aurora MySQL 数据库集群 选择 Yes (是) 如果选择 Yes (是) 则需要选择一个 AWS KMS 加密密钥作为 Master Key (主密钥) 值 Auto Minor Version Upgrade (自动次要版本升级) 如果需要让 Aurora MySQL 数据库集群在次要 MySQL 数据库引擎版本升级可用时自动接收这些升级 请选择 Yes (是) Auto Minor Version Upgrade 选项仅适用于升级到 Amazon Aurora MySQL 数据库集群的 MySQL 次 要引擎版本 它不适用于应用于维持系统稳定性的常规修补程序 151

156 将 RDS MySQL 快照迁移到 Aurora MySQL 152

157 将 RDS MySQL 快照迁移到 Aurora MySQL 6. 选择 Migrate 以迁移您的数据库快照 7. 选择 Instances 然后选择箭头图标以显示数据库集群详细信息并监控迁移的进度 在详细信息页面上 您将找到用于连接到数据库群集的主实例的群集终端节点 有关连接到 Amazon Aurora MySQL 数据库 集群的更多信息 请参阅 Amazon RDS 文档 153

PowerPoint Presentation

PowerPoint Presentation 迁移数据上云的利器 AWS Database Migration Service 吕琳,AWS 解决方案架构师 日程 数据库迁移上云前的思考 AWS Schema Conversion Tool (SCT) 与 AWS Database Migration Service 服务介绍 使用 AWS Database Migration Service 迁移数据库主要流程 数据库迁移上云前的思考 我们在迁移数据库上云前是否充分了解

More information

sql> startup mount 改变数据库的归档模式 sql> alter database archivelog # 打开数据库 sql> alter database open 禁止归档模式 sql> shutdown immediate sql>startup mount sql> al

sql> startup mount 改变数据库的归档模式 sql> alter database archivelog # 打开数据库 sql> alter database open 禁止归档模式 sql> shutdown immediate sql>startup mount sql> al RMAN sql> sqlplus / as sysdba 查看数据库版本 sql> select * from v$version; 查看数据库名称 sql> show parameter db_name; 一 使用 RMAN 时, 需要将数据库设置成归档模式 sql> conn / as sysdba; sql> show user 查看数据库是否为归档模式 sql> archive log list

More information

學 科 100% ( 為 單 複 選 題, 每 題 2.5 分, 共 100 分 ) 1. 請 參 閱 附 圖 作 答 : (A) 選 項 A (B) 選 項 B (C) 選 項 C (D) 選 項 D Ans:D 2. 下 列 對 於 資 料 庫 正 規 化 (Normalization) 的 敘

學 科 100% ( 為 單 複 選 題, 每 題 2.5 分, 共 100 分 ) 1. 請 參 閱 附 圖 作 答 : (A) 選 項 A (B) 選 項 B (C) 選 項 C (D) 選 項 D Ans:D 2. 下 列 對 於 資 料 庫 正 規 化 (Normalization) 的 敘 ITE 資 訊 專 業 人 員 鑑 定 資 料 庫 系 統 開 發 與 設 計 實 務 試 卷 編 號 :IDS101 注 意 事 項 一 本 測 驗 為 單 面 印 刷 試 題, 共 計 十 三 頁 第 二 至 十 三 頁 為 四 十 道 學 科 試 題, 測 驗 時 間 90 分 鐘 : 每 題 2.5 分, 總 測 驗 時 間 為 90 分 鐘 二 執 行 CSF 測 驗 系 統 -Client

More information

Oracle 4

Oracle 4 Oracle 4 01 04 Oracle 07 Oracle Oracle Instance Oracle Instance Oracle Instance Oracle Database Oracle Database Instance Parameter File Pfile Instance Instance Instance Instance Oracle Instance System

More information

基于UML建模的管理管理信息系统项目案例导航——VB篇

基于UML建模的管理管理信息系统项目案例导航——VB篇 PowerBuilder 8.0 PowerBuilder 8.0 12 PowerBuilder 8.0 PowerScript PowerBuilder CIP PowerBuilder 8.0 /. 2004 21 ISBN 7-03-014600-X.P.. -,PowerBuilder 8.0 - -.TP311.56 CIP 2004 117494 / / 16 100717 http://www.sciencep.com

More information

1-1 database columnrow record field 不 DBMS Access Paradox SQL Server Linux MySQL Oracle IBM Informix IBM DB2 Sybase 1-2

1-1 database columnrow record field 不 DBMS Access Paradox SQL Server Linux MySQL Oracle IBM Informix IBM DB2 Sybase 1-2 CHAPTER 1 Understanding Core Database Concepts 1-1 database columnrow record field 不 DBMS Access Paradox SQL Server Linux MySQL Oracle IBM Informix IBM DB2 Sybase 1-2 1 Understanding Core Database Concepts

More information

数 据 库 系 统 基 础 2/54 第 6 章 数 据 库 管 理 与 维 护

数 据 库 系 统 基 础 2/54 第 6 章 数 据 库 管 理 与 维 护 数 据 库 系 统 基 础 1/54 数 据 库 系 统 基 础 哈 尔 滨 工 业 大 学 2011.~2012. 数 据 库 系 统 基 础 2/54 第 6 章 数 据 库 管 理 与 维 护 数 据 库 系 统 基 础 3/54 第 6 章 数 据 库 管 理 与 维 护 6.1 数 据 库 管 理 员 的 基 本 职 责 6.2 数 据 库 存 储 与 性 能 管 理 6.3 数 据 库

More information

RunPC2_.doc

RunPC2_.doc PowerBuilder 8 (5) PowerBuilder Client/Server Jaguar Server Jaguar Server Connection Cache Thin Client Internet Connection Pooling EAServer Connection Cache Connection Cache Connection Cache Connection

More information

目錄

目錄 資 訊 素 養 線 上 教 材 單 元 五 資 料 庫 概 論 及 Access 5.1 資 料 庫 概 論 5.1.1 為 什 麼 需 要 資 料 庫? 日 常 生 活 裡 我 們 常 常 需 要 記 錄 一 些 事 物, 以 便 有 朝 一 日 所 記 錄 的 事 物 能 夠 派 得 上 用 場 我 們 能 藉 由 記 錄 每 天 的 生 活 開 銷, 就 可 以 在 每 個 月 的 月 底 知

More information

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 odps-sdk 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基 开放数据处理服务 ODPS SDK SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基础功能的主体接口, 搜索关键词 "odpssdk-core" 一些

More information

A API Application Programming Interface 见 应 用 程 序 编 程 接 口 ARP Address Resolution Protocol 地 址 解 析 协 议 为 IP 地 址 到 对 应 的 硬 件 地 址 之 间 提 供 动 态 映 射 阿 里 云 内

A API Application Programming Interface 见 应 用 程 序 编 程 接 口 ARP Address Resolution Protocol 地 址 解 析 协 议 为 IP 地 址 到 对 应 的 硬 件 地 址 之 间 提 供 动 态 映 射 阿 里 云 内 A API Application Programming Interface 见 应 用 程 序 编 程 接 口 ARP Address Resolution Protocol 地 址 解 析 协 议 为 IP 地 址 到 对 应 的 硬 件 地 址 之 间 提 供 动 态 映 射 阿 里 云 内 容 分 发 网 络 Alibaba Cloud Content Delivery Network 一

More information

ebook 96-16

ebook 96-16 16 13 / ( ) 16-1 SQL*Net/Net8 SQL*Net/Net8 SQL*Net/Net8 16-1 / S Q L SQL*Net V2 N e t 8 S Q L * N e t N e t ( ) 16.1 S Q L O r a c l e S Q L 16 401 ) ( H R _ L I N K create database link p u b l i c (

More information

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile..

WebSphere Studio Application Developer IBM Portal Toolkit... 2/21 1. WebSphere Portal Portal WebSphere Application Server stopserver.bat -configfile.. WebSphere Studio Application Developer IBM Portal Toolkit... 1/21 WebSphere Studio Application Developer IBM Portal Toolkit Portlet Doug Phillips (dougep@us.ibm.com),, IBM Developer Technical Support Center

More information

untitled

untitled OO 1 SQL Server 2000 2 SQL Server 2000 3 SQL Server 2000 DDL 1 2 3 DML 1 INSERT 2 DELETE 3 UPDATE SELECT DCL 1 SQL Server 2 3 GRANT REVOKE 1 2 1 2 3 4 5 6 1 SQL Server 2000 SQL Server SQL / Microsoft SQL

More information

1 SQL Server 2005 SQL Server Microsoft Windows Server 2003NTFS NTFS SQL Server 2000 Randy Dyess DBA SQL Server SQL Server DBA SQL Server SQL Se

1 SQL Server 2005 SQL Server Microsoft Windows Server 2003NTFS NTFS SQL Server 2000 Randy Dyess DBA SQL Server SQL Server DBA SQL Server SQL Se 1 SQL Server 2005 DBA Microsoft SQL Server SQL ServerSQL Server SQL Server SQL Server SQL Server SQL Server 2005 SQL Server 2005 SQL Server 2005 o o o SQL Server 2005 1 SQL Server 2005... 3 2 SQL Server

More information

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM CHAPTER 6 SQL SQL SQL 6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM 3. 1986 10 ANSI SQL ANSI X3. 135-1986

More information

AWS Database Migration Service - 用户指南

AWS Database Migration Service - 用户指南 AWS Database Migration Service 用户指南 AWS Database Migration Service: 用户指南 Table of Contents 什么是 AWS Database Migration Service... 1 AWS DMS 执行的迁移任务... 1 AWS DMS 如何在基本级别工作... 2 AWS DMS 的工作原理... 3 AWS DMS

More information

Oracle Database 10g: SQL (OCE) 的第一堂課

Oracle Database 10g: SQL (OCE) 的第一堂課 商 用 資 料 庫 的 第 一 堂 課 中 華 大 學 資 訊 管 理 系 助 理 教 授 李 之 中 http://www.chu.edu.tw/~leecc 甲 骨 文 俱 樂 部 @Taiwan Facebook 社 團 https://www.facebook.com/groups/365923576787041/ 2014/09/15 問 題 一 大 三 了, 你 為 什 麼 還 在 這

More information

ebook46-23

ebook46-23 23 Access 2000 S Q L A c c e s s S Q L S Q L S Q L S E L E C T S Q L S Q L A c c e s s S Q L S Q L I N A N S I Jet SQL S Q L S Q L 23.1 Access 2000 SQL S Q L A c c e s s Jet SQL S Q L U N I O N V B A S

More information

User Group SMTP

User Group SMTP SOP v1.00 2003 02 28 TrendMicro Control Manager V2.5 1 1... 3 2... 4 2.1... 4 2.2... 14 3... 24 3.1... 24 3.2... 29 3.3... 34 3.3.1... 34 3.3.2 User Group... 37 3.3.3... 40 3.4... 41 3.4.1... 41 3.4.2

More information

PPBSalesDB.doc

PPBSalesDB.doc Pocket PowerBuilder SalesDB Pocket PowerBuilder PDA Pocket PowerBuilder Mobile Solution Pocket PowerBuilder Pocket PowerBuilder C:\Program Files\Sybase\Pocket PowerBuilder 1.0 %PPB% ASA 8.0.2 ASA 9 ASA

More information

untitled

untitled http://idc.hust.edu.cn/~rxli/ 1.1 1.2 1.3 1.4 1.5 1.6 2 1.1 1.1.1 1.1.2 1.1.3 3 1.1.1 Data (0005794, 601,, 1, 1948.03.26, 01) (,,,,,) 4 1.1.1 Database DB 5 1.1.1 (DBMS) DDL ( Create, Drop, Alter) DML(

More information

目錄... ivv...vii Chapter DETECT

目錄... ivv...vii Chapter DETECT ... ivv...vii Chapter 1 1.1... 5 1.2... 6 1.3 DETECT... 11 1.3.1... 12 1.3.1.1...12 1.3.1.2...13 1.3.1.3...14 1.3.1.4...15 1.3.1.5...15 1.3.1.6...16 1.3.2 DETECT... 17 1.3.3... 19 1.3.4... 20... 22 Chapter

More information

* 4 6 R P r p . 1 2 3 4 7 89bk 6 5 1 2 3 4 5 6 7 8 9 0 bk r bl bm bn^ bo bl br bq bpbo bn bm [ ] [ ] [ ] bp 8 2 4 6 bq p [ ] [SET] br clckbt bs bs bt ck cl. 1 2 1 2+- 3 3 . 1 2 3 4 5 6 7 8 9 bk bl bm

More information

回滚段探究

回滚段探究 oracle oracle internal DBA oracle document oracle concepts oracle document oracle DBWR update t set object_id = '0' where object_id = '12344'; 1 row updated. commit; Commit complete. 0 12344 12344 0 10%

More information

Microsoft Word - 03.doc

Microsoft Word - 03.doc 目的 第 3 章 : 配置网络环境 本章帮助您配置和管理网络环境, 以便用户能够访问数据库 主题 本章讨论了以下内容 : 使用 Enterprise Manager Net Services Administration 页面 利用 Enterprise Manager 启动监听器 利用监听器控制实用工具启动监听器 配置本地命名, 以便与其它数据库连接 使用 Enterprise Manager Net

More information

目錄 C ontents Chapter MTA Chapter Chapter

目錄 C ontents Chapter MTA Chapter Chapter 目錄 C ontents Chapter 01 1-1 MTA...1-2 1-2...1-3 1-3...1-5 1-4...1-10 Chapter 02 2-1...2-2 2-2...2-3 2-3...2-7 2-4...2-11...2-16 Chapter 03 3-1...3-2 3-2...3-8 3-3 views...3-16 3-4...3-24...3-33 Chapter

More information

一步一步教你搞网站同步镜像!|动易Cms

一步一步教你搞网站同步镜像!|动易Cms 一 步 一 步 教 你 搞 网 站 同 步 镜 像! 动 易 Cms 前 几 天 看 见 论 坛 里 有 位 朋 友 问 一 个 关 于 镜 像 的 问 题, 今 天 刚 好 搞 到 了 一 个, 于 是 拿 出 来 和 大 家 一 起 分 享 了! 1. 介 绍 现 在 的 网 站 随 着 访 问 量 的 增 加, 单 一 服 务 器 无 法 承 担 巨 大 的 访 问 量, 有 没 有 什 么

More information

软件概述

软件概述 Cobra DocGuard BEIJING E-SAFENET SCIENCE & TECHNOLOGY CO.,LTD. 2003 3 20 35 1002 010-82332490 http://www.esafenet.com Cobra DocGuard White Book 1 1....4 1.1...4 1.2 CDG...4 1.3 CDG...4 1.4 CDG...5 1.5

More information

Oracle数据库应用技术4 [兼容模式]

Oracle数据库应用技术4 [兼容模式] Oracle 数 据 库 应 用 技 术 河 南 中 医 学 院 信 息 技 术 学 院 王 哲 第 四 章 管 理 表 空 间 主 讲 内 容 : 表 空 间 及 管 理 第 2 页 主 要 内 容 一. 表 空 间 基 础 知 识 二. 管 理 表 空 间 三. 其 他 表 空 间 第 3 页 一. 表 空 间 基 础 知 识 在 创 建 数 据 库 时,Oracle 会 自 动 地 创 建 多

More information

RUN_PC連載_12_.doc

RUN_PC連載_12_.doc PowerBuilder 8 (12) PowerBuilder 8.0 PowerBuilder PowerBuilder 8 PowerBuilder 8 / IDE PowerBuilder PowerBuilder 8.0 PowerBuilder PowerBuilder PowerBuilder PowerBuilder 8.0 PowerBuilder 6 PowerBuilder 7

More information

ebook 132-2

ebook 132-2 2 SQL Server 7.0 SQL Server SQL Server 7 SQL Server 7 5 2.1 SQL Server 7 SQL Server 7 SQL Server SQL Server SQL Server 2.1.1 SQL Server Windows NT/2000 Windows 95/98 ( r a n d o m access memory R A M )

More information

NT 4

NT 4 NT 4.0 Windows 2003 : Microsoft Windows NT Server 4.0 2004 12 31 Microsoft Windows 2003 Microsoft Windows Server 2003 : 1. 2. 3. 4. Total Cost of Ownership 5. 6. 7. XML Web Services Microsoft Certified

More information

AL-MX200 Series

AL-MX200 Series PostScript Level3 Compatible NPD4760-00 TC Seiko Epson Corporation Seiko Epson Corporation ( ) Seiko Epson Corporation Seiko Epson Corporation Epson Seiko Epson Corporation Apple Bonjour ColorSync Macintosh

More information

Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7.

Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7. Kubernetes 包管理理 工具 Helm 蔺礼强 Kubenetes 系列列公开课 2 每周四晚 8 点档 1. Kubernetes 初探 2. 上 手 Kubernetes 3. Kubernetes 的资源调度 4. Kubernetes 的运 行行时 5. Kubernetes 的 网络管理理 6. Kubernetes 的存储管理理 7. Kubernetes

More information

使用SQL Developer

使用SQL Developer 使 用 SQL Developer 达 成 的 目 标 / 方 案 1 创 建 一 个 新 的 数 据 库 连 接 ; 2 在 SQL Developer 中 查 看 数 据 库 对 象 的 信 息 修 改 数 据 ; 3 在 SQL Developer 中 创 建 表 ; 4 在 SQL Developer 中 创 建 索 引 ; 5 在 SQL Developer 中 创 建 函 数 ; 6 在

More information

IBM Rational ClearQuest Client for Eclipse 1/ IBM Rational ClearQuest Client for Ecl

IBM Rational ClearQuest Client for Eclipse   1/ IBM Rational ClearQuest Client for Ecl 1/39 Balaji Krish,, IBM Nam LeIBM 2005 4 15 IBM Rational ClearQuest ClearQuest Eclipse Rational ClearQuest / Eclipse Clien Rational ClearQuest Rational ClearQuest Windows Web Rational ClearQuest Client

More information

常见问题

常见问题 数据复制服务 常见问题 文档版本 03 发布日期 2018-08-31 华为技术有限公司 版权所有 华为技术有限公司 2018 保留一切权利 非经本公司书面许可, 任何单位和个人不得擅自摘抄 复制本文档内容的部分或全部, 并不得以任何形式传播 商标声明 和其他华为商标均为华为技术有限公司的商标 本文档提及的其他所有商标或注册商标, 由各自的所有人拥有 注意 您购买的产品 服务或特性等应受华为公司商业合同和条款的约束,

More information

未命名

未命名 附录三 ADS- MySQL 基础语法偏表 类别语法偏类 MySQL 语法 ADS 语法备注 型 Utility DESCRIBE {DESCRIBE DESC} tbl_name [col_name wild] {DESCRIBE DESC} dbname.tbl_name EXPLAIN 负偏 {EXPLAIN} [explain_type] explainable_stmt {EXPLAIN}

More information

untitled

untitled Database System Principle Database System Principle 1 SQL 3.1 SQL 3.2-3.3 3.4 3.5 3.6 Database System Principle 2 3.1 SQL SQL Structured Query Language SQL Database System Principle 3 SQL 3.1.1 SQL 3.1.2

More information

水晶分析师

水晶分析师 大数据时代的挑战 产品定位 体系架构 功能特点 大数据处理平台 行业大数据应用 IT 基础设施 数据源 Hadoop Yarn 终端 统一管理和监控中心(Deploy,Configure,monitor,Manage) Master Servers TRS CRYSTAL MPP Flat Files Applications&DBs ETL&DI Products 技术指标 1 TRS

More information

ebook140-9

ebook140-9 9 VPN VPN Novell BorderManager Windows NT PPTP V P N L A V P N V N P I n t e r n e t V P N 9.1 V P N Windows 98 Windows PPTP VPN Novell BorderManager T M I P s e c Wi n d o w s I n t e r n e t I S P I

More information

PowerPoint Presentation

PowerPoint Presentation AWS 云上数据库迁移 Henry Huang,AWS 专业服务咨询顾问 2016 年 4 月 18 日 分享摘要 : AWS : 分享云上数据库迁移的最佳实践和注意事项, 以及 AWS 数据库迁移工具 (DMT) 的使用方法 听众 : 了解 AWS 关系型数据库服务 (RDS), 学习如何在 AWS RDS 上执行数据库迁移以及数据库迁移工具 (DMT) 的使用示例 目标 : 了解数据库迁移上云,

More information

FAQ -PowerDesigner9.5.DOC

FAQ -PowerDesigner9.5.DOC PowerDesigner 9.5 FAQ 1. PowerDesigner PowerDesigner PowerDesigner (CASE Tool,Computer Aided Software Engineering) PowerDesigner 1989 9.5 2. PowerDesigner PowerDesigner Internet ( Java) PowerDesigner 7.0

More information

R D B M S O R D B M S R D B M S / O R D B M S R D B M S O R D B M S 4 O R D B M S R D B M 3. ORACLE Server O R A C L E U N I X Windows NT w w

R D B M S O R D B M S R D B M S / O R D B M S R D B M S O R D B M S 4 O R D B M S R D B M 3. ORACLE Server O R A C L E U N I X Windows NT w w 1 1.1 D B M S To w e r C D 1. 1 968 I B M I M S 2 0 70 Cullinet Software I D M S I M S C O D A S Y L 1971 I D M S containing hierarchy I M S I D M S I M S I B M I M S I D M S 2 2. 18 R D B M S O R D B

More information

三. 发现表被删除, 开始着手解决 1. 该表所在表空间离线 ( 确保删除表所在位置不会被重写 ) SQL> alter tablespace raw_odu offline; Tablespace altered. 2. 通过 logmnr, 找出被删除的数据 data _object _id 1

三. 发现表被删除, 开始着手解决 1. 该表所在表空间离线 ( 确保删除表所在位置不会被重写 ) SQL> alter tablespace raw_odu offline; Tablespace altered. 2. 通过 logmnr, 找出被删除的数据 data _object _id 1 使用 odu 恢复被 drop 表过程 一. 数据库版本 SQL> select * from v$version; BANNER ---------------------------------------------------------------- Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production PL/SQL Release

More information

长 安 大 学 硕 士 学 位 论 文 基 于 数 据 仓 库 和 数 据 挖 掘 的 行 为 分 析 研 究 姓 名 : 杨 雅 薇 申 请 学 位 级 别 : 硕 士 专 业 : 计 算 机 软 件 与 理 论 指 导 教 师 : 张 卫 钢 20100530 长安大学硕士学位论文 3 1 3系统架构设计 行为分析数据仓库的应用模型由四部分组成 如图3 3所示

More information

* r p . 4 6 12 3 5 7 8 9bk bm btbsbrbqbp bo bn bl [ ] [ ] [ ] [ ] [SET] 1 2 3 4 5 6 7. cmcl ck 8 9 0 bk bl bm bn bo 1 2 1 2+ - bp bq 8 2 4 6 br r bs p bt ck cl cm 3 3 . 1 2 3 4 5 6 7 8 9 bk bl bm

More information

习题1

习题1 习 题 1 数 据 库 系 统 基 本 概 念 1.1 名 词 解 释 DB DB 是 长 期 存 储 在 计 算 机 内 有 组 织 的 统 一 管 理 的 相 关 数 据 的 集 合 DB 能 为 各 种 用 户 共 享, 具 有 较 小 冗 余 度 数 据 间 联 系 紧 密 而 又 有 较 高 的 数 据 独 立 性 等 特 点 DBMS 是 位 于 用 户 与 操 作 系 统 之 间 的

More information

PowerPoint Presentation

PowerPoint Presentation 数 据 库 培 训 项 目 研 究 Oracle 索 引 探 究 B*tree 索 引 与 位 图 索 引 的 特 点 作 者 : 赵 超 2008 年 12 月 18 日 实 验 环 境 Windows-server2003 内 存 :2G Oracle 10.2.0 ORACLE_SID=orcl 索 引 类 型 B*tree 索 引 ( 默 认 方 式 ) 位 图 索 引 (bitmap) 反

More information

01 SQL Server SQL Server 2008 SQL Server 6-1 SSIS SQL Server ( master ) ( msdb ) SQL Server ( master ) master 6-1 DTS sysadmin 6-1 sysa

01 SQL Server SQL Server 2008 SQL Server 6-1 SSIS SQL Server ( master ) ( msdb ) SQL Server ( master ) master 6-1 DTS sysadmin 6-1 sysa 6 01 SQL Server SQL Server 2008 SQL Server 6-1 SSIS 6-1 06 228 6-1 SQL Server ( master ) ( msdb ) SQL Server ( master ) master 6-1 DTS sysadmin 6-1 sysadmin 6-1 SQL Server 2008 SSIS SQL Server (dbo) master

More information

untitled

untitled Chapter 01 1.0... 1-2 1.1... 1-2 1.1.1...1-2 1.1.2...1-4 1.1.2.1... 1-6 1.1.2.2... 1-7 1.1.2.3... 1-7 1.1.2.4... 1-7 1.1.2.5... 1-8 1.1.2.6... 1-8 1.1.3??...1-8 1.1.4...1-9 1.2...1-12 1.3...1-14 1.4...1-17

More information

手册 doc

手册 doc 1. 2. 3. 3.1 3.2 3.3 SD 3.4 3.5 SD 3.6 3.7 4. 4.1 4.2 4.3 SD 4.4 5. 5.1 5.2 5.3 SD 6. 1. 1~3 ( ) 320x240~704x288 66 (2G SD 320x2401FPS ) 32M~2G SD SD SD SD 24V DC 3W( ) -10~70 10~90% 154x44x144mm 2. DVR106

More information

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页 第 1 页共 32 页 crm Mobile V1.0 for IOS 用户手册 一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页 二 crm Mobile 界面介绍 : 第 3 页共 32 页 三 新建 (New) 功能使用说明 1 选择产品 第 4 页共 32 页 2 填写问题的简要描述和详细描述 第 5 页共

More information

Chapter 2

Chapter 2 2 (Setup) ETAP PowerStation ETAP ETAP PowerStation PowerStation PowerPlot ODBC SQL Server Oracle SQL Server Oracle Windows SQL Server Oracle PowerStation PowerStation PowerStation PowerStation ETAP PowerStation

More information

Autodesk Product Design Suite Standard 系统统需求 典型用户户和工作流 Autodesk Product Design Suite Standard 版本为为负责创建非凡凡产品的设计师师和工程师提供供基本方案设计和和制图工具, 以获得令人惊叹叹的产品

Autodesk Product Design Suite Standard 系统统需求 典型用户户和工作流 Autodesk Product Design Suite Standard 版本为为负责创建非凡凡产品的设计师师和工程师提供供基本方案设计和和制图工具, 以获得令人惊叹叹的产品 Autodesk Product Design Suite Standard 20122 系统统需求 典型用户户和工作流 Autodesk Product Design Suite Standard 版本为为负责创建非凡凡产品的设计师师和工程师提供供基本方案设计和和制图工具, 以获得令人惊叹叹的产品设计 Autodesk Product Design Suite Standard 版本包包括以下软件产产品

More information

untitled

untitled -JAVA 1. Java IDC 20 20% 5 2005 42.5 JAVA IDC JAVA 60% 70% JAVA 3 5 10 JAVA JAVA JAVA J2EE J2SE J2ME 70% JAVA JAVA 20 1 51 2. JAVA SUN JAVA J2EE J2EE 3. 1. CSTP CSTP 2 51 2. 3. CSTP IT CSTP IT IT CSTP

More information

ebook140-8

ebook140-8 8 Microsoft VPN Windows NT 4 V P N Windows 98 Client 7 Vintage Air V P N 7 Wi n d o w s NT V P N 7 VPN ( ) 7 Novell NetWare VPN 8.1 PPTP NT4 VPN Q 154091 M i c r o s o f t Windows NT RAS [ ] Windows NT4

More information

目 錄 版 次 變 更 記 錄... 2 原 始 程 式 碼 類 型 之 使 用 手 冊... 3 一 安 裝 軟 體 套 件 事 前 準 備... 3 二 編 譯 流 程 說 明... 25 1

目 錄 版 次 變 更 記 錄... 2 原 始 程 式 碼 類 型 之 使 用 手 冊... 3 一 安 裝 軟 體 套 件 事 前 準 備... 3 二 編 譯 流 程 說 明... 25 1 科 技 部 自 由 軟 體 專 案 原 始 程 式 碼 使 用 手 冊 Source Code Manual of NSC Open Source Project 可 信 賴 的 App 安 全 應 用 框 架 -App 應 用 服 務 可 移 轉 性 驗 證 Trusted App Framework -Transferability Verification on App MOST 102-2218-E-011-012

More information

untitled

untitled ArcSDE ESRI ( ) High availability Backup & recovery Clustering Replication Mirroring Standby servers ArcSDE % 95% 99.9% 99.99% 99.999% 99.9999% 18.25 / 8.7 / 52.5 / 5.25 / 31.8 / Spatial Geodatabase

More information

幻灯片 1

幻灯片 1 沈 阳 工 业 大 学 2014 年 6 月 第 7 章 数 据 库 技 术 基 础 主 要 内 容 : 7.1 数 据 库 概 述 数 据 库 基 本 概 念 数 据 模 型 逻 辑 数 据 模 型 数 据 库 系 统 的 产 生 和 发 展 常 用 的 数 据 库 管 理 系 统 7.2 Access 2010 数 据 库 创 建 及 维 护 创 建 Access 2010 数 据 库 创 建

More information

untitled

untitled 1 Access 料 (1) 立 料 [] [] [ 料 ] 立 料 Access 料 (2) 料 [ 立 料 ] Access 料 (3) 料 料 料 料 料 料 欄 ADO.NET ADO.NET.NET Framework 類 來 料 料 料 料 料 Ex MSSQL Access Excel XML ADO.NET 連 .NET 料.NET 料 料來 類.NET Data Provider

More information

0 配置 Host MIB 设备 V ( 简体版 ) 0 Update: 2016/1/30

0 配置 Host MIB 设备 V ( 简体版 ) 0 Update: 2016/1/30 0 配置 Host MIB 设备 V 1.1.2 ( 简体版 ) 0 Update: 2016/1/30 前言 N-Reporter 支持 Host Resource MIB 监控主机 (Host) 状态, 本文件描述 N-Reporter 用户如何配置 Host MIB 设备 文件章节如下 : 1. 配置 Windows Server 2003... 2 1-1.Windows Server 2003

More information

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南 Symantec Sygate Enterprise Protection 防 护 代 理 安 装 使 用 指 南 5.1 版 版 权 信 息 Copyright 2005 Symantec Corporation. 2005 年 Symantec Corporation 版 权 所 有 All rights reserved. 保 留 所 有 权 利 Symantec Symantec 徽 标 Sygate

More information

SQL Server SQL Server SQL Mail Windows NT

SQL Server SQL Server SQL Mail Windows NT ... 3 11 SQL Server... 4 11.1... 7 11.2... 9 11.3... 11 11.4... 30 11.5 SQL Server... 30 11.6... 31 11.7... 32 12 SQL Mail... 33 12.1Windows NT... 33 12.2SQL Mail... 34 12.3SQL Mail... 34 12.4 Microsoft

More information

ebook10-5

ebook10-5 Oracle 7.x RDBMS 5 Oracle S Y S S Y S T E M O r a c l e 5.1 O r a c l e R D B M S O r a c l e O r a c l e 5.2 SYS SYSTEM S Y S S Y S T E M O r a c l e S Y S V $ D B A C O N N E C T R E S O U R C E S Y

More information

epub 61-2

epub 61-2 2 Web Dreamweaver UltraDev Dreamweaver 3 We b We b We Dreamweaver UltraDev We b Dreamweaver UltraDev We b We b 2.1 Web We b We b D r e a m w e a v e r J a v a S c r i p t We b We b 2.1.1 Web We b C C +

More information

f2.eps

f2.eps 前 言, 目 录 产 品 概 况 1 SICAM PAS SICAM 电 力 自 动 化 系 统 配 置 和 使 用 说 明 配 置 2 操 作 3 实 时 数 据 4 人 机 界 面 5 SINAUT LSA 转 换 器 6 状 态 与 控 制 信 息 A 版 本 号 : 08.03.05 附 录, 索 引 安 全 标 识 由 于 对 设 备 的 特 殊 操 作 往 往 需 要 一 些 特 殊 的

More information

六域链联盟 SDChain-Matrix 节点搭建指南 2018/07/26 Version : 1.0.0

六域链联盟 SDChain-Matrix 节点搭建指南 2018/07/26 Version : 1.0.0 SDChain-Matrix 节点搭建指南 目录 1 环境要求... 3 2 软件下载... 4 3 安装部署... 4 3.1 部署可执行程序目录... 4 3.2 部署配置文件目录... 4 3.3 部署数据库文件目录... 4 3.4 部署日志文件目录... 4 3.5 部署依赖库文件目录... 4 4 配置参数... 5 5 启动运行... 7 5.1 普通模式启动... 7 5.2 加载启动模式...

More information

SL2511 SR Plus 操作手冊_單面.doc

SL2511 SR Plus 操作手冊_單面.doc IEEE 802.11b SL-2511 SR Plus SENAO INTERNATIONAL CO., LTD www.senao.com - 1 - - 2 - .5 1-1...5 1-2...6 1-3...6 1-4...7.9 2-1...9 2-2 IE...11 SL-2511 SR Plus....13 3-1...13 3-2...14 3-3...15 3-4...16-3

More information

Oracle高级复制配置手册_业务广告_.doc

Oracle高级复制配置手册_业务广告_.doc Oracle 高 级 复 制 配 置 手 册 作 者 : 铁 钉 Q Q: 5979404 MSN: nail.cn@msn.com Mail: nail.cn@msn.com Blog: http://nails.blog.51cto.com Materialized View Replication 复 制 模 式 实 现 了 单 主 机 对 多 个 复 制 站 点 的 数 据 同 步. 在 主

More information

目 錄 第 一 章 weberp 簡 介... 6 第 一 節 概 述... 6 第 二 節 安 全 性... 7 第 三 節 功 能... 7 一 銷 售 及 訂 單... 7 二 稅... 8 三 應 收 帳 款... 8 四 存 貨... 8 五 購 買... 9 六 應 付 帳 款... 9

目 錄 第 一 章 weberp 簡 介... 6 第 一 節 概 述... 6 第 二 節 安 全 性... 7 第 三 節 功 能... 7 一 銷 售 及 訂 單... 7 二 稅... 8 三 應 收 帳 款... 8 四 存 貨... 8 五 購 買... 9 六 應 付 帳 款... 9 東 吳 大 學 企 研 所 資 訊 管 理 期 末 報 告 weberp 使 用 說 明 書 指 導 教 授 : 尚 榮 安 教 授 第 一 組 童 偉 哲 01353025 劉 彥 澧 01353028 史 璦 禎 01353031 吳 采 紋 98153143 1 目 錄 第 一 章 weberp 簡 介... 6 第 一 節 概 述... 6 第 二 節 安 全 性... 7 第 三 節 功

More information

Chapter #

Chapter # 第三章 TCP/IP 协议栈 本章目标 通过本章的学习, 您应该掌握以下内容 : 掌握 TCP/IP 分层模型 掌握 IP 协议原理 理解 OSI 和 TCP/IP 模型的区别和联系 TCP/IP 介绍 主机 主机 Internet TCP/IP 早期的协议族 全球范围 TCP/IP 协议栈 7 6 5 4 3 应用层表示层会话层传输层网络层 应用层 主机到主机层 Internet 层 2 1 数据链路层

More information

自动化接口

自动化接口 基 于 文 件 的 数 据 交 换 的 注 意 事 项 1 SPI 2 COMOS Automation 操 作 手 册 通 用 Excel 导 入 3 通 过 OPC 客 户 端 的 过 程 可 视 化 4 SIMIT 5 GSD 6 05/2016 V 10.2 A5E37093378-AA 法 律 资 讯 警 告 提 示 系 统 为 了 您 的 人 身 安 全 以 及 避 免 财 产 损 失,

More information

System Global Area, Oracle Background process Oracle, Server Process user process, user process : SQL*PLUS SYSTEM SQL> select name from v$datafile; NA

System Global Area, Oracle Background process Oracle, Server Process user process, user process : SQL*PLUS SYSTEM SQL> select name from v$datafile; NA ORACLE By Chao_Ping and Parrotao 1 Oracle9i, SGA 2 Oracle9i 3, 4, Oracle? Oracle??? Oracle 1 Overview Oracle, Datafile, Background process, System Global Area, Server Process User Process System Global

More information

untitled

untitled 21 Visual FoxPro Visual FoxPro 6.0 11 Visual FoxPro Visual FoxPro CIP Visual FoxPro 2004 21 ISBN 7-03-014834-7 V Visual FoxPro TP311.138 CIP 2004 143035 16 100717 http://www.sciencep.com * 2004 12 7871092

More information

目录 1 H3C R4900 G2 服务器可选部件与操作系统兼容性列表 控制卡 GPU 卡 网卡 FC HBA 卡 TPM/TCM 模块 NVMe SSD PCle 加速卡 1-31 i

目录 1 H3C R4900 G2 服务器可选部件与操作系统兼容性列表 控制卡 GPU 卡 网卡 FC HBA 卡 TPM/TCM 模块 NVMe SSD PCle 加速卡 1-31 i 目录 1 H3C R4900 G2 服务器可选部件与操作系统兼容性列表 1-1 1.1 控制卡 1-1 1.2 GPU 卡 1-5 1.3 网卡 1-8 1.4 FC HBA 卡 1-21 1.5 TPM/TCM 模块 1-29 1.6 NVMe SSD PCle 加速卡 1-31 i 1 H3C R4900 G2 服务器可选部件与操作系统兼容性列表 本手册为产品通用资料 对于定制化产品, 请用户以产品实际情况为准

More information

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例 帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例 这篇文章主要介绍了帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例, 本文还详细介绍了帝国 CMS 数据库类中的一些常用方法, 需要的朋友可以参考下 例 1: 连接 MYSQL 数据库例子 (a.php)

More information

Oracle Database 11g: New Features for Administrators

Oracle Database 11g: New Features for Administrators 使 用 闪 回 和 LogMiner 课 程 目 标 学 完 本 课 后, 应 能 完 成 以 下 工 作 : 描 述 闪 回 和 LogMiner 的 新 增 功 能 使 用 闪 回 数 据 归 档 创 建 保 护 和 使 用 历 史 记 录 数 据 准 备 数 据 库 创 建 更 改 和 删 除 闪 回 数 据 归 档 查 看 闪 回 数 据 归 档 元 数 据 使 用 闪 回 事 务 处 理

More information

untitled

untitled 1 Access 料 (1) 立 料 [] [] [ 料 ] 立 料 Access 料 (2) 料 [ 立 料 ] Access 料 (3) 料 料 料 料 料 料 欄 ADO.NET ADO.NET.NET Framework 類 來 料 料 料 料 料 Ex MSSQL Access Excel XML ADO.NET 連 .NET 料.NET 料 料來 類.NET Data Provider

More information

ebook 185-6

ebook 185-6 6 Red Hat Linux DB2 Universal Database 6.1 D B 2 Red Hat D B 2 Control Center D B 2 D B 2 D B 2 6.1 DB2 Universal Database [DB2]6.1 D B 2 O LT P O L A P D B 2 I B M P C We e k D B 2 D B 2 L i n u x Windows

More information

ChinaBI企业会员服务- BI企业

ChinaBI企业会员服务- BI企业 商业智能 (BI) 开源工具 Pentaho BisDemo 介绍及操作说明 联系人 : 杜号权苏州百咨信息技术有限公司电话 : 0512-62861389 手机 :18616571230 QQ:37971343 E-mail:du.haoquan@bizintelsolutions.com 权限控制管理 : 权限控制管理包括 : 浏览权限和数据权限 ( 权限部分两个角色 :ceo,usa; 两个用户

More information

<4D6963726F736F667420576F7264202D20C9CFBAA3CAD0BCC6CBE3BBFAB5C8BCB6BFBCCAD4C8FDBCB6BFBCCAD4B4F3B8D95FBDA8D2E9B8E55F5F303632352E646F63>

<4D6963726F736F667420576F7264202D20C9CFBAA3CAD0BCC6CBE3BBFAB5C8BCB6BFBCCAD4C8FDBCB6BFBCCAD4B4F3B8D95FBDA8D2E9B8E55F5F303632352E646F63> 上 海 市 高 等 学 校 计 算 机 等 级 考 试 ( 三 级 ) 考 试 大 纲 -- 建 议 稿 -- 2007-6-25 25 目 录 上 海 市 高 等 学 校 计 算 机 等 级 考 试 三 级 总 体 说 明 -----------------1 三 级 ( 计 算 机 系 统 与 网 络 技 术 ) 考 试 大 纲 ---------------------2 三 级 ( 管 理

More information

AL-M200 Series

AL-M200 Series NPD4754-00 TC ( ) Windows 7 1. [Start ( )] [Control Panel ()] [Network and Internet ( )] 2. [Network and Sharing Center ( )] 3. [Change adapter settings ( )] 4. 3 Windows XP 1. [Start ( )] [Control Panel

More information

ASP.NET MVC Visual Studio MVC MVC 範例 1-1 建立第一個 MVC 專案 Visual Studio MVC step 01 Visual Studio Web ASP.NET Web (.NET Framework) step 02 C:\M

ASP.NET MVC Visual Studio MVC MVC 範例 1-1 建立第一個 MVC 專案 Visual Studio MVC step 01 Visual Studio Web ASP.NET Web (.NET Framework) step 02 C:\M ASP.NET MVC Visual Studio 2017 1 1-4 MVC MVC 範例 1-1 建立第一個 MVC 專案 Visual Studio MVC step 01 Visual Studio Web ASP.NET Web (.NET Framework) step 02 C:\MvcExamples firstmvc MVC 1-7 ASP.NET MVC 1-9 ASP.NET

More information

季刊9web.indd

季刊9web.indd 在 全 国 现 场 会 上 成 功 展 示 全 国 烟 叶 收 购 暨 现 代 烟 草 农 业 建 设 现 场 会 7 月 6 日 至 8 日 在 昆 明 召 开 在 国 家 局 的 领 导 下, 由 我 司 技 术 开 发 的 烟 站 ( 单 元 ) 烟 叶 管 理 信 息 系 统 在 现 场 会 上 成 功 展 示, 并 得 到 参 会 领 导 及 代 表 们 的 关 注 与 认 可 该 系 统

More information

第6章  数据库技术基础

第6章  数据库技术基础 第 六 章 数 据 库 技 术 基 础 本 章 要 点 数 据 库 系 统 概 述 关 系 数 据 库 数 据 库 设 计 数 据 库 系 统 概 述 数 据 管 理 技 术 的 发 展 数 据 管 理 技 术 的 发 展 分 三 个 阶 段 : 人 工 管 理 阶 段 文 件 系 统 管 理 阶 段 数 据 库 系 统 管 理 阶 段 数 据 库 系 统 概 述 数 据 库 数 据 库 管 理 系

More information

oracle-Ess-05.pdf

oracle-Ess-05.pdf 5 135 1 3 6 O r a c l e 1 3 7 1 3 8 O r a c l e 1 3 9 C O N N E C T R E S O U R C E D B A S Y S O P E R S Y S D B A E X P _ F U L L _ D A T A B A S E 1 4 0 I M P _ F U L L _ D A T A B A S E D E L E T E

More information

一 個 SQL Injection 實 例 的 啟 示 頁 2 / 6 因 此, 在 知 名 網 站 上 看 到 SQL Injection, 讓 人 驚 心, 卻 不 意 外 網 站 專 案 外 包 是 目 前 業 界 的 常 態, 而 在 價 格 取 勝 的 制 度 下, 低 價 得 標 的 S

一 個 SQL Injection 實 例 的 啟 示 頁 2 / 6 因 此, 在 知 名 網 站 上 看 到 SQL Injection, 讓 人 驚 心, 卻 不 意 外 網 站 專 案 外 包 是 目 前 業 界 的 常 態, 而 在 價 格 取 勝 的 制 度 下, 低 價 得 標 的 S 一 個 SQL Injection 實 例 的 啟 示 頁 1 / 6 你 的 網 站 在 裸 奔 嗎? 一 個 SQL Injection 實 例 的 啟 示 作 者 : 李 明 儒 SQL Injection( 資 料 隱 碼 攻 擊 ) 問 題 早 就 不 是 什 麼 新 聞, 但 前 陣 子 在 一 個 頗 具 知 名 度 的 活 動 網 站 上, 赫 然 發 現 它 大 刺 刺 地 現 身!

More information

DB2 (join) SQL DB2 11 SQL DB2 SQL 9.1 DB2 DB2 ( ) SQL ( ) DB2 SQL DB2 DB2 SQL DB2 DB2 SQL DB2 ( DB2 ) DB2 DB2 DB2 SQL DB2 (1) SQL (2) S

DB2 (join) SQL DB2 11 SQL DB2 SQL 9.1 DB2 DB2 ( ) SQL ( ) DB2 SQL DB2 DB2 SQL DB2 DB2 SQL DB2 ( DB2 ) DB2 DB2 DB2 SQL DB2 (1) SQL (2) S 9 DB2 优化器 DB2 SQL select c1 c2 from ( DB2 )??? DB2?!?, no no DB2 I/O ( transrate overhead ) SQL DML (INSERT UPDATE DELETE) DB2 (access plan) DB2 (join) SQL DB2 11 SQL DB2 SQL 9.1 DB2 DB2 ( 728 747 ) SQL

More information

FileMaker 16 ODBC 和 JDBC 指南

FileMaker 16 ODBC 和 JDBC 指南 FileMaker 16 ODBC JDBC 2004-2017 FileMaker, Inc. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker FileMaker Go FileMaker, Inc. FileMaker WebDirect FileMaker Cloud FileMaker,

More information

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas 目录 1 IPv6 快速转发 1-1 1.1 IPv6 快速转发配置命令 1-1 1.1.1 display ipv6 fast-forwarding aging-time 1-1 1.1.2 display ipv6 fast-forwarding cache 1-1 1.1.3 ipv6 fast-forwarding aging-time 1-3 1.1.4 ipv6 fast-forwarding

More information

F515_CS_Book.book

F515_CS_Book.book /USB , ( ) / L R 1 > > > 2, / 3 L 1 > > > 2 + - 3, 4 L 1 了解显示屏上显示的图标 Wap 信箱收到一条 Wap push 信息 ( ) GSM 手机已连接到 GSM 网络 指示条越多, 接收质量越好 2 ...........................4.............................. 4 Micro SD (

More information

目录 Shadow table 介绍... 1 一 前言... 1 二 安装软件包准备... 2 三 安装步骤... 2 四 配置... 3 五 运行... 6 Shadow table 介绍 By:jiwla 一 前言 影子表 (shadow table) 通过 BLU Acceleration

目录 Shadow table 介绍... 1 一 前言... 1 二 安装软件包准备... 2 三 安装步骤... 2 四 配置... 3 五 运行... 6 Shadow table 介绍 By:jiwla 一 前言 影子表 (shadow table) 通过 BLU Acceleration 目录 Shadow table 介绍... 1 一 前言... 1 二 安装软件包准备... 2 三 安装步骤... 2 四 配置... 3 五 运行... 6 Shadow table 介绍 By:jiwla 一 前言 影子表 (shadow table) 通过 BLU Acceleration 提供的分析查询功能来改进 OLTP 环境中 的分析查询性能 因为影子表是列组织表, 所以复杂查询针对影子表运行时比针对其源

More information

目 录(目录名)

目  录(目录名) 目录 目录...1-1 1.1 域名解析配置命令... 1-1 1.1.1 display dns domain... 1-1 1.1.2 display dns dynamic-host... 1-1 1.1.3 display dns server... 1-2 1.1.4 display ip host... 1-3 1.1.5 dns domain... 1-4 1.1.6 dns resolve...

More information

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

KillTest 质量更高 服务更好 学习资料   半年免费更新服务 KillTest 质量更高 服务更好 学习资料 http://www.killtest.cn 半年免费更新服务 Exam : 000-544 Title : DB2 9.7 Advanced DBA for LUW Version : DEMO 1 / 10 1. A DBA needs to create a federated database and configure access to join

More information

Junos Pulse Mobile Security R1 2012, Juniper Networks, Inc.

Junos Pulse Mobile Security R1 2012, Juniper Networks, Inc. Junos Pulse Mobile Security 4.0 2012 6 R1 2012, Juniper Networks, Inc. Junos Pulse Mobile Security Juniper Networks, Inc. 1194 North Mathilda Avenue Sunnyvale, California 94089 408-745-2000 www.juniper.net

More information

目 录(目录名)

目  录(目录名) 目录 1 域名解析配置命令... 1-1 1.1 域名解析配置命令...1-1 1.1.1 display dns domain... 1-1 1.1.2 display dns dynamic-host... 1-2 1.1.3 display dns proxy table... 1-2 1.1.4 display dns server... 1-3 1.1.5 display ip host...

More information