Need a File Replication Solution Between Two Server 2003 Machines

I have two Windows Server 2003 systems:

I have a very busy dental office running a critical application. If this application does not work, the office shuts down. I recently migrated to a brand new Dell server with RAID5, dual CPUs. This new system recently lost the motherboard, creating a lot of agony between me and the nine dentist/hygienists.

My plan is to beef up the old machine with RAID, more memory, etc., and use this system as a "hot" standby. In order to have a hot standby, I need a method to replicate files to the hot standby system.

This dental application contains about 35GB in database files (Sybase Adaptive Server).  I am looking for a "robust" method to keep the data on the old machine in sync with the on-line data server so if I lose the main on-line server, I could switch back to the older system by pointing the client workstations to standby servername.

I am looking for advice on what software is available to replicate on a near real-time basis all the new, updated or deleted files from the on-line system to the standby server, and be able to do this without bringing the system to it's knees. I recall that Sybase on Unix offered a replication server to do just what I am looking for. Unfortunately, the software developers didn't consider the repercussions of failures.

Can anyone offer me a solution?
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Would Windows Clustering Services work for you?  

Some prerequisites, however:

1. You need some sort of shared media so that each system can use the drives
2. Curious if SYbase Adaptive Server is cluster-aware (may be something to ask them).
3. You MUST have Windows 2003 ENTERPRISE.

If the above are true, I would recommend using Windows Clustering Services and read the howto guide at

If the above are not true, you could use an application like double-take (Some call it a poor mans cluster) to accomplish the job.  This will not require any of the prerequisites I mentioned above.  Doubletake will let you select certain areas on the filesystem that it should replicate over to the other server.  In this case, you would build a standby server exactly as your production one, install and configure Doubletake to have it copy your database files over to the other server.  If/When server1 fails, you will have all your database and critical files on your standy server ready to go.

There are alot of solutions for this, some costly, some not. It depends on what you really want to back up and how you want it to work. The least costly is something that Wondows Server 2003 Already has on it. You can use the DFS system that is part of it to replicated Shared Folders to the Other machine. If you are using Windows Server 2003 R2 that works better as it usses a better DFSr version of the same software.

Or you could also look into Secure Copy, Double-Take or IP Replicator.

There are also some very good but way expensive Software Failover systems that can on error change or to a backup server that is exactly the same as the original server.
Joe WoodhousePrincipal ConsultantCommented:
The problem with implementing some form of clustering or disk-based replication is that unless you take a lot of care to use something that is Sybase-friendly, nothing will work. Sybase like any database doesn't appreciate operating system file operations being performed on its database files. Generally you have to do something very low level in disk hardware (like RAID 1 or mirroring, it looks like a single disk to the O/S), or something Sybase-specific.

If you just copy files, you have no guarantee that what you have on the other side is a usable database. Anything at the Windows level would have to be done while ASA was down - Sybase doesn't support any direct file copies.

Sybase Adaptive Server comes with a built-in replication solution called SQL Remote, but that's really more for replicating rows than for the entire database (although it can certainly do that as well) - it's about distributing data, not creating a hot standby. It can't even really do *warm* standby - the Replication Server you're thinking of was for the enterprise ASE database, although it can be made to work with ASA as well.

My advice - if you do this in software, do it in Sybase software or don't do it at all. Hardware might be easier (but almost certainly more expensive).
Powerful Yet Easy-to-Use Network Monitoring

Identify excessive bandwidth utilization or unexpected application traffic with SolarWinds Bandwidth Analyzer Pack.

If the Doctors want a system that will NOT GO DOWN AT ALL and will always have an EXACT copy look into NEVERFAIL. This is simply the best there is:
As Joe said, the only software solution is Sybase Replication Server.  (BTW you did not say if this was an Adaptive Server Anywhere or Adaptive Server Enterprise installation?)

Rep server is not really cheap nor is it simple for the uninitiated to setup.  It is an extremely robust, capable, and efficient facility though.  I will let Joe expound on the Rep Server solution because he has substantially more experience with it than I do.

Hardware is your other option and there are two paradigms: complete, redundant storage arrays, or share a very reliable array between your production and warm standby servers.  In either case, you are essentially setting up a storage area network (SAN).

The first configuration is to have two systems, each with external storage arrays, and some facility that keeps the two storage arrays in sync.  Some of the new SMB storage array offerings provide for this in hardware where the arrays talk over an Ethernet or some other comm link.  Writes to one array are duplicated on the other with minimal (but not necessarily zero) delay.  There are also software solutions for this but I don't know if they are available for Windows.

If/when the production system fails, you simply startup the database on the backup system against the backup storage array and away you go.

The second configuration starts with a very high quality storage array.  That means dual controllers, dual power supplies, dual attach disk drives, battery-backed cache, and dual attachment to each of the hosts.  There is essentially no single point of failure so you trust your storage array not to go buns-up.  You then phsyically attach the array to both systems.  If/when the production systems fails, you simply boot up the cold standby, it takes over control of the storage, and away you go.

Unfortunately, the kind of storage array you are talking about is not cheap.  As an example, an IBM DS3400 with dual controllers, 6 drives, and two dual-fiber channel interfaces is around $15,000.  That might be within your budget.  As it is, this is a pretty cost effective solution since ti uses SAS drives and does not have dual simultaneous paths to the drives (as far as I know).  Figure on paying twice as much for a full-up all Fiber-Channel solution.

If you can eat the $15,000 I would go that way.  Then all you have to do is setup the Windows failover (Wolf-somethingortheother) stuff and you are on your way.

There are a three other solutions you can consider but they each have limitations.

The first is simply to run both systems, do periodic database dumps on the production system, ftp the files across, and restore them on the backup system.  If you do this before opening in the morning, during lunch hour, and after close in the evening, you will have fairly good coverage and not loose more than an average of 2 or 3 hours of input.  Depending on the load on the server, you might bet by with doing hourly backups which makes the potential data loss pretty trivial.  This is the route I would take if the budget is tight.  It works, it is easy to automate, and the potential downtime is minimal.

Another approach is to dump just the transaction logs on a regular basis (hourly or even every half hour), copy those to the backup server, and apply them there.  That way your backup server is even more up to date.  The problem here is that, should anything get out of sync, you are stuck with your last full database dump (which you are doing at least nightly anyway, right?).  This setup, while workable, can be a bit touchy.

The third possibility still requires you to setup a SAN with two storage arrays, but they don't have to be enterprise-grade.  The idea here is that, instead of spending megabucks on one really great array, you spend it on two cheaper ones and let Sybase mirror the writes to both of them.  If you loose an array, you are still functional.  If you loose the production server, you just failover to the backup windows server.  The limitation here is that you will pay a performance penalty for software mirroring.

So to summarize...
 - Rep Server is a great solution if you have the $ and Skills to get it going and is transparent.
 - The budget solution is to do regular dumps, transfers, and restores on the backup system.
    This is the cheapest by far but may, if your DB is really 35GB of data, be a performance issue.
 - The enterprise-grade solution is to by a really good to great storage array, setup of your SAN,
    and implement Windows failover between the production and backup servers.  This is not a
    cheap solution, however, once you get it setup and running, it is as close to bulletproof as
    a 9-dentist office is likely to invest in.

Finally, if you don't want to live the scene from the movie Marathon Man where poor Dustin Hoffman gets his front tooth drilled without the benefit of Novicane, I suggest you stop buying that D**L "stuff".  Just because someone paints it black and/or puts it in a rack-mount does not make it enterprise-grade hardware.  You are not the first one to find this out the hard way.

I have been trying to convince one of my clients that they were riding the wrong horse for two years and got no traction because they were convinced that their customers wanted the least expensive solution.  That was until recently when their customers beat them about the head with a stick over the poor reliability.  Now they have started to switch to IBM.  Turns out IBM is only a bit more expensive that D**L and that downtime is way more expensive than the hardware...

IBM and SUN both make real enterprise grade x86 servers (Intel or AMD chipsets) at competitive prices.  I am a little less thrilled with HP because it is hard to sort out what is/was HP and what is Compaq.  Also look for things like NEBS compliance among other indicators that the gear is designed to run 24x7 and keep running.

Best of luck,
RayRiderAuthor Commented:
This is for lazarus98 and AnthonyP9618:

Believe it or not, this application runs on each workstation.  The 2003 is running the Sybase dataserver. None of the clients are logging into a domain; they are configured as a workgroup. The clients access the data servers via \\machinename.

Question: Since none of the workstations are using ActiveDirectory, Can DFS perform replication? Maybe this is a dumb question. I am more Unix experienced and do not see the big picture with DFS. Obviously, I need to know more about Server 2003.
You can still run DFS from Server to server. The Workstation do not need to log into the domain that I can think of. Your Database is only on the Servers correct? If so you can use the DFS to just replicate from Server to Server.

Bill and Joes idea however about the SysBase's Replication is good though, but yes more pricey. You could try the DFS or other cheap measure and see how that works. But if you really want reliable... It's always more $$$.
Joe WoodhousePrincipal ConsultantCommented:
I doubt any Sybase replication solution is a good fit here. It needs a lot of ongoing DBA attention, the skill curve is steep if you've never used it before, and at the end of the day it won't give you what you say you're looking for - minimal downtime with minimal dataloss. It is not a clustering solution. It is not a hot standby solution. Depending on the transaction volumes and the power of your hardware you expect it to be running a little behind.

I think hardware is the answer here. You set it up and it's invisible. You pay a lot for it because enterprise-level availability is not cheap. As Bill says then if you want to eliminate points of failure you're duplicating everything. You also have to start spending hardware money like you really mean it - you will NOT be able to achieve what you're looking for with workgroup-level machines.

I suspect that because there's been an outage the users are having a bit of a tantrum and are making unrealistic demands. They can have enterprise mission-critical infrastructure but it can't be achieved on workgroup infrastructure and it can't be done on a small office budget. They're talking about wanting the type of infrastruture you find in a bank...

I like Bill's idea of a regular Sybase backup and restore approach. You have a second machine for if the first dies. You'll be reasonably up to date with data - even backup/restore twice a day will do a pretty good job. It doesn't involve any new types of hardware or software. It's fully supported by Sybase. And most importantly, it will work.

I can't urge you strongly enough to abandon any Windows-based file replication. It will not work, you will have a damaged database, it isn't supported by Sybase. A database is not just a bunch of files.
If your on the Cheap and still need to get the job done you can always setup to do an Offline backup of the DB. This is easy and even with Sysbase it will work. Depending on your necessity of backup, you could schedule it for any time of day or frequency. You just have to rwite a script to bring down the services then backup then start services again. Its a bit more clunky but cost effetive and not that hard.
Joe WoodhousePrincipal ConsultantCommented:
Er, all Sybase database backups are online. In fact they can *only* be backed up while online - any offline backup method like copying the underlying files isn't supported by Sybase for most (all?) of their database products.
Intresting... You would not better than I, as you have a great deal of experience with it, but I have not seen a problem when I have dealt with offline sybase backups. But I'm not expert on Sybase at all.. So you word is better than mine on this for sure.

RayRider, I differ to Joe on his suggestions here, as he is (was) directly working for and with Sybase.
Joe WoodhousePrincipal ConsultantCommented:
There *are* ways of having Sybase ASE be ok with copying underlying files, and the rules might be very different for Sybase ASA. Since I'm not sure which Sybase database product we're dealing with here, it's best to play it safe. (For the record, Sybase IQ also wants online backups but again there are ways of doing offline in a safe and supported way.)
Let me first agree with Joe about file-based replication schemes and reiterate:  DFS will be a total disaster.  If you must have a specific reason, (there are several,) it does not preserve the order in which things are written to files.  With a running database, you are assured of getting an unrecoverable database that way.  You will eventually need the backup server and database and find you have nothing but garbage.

you can look here for some info on backing up Sysbase Databases.

Perhaps Joe or Bill have some better info?
You want to have mirrored servers ,so that if one goes down ,the other takes over,right?

Two solutions :

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
RayRiderAuthor Commented:
I received a lot of good comments on my problem.  I split the points between the two suggestions that actually gave me a solution even though they are expensive.

The Sybase dataserver is not running as a stand-alone server. The application is wrapped around an ASA configuration. There is no way to get to the dataserver to run a Sybase backup, or replication process. This configuration is like SQLanywhere50, compiled into the application.

I still want to check into DFS to see if that is an option to make the two \data folders between a machine mirror from a source to a target.

If anyone thinks I can get a good procedure on DFS, I will open up a new question with another 500 points.

Any Comments?
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Windows Server 2003

From novice to tech pro — start learning today.