sqljob连接mysql_深入SqlServer2008 数据库同步的两种方式(Sql JOB)的分析介绍

数据库同步的两种方式:

1、sql JOB的方式

sql Job的方式同步数据库就是通过sql语句,将一个数据源中的数据同步到目标数据库中。特点是它可以灵活的通过sql的方式进行数据库之间的同步操作。可以在制定的时间时间作为任务计划自动执行。缺点是需要写sql来进行操作。既然是数据库之间的同步就涉及到数据库之间的连接。建立连接是同步的第一步。sql Server建立连接可以通过系统存储过程建立【是否还有其他方式,我还不清楚】。存储过程有以下几个:sp_droplinkedsrvlogin、sp_dropserver、sp_addlinkedserver、sp_addlinkedsrvlogin。前面两个是删除数据库之间连接的,后两个是建立数据库之间连接的。

删除连接存储过程参数用法如下:

sp_addlinkedsrvlogin [ @rmtsrvname =] 'rmtsrvname'

[ ,[ @useself =] 'useself'][,[ @locallogin =] 'locallogin']

[ ,[ @rmtuser =] 'rmtuser'][ ,[ @rmtpassword =] 'rmtpassword']

@rmtsrvname =] 'rmtsrvname'

登录映射的链接服务器名称。rmtsrvname 的数据类型为 sysname,没有默认设置。

@useself =] 'useself'

登录名称。useself的数据类型为 varchar(8),默认设置为 TRUE。true 值指定 sql Server 验证的登录使用其自己的凭据以连接到 rmtsrvname,而忽略 rmtuser 和 rmtpassword 参数。false 值指定 rmtuser 和 rmtpassword 参数用来连接到特定 locallogin 的 rmtsrvname。如果 rmtuser 和 rmtpassword 也设置为 NULL,则连接链接服务器不需使用任何登录或密码。对于 Windows NT 身份验证登录而言,useself为 true 则无效,除非 Microsoft Windows NT® 环境支持安全帐户委托,并且,提供程序支持 Windows 身份验证(此时不再需要创建值为 true 的映射,不过创建仍然有效)。

@locallogin =] 'locallogin'

登录。locallogin的数据类型为 sysname,默认设置为 NULL。NULL 值指定此条目将应用于所有连接到 rmtsrvname的本地登录。如果值不为 NULL,则 locallogin 可以是一个 sql Server 登录或 Windows NT 用户。必须授予 Windows NT 用户直接访问 sql Server 或通过其作为已授予访问权限的组的成员来访问 sql Server 的权限。

@rmtuser =] 'rmtuser'

useself 为 false时,用来连接 rmtsrvname的用户名,rmtuser 的数据类型为 sysname,默认设置为 NULL。

@rmtpassword =] 'rmtpassword'

rmtuser 相关的密码。rmtpassword 的数据类型为 sysname,默认设置为 NULL。

代码值

用户登录到本地服务器并执行分布式查询,以访问链接服务器上的表时,本地服务器必须登录链接服务器上,代表该用户访问该表。使用 sp_addlinkedsrvlogin 来指定本地服务器登录链接服务器的登录凭据。

登录和链接服务器上的远程登录之间的默认映射通过执行 sp_addlinkedserver 自动创建。默认映射说明连接到链接服务器代表的登录时,sql Server 使用本地登录的用户凭据(等同于将链接服务器的 @useself 设置为 true 时执行 sp_addlinkedsrvlogin)。使用 sp_addlinkedsrvlogin只可以更改特定的本地服务器的默认映射或添加新映射。若要删除默认映射或任何其它映射,请使用 sp_droplinkedsrvlogin。

sql Server 可以自动地使用正在发出查询的用户的 Windows NT 安全凭据(Windows NT 用户名称和密码),以连接到链接服务器,而不是必须使用 sp_addlinkedsrvlogin创建一个预设的登录映射。

用法示例:

sql Server™ 上的已知远程和链接服务器列表中删除服务器。

sp_dropserver [ @server =] 'server'

, [ @droplogins =] { 'droplogins' | NULL} ]

@server =] 'server'

删除的服务器。server 的数据类型为 sysname,没有默认值。server 必须已经存在。

@droplogins =] 'droplogins' | NULL

droplogins,那么对于 server,那些相关的远程及链接服务器登录也将被删除。@droplogins的数据类型为 char(10),带有默认值 NULL。

代码值

链接服务器登录条目,当在该服务器上运行 sp_dropserver 时,会导致一条错误信息,该消息说明:在删除远程或链接服务器之前,必须先删除相关的登录。当删除服务器时,为了删除服务器的所有远程及链接服务器登录,请使用 droplogins 参数。

用户定义的事务内执行 sp_dropserver。

sysadmin 或 setupadmin 固定服务器角色的成员才可以执行 sp_dropserver。

用法示例:

用法如下:

链接的服务器,使其允许对分布式的、针对 OLE DB 数据源的异类查询进行访问。在使用 sp_addlinkedserver创建链接的服务器之后,此服务器就可以执行分布式查询。如果链接服务器定义为 Microsoft® sql Server™,则可执行远程存储过程。

sp_addlinkedserver[ @server =] 'server'[ ,[ @srvproduct =] 'product_name']

[ ,[ @provider =] 'provider_name']

[ ,[ @datasrc =] 'data_source']

[ ,[ @location =] 'location']

[ ,[ @provstr =] 'provider_string']

[ ,[ @catalog =] 'catalog']

@server = ] 'server'

链接服务器的本地名称,server的数据类型为 sysname,没有默认设置。

sql Server 实例,server 可以为 servername\instancename。此链接的服务器可能会被引用为下面示例的数据源:

SELECT *FROM [servername\instancename.]pubs.dbo.authors.

data_source,则服务器为该实例的实际名称。

@srvproduct = ] 'product_name'

添加为链接服务器的 OLE DB 数据源的产品名称。product_name的数据类型为 nvarchar(128),默认设置为 NULL。如果是 sql Server,则不需要指定 provider_name、data_source、location、provider_string 以及目录。

@provider = ] 'provider_name'

provider_name 对于安装在当前计算机上指定的 OLE DB 提供程序必须是唯一的。provider_name的数据类型为nvarchar(128),默认设置为 NULL。OLE DB 提供程序应该用给定的 PROGID 在注册表中注册。

@datasrc = ] 'data_source'

名称。data_source的数据类型为 nvarchar(4000),默认设置为 NULL。data_source被当作 DBPROP_INIT_DATASOURCE 属性传递以便初始化 OLE DB 提供程序。

链接的服务器针对于 sql Server OLE DB 提供程序创建时,可以按照 servername\instancename 的形式指定 data_source,它可以用来连接到运行于特定计算机上的 sql Server 的特定实例上。servername 是运行 sql Server 的计算机名称,instancename 是用户将被连接到的特定 sql Server 实例的名称。

@location = ] 'location'

数据库的位置。location的数据类型为 nvarchar(4000),默认设置为 NULL。location作为 DBPROP_INIT_LOCATION 属性传递以便初始化 OLE DB 提供程序。

@provstr = ] 'provider_string'

provider_string 的数据类型为 nvarchar(4000),默认设置为 NULL。Provstr作为 DBPROP_INIT_PROVIDERSTRING 属性传递以便初始化 OLE DB 提供程序。

链接服务器后,可将 SERVER 关键字用作 SERVER=servername\instancename 来指定实例,以指定特定的 sql Server 实例。servername 是 sql Server 在其上运行的计算机名称,instancename 是用户连接到的特定的 sql Server 实例名称。

@catalog = ] 'catalog'

catalog 的数据类型为sysname,默认设置为 NULL。catalog作为 DBPROP_INIT_CATALOG 属性传递以便初始化 OLE DB 提供程序。

代码值

sp_addlinkedserver 返回此消息:

Procedure 'sp_addlinkedserver' expects parameter '@server',which was not supplied.

sp_addlinkedserver 返回此消息:

Server added.

用法示例:

EXEC sp_addlinkedserver 'DBLink',' ','sqlOLEDB',"10.0.222.12"

sql Server™ 实例上的登录与链接服务器上远程登录之间的映射。sp_addlinkedsrvlogin [ @rmtsrvname =] 'rmtsrvname'

[ ,[ @useself =] 'useself'][,[ @locallogin =] 'locallogin']

[ ,[ @rmtuser =] 'rmtuser'][ ,[ @rmtpassword =] 'rmtpassword']@rmtsrvname =] 'rmtsrvname'

登录映射的链接服务器名称。rmtsrvname 的数据类型为 sysname,没有默认设置。

@useself =] 'useself'

登录名称。useself的数据类型为 varchar(8),默认设置为 TRUE。true 值指定 sql Server 验证的登录使用其自己的凭据以连接到

rmtsrvname,而忽略 rmtuser 和 rmtpassword 参数。false 值指定 rmtuser 和 rmtpassword 参数用来连接到特定 locallogin 的 rmtsrvname。

rmtuser 和 rmtpassword 也设置为 NULL,则连接链接服务器不需使用任何登录或密码。对于 Windows NT 身份验证登录而言,useself为 true 则无效,

支持安全帐户委托,并且,提供程序支持 Windows 身份验证(此时不再需要创建值为 true 的映射,不过创建仍然有效)。

@locallogin =] 'locallogin'

登录。locallogin的数据类型为 sysname,默认设置为 NULL。NULL 值指定此条目将应用于所有连接到 rmtsrvname的本地登录。如果值不为 NULL,

locallogin 可以是一个 sql Server 登录或 Windows NT 用户。必须授予 Windows NT 用户直接访问 sql Server 或通过其作为已授予访问权限的组的成员来访问

sql Server 的权限。

@rmtuser =] 'rmtuser'

useself 为 false时,用来连接 rmtsrvname的用户名,rmtuser 的数据类型为 sysname,默认设置为 NULL。

@rmtpassword =] 'rmtpassword'

rmtuser 相关的密码。rmtpassword 的数据类型为 sysname,默认设置为 NULL。代码值

用户登录到本地服务器并执行分布式查询,以访问链接服务器上的表时,本地服务器必须登录链接服务器上,代表该用户访问该表。使用 sp_addlinkedsrvlogin 来指定本地服

登录链接服务器的登录凭据。

登录和链接服务器上的远程登录之间的默认映射通过执行 sp_addlinkedserver 自动创建。默认映射说明连接到链接服务器代表的登录时,sql Server

登录的用户凭据(等同于将链接服务器的 @useself 设置为 true 时执行 sp_addlinkedsrvlogin)。使用 sp_addlinkedsrvlogin只可以更改特定的本地服务器

添加新映射。若要删除默认映射或任何其它映射,请使用 sp_droplinkedsrvlogin。

sql Server 可以自动地使用正在发出查询的用户的 Windows NT 安全凭据(Windows NT 用户名称和密码),以连接到链接服务器,而不是必须使用

sp_addlinkedsrvlogin 创建一个预设的登录映射。用户连接到 sql Server。

支持 Windows 身份验证模式(例如,运行于 Windows NT 上的 sql Server)。

sql Server 上执行 sp_addlinkedsrvlogin 定义)的链接服务器执行身份验证后,远程数据库中单独对象的权限由链接服务器决定,

用户定义的事务中执行 sp_addlinkedsrvlogin。sysadmin 和 securityadmin 固定服务器角色的成员才可以执行 sp_addlinkedsrvlogin。用法示例,下面正式介绍sql JOB的开发。直接用步骤介绍了。

a)新建作业。如下图:

a、 新建作业。如下图:

2013042811542925.png

b、 点击【新建作业】对话框的【常规】选项卡,填写 sql JOB的名称。如下图2013042811542926.png

c、 点击【新建作业】对话框的【步骤】选项卡,填写 步骤名称。

2013042811542927.png

2013042811542928.png

d、 进行作业的第一个步骤------建立数据库连接操作。如下图:

2013042811542929.png

2013042811542930.png

e、 进行作业的第下一个步骤。如下图:

2013042811542931.png

e、设置作业执行计划

2013042811542932.png

f、点击确定,完成sql JOB的开发。

g、完成后作业下面就多了刚开发的作业。如下:

2013042811542933.png

h、作业制作完成后,可以立即让它执行。如果不让它执行,它也会在按照制定频率执行。测试作业:

2013042811542934.png

2013042811542935.png

2013042811542936.png

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值