SQL Database with Remote Connections - sql

Hello I am looking for a little Direction / Guidance. I have built an application in vb.net using visual studio for my company that manages people and equipment. This application is installed on multiple computers in the office and updates a Microsoft Access Database which resides on one of our local Network Servers in the Building. What my goal for this is to have the application access the database from any location in or out of the network. I originally built this around an Access Database because it seemed the easiest at the time, I would like to re-create this in an SQL Database but am unsure how to and or what I need to do so I have this access with the application. I am confused to how the SQL database would work with the remote access I guess.. Do I need to have an SQL Engine installed on the Server or can I have the Database file just sitting there and access it through the IP with Username and Passwords? Should I purchase server space somewhere else and go that route? Is there any links or information anyone could direct me to, I have been reading about this for days but am not getting anywhere.. Just looking for some black and white answers to steer me in the right direction!!
Thanks Everyone!

I would recommend Azure. This article describes the process for migrating from Access to Azure:
Migrating Access Databases to SQL Server/Azure SQL DB (AccessToSQL)

All major SQL RDBMS client/server systems are built around the premise that clients will he accessing the relational database management services over a network (almost always over TCP/IP for anything developed or updated within the last couple of decades).
For the nodes (clients) on your local area network this should be relatively straightforward.
For remote access I strongly recommend requiring that they access your network through a quality VPN which has been professionally configured (and, preferably, is being professionally maintained).
As for the question of locally owned equipment vs. a virtually private server (VPS) that's mostly a cost consideration with tradeoffs on reliability of access, reliability of the hardware and storage, reliability and capacity of the backup systems, and the personnel costs and availability.
A well managed VPS offering can get you past all the preliminary hurdles to the point where you can focus on your development right away. The long term decisions about Tue production environment are best deferred until you have some functionality prototyped.

Related

Best Approach for syncing Azure SQL Database

Right now, our application only has one Web Site instance along with SQL Database deployed at Azure US datacenter. We are looking for deploying more Web Site instance at other datacenter such as APAC and Europe. There still be a local SQL Database for each of those web site instance. We would like end user could fail over to another instance if his registered instance is not available, such as if US web site instance is down, we could fail over user to Europe instance. With this, we would need to synchronize local SQL Database at all data centers, US, Europe and APAC.
So we are looking for what's best approach to implement the database synchronization here for Azure SQL Database. Here are what we found at this point:
Azure Data Sync, it looks like that it is the perfect choice since it is available right away at Azure Management Portal and it would be up and running with some simple configuration. However there seems couple catches. The feature has been on preview about 2 years now (see this link with the following quote from comment):
SQL Data Sync has been in preview for over 2 years and the last update was December 2012. Has this been abandoned? Is this a technology we should encourage our clients to use? There absolutely needs to be an ability to synchronize data between a local SQL DB and Azure but Microsoft seems to have dropped this and I'm leery of putting a client on this only to find that the plug has been pulled. You owe it to your users to give us some information
I also saw the post Azure data sync not syncing all databases at SO, it seems that this feature is a second class feature at Azure and MS doesn't really pay sufficient attention to it. So I am worried how good it is.
Microsoft Sync Framework, it seems a more generic sync framework and more suitable for client and server sync instead of sync among server database. Plus it is not simple as above SQL Data Sync which is available just by configuration at Azure.
Any other suggestions on sql database sync at Azure? It would be really appreciated if you could share your experience here.
Thanks very much in advance for your insight.
Update:
Azure Data Sync is built upon using Microsoft Sync Framework: see link, the quote:
Microsoft SQL Data Sync is a cloud-based data synchronization service built on the Microsoft Sync Framework technologies.
Since no one is answering this question and I am going to do it myself. Based on some latest information, the Azure Data Sync is buggy and can not be used for production at this point. I guess that's the reason why it never moves out of preview even after around 2 years. There is no other good approach for handling Azure SQL Database sync at this point unless you want to build something yourself.
you can use RedGate Data Compare to sync your Azuresql DB with your Local DB

SQL Server 2008 R2 Developer and SQL Server 2008 Express Edition, Replication

I was looking for some advise on a current task and sifting though on the net I am not finding anything direct. I have full SQL Server 2008 in my central location and then 5 remote sites that use SQL Server 2008 Express for the database services. I am looking for a way to synch or replicate the databases in the 2008 Express instances back to my central 2008 developer edition instance.
What is blocking me is the editions and what is possible, I have been told log shipping and mirroring will not work with Express editions of SQL Server.
One thought was SSIS maybe from the central location pulling from the express instance, but again I don't know if this is possible.
Any ideas however big or small would be really appreciated!
Thanks!
Neither log shipping nor mirroring are replication solutions. They are high availability/disaster recovery solutions which allow you to have the same database in two (or more with log-sipping) locations. Only the source location can update the database.
What you want is replication, see Replicating Data to SQL Server Express. Merge Replication will allow you to update data at the periphery (on the SQL Express instances).
Note that all scenarios require static and available SQL Express instances. Replication will not work with if the SQL express instances are mobile (show up on the network with different names/IPs, think a laptop being moved around) or occasionally available (again, think a laptop that appears on and off the network as the user opens it in the corp WiFi or at home). For mobile/occasionally connected scenarios the right approach is Sync Framework.
One thought was SSIS maybe from the central location pulling from the express instance, but again I don't know if this is possible.
No, is not possible in practice, because of the impossibility of detecting changes ('what records need to be pulled?') and the lack of support for update conflict resolution.
Another approach, which I did see it deployed with success, is to use Service Broker since is freely available in Express. But it only solves the problem of transport (delivery the changes), and does not address detecting changes (usually solved via either app specific logic or via triggers) and applying the changes (this is not hard to solve though). Update conflicts are hard to handle.

Sql Server replication over wan

Im looking at developing a simple ecommerce platform and need to replicate product and customer data to the web host over the internet so the website can run disconnected. The two options i can think of at present are using enterprise messaging and database replication.
Im leaning towards database replication over enterprise messaging as enterprise messaging would require additional developer resource to write all the plumbing code. Anyone have any success using sql server one way replication over unreliable wan links through the internet?
I'm sorry I missed this... NitroAccelerator from Nitrosphere.com is built exactly to speed up replication over the internet. It compresses the TDS packets very efficiently and results in 80-90% improvement in replication times.
In the last company I worked for we had full merge replication for some of our customers.
There were 2 scenarios
Merge Replication for hanadheld devices
Some of our customers had PDAs and they subscribed to some published tables of our main database. They were disconnected for large periods and merge replication worked fine and updated changes on both sides when the connection was restored
Full site to site Merge Replications
This was used for customers that had remote offices but required a fully synchronized local database for performance reasons. In most cases the VPN was extremely poor and we did have some instances of the VPN being down for a week and on restoration replication synchronized both database without an issue.
In both cases replication seems to be very fault tolerant and performed very well.
In your case its one way replication so there should not be no merge conflicts to deal with making the situation easier.
There is a learning curve with replication but as a technology it works very well I found even over poor connections.
Liam

Reporting Services 2005 arrangement on virtual machines

I am having some difficulty in determining how best to implement the different parts of reporting services.
Our company has just bought a new slew of servers and a shared SAN to support our growing infrastructure.
Our servers are running VMware and we have several virtual machines each with their own tasks load balanced across the set of physical machines. We currently have an application server which runs terminal services, and a SQL box which runs 2005 to hold our data, as well as several others for other purposes unrelated to our database.
My question is:
What would be the ideal installation of reporting services in a virtual environment? We will still be dealing with the same amount of resources if we install everything on our current SQL box, or slice up the installation into several virtual machines. Slicing the configuration into distinct machines would help load balancing, but slicing it up will also require more licenses.
My current thought was to install the report server database on the same box that currently has our sql databases and install the report server service on another box to keep iis off the sql box with our operational data.
How difficult would it be to migrate from one configuration to another, or would i be pretty much locking myself into something once a decision is made?
Editing: Adding my options
The different configurations i can think of
A) benefit : easiest to set up. downside : scale out requires migrating back end
1. SQL Data Box holding our production data
2. Reporing Services DB, Reporting Services Service, and IIS
B) benefit : supports scale out without migrating back end
1. SQL Data Box holding our production data, and Reporting Services DB
2. Reporting Services Service, and IIS
C) benefit : best for load balancing virtual machines across hardware, supports scale out without changes. downside : most expensive for licenses
1. SQL Data Box holding our production data
2. Reporting Services DB
3. Reporting Services Service, and IIS
D) benefit : cheapest for Licenses. downside : lots
1. Everything on one box
So options A or B are my front-runners, with B having no drawbacks i can think of, but not sure what kind of load reporting services has on it's database if that would be a noticeable impact as the production data box will be being queried for the raw data as well. Option A would allow me to slice off a new virtual server and play with it while developing and keeping everything off our production box and we could then change our data sources to point to the production box and roll it out.
I'm still not sure what the best option is, so if anyone else has opinions they would be welcomed.
Thanks again, Wesley
I have never done it but this article tells you how to do the remote install which is pretty common.
This article tells you how to move the database to another machine. Presumably this would allow you to migrate between both methods.
Personally I would try to pick the option you are hoping to stick with because in my experience with microsoft, installation instructions are more reliable than migration instructions.

SQL Server hosting options

I am trying to find out what my options are for SQL Server hosting. The reason I am asking is because it always seems to be a problem getting the right kind of hosting for SQL Server. I mostly need a few small databases(<3Mb) for testing or to temporary store some data for clients when I am working on their website.
I could just pay 60-80 euro for a database each time I guess but that seems really expensive for a database with limited data and almost no bandwidth usage.
It can be really frustrating sometimes and it feels like I am always giving up some development "freedom" when I want to work with SQL Server. On the other hand it works so well with Asp.net so maybe that's the price I have to pay for using SQL Server.
So I was wondering how other people deal with this?
If you are truly a web company, I'd strongly suggest that you consider investing in a dedicated server. If this is just for fun/experimentation, of course, then this may well be too expensive.
When I started out, I leased a server with both IIS and SQL Server already installed (managed by MaximumASP, btw) and then added Databases and Sites to the server as needed. I believe that you can even do this with "Virtual" dedicated servers to keep costs fairly low (e.g. < $100 / month). Growth, of course, will push you to more sophisticated configurations like it did for me (e.g. dedicated SQL Servers, multiple server web farm, etc.). But if you don't start out with a solid foundation, you'll never get the growth.
SQL Azure.
Presuming your apps will play well with Sql Express, get a small virtual box for client QA and profit.