How to Configure SQL Server 2005 Replication through a firewall? - sql-server

What ports or modes of communication do you need to open up for SQL Server 2005 Transactional Replication? Main and slave are geographically separated.

Make sure you enable encryption, otherwise your replicated data could be sniffed by any one in between. The better solution would be to set up a VPN between your two locations to off load the encryption from SQL Server and also provide better security.

I believe TCP Port 1433 is typical although it can be defined by the publisher
Here is a decent article on this.

(Not an Answer)
I regretted using SQL Replication back during the SQL Server 7 days. From what I've seen of SQL Server 2005, The tools have become more unusable.
If I were in your position, I would look at some form of Transaction server that supports replication and set it up as a middle tier between your application and your database(s).

Related

Can we install other applications on SQL Server VM?

We have a SQL Server VM with a SQL Server instance running on it. Can we install other software on it including the application server on this SQL Server VM? And can we use it as a jump server to connect other SQL Server databases and managed instances?
I have a SQL Server VM with many other software installed on it and it is being used as a jump server. Want to know if we can continue with it or shall not be used for other purposes.
Want to know the cons of this approach.
Thanks & Regards
This is considered a bad practice.
Reasons:
You are using resources (CPU/Memory/IO/Network) from your (expensive) SQL Server
Your SQL Server license is paid by core, so if you would need to scale because of the other applications, this would impact your SQL server licensing cost.
SQL Server will consume the amount of memory that is configured, so if you set it to 90% of that server, your app server won't have any memory to use.
Troubleshooting will become harder because of shared resources.
Security: You'll open more ports then the SQL server ports increasing the attack surface
SQL server also has a specific set of best practices for the host. Eg: Disk Sector size, ...
If you enable lock pages in memory together with apps running on the same server, you are going to have a bad time.
...
So host your applications on a different server preferably in a different subnet for security reasons.
Create a seperate jump box, because remote sessions will always impact performance, even if they are idle.

HA a SQL database, combine failover cluster with AlwaysOn?

We have a BizTalk setup, its databases are setup on a failover cluster to achieve the HA (High Availability). Client have an application database that also needs to achieve the HA, usually I'd suggest to put on the same instance with BizTalk database but client DBA insists to use the AlwaysOn feature.
BizTalk Server does not support the alwayson due to some DTC complications, having said that, is it possible to enable the AlwaysOn feature on the same SQL Server to satisfy the customer needs while not disturbing the DTC requirement by BizTalk? Or it simply has to be two sets of SQL Server deployment?
Since Always On feature does not support MSDTC, BizTalk does not support Always On since it relies on MSDTC. See link msdn link (at the bottom of page). Your other database for which you need always on, put it on a separate SQL instance. It may share the same cluster node as BizTalk server SQL instance.

SQL Service Broker - communication scenario - migration from SQL 2008 R2 to SQL 2014

Summary: Is there anything new in SQL Server 2014 (versus 2008 R2) that does not allow the following scenario? Can the same approach be transfered to the new server?
The application uses SQL Service Broker to collect data from satellite SQL Express machines (technology computers, now two, soon 4, and possibly more) to the central SQL Server with SQL Server Standard edition.
It is based on simplified security settings without the need to exchange certificates. I was asked to migrate the solution from SQL Server 2008 R2 to SQL Server 2014.
The situation was described in details at SQL Service Broker -- one central SQL and more satelite SQL... beginner wants to understand details and the solution was based on the Remus Rusanu's answer.
Yes. All SQL Server releases, from 2005 to 2014 inclusive, are compatible with each other at the Service Broker layer. In fact the 2008 instances are not even going to be able to figure out they are talking to 2014.
You should be able to migrate one machine at a time, w/o taking down everything. If the upgrades are don in-place (keeping the machine name the same and preserving the SSB endpoint settings) then you won't have to change anything after the upgrade, it should just keep working.
If you do side-by-side upgrade then you will have to port the SSB endpoint settings and certificates used from one instance to the other, along with moving the database.
Keep in mind that if you have a problem and you are forced to rollback to a backup then your entire, distributed, system state will not be consistent (basically conversations will no longer match the send sequence number and receive sequence numbers) and you may have to force some close conversations (manual END ... WITH CLEANUP on a case by case) or nuke the entire broker in the DB (ALTER DATABASE ... SET NEW_BROKER). Lets hope you won't have to do this. If is feasible then you could simply stop the entire system (eg. run ALTER ENDPOINT ... STATE = STOPPED on all 3 nodes to stop all SSB communication) and then do a backup and then do the upgrade, now being safe to rollback the upgrade and restore since everythign is 'frozen'.

Insert rows into a SQL Server table from Oracle

I have an Oracle 10G database running on a Unix environmnent and have a requirement to write a PL/SQL job that will be running on the Oracle database that will populate tables in another database which is a microsoft SQL Server database running on a Windows platform.
Having looked around, it looks like this is possible via database links. Has anyone got any more information on this? For example how reliable is the connection and are there any disadvantages in having such a setup?
Chances are that i would have limited access to the SQL Server database. Is the above possible without having to make any changes to the SQL server database? (Assuming the DBA on the SQL server has configured the database to be accessed from other databases)
Thanks
Use the Oracle feature DG4ODBC, it is as reliable as any normal DBLINK setup, to the SQL Server side it will look like any other sort of client connection. You only need to do anything more elaborate if you are planning to do distributed transactions between Oracle and SQL Server (i.e. 2 Phase Commit). You will probably also want UnixODBC and FreeTDS.

SQL Server Replication

I have a device that continuously collects data and stores it on a local database. I would like to also replicate that data to a second computer over the network every 10 seconds to ensure data reliability. Should I use transaction replication to achieve this? What if the network connection is temporarily unavailable, will the replication service automatically transmit all the backlogged data once the connection is restored? Can the computer that collects the data be SQL Server Compact or does it have to be at least Workgroup edition to be a Publisher. The second PC will run SQL Server Express and would be a subscriber. Thanks.
I'd prefer to use mirroring or log shipping for something like this, but those options are off the table if your second PC is running Express.
The distribution agent will retry, however if the disconnect continues for an extended amount of time, your subscription may be deactivated or expired/dropped.
Your publisher must be at least Workgroup edition (which limits the number of subscribers).
See these links for the specifics on which editions support which features.
SQL 2008 Editions/Features
SQL 2005 Editions/Features
I think you will need at least work group edition to be your publisher. Other than that yes transaction replication should do the trick. It can run continuously and the "backlogged" data will be replicated once connectivity is restored.

Resources