如何同步远程服务器数据库和本地数据库
本文关键字:数据库 服务器 何同步 同步 | 更新日期: 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中。
谢谢。
我建议这样做:
- 在本地数据库中创建一个暂存表;
- 在需要同步的表发生变化时在本地数据库中创建一个触发器;
- 更新staging表;
每隔一段时间将登台表同步到服务器一次(每分钟/每小时/每天一次,取决于您的需要);
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调用