SQL Server Express 2008 replication/synchronisation - sql-server

We are looking at developing a small, simple, Access system for a client using SQL Server Express (2005 or 2008) as database. The only complicating factor is they have two offices and they will need to synchronise some (but not all) data between them.
What are my options with the Express edition for doing this? Is there any advantage to using 2008 over 2005?

Microsoft SQL Server 2008 Express (SQL Server Express) can serve as a Subscriber for all types of replication.
SQL Server Express cannot serve as a Publisher or Distributor.
Ref.

You could look to managing this yourself -- using GUIDs for primary keys, and a last update time stamp, as well as tracking last sync, etc.
If there isn't too much to keep in sync, then it shouldn't be too hard

Following should be done:
1) Server - SQL 2008 Server - Publisher / Distributor
one Central server - sql 2008 server - this would be the central place for data. You can created publication on sql server and specify which all tables need to be included in publication (before that you also need to finalize which replication method you need )
2) Client - SQL 2008 Express - Subscriber
in your case - each office can have sql express - you can use as many as you want. These express instances need to have subscription to the publication created by the central server.
( this also means that the SQL server should be accessible to the client - if you are not on intranet - VPN can help - vpn should be on - to create subscription and sync. If you don't have vpn - the server needs to have public IP and port open that client can subscribe to).

Related

Replication from SQL Server Express Database to SQL Server Standard Database

Is it possible to set up a replication between an SQL Server Express Database that we can't touch, with an SQL Server Standard database?
We only have read-only access on the SQL Server Express database, so we are oblige to use only SQL requests.
We thought of using a python script and doing the replication ourselves, but is there a framework that can do that ?
We don't need realtime replication, a time span of minutes is enough.

How do SQL Server Express and Enterprise talk?

I am a bit confused about how SQL Server processes multiple queries while I run a query in SQL Server Express but the data is located in the Business / Enterprise SQL Server.
I have an Enterprise version of SQL Server installed on the server which has multiple TB of data. I do not have physical access to the server hence I have two approach. Use RDP to connect to the server and run the query, or connect to SQL Server instance via SQL Server Express which is installed on my local machine (obviously we should be in the same domain). I do not have any question about RDP, my concern is about the second approach.
When I run multiple queries on my local machine (not on the server), I noticed that the performance is very slow.
From here and here it look likes that my SQL Server Express is running the query and because of the # CPU limitation, it is very slow.
But I would like to be sure about how SQL Server processes my queries. To be specific, I would like to know more about step 3 and 4 as shown in here. Specially, I would like to know how Express and Enterprise talk to each other over tcp/ip. What does SQL Server Express send to Enterprise and what does Enterprise send to Express?
I found this article, but this one does not look like the thing that I am looking for.
Well, either
you are connected to your local SQL Server Express and the query is run there (locally - with all the limitations)
OR
you are connected (using SSMS from your local machine) to the SQL Server Enterprise database, and then the query is run on that server (not on your local machine - you just use a GUI on your local machine to see what's going on). Since those queries are run on the server, no limitations from your local Express instance will affect your queries
Unless you've setup some kind of replication or a "linked server", there's no "talking" between your local instance and the remote server instance.....
SQL Server is the database engine, and SSMS (SQL Server Management Studio) is just an IDE (Integrated Development Environment).
All queries are ALWAYS executed on the server regardless if it is Express or Enterprise editions.
SSMS does not execute a query ever, it does not do any work. It only passes the query to the server and display the resulting record set. The only speed difference that can be observed would be due to transferring the data set over the network from the server to the client.
Please read: What's the difference between SQL Server Management Studio and the Express edition?

SQL Server Standard / SQL Server Express side-by-side

I'm new to SQL Server, so apologies if my question sounds stupid.
I'm looking to move next step from Access trying to bring in SQL Server Standard in our company but my boss is not happy to purchase SQL Server Standard for every region/country where our company operates, he says it'll increase our cost. At the moment we're using Access DB in different regions and it's all messy.
My question is, can I use SQL Server Standard on central DB server and SQL Server Express on all other regional servers please? Can we connect instances on Express editions to Standard editions?
Point is that I'll keep on learning and improve skills on SQL Server Standard and use it to connect with all other regional offices using Express Edition as well.
I think you shouldn't need the express editions to be installed in all other regional if you are using SQL Server as Central Data Server and your regions are able to do connection to the server.
Your app will have connection string like this
http://www.asp.net/mvc/overview/getting-started/introduction/creating-a-connection-string
The data source itself is the instance of the SQL Server that you installed in the Central Data Server.

Transactional Replication - Can it be used on a shared server?

Transactional Replication - Can it be used on a shared web server with MS SQL 2005 Express ?
Yes, it can but SQL Server express can only be a transactional subscriber. You will not be able to publish from it, but can publish to it.
Note that there will be some contention between SQL Server Express and a web server, so such a deployment is not scalable in the long run.

.net windows application uses sql server 2005 database…is sql server 2005 required on the client machines

My .net windows application uses sql server 2005 database…is sql server 2005 required on the client machines?
my .net application updates tables in the databases, retrieves data also.
If you have a central database server - no, you don't need the full SQL Server on your clients - just the SQL Server client parts.
If you want to run the whole SQL Server 2005 on each machine - then yes, you need SQL Server on each machine in that case. Most likely I'd use SQL Server 2005 Express for local work.
It really depends on your scenario - do you want to have SQL Server locally on each machine?? Then each user has his/her own database and no data is shared.
Most of the time, you would want to have a single, central SQL Server machine and all the clients connect to it, share and use the same data.

Resources