Compute
Elastic Cloud Server
Huawei Cloud Flexus
Bare Metal Server
Auto Scaling
Image Management Service
Dedicated Host
FunctionGraph
Cloud Phone Host
Huawei Cloud EulerOS
Networking
Virtual Private Cloud
Elastic IP
Elastic Load Balance
NAT Gateway
Direct Connect
Virtual Private Network
VPC Endpoint
Cloud Connect
Enterprise Router
Enterprise Switch
Global Accelerator
Management & Governance
Cloud Eye
Identity and Access Management
Cloud Trace Service
Resource Formation Service
Tag Management Service
Log Tank Service
Config
OneAccess
Resource Access Manager
Simple Message Notification
Application Performance Management
Application Operations Management
Organizations
Optimization Advisor
IAM Identity Center
Cloud Operations Center
Resource Governance Center
Migration
Server Migration Service
Object Storage Migration Service
Cloud Data Migration
Migration Center
Cloud Ecosystem
KooGallery
Partner Center
User Support
My Account
Billing Center
Cost Center
Resource Center
Enterprise Management
Service Tickets
HUAWEI CLOUD (International) FAQs
ICP Filing
Support Plans
My Credentials
Customer Operation Capabilities
Partner Support Plans
Professional Services
Analytics
MapReduce Service
Data Lake Insight
CloudTable Service
Cloud Search Service
Data Lake Visualization
Data Ingestion Service
GaussDB(DWS)
DataArts Studio
Data Lake Factory
DataArts Lake Formation
IoT
IoT Device Access
Others
Product Pricing Details
System Permissions
Console Quick Start
Common FAQs
Instructions for Associating with a HUAWEI CLOUD Partner
Message Center
Security & Compliance
Security Technologies and Applications
Web Application Firewall
Host Security Service
Cloud Firewall
SecMaster
Anti-DDoS Service
Data Encryption Workshop
Database Security Service
Cloud Bastion Host
Data Security Center
Cloud Certificate Manager
Edge Security
Managed Threat Detection
Blockchain
Blockchain Service
Web3 Node Engine Service
Media Services
Media Processing Center
Video On Demand
Live
SparkRTC
MetaStudio
Storage
Object Storage Service
Elastic Volume Service
Cloud Backup and Recovery
Storage Disaster Recovery Service
Scalable File Service Turbo
Scalable File Service
Volume Backup Service
Cloud Server Backup Service
Data Express Service
Dedicated Distributed Storage Service
Containers
Cloud Container Engine
SoftWare Repository for Container
Application Service Mesh
Ubiquitous Cloud Native Service
Cloud Container Instance
Databases
Relational Database Service
Document Database Service
Data Admin Service
Data Replication Service
GeminiDB
GaussDB
Distributed Database Middleware
Database and Application Migration UGO
TaurusDB
Middleware
Distributed Cache Service
API Gateway
Distributed Message Service for Kafka
Distributed Message Service for RabbitMQ
Distributed Message Service for RocketMQ
Cloud Service Engine
Multi-Site High Availability Service
EventGrid
Dedicated Cloud
Dedicated Computing Cluster
Business Applications
Workspace
ROMA Connect
Message & SMS
Domain Name Service
Edge Data Center Management
Meeting
AI
Face Recognition Service
Graph Engine Service
Content Moderation
Image Recognition
Optical Character Recognition
ModelArts
ImageSearch
Conversational Bot Service
Speech Interaction Service
Huawei HiLens
Video Intelligent Analysis Service
Developer Tools
SDK Developer Guide
API Request Signing Guide
Terraform
Koo Command Line Interface
Content Delivery & Edge Computing
Content Delivery Network
Intelligent EdgeFabric
CloudPond
Intelligent EdgeCloud
Solutions
SAP Cloud
High Performance Computing
Developer Services
ServiceStage
CodeArts
CodeArts PerfTest
CodeArts Req
CodeArts Pipeline
CodeArts Build
CodeArts Deploy
CodeArts Artifact
CodeArts TestPlan
CodeArts Check
CodeArts Repo
Cloud Application Engine
MacroVerse aPaaS
KooMessage
KooPhone
KooDrive

Database Schema Conversion

Updated on 2022-07-29 GMT+08:00

Function

runDSC.sh or runDSC.bat is used to migrate schemas and queries of Teradata, Oracle, Netezza, MySQL, and DB2 to GaussDB(DWS).

Format

Linux:

./runDSC.sh
--source-db<source-database> 
[--input-folder<input-script-path>] 
[--output-folder<output-script-path>]
[-application-lang <application-lang>] 
[--conversion-type<conversion-type>] 
[--log-folder<log-path>] 
[--version-number <Gauss Kernel Version>] 
[--target-db<target-database>

Windows:

runDSC.bat
--source-db<source-database> 
[--input-folder<input-script-path>]
[--output-folder<output-script-path>] 
[-application-lang <application-lang>] 
[--conversion-type<conversion-type>] 
[--log-folder<log-path>] 
[--version-number <Gauss Kernel Version>] 
[--target-db<target-database>

Parameter Description

Table 1 Parameters

Long

Short

Data Type

Description

Value Range

Default Value

Example

--source-db

-S

String

Source database

  • Oracle
  • Teradata
  • Netezza
  • MySQL
  • DB2

N/A

--source-db Oracle(or)

-S Oracle

--input-folder

-I

String

Input folder containing Teradata or Oracle scripts

N/A

N/A

--input-folder /home/testmigration/Documentation/input

(or)

-I /home/testmigration/Documentation/input

--output-folder

-O

String

Output folder where the migrated scripts are saved

N/A

N/A

--output-folder /home/testmigration/Documentation/output(or)-O /home/testmigration/Documentation/output

--application-lang

-A

String

Application language parser used for migration

SQL: Migrate SQL schemas or scripts in SQL files.

Perl: Migrate BTEQ or SQL_LANG scripts in Perl files.

  • SQL
  • Perl

SQL

--application-lang Perl

or

-A Perl

--conversion-type

-M

String

Migration type. Set this parameter based on input scripts.

Bulk: Migrate DML and DDL scripts.

BLogic: Migrate service logic, such as procedures and functions.

BLogic is used only for Oracle PL/SQL.

  • Bulk
  • BLogic

Bulk

--conversion-type bulk

or

-M bulk

--log-folder

-L

String

Log file path

N/A

N/A

--log-folder /home/testmigration/Documentation(or)-L /home/testmigration/Documentation

--version-number

-VN

String

Oracle specified parameter

Oracle

N/A

--version-number

or

-V1R8_330

--target-db

-T

String

Target database

  • gaussdbT
  • gaussdbA

gaussdbA

--target-db gaussdbT (or)

-T gaussdbT

Usage Guidelines

It is mandatory to specify the source database, input folder path, and output folder path, and optional to specify the migration type and log path.

NOTE:

If no log path is specified, DSC creates the log folder under TOOL_HOME to store logs.

Example

./runDSC.sh --source-db Oracle --input-folder opt/DSC/DSC/input/oracle/ --output-folder /opt/DSC/DSC/output/ --log-folder /opt/DSC/DSC/log/ --application-lang SQL --conversion-type bulk --target-db gaussdbT

System Response

********************** Schema Conversion Started *************************
DSC process start time : Mon Jan 20 17:24:49 IST 2020
Statement count progress 100% completed [FILE(1/1)]

Schema Conversion Progress 100% completed
************************************************************************** 
Total number of files in input folder : 1
************************************************************************** 
Log file path :....../DSC/DSC/log/dsc.log
DSC process end time : Mon Jan 20 17:24:49 IST 2020
DSC total process time : 0 seconds
********************* Schema Conversion Completed ************************
NOTE:

If there are no sql files in the input folder, the following message will be displayed on the console:

Environment Creation and Restoration Procedure (database and database user)

GaussDB(DWS): Database Creation and Schema Setup

  1. Log in to postgres:

    gsql -p <port> -d postgres 
    drop database <database name>;
    create database <database name>;
    \c <database name>
    GRANT ALL PRIVILEGES ON DATABASE <database name> TO <user>;
    grant database to <user>;\q
    gsql -p <port> -d <database name> -U <user> -W <password> -h <IP> -f
    drop database <database name>;
    create database <database name>;
    \c <database name>;
    GRANT ALL PRIVILEGES ON DATABASE <database name> TO <user>;
    gsql -p <port> -d <database name> -U <user> -W <password>  -f

  2. Run all files in setup.

Commands:

sh runDSC.sh -S oracle -M blogic -I <input path> 
sh runDSC.sh -S oracle -M bulk -I <input path>

Configuration Details

  1. Set the value of GaussDBSQLExec to True, and update the gaussdb.properties file.
  2. Create a user (T) and a database (A). Add all schemas.

Verification After Migration

After DSC converts the source sql files, execute the converted files on target gaussdb and provide a report with details of number of statements succeeded and failed.

After the DSC finishes the translation, it will invoke (controlled through a configuration item) post migration verification script. The verification script (for details about the configuration, see the configuration file) is connected to the target GaussDB database and executed.

The post migration verification script will connect to the target gauss database (details are configured in a configuration file) and executes the scripts.

  1. application.properties in config folder

    Execute migrated script on Gauss DB: true/false, default value = false

    executesqlingauss=true

    true: It will execute the migrated script on gaussdb

  2. gaussdb.properties in config folder

    #Target Database configurations

    #gauss database user with all privileges  
     gaussdb-user=  
     gaussdb-port=  
     #Database name for GaussDBA  
     gaussdb-name=  
     #gaussdb ip  
     gaussdb-ip=

    Dependency between gsql and zsql clients

    1. gsql (GaussDB(DWS)) is required for executing scripts on GaussDB(DWS). Therefore, to ensure the smooth running of DSC, DSC is required to run on a node installed with a GaussDB(DWS) instance or client (gsql), and the user that performs verification must have the permission for executing commands using gsql or zsql.
    2. Since the Gauss DB Instance/Client can be installed on a linux OS only, this can be used to verify functionality only on a linux environment.
    3. To execute the gsql command on a remote GaussDB instance, it is advised to add the client system IP/hostname in the following configuration file of Gauss DB instance.
      /home/gsmig/database/coordinator
      ---pg_hba.conf

Response

GaussDB(DWS)

********************** Verification Started ****************************** 
Sql script execution on Gauss DB start time : Wed Jan 22 17:27:07 CST 2020 
Sql script execution on Gauss DB end time : Wed Jan 22 17:27:44 CST 2020 
 
Summary of Verification : 
================================================================================================================================== 
Statement                | Total               | Passed              | Failed              | Success Rate(%) 
----------------------------------------------------------------------------------------------------------------------------------- 
COMMENT                  | 15                  | 15                  | 0                   | 100 
CREATE VIEW              | 4                   | 3                   | 1                   | 75 
CREATE INDEX             | 4                   | 3                   | 1                   | 75 
CREATE TABLE             | 6                   | 6                   | 0                   | 100 
ALTER TABLE              | 3                   | 3                   | 0                   | 100 
--------------------------------------------------------------------------------------------------------------------------------- 
Total                    | 32                  | 30                  | 2                   | 93 
 
Gauss Execution Log file : /home/gsmig/18Jan/DSC/DSC/log/gaussexecutionlog.log 
Gauss Execution Error Log file : /home/gsmig/18Jan/DSC/DSC/log/gaussexecutionerror.log 
Verification finished in 38 seconds 
 
********************** Verification Completed ****************************

We use cookies to improve our site and your experience. By continuing to browse our site you accept our cookie policy. Find out more

Feedback

Feedback

Feedback

0/500

Selected Content

Submit selected content with the feedback