Cannot sync database with more than 500 tables

Answered Cannot sync database with more than 500 tables

  • Thursday, February 09, 2012 7:37 AM
     
     

    Hello.

    I have a local database with 664 tables of which I want to add 25 of them into a Sync Group. However, when I try to define the dataset for synchronization, I cannot get the table list when I click "Get Latest Schema". The Log Viewer gives me this detailed message:

    "Unable to process a schema with 664 tables, 500 is the max"
    For more information, provide tracing id ‘c0414852-b02e-4a1b-9c15-104b6ab57282’ to customer support.

    This is odd because I only want to sync 25 tables, and the FAQ says:

    Q: What are the supported limits on database dimensions?

    Dimension Limit
    Database size 50 GB
    Number of rows 10 million
    Database, table, schema, and column names 50 characters
    Tables in a sync group 500

    Implying that it is the number of tables in the sync group, not in the database, that should matter. Is there something wrong or have I misunderstood?

    Best regards, 

    Joel Sanderi



    • Edited by Joel S Thursday, February 09, 2012 7:44 AM
    •  

All Replies

  • Thursday, February 09, 2012 7:42 AM
    Answerer
     
     

    the current release only supports up to 500 tables in a syncgroup.

    see: http://msdn.microsoft.com/en-us/library/hh667301.aspx#bkmk_datasynclimits

  • Thursday, February 09, 2012 7:46 AM
     
     
    Sorry, I submitted question before I finished it by mistake, now you should see that I actually only want to have 25 tables in my syncgroup, so the problem persist...
  • Thursday, February 09, 2012 8:00 AM
    Moderator
     
     Answered

    It is a current limitation  that if the database has more than 500 tables, it does not get the schema for you to select the tables - even if you want to select and sync only 1 table. We will be improving this in the future.

    A workaround for you is to delete the extra tables or move the un-needed tables into another DB. Not ideal, I agree, but is a workaround for now.


    This posting is provided AS IS with no warranties, and confers no rights

    • Marked As Answer by Joel S Thursday, February 09, 2012 8:49 AM
    •  
  • Thursday, February 09, 2012 8:31 AM
     
     

    Hi Mahesh, thank you for your response.

    Altering the database schema is not an option in this case, is there another workaround? Since I know the table names, perhaps I could script it using some unsupported API? ;)

    How near in the future could this be fixed?

    Except for this shortcoming, I really love the Azure Data Sync and I think it's the greatest thing since sliced bread, keep up the good work!

  • Thursday, February 09, 2012 8:40 AM
    Moderator
     
     

    Unfortunately, I dont have a better workaround for now. You will have to limit the number of tables to less than 500 in the DB for sync to enumerate the metadata and show you the tables available for syncing. And no, there is no unsupported API :)

    I cannot comment on the "near" part for the future release. We do refresh the service on a frequent cadence and in the next few refreshes, we can look into this.

    And it is great to know you love the Data Sync, thanks for using it and for your appreciation. I will convey this to the team, they will be happy :)


    This posting is provided AS IS with no warranties, and confers no rights

  • Thursday, February 09, 2012 9:58 AM
    Answerer
     
     Proposed

    try this workaround:

    script the tables you want to sync

    create a new temporary database and run the script to create the tables you want to sync

    register and add the new database as a member of the sync group

    use the new database to pick the tables you want to sync

    once the provisioning is done, remove the database from the sync group.

    • Proposed As Answer by Austin Longino Saturday, February 11, 2012 12:27 AM
    •  
  • Friday, February 10, 2012 6:39 AM
    Moderator
     
     
    June, this is a smart workaround and it could work fine.

    This posting is provided AS IS with no warranties, and confers no rights

  • Tuesday, February 14, 2012 12:18 PM
     
     

    Hi June,

    Before I saw this answer, I solved the problem using another workaround:

    I createad a new SQL Database, and set up local SQL-Replication to that one. Then I added this new database to the sync group instead.

    Works fine right now! :)

  • Monday, April 30, 2012 1:04 PM
     
     

    Hi June,

    I ran into a situation where I could not use SQL-Replication to solve the problem, so I wanted to use your workaround.

    This is what I did:

    1. Created "create-script" for the tables

    2. Created new temporary database and run create-script

    3. Set up synchronization with temp-database

    4. Remove temp-database and sync-group.

    But then whenever there is a change on the on-premise-database I want them to reflect on the Sync hub, but this is not working with your approach, or did I miss something?

    Any help is appreciated, and also, if the limit could be stretched from 500 to 5.000 that would save me a lot of work...

     - Joel

  • Monday, April 30, 2012 1:35 PM
    Answerer
     
     

    in step 4, why are you removing the sync group? if you remove the sync group, then you remove the sync group definition...

    can you elaborate on the on-premise change that is not reflected on the hub? are you referring to schema change or a data change not being picked up by sync?

    with regards to increasing the limit to 5000, am not sure you want to select specific tables from 5000 item list in the UI ...

  • Monday, April 30, 2012 1:41 PM
     
     

    Hi, thanks for quick response!

    Ok, I can keep the sync group, but how do I redirect it to the "real" database, which has data that is changing.

    Whenever there is a data change in the database with over 500 tables, I want it to be picked up by the sync group.

    Picking tables from 5000 items is a luxury problem compared to what I am facing now :)

  • Monday, April 30, 2012 1:45 PM
    Answerer
     
     Answered

    ok. i think i wasnt so clear with the workaround:

    script the tables you want to sync

    create a new temporary database and run the script to create the tables you want to sync

    register and add the new temporary database as a member of the sync group

    use the new temporary database to pick the tables you want to sync

    add all other databases that you want to sync with (on-premise databases and hub database)

    once the provisioning is done, remove the temporary database from the sync group.

    • Marked As Answer by Joel S Monday, April 30, 2012 1:55 PM
    •  
  • Monday, April 30, 2012 1:55 PM
     
     

    Ah, now I understand!

    I never added multiple on-premise databases to a sync-group before, so I couldn't think this one out..

    Thanks a lot.