Sync Group Failed to Be Provisioned
I'm getting the following error after I attempt to save my Sync Rules:
"Cannot deploy the sync group because there is no Clustered Index on table"
However, in SQL Object Explorer I can see there is a clustered index on the table.
February 24th, 2015 3:44am
Hi,
Thanks for posting here.
have you installed the Sync Agent for the on-premise database, registered it and added an on-premise database?
Provisioning fails in the following scenarios :
- The primary key column has a collation defined on it.
- The SQL Data Sync provisioning process does not create a collation on a primary key column
in the destination database even though the collation exists on the column in the source database.
- The name of a table contains a period character (.).
- When you try to add a table whose name contains a period (.) to a sync data set in a sync group,
the UI displays only the end name of the table. For example, when you try to add dbo.Test.DataAB table to a sync data set, the UI actually displays dbo.DataAB. If you go ahead and add this table to the sync data set and create the sync group, you won't see
any error message. However, provisioning will not occur for the table and also the table dbo.Test.DataAB table is not synchronized at runtime.
- The column of a table is a computed column.
- If the total length of schema name and table name (including any square brackets) is greater than 100.
Sync fails in the following scenarios :
- The primary key data is changed in a database in a sync group, the changes do not get synchronized over to the rest of the databases in the sync group
- Two sync groups use different columns from the same table. In this case, one of the sync groups, the one synchronizing last, will fail to sync.
For example, if sync group 1 uses columns col1 and col2 and sync group 2 uses col2 and col3 from the same table, table A, one of the groups will fail during sync. However, if both the sync groups use exact same columns from a table, the sync would succeed.
- Two tables with the same name are involved in sync, even if they belong to different schemas.
The SQL Data Sync service uses the same tracking table for tables with same name even if they belong to
different schemas. As a result, changes from both tables are reflected in the same tracking table, potentially causing erroneous data changes during sync.
- A non-nullable column with no default value is filtered for sync.
- When you filter out columns that are non-nullable and have no-default values on the schema to sync,
clients that have filtered version will never be able to sync up their changes, and will always get sync failures.
Also, please check whether you just have one table in the clustered index.
Lastly, you can try syncing the group using the old portal https://manage.windowsazure.com/
Hope this helps.
Girish Prajwal
-
Marked as answer by
GW-AEON
Saturday, February 28, 2015 2:17 AM
February 24th, 2015 7:52am
Hi,
Thanks for posting here.
have you installed the Sync Agent for the on-premise database, registered it and added an on-premise database?
Provisioning fails in the following scenarios :
- The primary key column has a collation defined on it.
- The SQL Data Sync provisioning process does not create a collation on a primary key column
in the destination database even though the collation exists on the column in the source database.
- The name of a table contains a period character (.).
- When you try to add a table whose name contains a period (.) to a sync data set in a sync group,
the UI displays only the end name of the table. For example, when you try to add dbo.Test.DataAB table to a sync data set, the UI actually displays dbo.DataAB. If you go ahead and add this table to the sync data set and create the sync group, you won't see
any error message. However, provisioning will not occur for the table and also the table dbo.Test.DataAB table is not synchronized at runtime.
- The column of a table is a computed column.
- If the total length of schema name and table name (including any square brackets) is greater than 100.
Sync fails in the following scenarios :
- The primary key data is changed in a database in a sync group, the changes do not get synchronized over to the rest of the databases in the sync group
- Two sync groups use different columns from the same table. In this case, one of the sync groups, the one synchronizing last, will fail to sync.
For example, if sync group 1 uses columns col1 and col2 and sync group 2 uses col2 and col3 from the same table, table A, one of the groups will fail during sync. However, if both the sync groups use exact same columns from a table, the sync would succeed.
- Two tables with the same name are involved in sync, even if they belong to different schemas.
The SQL Data Sync service uses the same tracking table for tables with same name even if they belong to
different schemas. As a result, changes from both tables are reflected in the same tracking table, potentially causing erroneous data changes during sync.
- A non-nullable column with no default value is filtered for sync.
- When you filter out columns that are non-nullable and have no-default values on the schema to sync,
clients that have filtered version will never be able to sync up their changes, and will always get sync failures.
Also, please check whether you just have one table in the clustered index.
Lastly, you can try syncing the group using the old portal https://manage.windowsazure.com/
Hope this helps.
Girish Prajwal
-
Marked as answer by
GW-AEON
Saturday, February 28, 2015 2:17 AM
February 24th, 2015 7:52am
Hi,
Thanks for posting here.
have you installed the Sync Agent for the on-premise database, registered it and added an on-premise database?
Provisioning fails in the following scenarios :
- The primary key column has a collation defined on it.
- The SQL Data Sync provisioning process does not create a collation on a primary key column
in the destination database even though the collation exists on the column in the source database.
- The name of a table contains a period character (.).
- When you try to add a table whose name contains a period (.) to a sync data set in a sync group,
the UI displays only the end name of the table. For example, when you try to add dbo.Test.DataAB table to a sync data set, the UI actually displays dbo.DataAB. If you go ahead and add this table to the sync data set and create the sync group, you won't see
any error message. However, provisioning will not occur for the table and also the table dbo.Test.DataAB table is not synchronized at runtime.
- The column of a table is a computed column.
- If the total length of schema name and table name (including any square brackets) is greater than 100.
Sync fails in the following scenarios :
- The primary key data is changed in a database in a sync group, the changes do not get synchronized over to the rest of the databases in the sync group
- Two sync groups use different columns from the same table. In this case, one of the sync groups, the one synchronizing last, will fail to sync.
For example, if sync group 1 uses columns col1 and col2 and sync group 2 uses col2 and col3 from the same table, table A, one of the groups will fail during sync. However, if both the sync groups use exact same columns from a table, the sync would succeed.
- Two tables with the same name are involved in sync, even if they belong to different schemas.
The SQL Data Sync service uses the same tracking table for tables with same name even if they belong to
different schemas. As a result, changes from both tables are reflected in the same tracking table, potentially causing erroneous data changes during sync.
- A non-nullable column with no default value is filtered for sync.
- When you filter out columns that are non-nullable and have no-default values on the schema to sync,
clients that have filtered version will never be able to sync up their changes, and will always get sync failures.
Also, please check whether you just have one table in the clustered index.
Lastly, you can try syncing the group using the old portal https://manage.windowsazure.com/
Hope this helps.
Girish Prajwal
-
Marked as answer by
GW-AEON
Saturday, February 28, 2015 2:17 AM
February 24th, 2015 7:52am
Hi,
Thanks for posting here.
have you installed the Sync Agent for the on-premise database, registered it and added an on-premise database?
Provisioning fails in the following scenarios :
- The primary key column has a collation defined on it.
- The SQL Data Sync provisioning process does not create a collation on a primary key column
in the destination database even though the collation exists on the column in the source database.
- The name of a table contains a period character (.).
- When you try to add a table whose name contains a period (.) to a sync data set in a sync group,
the UI displays only the end name of the table. For example, when you try to add dbo.Test.DataAB table to a sync data set, the UI actually displays dbo.DataAB. If you go ahead and add this table to the sync data set and create the sync group, you won't see
any error message. However, provisioning will not occur for the table and also the table dbo.Test.DataAB table is not synchronized at runtime.
- The column of a table is a computed column.
- If the total length of schema name and table name (including any square brackets) is greater than 100.
Sync fails in the following scenarios :
- The primary key data is changed in a database in a sync group, the changes do not get synchronized over to the rest of the databases in the sync group
- Two sync groups use different columns from the same table. In this case, one of the sync groups, the one synchronizing last, will fail to sync.
For example, if sync group 1 uses columns col1 and col2 and sync group 2 uses col2 and col3 from the same table, table A, one of the groups will fail during sync. However, if both the sync groups use exact same columns from a table, the sync would succeed.
- Two tables with the same name are involved in sync, even if they belong to different schemas.
The SQL Data Sync service uses the same tracking table for tables with same name even if they belong to
different schemas. As a result, changes from both tables are reflected in the same tracking table, potentially causing erroneous data changes during sync.
- A non-nullable column with no default value is filtered for sync.
- When you filter out columns that are non-nullable and have no-default values on the schema to sync,
clients that have filtered version will never be able to sync up their changes, and will always get sync failures.
Also, please check whether you just have one table in the clustered index.
Lastly, you can try syncing the group using the old portal https://manage.windowsazure.com/
Hope this helps.
Girish Prajwal
-
Marked as answer by
GW-AEON
Saturday, February 28, 2015 2:17 AM
February 24th, 2015 7:52am
Yes, I have installed Sync Agent, registered it, and added a database.
How do I determine if the primary key has collation defined on it? Looking at the portal I see the following collation "SQL_Latin1_General_CP1_CI_AS", but I can't see details about it.
The table does not have a period in the name. The total length of the column and schema is less than 100 characters. None of the columns are computed columns.
Yes, there is only one table in the clustered index. I was trying to create the sync group on the old portal too. I'm at a loss.
February 24th, 2015 11:14am
The following steps helped me to get past this:
1) Create a new table with clustered index on the PK
2) Backup existing table with BCP
3) Restore data to new table with BCP
4) Rename old table
5) Rename new table to the old table's name
After this I was able to create the sync group and then run the sync. Hope this helps someone.
-
Edited by
GW-AEON
Saturday, February 28, 2015 2:17 AM
February 28th, 2015 2:16am
The following steps helped me to get past this:
1) Create a new table with clustered index on the PK
2) Backup existing table with BCP
3) Restore data to new table with BCP
4) Rename old table
5) Rename new table to the old table's name
After this I was able to create the sync group and then run the sync. Hope this helps someone.
-
Edited by
GW-AEON
Saturday, February 28, 2015 2:17 AM
February 28th, 2015 2:16am
The following steps helped me to get past this:
1) Create a new table with clustered index on the PK
2) Backup existing table with BCP
3) Restore data to new table with BCP
4) Rename old table
5) Rename new table to the old table's name
After this I was able to create the sync group and then run the sync. Hope this helps someone.
-
Edited by
GW-AEON
Saturday, February 28, 2015 2:17 AM
February 28th, 2015 2:16am
The following steps helped me to get past this:
1) Create a new table with clustered index on the PK
2) Backup existing table with BCP
3) Restore data to new table with BCP
4) Rename old table
5) Rename new table to the old table's name
After this I was able to create the sync group and then run the sync. Hope this helps someone.
-
Edited by
GW-AEON
Saturday, February 28, 2015 2:17 AM
February 28th, 2015 2:16am