How do I troubleshoot "ERROR: No tables were found at task initialization" errors for my AWS DMS task when tables exist in the source database?

Last updated: 2022-07-27

I received an "ERROR: No tables were found at task initialization" error when I tried to migrate my data using AWS Database Migration Service (AWS DMS). But, tables are present in my source database. Why did I receive this error, and how can I resolve the issue?

Short description

There are several reasons why you might receive a "No tables were found at task initialization" error, depending on the database engine you are using. Some database engines that AWS DMS supports using as a source are case sensitive, such as Oracle or DB2. So, when you use Oracle or DB2 as the source for AWS DMS, your table names, view names, and column names must use UPPER case.

Comparatively, database engines like MySQL and PostgreSQL use LOWER case for all objects, by default. For more information, see Using source filters.

AWS DMS mapping rules and endpoint settings are designed to work with a variety of source engines, so they are case sensitive. If the specified object names in an AWS DMS task are different from the source database names, then the AWS DMS task fails and throws the "No tables were found at task initialization" error.

Resolution

To resolve this error:

1.FSPMake sure that the tables exist in the source, and weren't deleted before the task started.

2.FSPIf the tables exist in the source, make sure that the object names match the source database name, exactly.

For example, when you use an Oracle database as the source, Oracle uses object names like these:

  • Source database SID: ORCL - Use this to set up the Oracle source endpoint database name.
  • Source database schema name: ADMIN - Use this for the selection mapping rules.
  • Source database table name: TEST - Use this for the selection mapping rules.

This example uses lower-case object names in the mapping rules with Oracle as the source. So, because Oracle requires upper-case object names, the AWS DMS task fails with the "No tables were found at task initialization" error.

{
  "rules": [
    {
      "rule-type": "selection",
      "rule-id": "1",
      "rule-name": "1",
      "object-locator": {
        "schema-name": "admin",
        "table-name": "test"
      },
      "rule-action": "include",
      "filters": [

      ]
    }

This example uses upper-case object names in the mapping rules with Oracle as the source, and the AWS DMS task doesn't fail.

{
  "rules": [
    {
      "rule-type": "selection",
      "rule-id": "1",
      "rule-name": "1",
      "object-locator": {
        "schema-name": "ADMIN",
        "table-name": "TEST"
      },
      "rule-action": "include",
      "filters": [

      ]
    }

Did this article help?


Do you need billing or technical support?