sql server 2008 如何实现数据库定时备份到局域网内另外一台服务器上

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql server 2008 如何实现数据库定时备份到局域网内另外一台服务器上相关的知识,希望对你有一定的参考价值。

这个偶一般是先在sql 2008中建一个计划,先将数据库备份到本机某个目录下,然后用ftp设定好这个目录。然后在另一台机器上安装一个备份软件,比如secondcopy之类的,定时从这个ftp同步过去就行了。 参考技术A 备份到另一台的数据库里面还是按文件的形式备份追问

麻烦这位兄弟介绍下 两种方式分别的详细步骤 好吗?

追答

同步的话 是需要在sql里面设置 参考给的资料 资料是同步备份

一下的是备份成文件
http://cache.baidu.com/c?m=9d78d513d98202f14fece47e0f14dd71192597124fc0a46368a4e45fe5124c40377193cf30551013d3b46b1705b83a56fd814565470037b6ebdff849cacb983f5f8d30420608c1014cdc43e98d0432c0538d47acea5cf0ba8763cffe8c8e8a1544ca245427dfedca1c47428127bb0962a3f7c31351080dbaef326ee25b71349c225db541f8e6346c0396f6aa060a9c74&p=8b2a920dc5934ea55fb2dd3b5754&user=baidu&fm=sc&query=SQL2008+%CA%FD%BE%DD%BF%E2+%B6%A8%CA%B1%B1%B8%B7%DD&qid=8b28a0b008be851c&p1=1

参考资料:http://www.51nb.com/forum/thread-937531-1-1.html

追问

谢谢这位兄弟,我看到你发的网址,这是备份到本机上的。请问有备份成文件到其它服务器上的吗?

追答

资料里是在做试验当然用一台机器 明白了没有 SQL可以通过网络访问到别台机器的数据库实例的

本回答被提问者采纳

数据库定时执行sql mysql定时任务 event 执行定时任务 和sql server定时任务 作业执行定时任务


  本片文章目的:抛弃触发器

    学会使用mysql sqlserver   使用定时任务执行定时sql


  1. sqlserver 定时任务

      sql server集成化微软开发特别的好一个结构化数据库。提供的功能也是相对较为完善。

      本篇文章带大家过一下sqlserver 定时作业 完成一些定任务。

      适用场景: 定时统计数据到一个报表里。

      作业开启的方式也是较为简单,右击作业新建作业

下面一步步跟着来:

数据库定时执行sql

数据库定时执行sql

数据库定时执行sql

 第三部写入要重复执行的sql ,定时执行的sql 语句:我这里写的是

select * from user;

数据库定时执行sql

点击计划  跟着数据编号找即可。

数据库定时执行sql

 然后确定就可以了。

这是我的计划;

执行语句这里是一分钟查询一次 user 表

通过下面的作业活动监视就能看到详情

微软的sqlserver 在界面交互提示这块做的还是 非常棒的。操作上也是非常方便好用的。

 

数据库定时执行sql

 下面我把定时作业导出来sql:

USE [msdb]
GO

/****** Object: Job [test_report] Script Date: 07/18/2020 22:33:01 ******/
BEGIN TRANSACTION
DECLARE @ReturnCode INT
SELECT @ReturnCode = 0
/****** Object: JobCategory [[Uncategorized (Local)]]] Script Date: 07/18/2020 22:33:01 ******/
IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N[Uncategorized (Local)] AND category_class=1)
BEGIN
EXEC @ReturnCode = msdb.dbo.sp_add_category @class=NJOB, @type=NLOCAL, @name=N[Uncategorized (Local)]
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

END

DECLARE @jobId BINARY(16)
EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=Ntest_report,
@enabled=1,
@notify_level_eventlog=0,
@notify_level_email=0,
@notify_level_netsend=0,
@notify_level_page=0,
@delete_level=0,
@description=N无描述。,
@category_name=N[Uncategorized (Local)],
@owner_login_name=Nsa, @job_id = @jobId OUTPUT
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
/****** Object: Step [test] Script Date: 07/18/2020 22:33:01 ******/
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=Ntest,
@step_id=1,
@cmdexec_success_code=0,
@on_success_action=1,
@on_success_step_id=0,
@on_fail_action=2,
@on_fail_step_id=0,
@retry_attempts=0,
@retry_interval=0,
@os_run_priority=0, @subsystem=NTSQL,
@command=Nselect * from user;,
@database_name=Ntestdb,
@flags=0
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobschedule @job_id=@jobId, @name=Ntest_today,
@enabled=1,
@freq_type=4,
@freq_interval=1,
@freq_subday_type=4,
@freq_subday_interval=1,
@freq_relative_interval=0,
@freq_recurrence_factor=0,
@active_start_date=20200718,
@active_end_date=99991231,
@active_start_time=0,
@active_end_time=235959,
@schedule_uid=N78ca78ae-f869-40de-baa8-7b9800d143fd
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N(local)
IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
EndSave:

GO

2. mysql 定时任务 定时执行sql脚本

mysql 在5.1 以后也提供了用于执行定时任务的方法。 

下面一起来看下:

实现思路 创建一个存储过程, 存储过程执行要执行的sql 然后使用 mysql event 去调用定时执行 存储过程。

这个实现的就时统计没消失各项参数的最大值:

1. 先创建一个存储过程:

名字叫做 insert_report_ysterday

 



CREATE PROCEDURE insert_report_yesterday ()
BEGIN
truncate table report_yesterday;
INSERT into report_yesterday(max_CO2,max_CH4,max_temperature,max_humidity,hour,create_time)
select MAX(CO2) max_CO2,MAX(CH4) max_CH4, MAX(temperature) max_temperature,
MAX(humidity) max_humidity, DATE_FORMAT(uploadTime,%Y%m%d%H) hour,now() from sensordata where uploadTime BETWEEN DATE_FORMAT(NOW(),%Y-%m-%d 00:00:00) AND DATE_FORMAT(NOW(),%Y-%m-%d 23:59:59)
group by hour;
END

这时候查看函数就能看到存储过程了;

数据库定时执行sql

2. 创建事件 名字叫做 e_monitor 五秒一次 可以了这就。

-- 设置5秒执行一次
create event if not exists e_monitor
on schedule every 5 second
on completion preserve
do
call insert_report_yesterday();

 查看刚才创建的 事件

数据库定时执行sql

 这时候看统计表就有了数据了。

 哈哈哈  名字叫做yesterday  实际测试统计的今天的哈 哈哈 

本篇文章到此结束。写作不易。请勿抄袭! 谢谢! 

以上是关于sql server 2008 如何实现数据库定时备份到局域网内另外一台服务器上的主要内容,如果未能解决你的问题,请参考以下文章

cwRsync实现windows下文件定时同步(sql server 2008R2 备份文件定时同步)

sql server 2005怎么自动定时删除3天前的备份文件?

sql server 2005怎么自动定时删除3天前的备份文件?

如何清理sql server 2008日志

物联网应用与维护基于SQL sever 2008 R2的数据库定时处理

怎么备份SQL Server 2008数据库