华为云RDS-SQLserver主备集群定时作业手动同步实践指导
【背景】
SQLserver原生产品不支持主备之间作业自动同步,主备集群架构下备节点需手动配置作业,避免主节点故障或者降备,备节点升主后集群作业不生效。影响数据同步或者数据迁移。以下操作指导介绍如何在华为云上通过DAS登录备节点同步主节点作业。
【试验环境】
【环境配置】
1. 通过以下SQL脚本,创建timedtask数据库、taskinfo表、初始化表数据
--创建数据库
CREATE DATABASE timedtask;
--创建表
USE [timedtask];
CREATE TABLE [dbo].[taskinfo] (
[ID] int NOT NULL,
[taskname] varchar(50) NULL,
[begintime] datetime DEFAULT GETDATE() NULL,
[endtime] datetime DEFAULT GETDATE() NULL,
PRIMARY KEY CLUSTERED ([ID])
);
--插入数据
insert into [taskinfo] ([ID],[taskname],[begintime],[endtime]) values ('1','taskinfo-table-back','2020-10-09 14:21:07.417','2020-10-09 14:21:07.417');
insert into [taskinfo] ([ID],[taskname],[begintime],[endtime]) values ('2','taskinfo-table-back','2020-10-08 14:22:04.000','2020-10-08 14:22:04.000');
insert into [taskinfo] ([ID],[taskname],[begintime],[endtime]) values ('3','taskinfo-table-back','2020-10-07 14:23:17.000','2020-10-07 14:23:17.000');
insert into [taskinfo] ([ID],[taskname],[begintime],[endtime]) values ('4','taskinfo-table-back','2020-10-06 14:22:23.173','2020-10-06 14:22:23.173');
2. 下载安装SQL Server Management Studio数据库客户端
3. 准备作业执行SQL脚本
DECLARE @UNIXTIME varchar(255),
@TABLES_NAME varchar(255),
@str_sql nvarchar(MAX);
SET @UNIXTIME =cast (DATEDIFF(SS,'1970-1-1 00:00:00',GETUTCDATE()) as varchar(255));
SET @TABLES_NAME='taskinfo_bak_'+ @UNIXTIME;
SET @str_sql='select * into ' + @TABLES_NAME + ' from taskinfo' ;
EXEC sp_executesql @str_sql;
【操作步骤】
1. 使用SSMS客户端登录数据库(主节点)
2. 创建作业“备份taskinfo表”,并每周日凌晨0点执行作业(主节点)。
3. 将新建的作业“备份taskinfo表”导出为SQL脚本用于同步作业到备节点 ,右击鼠标选择编辑作业脚本为-CREATE到-新查询编辑器窗口,如下图所示。
4. 登录备节点:使用DAS工具登录数据库,点击“SQL操作-SQL窗口”,点击“主库 切换SQL执行点”,如下图所示
5. 确认登录到备库后,然后在SQL查询窗口执行,从“步骤三拷贝的SQL脚本”,并确认执行成功。
注意:一般数据库作业都是大批量事务,建议在业务低峰期执行,避免在高峰期执行影响数据库的性能。
- 点赞
- 收藏
- 关注作者
评论(0)