`

PPAS命令行迁移工具

阅读更多

 

1

从其它数据库迁移到 PPAS 时可迁移的数据库对象间下表


 

 

2

安装 ppas 时会有安装 migreation toolkit 的选项,可以选择安装,也可以到 www.enterprisedb.com 下载安装

 

3

编辑 /opt/PostgresPlus/9.2AS/etc/toolkit.properties

linux-np3p:/opt/PostgresPlus/9.2AS # cat -n etc/toolkit.properties

    SRC_DB_URL=jdbc:oracle:thin:@192.168.1.127:1521:orcl

    SRC_DB_USER=testuser

    SRC_DB_PASSWORD=testuserpw

   

    TARGET_DB_URL=jdbc:edb://localhost:5444/testdb1

    TARGET_DB_USER=testuser

    TARGET_DB_PASSWORD=123456

linux-np3p:/opt/PostgresPlus/9.2AS #

 

4

拷贝 oracle jdbc 接口驱动到 /opt/PortgresPlus/9.2AS/jre/lib/ext 里面

注意要拷贝和 jre 版本对应的驱动程序

 

5

迁移

linux-np3p:/opt/PostgresPlus/9.2AS/bin # ./runMTK.sh testuser

源数据库连接信息 ...

连接 =jdbc:oracle:thin:@192.168.1.127:1521:orcl

用户 =TESTUSER

密码 =******

目标数据库连接信息 ...

连接 =jdbc:edb://localhost:5444/testdb2

用户 =testuser

密码 =******

正在连接源 Oracle 数据库服务器 ...

正在连接目标 EnterpriseDB 数据库服务器 ...

正在导入 Redwood 架构 testuser...

正在创建架构 ...testuser

正在创建表 ...

正在创建表 : TEST1

已创建 1 个表。

正在以 8 MB  批次大小加载表数据 ...

正在加载表 : TEST1 ...

[TEST1] 已迁移 2 行。

[TEST1] 表数据加载摘要 : 时间总计 ( ): 0.375 行数总计 : 2

数据加载摘要 : 时间总计 ( ): 1.111 行数总计 : 2 大小总计 (MB): 0.0

 

已成功导入架构 testuser

 

正在创建用户 : TESTUSER

创建用户 TESTUSER 时发生错误

 

在迁移进程中有一至多个架构对象无法导入。有关更多详细信息,请参阅迁移输出信息。

 

迁移日志已保存到 /root/.enterprisedb/migration-toolkit/logs

 

******************** 迁移摘要 ********************

Tables: 1 来自 1

Users: 0 来自 1

 

全部对象 : 2

成功计数 : 1

失败计数 : 1

 

失败对象列表

======================

Users

--------------------

1. TESTUSER

 

 

*************************************************************

 

6

查询迁移结果

linux-np3p:/opt/PostgresPlus/9.2AS/bin # ./psql -U testuser testdb1

用户 testuser 的口令:

psql (9.2.0.1)

输入 "help" 来获取帮助信息 .

 

testdb2=# select * from test1;

  id |    xname    

----+--------------

  1 | test / gaga

  2 | test gaga

(2 行记录 )

 

testdb2=#

 

7

下面是 runMTK.sh 的内容,可以看到调用了工具 edb-migrationtoolkit.jar

# ----------------------------------------------------------------------------

# --

# -- Copyright (c) 2004-2012 - EnterpriseDB Corporation.  All Rights Reserved.

# --

# ----------------------------------------------------------------------------

 

/opt/PostgresPlus/9.2AS/jre/bin/java -Dprop=../etc/toolkit.properties -jar edb-migrationtoolkit.jar "$@"

 

8

下面是 migreation toolkit 的帮助信息,列出了可选参数

 

linux-np3p:/opt/PostgresPlus/9.2AS # jre/bin/java -jar bin/edb-migrationtoolkit.jar -help

 

EnterpriseDB Migration Toolkit (Build 46)

 

用法 : runMTK [- 选项 ] SCHEMA

 

若未指定任何选项,则将导入完整的架构。

 

其中,选项包括 :

-help              显示应用程序的命令行用法。

-version   显示应用程序版本信息。

-verbose [on|off] 以标准输出显示应用程序日志消息 ( 默认值 : on)

 

-schemaOnly   只导入架构对象定义。

-dataOnly       只导入表数据。若指定了 -tables ,则只导入所选表的数据。注意 : 如果对目标表定义了任何外键约束,则此选项需与 -truncLoad 选项一起使用。

 

-sourcedbtype db_type The -sourcedbtype option specifies the source database type. db_type may be one of the following values: mysql, oracle, sqlserver, sybase, postgresql, enterprisedb. db_type is case-insensitive. By default, db_type is oracle.

-targetdbtype db_type The -targetdbtype option specifies the target database type. db_type may be one of the following values: oracle, sqlserver, postgresql, enterprisedb. db_type is case-insensitive. By default, db_type is enterprisedb.

 

-allTables 导入所有表。

-tables LIST    导入以逗号分隔的表列表。

-constraints     导入表约束。

-indexes  导入表索引。

-triggers  导入表触发器。

-allViews 导入所有视图。

-views LIST    导入以逗号分隔的视图列表。

-allProcs  导入所有存储过程。

-procs LIST    导入以逗号分隔的存储过程列表。

-allFuncs 导入所有函数。

-funcs LIST    导入以逗号分隔的函数列表。

-allPackages    导入所有包。

-packages LIST 导入以逗号分隔的包列表。

-allSequences  导入所有序列。

-sequences LIST 导入以逗号分隔的序列列表。

-targetSchema NAME 目标架构的名称 ( 默认 : 目标架构以源架构命名 )

-allDBLinks    导入所有数据库链接。

-allSynonyms  It enables the migration of all public and private synonyms from an Oracle database to an Advanced Server database.  If a synonym with the same name already exists in the target database, the existing synonym will be replaced with the migrated version.

-allPublicSynonyms       It enables the migration of all public synonyms from an Oracle database to an Advanced Server database.  If a synonym with the same name already exists in the target database, the existing synonym will be replaced with the migrated version.

-allPrivateSynonyms      It enables the migration of all private synonyms from an Oracle database to an Advanced Server database.  If a synonym with the same name already exists in the target database, the existing synonym will be replaced with the migrated version.

 

-dropSchema [true|false] 若架构已存在于目标数据库中,则删除此架构 ( 默认值 : false)

-truncLoad      此选项对目标表禁用任何约束,并且在导入新数据之前先截断表中的数据。此选项只能与 -dataOnly 一起使用。

-safeMode      使用纯 SQL 语句,以安全模式传输数据。

-copyDelimiter       在加载表数据时,指定一个字符作为复制命令中的分隔符。默认值为 \t

-batchSize      指定“批量插入”要使用的“批次大小”。有效值为 1-1000 ,默认批次大小为 1000 ,如果出现“内存不足”异常,则可以降低此值

-cpBatchSize   指定复制命令要使用的“批次大小”,以 MB 为单位。有效值大于 0 ,默认批次大小为 8 MB

-fetchSize       指定提取大小 ( 每次应从结果集中提取的行数 ) 。当数据表含有数百万个行,而您想避免发生内存不足错误时,可以使用此选项。

-filterProp      包含表 where 子句的属性文件。

-skipFKConst  跳过外键约束的迁移。

-skipCKConst 跳过检查约束条件的迁移。

-ignoreCheckConstFilter       在缺省的情况下 MTK 不从 Sybase 中迁移检查约束和缺省子句,使用这个选项可以关闭这个过滤功能。

-fastCopy       略过 WAL 日志记录,以优化方式执行 COPY 操作,默认情况下禁用。

-customColTypeMapping LIST     使用以分号分隔的列表表示的自定义类型映射,其中每个条目都使用 COL_NAME_REG_EXPR=TYPE 对来指定,例如 .*ID=INTEGER

-customColTypeMappingFile PROP_FILE   由属性文件表示的自定义类型映射,其中每个条目都使用 COL_NAME_REG_EXPR=TYPE 对来指定,例如 .*ID=INTEGER

-offlineMigration [DDL_PATH] 这将执行脱机迁移并将 DDL 脚本保存在文件中供以后执行。默认情况下,如果要求后跟 -offlineMigration 选项以及自定义路径,则脚本文件将保存在用户主文件夹下。

-logDir LOG_PATH 指定用于保存日志文件的自定义路径。默认情况下,日志文件保存在工作目录中的“ logs ”文件夹下。

-copyViaDBLinkOra 此选项可用来通过使用 dblink_ora COPY 命令复制数据。此选项仅限用在从 Oracle EnterpriseDB 迁移模式中。

-singleDataFile       Use single SQL file for offline data storage for all tables. This option cannot be used in COPY format.

-allUsers 从源数据库导入所有用户和角色。

-users LIST 从源数据库导入选定用户 / 角色。 LIST 是一个用逗号分隔的用户 / 角色名称列表,如 -users MTK,SAMPLE

-allRules 从源数据库导入所有规则。

-rules LIST 从源数据库导入选定规则。 LIST 是一个用逗号分隔的名称列表,如 -rules high_sal_emp,low_sal_emp

-allGroups 从源数据库导入所有组。

-groups LIST 从源数据库导入选定组。 LIST 是一个用逗号分隔的组名称列表,如 -groups acct_emp,mkt_emp

-allDomains 从源数据库导入所有域、枚举和复合类型。

-domains LIST 从源数据库导入所选域、枚举和复合类型。 LIST 是一个用逗号分隔的域名称列表,如 -domains d_email,d_dob, mood

-objecttypes    导入用户定义的对象类型。

-replaceNullChar <CHAR> 如果空字符是列值得一部分,那么通过 JDBC 协议迁移数据就会失败 . 这个选项可以使用用户指定的字符来替代空字符串。

-importPartitionAsTable [LIST] 通过使用这个选项能够将 Oracle 中的分区表以常规表的形式导入到 EnterpriseDB 中。为了在所选择表集合上的应用规则,在选项后面应跟随以逗号分隔的表名列表。

-enableConstBeforeDataLoad 通过使用这个选项可以在数据导入前重新启用约束 ( 和触发器 ). 当要迁移的表在 EnterpriseDB 中对应的是一张分区表时,使用这个选项是非常有用的。

-checkFunctionBodies [true|false] 设置为 false 时,将禁用创建函数过程中的函数体验证,从而避免在函数包含向前参考时发生错误。 目标数据库为 Postgres/EnterpriseDB 时适用,默认值为 true

-retryCount VALUE     指定 MTK 迁移由于跨架构相关性而失败的对象的重试次数。 VALUE 参数应该大于 0 ,默认值为 2

-analyze 它将对目标 Postgres Postgres Plus Advanced Server 数据库调用 ANALYZE 操作。 ANALYZE 收集用于有效查询计划的迁移表的统计信息。

-vacuumAnalyze    它将对目标 Postgres Postgres Plus Advanced Server 数据库调用 VACUUM ANALYZE 操作。 VACUUM 回收非活动元组存储, ANALYZE 收集用于有效查询计划的迁移表的统计信息。

-loaderCount VALUE    指定并行执行数据加载的作业 ( 线程 ) 数目。 VALUE 参数应该大于 0 ,默认值为 1

 

数据库连接信息 :

应用程序将从文件 toolkit.properties 中读取源和目标数据库服务器的连接信息 .

更多的信息参见 MTK 的自述文档 .

 

linux-np3p:/opt/PostgresPlus/9.2AS #

 

9

如果看中午帮助信息有歧义就看下面的英文帮助信息吧

ot@host1 9.2AS]# jre/bin/java -jar bin/edb-migrationtoolkit.jar -help

 

EnterpriseDB Migration Toolkit (Build 46)

 

Usage: runMTK [-options] SCHEMA

 

If no option is specified, the complete schema will be imported.

 

where options include:

-help         Display the application command-line usage.

-version     Display the application version information.

-verbose [on|off] Display application log messages on standard output (default: on).

 

-schemaOnly     Import the schema object definitions only.

-dataOnly  Import the table data only. When -tables is in place, it imports data only for the selected tables. Note: If there are any FK constraints defined on target tables, use -truncLoad option along with this option.

 

-sourcedbtype db_type The -sourcedbtype option specifies the source database type. db_type may be one of the following values: mysql, oracle, sqlserver, sybase, postgresql, enterprisedb. db_type is case-insensitive. By default, db_type is oracle.

-targetdbtype db_type The -targetdbtype option specifies the target database type. db_type may be one of the following values: oracle, sqlserver, postgresql, enterprisedb. db_type is case-insensitive. By default, db_type is enterprisedb.

 

-allTables   Import all tables.

-tables LIST      Import comma-separated list of tables.

-constraints       Import the table constraints.

-indexes     Import the table indexes.

-triggers    Import the table triggers.

-allViews   Import all Views.

-views LIST      Import comma-separated list of Views.

-allProcs    Import all stored procedures.

-procs LIST      Import comma-separated list of stored procedures.

-allFuncs   Import all functions.

-funcs LIST      Import comma-separated list of functions.

-allPackages      Import all packages.

-packages LIST Import comma-separated list of packages.

-allSequences    Import all sequences.

-sequences LIST Import comma-separated list of sequences.

-targetSchema NAME Name of the target schema (default: target schema is named after source schema).

-allDBLinks      Import all Database Links.

-allSynonyms    It enables the migration of all public and private synonyms from an Oracle database to an Advanced Server database.  If a synonym with the same name already exists in the target database, the existing synonym will be replaced with the migrated version.

-allPublicSynonyms  It enables the migration of all public synonyms from an Oracle database to an Advanced Server database.  If a synonym with the same name already exists in the target database, the existing synonym will be replaced with the migrated version.

-allPrivateSynonyms It enables the migration of all private synonyms from an Oracle database to an Advanced Server database.  If a synonym with the same name already exists in the target database, the existing synonym will be replaced with the migrated version.

 

-dropSchema [true|false] Drop the schema if it already exists in the target database (default: false).

-truncLoad It disables any constraints on target table and truncates the data from the table before importing new data. This option can only be used with -dataOnly.

-safeMode  Transfer data in safe mode using plain SQL statements.

-copyDelimiter  Specify a single character to be used as delimiter in copy command when loading table data. Default is \t

-batchSize  Specify the Batch Size to be used by the bulk inserts. Valid values are  1-1000, default batch size is 1000, reduce if you run into Out of Memory exception

-cpBatchSize     Specify the Batch Size in MB, to be used in the Copy Command. Valid value is > 0, default batch size is 8 MB

-fetchSize  Specify fetch size in terms of number of rows should be fetched in result set at a time. This option can be used when tables contain millions of rows and you want to avoid out of memory errors.

-filterProp The properties file that contains table where clause.

-skipFKConst    Skip migration of FK constraints.

-skipCKConst    Skip migration of Check constraints.

-ignoreCheckConstFilter   By default MTK does not migrate Check constraints and Default clauses from Sybase, use this option to turn off this filter.

-fastCopy   Bypass WAL logging to perform the COPY operation in an optimized way, default disabled.

-customColTypeMapping LIST Use custom type mapping represented by a semi-colon separated list, where each entry is specified using COL_NAME_REG_EXPR=TYPE pair. e.g. .*ID=INTEGER

-customColTypeMappingFile PROP_FILE     The custom type mapping represented by a properties file, where each entry is specified using COL_NAME_REG_EXPR=TYPE pair. e.g. .*ID=INTEGER

-offlineMigration [PATH] This performs offline migration and saves the DDL/DML scripts in files for a later execution. By default the script files will be saved under user home folder, if required follow -offlineMigration option with a custom path.

-logDir LOG_PATH Specify a custom path to save the log file. By default, on Linux the logs will be saved under folder $HOME/.enterprisedb/migration-toolkit/logs. In case of Windows logs will be saved under folder %HOMEDRIVE%%HOMEPATH%\.enterprisedb\migration-toolkit\logs.

-copyViaDBLinkOra This option can be used to copy data using dblink_ora COPY commad. This option can only be used in Oracle to EnterpriseDB migration mode.

-singleDataFile  Use single SQL file for offline data storage for all tables. This option cannot be used in COPY format.

-allUsers Import all users and roles from the source database.

-users LIST Import the selected users/roles from the source database. LIST is a comma-separated list of user/role names e.g. -users MTK,SAMPLE

-allRules Import all rules from the source database.

-rules LIST Import the selected rules from the source database. LIST is a comma-separated list of rule names e.g. -rules high_sal_emp,low_sal_emp

-allGroups Import all groups from the source database.

-groups LIST Import the selected groups from the source database. LIST is a comma-separated list of group names e.g. -groups acct_emp,mkt_emp

-allDomains Import all domain, enumeration and composite types from the source database.

-domains LIST Import the selected domain, enumeration and composite types from the source database. LIST is a comma-separated list of domain names e.g. -domains d_email,d_dob, mood

-objecttypes      Import the user-defined object types.

-replaceNullChar <CHAR> If null character is part of a column value, the data migration fails over JDBC protocol. This option can be used to replace null character with a user-specified character.

-importPartitionAsTable [LIST] Use this option to import Oracle Partitioned table as a normal table in EnterpriseDB. To apply the rule on a selected set of tables, follow the option by a comma-separated list of table names.

-enableConstBeforeDataLoad Use this option to re-enable constraints (and triggers) before data load. This is useful in the scenario when the migrated table is mapped to a partition table in EnterpriseDB.

-checkFunctionBodies [true|false] When set to false, it disables validation of the function body during function creation, this is to avoid errors if function contains forward references. Applicable when target database is Postgres/EnterpriseDB, default is true.

-retryCount VALUE  Specify the number of re-attempts performed by MTK to migrate objects that failed due to cross-schema dependencies. The VALUE parameter should be greater than 0, default is 2.

-analyze    It invokes ANALYZE operation against a target Postgres or Postgres Plus Advanced Server database. The ANALYZE collects statistics for the migrated tables that are utilized for efficient query plans.

-vacuumAnalyze      It invokes VACUUM and ANALYZE operations against a target Postgres or Postgres Plus Advanced Server database. The VACUUM reclaims dead tuple storage whereas ANALYZE collects statistics for the migrated tables that are utilized for efficient query plans.

-loaderCount VALUE       Specify the number of jobs (threads) to perform data load in parallel. The VALUE parameter should be greater than 0, default is 1.

 

Database Connection Information:

The application will read the connectivity information for the source and target database servers from toolkit.properties file.

Refer to MTK readme document for more information.

 

 



  • 大小: 24.6 KB
0
6
分享到:
评论

相关推荐

    ppas edb-jdbc

    PPAS是基于开源的PostgreSQL数据库系统构建的,提供了对Oracle数据库的兼容性,以满足那些希望从Oracle迁移但又希望保持类似语法和功能的用户需求。 描述中提到的"edb-jdbc14 和 edb-jdbc16"是指两个不同版本的EDB...

    阿里云 ppas 兼容手册

    这些概念在Oracle和PPAS数据库中都有对应实现,能够帮助用户在迁移应用到PPAS上时保持数据和操作逻辑的一致性。 SQL语法:提供了关于SQL语句词法结构、标识符、关键字、常量、注释等的详细说明。这包括了数值、字符...

    藏经阁-ADAM+PPAS助力企业IT系统高效云化.pdf

    在迁移实施阶段,ADAM产品使用迁移工具来将数据库和应用程序迁移到云端。在系统优化阶段,ADAM产品使用系统优化工具来优化数据库和应用程序的性能。 PPAS是阿里云的云数据库产品,提供了高性能、可扩展、安全的...

    德哥 _ 阿里云 - 阿里云数据库 PG、PPAS、HDB for PG 云生态、产品指南、企业全栈应用案例、开发管理实践

    - **阿里云数据库生态系统**包括了各种工具和服务,如数据迁移工具、备份恢复服务、性能监控等,为企业提供了全方位的支持。 3. **应用案例** - 阿里云数据库被广泛应用于多个行业中,例如物联网、电商、生物科技...

    让数据从PostgreSQL流动到Greenplum.pdf

    - 数据迁移工具,如pgsql2pgsql和mysql2pgsql,支持将数据从MySQL和PG/PPAS迁移到PG/GP/PPAS。 二、方案优势 1. 低使用成本:OSS服务以存储量和请求次数计费,成本较低。 2. 高并行导入性能:利用集群segment节点...

    Oracle迁移上云指南.pptx

    ADAM 应用及数据迁移组件是 EDB 的一个组件,能够帮助企业将 Oracle 数据库迁移到 PPAS 版本。该组件提供了自动备份、时间点恢复、同城容灾和读写分离等功能。 知识点 8:DTS 数据迁移组件 DTS 数据迁移组件是 EDB...

    阿里云如何打破Oracle迁移上云的壁垒_阿里云.pdf

    阿里云在面对Oracle数据库迁移至云端的挑战时,推出了云数据库PPAS(EnterpriseDB Postgres Advanced Server),旨在打破Oracle迁移的壁垒。Oracle数据库在企业级应用中广泛使用,但其高昂的授权费用、复杂的管理...

    PPAS_PGP_HA_Community.pdf

    PPAS_PGP_HA_Community.pdf,postgresql的ha方案,喜欢可以下载

    藏经阁-阿里云数据库 PG、PPAS、HDB for PG 云生态、产品指南、企业全栈应用案例、开发管理实践.pdf

    2. PPAS(PostgreSQL Plus Advanced Server):PPAS是阿里云针对分布式事务处理和分析处理设计的数据库产品,它兼容Oracle语法,方便Oracle用户迁移。PPAS支持在线事务处理(OLTP)和在线分析处理(OLAP)混合工作...

    全球-能源行业-全球能源转型系列专家会议数字化赋能PPAs-2019.12.9-58页.rar

    全球-能源行业-全球能源转型系列专家会议数字化赋能PPAs-2019.12.9-58页.rar

    全球-能源行业-全球能源转换系列专家会议可再生PPAs的进化-2019.10.28-41页.rar

    全球-能源行业-全球能源转换系列专家会议可再生PPAs的进化-2019.10.28-41页.rar

    云迁移与云容灾云上数据库迁移与云原生容灾.pdf

    在迁移过程中,选择合适的数据迁移工具(DTS)至关重要,它需要确保业务迁移过程的不间断性,防止数据丢失,以及在迁移后提供持续的数据同步能力,确保数据的一致性。 云原生容灾是一种基于云计算平台提供的容灾...

    rds-QuickStart-MySQL-cn-zh-2018-04-20

    * 数据迁入可以使用命令行或图形界面进行逻辑导入,或者使用 MySQL 命令行工具、数据传输服务等方式迁入数据。 存储引擎 RDS for MySQL 目前支持 InnoDB 和 TokuDB 两种存储引擎,由于 MyISAM 引擎的自身缺陷,...

    藏经阁-ADAM产品助力企业业务快速云化数据库和应用迁移.pdf

    客户端ADAM studio工具产品,提供稳定、易用的数据库和应用迁移工具集,通过提供场景化、流程化、自动化的数据库和应用迁移服务协助用户使用ADAM产品轻松、高效迁云。 ADAM产品的核心能力包括: 1. 数据库和应用...

    EnterpriseDB剑指Hadoop:优化数据处理

    为了进一步简化这一过程,EnterpriseDB还提供了迁移工具——EnterpriseDB Migration Studio,该工具能够自动化生成迁移报告,帮助用户顺利完成数据库迁移任务。 #### 三、EnterpriseDB发布的Postgres Plus ...

    ubuntu详尽命令

    对于熟悉命令行操作的用户来说,Ubuntu的命令行工具是进行系统管理、软件安装和高级任务处理的重要途径。本资源集合了“ubuntu详尽命令”,旨在帮助用户快速记忆和理解Ubuntu中的各种命令,从而提高工作效率。 一、...

    无线低功耗大容量数据采集记录系统

    无线低功耗大容量数据采集记录系统是一种现代物联网技术中的重要组成部分,主要应用于环境监测、工业自动化、智能家居、健康监护等多个领域。这类系统的核心特点在于其高效能、长续航以及强大的数据处理能力,使得在...

    云服务器ECS产品分析.pdf

    3. 命令行工具CLI:基于阿里云API建立的灵活且易于扩展的管理工具,支持命令行方式的ECS实例管理。 4. OpenAPI Explorer:提供快速检索接口、在线调用API和动态生成SDK示例代码等服务,帮助开发者快速开发和测试ECS...

Global site tag (gtag.js) - Google Analytics