暂无图片
暂无图片
5
暂无图片
暂无图片
暂无图片

数据库迁移过程中如何开启源库CD

Rhein 2025-05-06
115

在向高斯数据库迁移数据的过程中,需要开启源库及被迁移表的CDC,具体如下:

一、开启源库的CDC

开启源库的CDC命令:

exec sys.sp_cdc_enable_db

二、开启被迁移表的CDC

1、开启单个表的CDC命令

sys.sp_cdc_enable_table

@source_schema='dbo',

@source_name='test1',

@capture_instance='test2',

@supports_net_changes=0,@role_name=null

上述命令代表开启数据库test2中表test1的cdc。

2、开启同一个库中某几个表的CDC命令

USE test;

EXEC sys.sp_cdc_enable_table @source_schema = N'dbo', @source_name = N'test1',

@role_name = null;

USE test

EXEC sys.sp_cdc_enable_table @source_schema = N'dbo', @source_name = N'test2',

@role_name = null;

上述命令代表开启库test中表test1和test2的cdc。

3、批量开启指定库中所有表的CDC命令

BEGIN TRY  

DECLARE @source_name varchar(400);  

declare @sql varchar(1000)  

declare @dbname varchar(100), @enable bit

set @dbname='test';

set @enable = 1

DECLARE the_cursor CURSOR FAST_FORWARD FOR  

SELECT table_name  

FROM INFORMATION_SCHEMA.TABLES where TABLE_CATALOG=@dbname and table_schema='dbo' and table_name != 'systranschemas'  

OPEN the_cursor  

FETCH NEXT FROM the_cursor INTO @source_name   

WHILE @@FETCH_STATUS = 0  

BEGIN  

if @enable = 1  

set @sql =' Use '+ @dbname+ ';EXEC sys.sp_cdc_enable_table  

            @source_schema = N''dbo'',@source_name = '+@source_name+'  

          , @role_name = N'''+'dbo'+''''            

else  

set @sql =' Use '+ @dbname+ ';EXEC sys.sp_cdc_disable_table  

            @source_schema = N''dbo'',@source_name = '+@source_name+',  @capture_instance =''all'''  

exec(@sql)  

  FETCH NEXT FROM the_cursor INTO @source_name  

END   

CLOSE the_cursor  

DEALLOCATE the_cursor     

SELECT 'Successful'  

END TRY  

BEGIN CATCH  

CLOSE the_cursor  

DEALLOCATE the_cursor  

    SELECT   

        ERROR_NUMBER() AS ErrorNumber  

        ,ERROR_MESSAGE() AS ErrorMessage;  

END CATCH

上述命令代表批量开启库test中所有表的cdc。

三、注意事项

在开启表的CDC前必须先开启库的CDC,查看某一库的CDC是否开启,用如下命令:

select is_cdc_enabled from sys.databases

WHERE NAME='test'

上述命令表示查看库test的CDC是否开启,如果结果是1表示开启,0表示未开启。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论