远程服务器上的SQL数据库如何备份到本地??

远程服务器上的SQL数据库如何备份到本地??,第1张

有多种方法,常用的两种有:
1.从数据库上备份数据为文件形式,下载到本地,导入即可.
2.在MSSQL的安装路径,即:MSSQL\Data\找到你想要的数据库,比如:111.ldf,111mdf,下载到本地,在本地 *** 作,附加数据库,选中这两个文件,即可.

一是直接把数据文件下载到本地,不过要停止服务器上的SQL。
二是服务器上对SQL进行备份,在本地还原,还原时注意选择还原路径
三是通过一些辅助软件进行网络本地同步。。。
常用就是备份,还原。

1、客户机上弄个samba共享目录。服务器端映射到本地目录。directory指向这个本地目录。
2、客户机使用ftp,plsql有一些ftp支持包。
3、plsql调用服务器端的dos 或者 shell 命令。
4、plsql使用java存储过程解决远程传输的问题。
解决方法很多,第一种最简单。就是映射远程目录即可。

sql数据库这样发布网站:
1、WindowsServer2012打开服务器管理器-仪表盘-添加角色和功能。
2、在服务器上下载SQL&&VS以便调试。
3、链接数据库引擎-点击数据库-附加数据库。
4、点击安全性-登录名-新建登录名-选择sqlserver身份验证(账号密码),选择默认数据库(刚添加的数据库),点击选项卡用户映射(勾选刚添加的数据库)-状态(允许)-完成。

一般来说,要配置SQL数据库,首先要确保网站服务器已经安装了SQL数据库服务器,然后再配置数据库连接,这个可以通过更改网站配置文件来实现,配置文件一般会包括数据库地址、用户名、密码等信息。最后,要在网站服务器上创建一个新的数据库,并将网站的数据库文件导入到新的数据库中,以完成数据库的配置。

-定时同步服务器上的数据

--例子:

--测试环境,SQL Server2000,远程服务器名:xz,用户名为:sa,无密码,测试数据库:test

--服务器上的表(查询分析器连接到服务器上创建)

create table [user](id int primary key,number varchar(4),name varchar(10))
go

--以下在局域网(本机 *** 作)

--本机的表,state说明:null 表示新增记录,1 表示修改过的记录,0 表示无变化的记录

if exists (select from dbosysobjects where id = object_id(N'[user]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [user]
GO
create table [user](id int identity(1,1),number varchar(4),name varchar(10),state bit)
go

--创建触发器,维护state字段的值

create trigger t_state on [user]
after update
as
update [user] set state=1
from [user] a join inserted b on aid=bid
where astate is not null
go

--为了方便同步处理,创建链接服务器到要同步的服务器

--这里的远程服务器名为:xz,用户名为:sa,无密码

if exists(select 1 from mastersysservers where srvname='srv_lnk')
exec sp_dropserver 'srv_lnk','droplogins'
go
exec sp_addlinkedserver 'srv_lnk','','SQLOLEDB','xz'
exec sp_addlinkedsrvlogin 'srv_lnk','false',null,'sa'
go

--创建同步处理的存储过程

if exists (select from dbosysobjects where id = object_id(N'[dbo][p_synchro]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo][p_synchro]
GO
create proc p_synchro
as
--set XACT_ABORT on

--启动远程服务器的MSDTC服务

--exec masterxp_cmdshell 'isql /S"xz" /U"sa" /P"" /q"exec masterxp_cmdshell ''net start msdtc'',no_output"',no_output

--启动本机的MSDTC服务

--exec masterxp_cmdshell 'net start msdtc',no_output

--进行分布事务处理,如果表用标识列做主键,用下面的方法

--BEGIN DISTRIBUTED TRANSACTION
--同步删除的数据

delete from srv_lnktestdbo[user]
where id not in(select id from [user])

--同步新增的数据

insert into srv_lnktestdbo[user]
select id,number,name from [user] where state is null

--同步修改的数据

update srv_lnktestdbo[user] set
number=bnumber,name=bname
from srv_lnktestdbo[user] a
join [user] b on aid=bid
where bstate=1

--同步后更新本机的标志

update [user] set state=0 where isnull(state,1)=1
--COMMIT TRAN
go

--创建作业,定时执行数据同步的存储过程

if exists(SELECT 1 from msdbsysjobs where name='数据处理')
EXECUTE msdbdbosp_delete_job @job_name='数据处理'
exec msdbsp_add_job @job_name='数据处理'

--创建作业步骤

declare @sql varchar(800),@dbname varchar(250)
select @sql='exec p_synchro' --数据处理的命令
,@dbname=db_name() --执行数据处理的数据库名
exec msdbsp_add_jobstep @job_name='数据处理',
@step_name = '数据同步',
@subsystem = 'TSQL',
@database_name=@dbname,
@command = @sql,
@retry_attempts = 5, --重试次数
@retry_interval = 5 --重试间隔

--创建调度

EXEC msdbsp_add_jobschedule @job_name = '数据处理',
@name = '时间安排',
@freq_type = 4, --每天
@freq_interval = 1, --每天执行一次
@active_start_time = 00000 --0点执行
go


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13163094.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-14
下一篇 2023-06-14

发表评论

登录后才能评论

评论列表(0条)

保存