sqlserver 怎么定份备份定时还原

发布于 2021-11-26 06:15:33 字数 88 浏览 775 评论 4

两天不同的服务器上面两个数据库,sqlserver 2000 和2008 ,需要备份2000上面的数据库,然后还原到2008上面,项目操作的是2008的数据库,怎么实现,急用。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

离去的眼神 2021-11-26 19:26:04

嗯,sqlserver本身有调度任务的

霞映澄塘 2021-11-26 19:23:07

麻烦在问一下,如果两台数据库不在同一个服务器上我要怎么把一台服务器上数据库备份到另一台服务器上,然后用另外这台服务器还原,还是可以在一台服务器上操作?

反话 2021-11-26 19:20:26

sqlserver本身就支持定时的调度,通过调度执行这个存储过程,还原也是相应的方法:

**   

  • **功能描述:日志记录存储过程   
  • **创建时间:2010年9月28日   
  • **调用方法:EXECUTE PR_INSERT_LOG    
  • '执行数据库备份','数据库备份成功',getdate()   
  • **   
  • **/   
  • IF EXISTS( SELECT * FROM SYSOBJECTS  WHERE NAME='PR_INSERT_LOG')   
  • BEGIN  
  •   DROP PROC PR_INSERT_LOG   
  • END  
  • GO   
  •   
  • CREATE PROC PR_INSERT_LOG   
  • @LOG_NAMES VARCHAR(100),   
  • @LOG_STATUSS VARCHAR(100),   
  • @LOG_TIMES VARCHAR(100)   
  • AS  
  • BEGIN  
  •    IF EXISTS( SELECT * FROM SYSOBJECTS  WHERE NAME='DATABASE_LOG')   
  •    BEGIN  
  •    DROP TABLE DATABASE_LOG   
  •    END  
  •    CREATE TABLE DATABASE_LOG   
  •     (   
  •      LOG_ID INT IDENTITY(1,1) PRIMARY KEY NOT NULL,   
  •      LOG_NAME VARCHAR(100) NOT NULL,   
  •      LOG_STATUS VARCHAR(100) NOT NULL,   
  •      LOG_TIME VARCHAR(100) NOT NULL  
  •    )   
  • INSERT INTO DATABASE_LOG VALUES(@LOG_NAMES,@LOG_STATUSS,@LOG_TIMES)   
  • END  
  • GO   
  •   
  •   
  •   
  •   
  • /**   
  • **功能描述:数据库备份存储过程   
  • **创建时间:2010年9月28日   
  • **调用方法:PR_BACKUP_DB @FL OUT,'JB_CRM_TEAM0',   
  • 'D:JB_CRM_TEAM0.BAK'  
  • **   
  • **/   
  • IF EXISTS( SELECT * FROM SYSOBJECTS  WHERE NAME='PR_BACKUP_DB' AND XTYPE='P')   
  • BEGIN  
  •  DROP PROC PR_BACKUP_DB   
  • END  
  •   
  •   
  • GO   
  • CREATE PROC PR_BACKUP_DB   
  • @BACKUP_DB_NAME VARCHAR(128),   
  • @FILENAME VARCHAR(1000),   
  • @BAKTIME VARCHAR(100)   
  • AS  
  • DECLARE @SQL NVARCHAR(4000),@PAR NVARCHAR(1000)   
  • IF NOT EXISTS(   
  •      EXECUTE PR_INSERT_LOG '执行数据库备份','数据库备份开始执行',@BAKTIME   
  •      SELECT * FROM MASTER..SYSDATABASES   
  •      WHERE NAME=@BACKUP_DB_NAME   
  • )   
  •     BEGIN  
  •     EXECUTE PR_INSERT_LOG '执行数据库备份','数据库不存在',@BAKTIME   
  •     RETURN  
  •     END  
  • ELSE  
  •     BEGIN  
  •      IF RIGHT(@FILENAME,1)<>'' AND CHARINDEX('',@FILENAME)<>0   
  •     BEGIN  
  •      SELECT @PAR='@FILENAME VARCHAR(1000)'  
  •      SELECT @SQL='BACKUP DATABASE '+@BACKUP_DB_NAME+' TO DISK=@FILENAME WITH INIT'  
  •      EXECUTE SP_EXECUTESQL @SQL ,@PAR,@FILENAME   
  •      EXECUTE PR_INSERT_LOG '执行数据库备份','数据库备份成功',@BAKTIME   
  •      RETURN  
  •    END  
  •     ELSE  
  •    BEGIN  
  •    EXECUTE PR_INSERT_LOG '执行数据库备份','文件类型有误',@BAKTIME   
  •    RETURN  
  •  END  
  • END  
  • GO   
  •   
  • GO   
  • EXECUTE PR_BACKUP_DB  'JB_CRM_TEAM0','D:JB_CRM_TEAM0.BAK','2010年9月28日'  
  • GO  
  •  

    南汐寒笙箫 2021-11-26 19:03:20

    可以自己搞个备份还原的脚本。。 文件的传输用ftp 我就是这样干的。。

    ~没有更多了~
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文