同步备用服务器

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: /*--说明:     下面的代码演示了如何利用日志还原功能,将主数据库中的数据变化及时反馈到备用数据库中     备用数据库的数据可以随时用于查询,但不能被更新(备用数据库只读)。     --*/         --首先,创建一个演示用的数据库(主数据库)     CREATE   DATA...
 /*--说明:  
  下面的代码演示了如何利用日志还原功能,将主数据库中的数据变化及时反馈到备用数据库中  
  备用数据库的数据可以随时用于查询,但不能被更新(备用数据库只读)。  
  --*/  
   
  --首先,创建一个演示用的数据库(主数据库)  
  CREATE   DATABASE   Db_test  
  ON  
  (   NAME   =   Db_test_DATA,  
              FILENAME   =   'c:\Db_test.mdf'   )  
  LOG   ON    
  (   NAME   =   Db_test_LOG,  
        FILENAME   =   'c:\Db_test.ldf')  
  GO  
   
  --对数据库进行备份  
  BACKUP   DATABASE   Db_test   TO   DISK='c:\test_data.bak'   WITH   FORMAT  
  GO  
   
  --把数据库还原成备用数据库(演示主数据库与这个备用数据库之间的同步)  
  RESTORE   DATABASE   Db_test_bak   FROM   DISK='c:\test_data.bak'    
  WITH   REPLACE,STANDBY='c:\db_test_bak.ldf'  
  ,MOVE   'Db_test_DATA'   TO   'c:\Db_test_data.mdf'  
  ,MOVE   'Db_test_LOG'   TO   'c:\Db_test_log.ldf'  
  GO  
   
  --启动   SQL   Agent   服务  
  EXEC   master..xp_cmdshell   'net   start   sqlserveragent',no_output  
  GO  
   
  --创建主服务器数据库与备用服务器数据库之间同步的作业  
  DECLARE     @jogid   uniqueidentifier  
  EXEC   msdb..sp_add_job  
  @job_id   =   @jogid   OUTPUT,  
  @job_name   =   N'数据同步处理'  
   
  --创建同步处理步骤  
  EXEC   msdb..sp_add_jobstep    
  @job_id   =   @jogid,  
  @step_name   =   N'数据同步',  
  @subsystem   =   'TSQL',  
  @command   =   N'  
  --主数据库中进行日志备份  
  BACKUP   LOG   Db_test   TO   DISK='c:\test_log.bak'  WITH   FORMAT   
注:当备份日志出现“当恢复模型为 SIMPLE 时,不允许使用 BACKUP LOG 语句”,进入MSSQL的企业管理器,选择相应的数据库实体,点击右键选择"属性",选择"选项"标签页,把故障还原模型修改成"大容量日志记录的",然后重新备份一下!
    
  --备用数据库中还原主数据库的日志备份(应用主数据库中的最新变化  
  --实际应该是主数据库备份与备用数据库的还原作业应该分别在主服务器和备用服务器上建立,并且备份文件应该放在主服务器和备用都能访问的共享目录中  
  RESTORE   LOG   Db_test_bak   FROM   DISK='c:\test_log.bak'   WITH   STANDBY='c:\test_log.ldf',  
  @retry_attempts   =   5,  
  @retry_interval   =   5  

  --创建调度(每分钟执行一次)  
  EXEC   msdb..sp_add_jobschedule  
  @job_id   =   @jogid,  
  @name   =   N'时间安排',  
  @freq_type=4,  
  @freq_interval=1,  
  @freq_subday_type=0x4,  
  @freq_subday_interval=1,  
  @freq_recurrence_factor=1  
   
  --   添加目标服务器  
  EXEC   msdb.dbo.sp_add_jobserver    
  @job_id   =   @jogid,  
  @server_name   =   N'(local)'    
  GO  
   
  --通过上述处理,主数据库与备用数据库之间的同步关系已经设置完成  
  --下面开始测试是否能实现同步  
   
  --在主数据库中创建一个测试用的表  
  CREATE   TABLE   Db_test.dbo.TB_test(ID   int)  
  GO  
   
  --等待1分钟30秒(由于同步的时间间隔设置为1分钟,所以要延时才能看到效果)  
  WAITFOR   DELAY   '00:01:30'  
  GO  
   
  --查询一下备用数据库,看看同步是否成功  
  SELECT   *   FROM   Db_test_bak.dbo.TB_test  
   
  /*--结果:  
  ID                      
  -----------    
   
  (所影响的行数为   0   行)  
  --*/  
   
  --测试成功  
  GO  
   
  --最后删除所有的测试  
  DROP   DATABASE   Db_test,Db_test_bak  
  EXEC   msdb..sp_delete_job   @job_name=N'数据同步处理'  
  GO  
   
   
  /*===========================================================*/  
   
  /*--服务器档机处理说明  
  使用这种方式建立的数据库同步,当主数据库不可用时(例如,主数据库损坏或者停机检修)  
  可以使用以下两种方法使备用数据库可用。  
  --*/  
   
  --1.   如果主数据库损坏,无法备份出最新的日志,可以直接使用下面的语句使备用数据库可读写(丢失最近一次日志还原后的所有数据)。  
  --RESTORE   LOG   Db_test_bak   WITH   RECOVERY  
   
   
  --2.   如果主数据库可以备份出最新日志,则可以使用下面的语句。  
  --先备份主数据库的最新的事务日志  
  --BACKUP   LOG   Db_test   TO   DISK=''c:\test_log.bak''   WITH   FORMAT  
  --再在备用数据库中恢复最新的事务日志,并且使备用数据库可读写(升级为主数据库)  
  --RESTORE   LOG   Db_test_bak   FROM   DISK='c:\test_log.bak'  
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
30天前
|
监控 Linux Shell
|
3月前
|
PHP
PHP遍历文件并同步上传到服务器
在进行网站迁移时,由于原网站的图片文件过多,采用打包下载再上传的方式耗时过长,且尝试使用FTP工具从旧服务器传输至新服务器时失败。为解决此问题,特使用PHP编写了一款工具,该工具能扫描指定目录下的所有`.webp`图像文件,并将其上传至新的服务器,极大地提高了迁移效率。
105 16
|
3月前
|
存储 Ubuntu Linux
如何在服务器之间同步文件?
如何在服务器之间同步文件?
100 3
|
3月前
|
Linux
Linux——服务器时间不同步
Linux——服务器时间不同步
47 0
|
5月前
|
存储 运维 数据挖掘
服务器数据恢复—raid5热备盘同步失败导致阵列崩溃的数据恢复案例
某品牌DS5300存储,包含一个存储机头和多个磁盘柜,组建了多组RAID5磁盘阵列。 某个磁盘柜中的一组RAID5阵列由15块数据盘和1块热备硬盘组建。该磁盘柜中的某块硬盘离线,热备盘自动替换并开始同步数据,在热备硬盘同步数据的过程中,又有一块硬盘出现问题离线,数据同步失败,该RAID5阵列失效,卷无法挂载访问。
|
4月前
|
JavaScript API
前后端数据交互.js文件的axios的写法,想要往后端发送数据,页面注入API,await的意思是同步等待服务器数据,并返回,axios注入在其他页面,其他页面调用的时候,同步作用
前后端数据交互.js文件的axios的写法,想要往后端发送数据,页面注入API,await的意思是同步等待服务器数据,并返回,axios注入在其他页面,其他页面调用的时候,同步作用
|
4月前
|
缓存 Linux 开发工具
centos设置ntp服务同步目标服务器时间
【7 月更文挑战第 1天】linux+centos设置ntp服务同步目标服务器时间
|
6月前
|
Linux 数据库
ntp如何配置同步服务器
【5月更文挑战第19天】ntp如何配置同步服务器
188 2
|
6月前
|
Linux 数据库
ntp如何配置同步服务器
【5月更文挑战第24天】ntp如何配置同步服务器
195 0
|
6月前
|
Linux
winscp文件增量同步到linux服务器
winscp文件增量同步到linux服务器
174 9
下一篇
无影云桌面