Sql Sever 2008同步MySql 5.1

同步方案:

1 使用 Sql Sever的链接服务器,从而对链接数据的进行插入同步

条件:

MySql ODBC驱动

MySql端的管理权限,同步前需要我们创建表

建立链接服务器SQL脚本:

EXEC master.dbo.sp_addlinkedserver 
@server = N'MyLink', 
@srvproduct = N'localhost', 
@provider = N'MSDASQL', 
@provstr = N'Driver={MySQL ODBC 5.1 Driver};Server=118.123.20.224;
           Database=db_test;User=root;Password=root;Option=3;'

EXEC master.dbo.sp_addlinkedsrvlogin 
@rmtsrvname = N'MyLink',
@useself = N'False',
@rmtuser = N'root',
@rmtpassword = N'root'

链接服务器相关操作

--查询
select * from openquery(mylink,'select * from db_test');

--插入
insert into openquery(mylink,'select * from db_test')
select 1,'Peter',30;

--更新
update openquery(mylink,'select * from db_test')
set name=‘joke’ where id=1;

--删除
delete from openquery(mylink,'select * from db_test')
where id=1;

使用链接服务器的弊端在于:

1 同步前必须在目的数据库(MySql)创建新表

2 亲自写同步语句

3 开启Sql Server 代理 进行作业定时执行,以完成数据上传同步,在这里需要精致的设置续传方法

4 不能使用触发器与储存过程,因为MySql ODBC没有提供这些认为的服务

5 执行上传语句需要太长的时间,SQL Server传输过程你会发现在数百万记录时就需要数个小时的传输时间。

6 对MySql重复操作有时会发生错误,即多次在Sql中对MySql链接服务器进行同表操作时,会发生不能插入查询的情况,可能是MySql资源被占用问题。


REL: LINK

继续探索Sql Server 到MySql间的同步

2 数据库同步软件 SyncNavigator

这是专门的Sql Server 到MySql的数据库同步软件,操作十分简单。

遇到的问题

1 SyncNavigator需要在源数据库写入同步字段,这是一个timestamp类型,这可能会对使用该数据库的原应用程序或WEB造成影响

更好的方案:

在本地创建一个同步表,使用定时执行的存储过程将源数据表拷贝到同步表,再将同步表同步到目的数据库,以完成数据同步

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Java中连接到SQL ServerMySQL数据库,你需要使用相应的数据库驱动程序和连接字符串。下面是一个示例代码,展示了如何连接到SQL ServerMySQL数据库: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DatabaseConnection { // SQL Server数据库连接参数 private static final String SQL_SERVER_URL = "jdbc:sqlserver://localhost:1433;databaseName=mydatabase"; private static final String SQL_SERVER_USERNAME = "username"; private static final String SQL_SERVER_PASSWORD = "password"; // MySQL数据库连接参数 private static final String MYSQL_URL = "jdbc:mysql://localhost:3306/mydatabase"; private static final String MYSQL_USERNAME = "username"; private static final String MYSQL_PASSWORD = "password"; public static void main(String[] args) { // 连接到SQL Server try { Connection sqlServerConnection = DriverManager.getConnection(SQL_SERVER_URL, SQL_SERVER_USERNAME, SQL_SERVER_PASSWORD); System.out.println("Connected to SQL Server"); // TODO: 执行SQL操作 sqlServerConnection.close(); } catch (SQLException e) { System.out.println("Failed to connect to SQL Server"); e.printStackTrace(); } // 连接到MySQL try { Connection mysqlConnection = DriverManager.getConnection(MYSQL_URL, MYSQL_USERNAME, MYSQL_PASSWORD); System.out.println("Connected to MySQL"); // TODO: 执行SQL操作 mysqlConnection.close(); } catch (SQLException e) { System.out.println("Failed to connect to MySQL"); e.printStackTrace(); } } } ``` 请注意,上述代码中的连接字符串和凭据应根据你的实际情况进行修改。另外,你需要确保已经下载并导入了相应的数据库驱动程序,以便在代码中使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值