使用数据传输服务(DTS)将本地数据库迁移到 RDS for PPAS,可以实现应用不停服务的情况下,平滑完成数据库的迁移工作。迁移过程中,对本地的 Oracle 数据库没有影响。
背景信息
DTS 数据迁移支持 PPAS 的结构迁移和全量迁移。
结构迁移
DTS 会将迁移对象的结构定义迁移到目标实例。目前 DTS 支持结构迁移的对象有:表、视图、同义词、触发器、存储过程、存储函数、包、自定义类型。
全量迁移
DTS 会将本地数据库迁移对象的数据全部迁移到目标实例。如果迁移过程中,本地 Oracle 数据库有数据写入的话,那么这些增量数据不一定能够被迁移到 RDS 中。所以,如果要保证数据一致性,那么尽量选择在业务低峰期进行全量迁移。
迁移限制
将 PPAS 本地数据库迁移到 RDS 上有以下限制。
- 迁移过程中,不支持 DDL 操作。
- 不支持物化视图的迁移。
- 结构迁移时,会将 reverse index 迁移成普通索引。
- 结构迁移时,会将位图索引迁移成普通索引。
- 结构迁移时,会将分区索引迁移成在每个分区上单独创建的索引。
前提条件
已完成 RDS 实例数据库的准备,可参见
设置内外网地址和
创建数据库和账号。
操作步骤
本例以有公网 IP 的本地数据库迁移到 RDS 上为例。
[font=PingFangSC, "]准备本地数据
[font=PingFangSC, "]
在正式迁移之前,需要先在本地数据库和 RDS 实例中创建迁移账号,并在 RDS 实例中创建要迁移的数据库,并将要迁移的数据库的读写权限授权给迁移账号。不同的迁移类型需要不同的权限,如下表所示。
[tr=rgb(51, 205, 229)][td]迁移类型
结构迁移 | 全量迁移 |
本地 Oracle 实例 | schema 的 owner | schema 的 owner |
RDS 上 PPAS 实例 | schema 的 owner | schema 的 owner |
- 通过 PostgreSQL 客户端,在本地数据库中创建迁移账号。CREATE USER username IDENTIFIED BY password;
参数说明:
- username:要创建的账号
- password:该账号的登录密码
如:CREATE USER myuser IDENTIFIED BY mypassword;
在本地数据库中给迁移账号授权,本地数据库中迁移账号的权限要求请参见上表。GRANT privileges ON tablename TO username;
参数说明:
- privileges:该账号的操作权限,如 SELECT、INSERT、UPDATE 等。如果要授权该账号所有权限,则使用 ALL
- tablename:表名。如果要授权该账号所有的表权限,则使用通配符 *
- username:要授权的账号名
如:GRANT ALL ON* TO myuser;
[font=PingFangSC, "]