如何同步远程服务器数据库和本地数据库

本文关键字:数据库 服务器 何同步 同步 | 更新日期: 2023-09-27 17:49:39

我想在
期间从远程服务器DB到本地DB获取单个表的所有详细信息。页面加载事件或其他一些好的方法,这应该作为后端过程发生,任何人都可以帮助我解决这个问题。

1。在桌面和Web应用程序中创建单个应用程序。
2。当用户在桌面应用程序中注册新客户时,新客户应在应用程序启动时在Web应用程序数据库中添加。

注意:

服务器DB表列可能与本地DB略有不同。每次在服务器中添加新用户时,它应该在UserPage时更新本地DB。加载Aspx页面

使用的工具: ASP。. NET、SQL SERVER 2008.

, 设置数据库名称为sample,表名称为customer

Table Header in Server DB: Cus_id,Cus_name,Cus_address,Cus_email,Cus_mob,Link_Id
Table Headers in Local DB: Cus_id,Cus_name,Cus_address,Cus_email,Cus_mob,Cus_password,Link_Id

这里的Link_id通常用于桌面和web应用程序,最初在web应用程序中,
当添加新用户时,所有数据都存储在DB中,除了
Link_id,这是作为响应从服务器获取并保存在本地DB中。

谢谢。

如何同步远程服务器数据库和本地数据库

我建议这样做:

    在本地数据库中创建一个暂存表;
  1. 在需要同步的表发生变化时在本地数据库中创建一个触发器;
  2. 更新staging表;
  3. 每隔一段时间将登台表同步到服务器一次(每分钟/每小时/每天一次,取决于您的需要);

    A)在本地数据库中创建一个链接数据库连接。创建一个过程,将数据从staging表同步到服务器数据库;

    B)或者使用ASP同步数据库。

这个解决方案比直接在ASP中这样做更好。. NET,因为当您的服务器出现可用性问题时,它仍然可以工作。

一个完整的工作示例:

create table x
( id          numeric(18, 0) identity(1,1)  not null
, description nvarchar(1000)                not null
)
go
create table x_staging
( id          numeric(18, 0) not null
, description nvarchar(1000) not null
, synced      bit            not null default 0
)
go
/*
 * create this one on remote server in a database called test
create table remote_table
( id          numeric(18, 0) identity(1,1)  not null
, source_id   numeric(18, 0)                not null
, description nvarchar(1000)                not null
)
go
*/
create trigger x_ori on x
after insert
as
begin
  insert into x_staging
  ( id
  , description
  , synced
  )
  select id
  ,      description
  ,      0 -- false
  from   inserted
  ;
end
go
create procedure sync
as
begin
  declare @id numeric(18,0)
  declare @description nvarchar(1000)
  declare @x_cursor cursor
  set     @x_cursor = cursor for
  select  id
  ,       description
  from    x_staging
  open    @x_cursor
  fetch next
  from  @x_cursor into @id, @description
  while @@fetch_status = 0
  begin
    insert
    into   [REMOTE_SERVER].test.dbo.remote_table
    ( source_id
    , description
    )
    values
    ( @id
    , @description
    )
    ;
    update x_staging
    set    synced = 1
    where  id = @id
    ;
  fetch next
  from @x_cursor into @id, @description
  end
  close @x_cursor
  deallocate @x_cursor
end
go
insert
into   x
( description
)
values
( 'test'
)
go
begin
  exec sync;
end

调用sync将进行同步。注意要在另一个服务器上创建remote_table,并创建一个数据库链接。

你可以使用ms sync框架2.1,它允许用户从两端(客户端-服务器)同步…你可以安排sync fun调用