我有一个SQL数据库,但是我担心数据库的服务器或者机房有可能不稳定,于是我想在另外一个机房的服务器上建立一个备用数据库,并且,备用数据库的上数据要一直和主数据库同步。请问这种解决方案具体怎么做?
我主要有以下两个思路:第一个,当主数据库被修改之后,自动把修改内容去与备用数据库同步。
但这有一个问题:我不知道当用户对主数据库进行了增删改之后,主数据库怎么自动将改后的结果去与备用数据库同步。第二个,同时对两个数据库进行修改。
但这也有一个问题:当我对两个数据库修改的这个过程中,其中一个数据库出错,那么两个数据库的数据就不同了,这怎么办?我主要是想知道MSSQL数据库是否有自动同步的机制,如果有,那么我想使用数据库自带的机制肯定比我自己写代码要好一些。如果没有,那么就只能自己个同步程序了。
望高手解答。

解决方案 »

  1.   

    DR可以用Databaes Mirroring或者Log shipping
      

  2.   

    1.MSSQL的HA技术主要包括:群集【实例级】、镜像【数据库级】、事务日志传送(logshiping)【数据库级】、
    复制技术【数据库级】。2、在楼主的需求中,并不是为了ONLINE 7*24小时的访问,排除群集。
    复制一般是一种分发和多点订阅的实现读写分离的技术,楼主场景可排除。
    剩下的镜像和事务日志传送很适合应用。
    3. 镜像按配置界面实现简单,实现后主库和备库同步,但备库不可读,只有为备库建立了快照才可以读
    由于镜像实时同步的,因此但用户误删除了数据,镜像就恢复不了,此时需要应用日志传送4. 日志传送(logshipping)通过复制日志。传送日志和恢复日志来实现主库和从库的同步。且同步的从库
    为可读状态(standy,readonly),由于恢复日志过程有一定时间差,所以同步状态存在时间差,正好可以解决因为误删数据而形成的恢复应用场景。5, 注意:同一表数据库可以实现镜像同步的同时,去实现日志传送同步。