Solved

Duplicate Sql Server DB

Posted on 2016-08-03
7
82 Views
Last Modified: 2016-08-16
We time races and, at present, we place a copy of the race db in dropbox the morning of the race and then each crew manually pulls it down and times their race.  The changes made locally are uploaded to the server via our software.  What i want to know is:
1) Is there a better way to pull all the data down from the db, either completely or just the data pertinent to a race someone is timing?
2) Is there a way to pull the data down from the server and not lose the unqiue ids for each table?
3) If we are NOT able to do #2, how do we get the changes back to the server given that the unique ids of many of the tables have been changed?

Pulling it down part and parcel as we are doing now is a pain but the system works really well once we have done so...except that there are some "new" records (ie: new race participants) that can't be added because their local unique id will potentially be different than the unique id created on the server.

I know I am basically talking about replication but I have not had success with that process in the past.
0
Comment
Question by:Bob Schneider
7 Comments
 
LVL 7

Assisted Solution

by:Jonathan Kelly
Jonathan Kelly earned 125 total points
ID: 41741376
If you can you add a site id and use a composit key or perhaps use GUIDs you may be able to use a single db.

Make your server accessible over the web and have your, client software either interact directly or pull down, edit and push back the data.

Can you give more detail on your setup ?
0
 
LVL 12

Assisted Solution

by:Dustin Saunders
Dustin Saunders earned 250 total points
ID: 41741404
Hard to advise of a better solution with no knowledge of the app.  If you have it running on a server, can you just publish it as a remote app and have users access it that way (or through remote desktop?)  Then it never leaves the network, if it's not your own software this might be your ideal.

Hard to advise on how to change the database, though, without knowing what the conflict is, i.e. is the conflict with identity columns?  If so, you need to insert them without the identity to get a new one but then also update any tables that reference that old primary key.
0
 
LVL 42

Assisted Solution

by:EugeneZ
EugeneZ earned 125 total points
ID: 41741548
Can you please post your Sql server version, edition, sp?
Size of DB?


--

it looks like you may like SQl Server  "Merge Replication"

check these articles and let us know if you like this idea

"Merge Replication"
https://msdn.microsoft.com/en-us/library/ms152746.aspx


How Merge Replication Works
https://technet.microsoft.com/en-us/library/ms151329(v=sql.105).aspx

-How to Create Merge Replication in SQL Server
https://www.youtube.com/watch?v=HCMpD6wxCIU
0
Ransomware: The New Cyber Threat & How to Stop It

This infographic explains ransomware, type of malware that blocks access to your files or your systems and holds them hostage until a ransom is paid. It also examines the different types of ransomware and explains what you can do to thwart this sinister online threat.  

 

Author Comment

by:Bob Schneider
ID: 41743575
On the server we use sql server 2012 Web.  On our local machines we use 2012 express.  I will look at the merge replication.  If I were to refine the question, here is what I really need:  I need to be able to "pull down" a copy of the db on the server to each local machine with all relationships intact.  If I could do that I would be happy, whether it be via a simple "back-up" process, replication, or whatever.  The problem is, I would like to have a simple way to do that...ie: a script that can be embedded in a desktop icon to make it easy for folks with no database experience.

Here is what I use the database for:
We have a race timing service (www.gopherstateevents.com) that keeps it's data on a web server.  However when we go time an event, sometimes up to five events simultaneously, we place a copy of the database in dropbox (ldf and mdf files) and the timers pull it down to time their race.

As each crew times the race, the pertinent data (ie: race results) are uploaded to the web using a connection string in a vb6 application (sorry...been using it for almost 20 years and it works well..plus I can update  it easily) so no need exists to manually put the data back on the server after the fact.

What I want to do is take the "dropbox" step out and get a complete version of the data onto a local machine prior to the race.  I would like to do this without opening SQL Server Mgmt Studio if possible since many of our timers have no experience with this utility.
0
 
LVL 12

Accepted Solution

by:
Dustin Saunders earned 250 total points
ID: 41743671
SO this is an in-house app where you have control over the code?  How many tables contain information?  Because it sounds like the problem is you have identity columns in each separate local DB that conflict, is that correct?  

If that's the case, then you can code a 'briefcase' where you can have the local version mark where the database started and then when you go to re-import the 'briefcase' data you can have code insert the data with fixed identity fields.

But to echo a previous comment, is a remote app/desktop solution not viable? If everyone can run your app remote, then there isn't any need to move the data around and try and re-merge it.
0
 

Author Comment

by:Bob Schneider
ID: 41744291
I am moving towards running it solely off of the web server db, either with my existing vb6 app or simply using a web interface.  I just haven't had the time to get that done.

Here is what I am hearing as my options/non-options until I can simply move everything to the web:

1) Use Merge Replication.  I am leery of that due to my own limitations...I don't want to screw it up.  Maybe someone on this site would do this for me for a fee?  Is this a viable option given that I am using express locally?

2) Code a "briefcase".  I would need more information on that.

3) There is no way to run a back-up to the local machine that would serve as a functional database that I could use locally.  This would replace what I am doing now (placing the database in dropbox and then manually pulling down on each local machine).
0
 

Author Comment

by:Bob Schneider
ID: 41757828
I have decided to run our timing process off of the web server.  I will post another question about that process. Thanks for your help everyone!
0

Featured Post

Best Practices: Disaster Recovery Testing

Besides backup, any IT division should have a disaster recovery plan. You will find a few tips below relating to the development of such a plan and to what issues one should pay special attention in the course of backup planning.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

JSON is being used more and more, besides XML, and you surely wanted to parse the data out into SQL instead of doing it in some Javascript. The below function in SQL Server can do the job for you, returning a quick table with the parsed data.
Slowly Changing Dimension Transformation component in data task flow is very useful for us to manage and control how data changes in SSIS.
This video shows, step by step, how to configure Oracle Heterogeneous Services via the Generic Gateway Agent in order to make a connection from an Oracle session and access a remote SQL Server database table.
Via a live example, show how to shrink a transaction log file down to a reasonable size.

840 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question