Ⅰ sql server 2008实时同步mysql要怎么实现
实现两个Mysql数据库之间同步同步原理:
MySQL 为了实现replication 必须打开bin-log 项,也是打开二进制的MySQL 日志记录选项。MySQL 的bin log 二
进制日志,可以记录所有影响到数据库表中存储记录内容的sql 操作,如insert / update / delete 操作,而不记录
select 这样的操作。因此,我们可以通过二进制日志把某一时间段内丢失的数据可以恢复到数据库中(如果二进制日
志中记录的日志项,包涵数据库表中所有数据,那么, 就可以恢复本地数据库的全部数据了)。 而这个二进制日志,
如果用作远程数据库恢复,那就是replication 了。这就是使用replication 而不用sync 的原因。这也是为什么要设
置bin-log = 这个选项的原因。
在同步过程中,最重要的同步参照物,就是同步使用那一个二进制日志文件,从那一条记录开始同步。下面就介绍
下怎样实现两个Mysql数据库之间的主从同步。
一、 概述
MySQL从3.23.15版本以后提供数据库复制(replication)功能,利用该功能可以实现两个数据库同步、主从模式、
互相备份模式的功能。本文档主要阐述了如何在linux系统中利用mysql的replication进行双机热备的配置。
二、 环境
操作系统:Linux 2.6.23.1-42.fc8 # SMP(不安装XEN)
Mysql版本:5.0.45-4.fc8
设备环境:PC(或者虚拟机)两台
三、 配置
数据库同步复制功能的设置都在MySQL的配置文件中体现,MySQL的配置文件(一般是my.cnf):在本环境下
为/etc/my.cnf。
3.1 设置环境:
IP的设置:
A主机 IP:10.10.0.119
Mask:255.255.0.0
B主机 IP:10.10.8.112
Mask:255.255.0.0
在IP设置完成以后,需要确定两主机的防火墙确实已经关闭。可以使用命令service iptables status查看防火墙状态
。如果防火墙状态为仍在运行。使用service iptables stop来停用防火墙。如果想启动关闭防火墙,可以使用setup命
令来禁用或定制。
最终以两台主机可以相互ping通为佳。
3.2 配置A主(master) B从(slave)模式
3.2.1 配置A 为master
1、增加一个用户同步使用的帐号:
GRANT FILE ON *.* TO ‘backup’@'10.10.8.112' IDENTIFIED BY ‘1234’;
GRANTREPLICATION SLAVE ON *.* TO ‘backup’@'10.10.8.112' IDENTIFIED BY ‘1234’;
赋予10.10.8.112也就是Slave机器有File权限,只赋予Slave机器有File权限还不行,还要给它REPLICATION SLAVE的权
限才可以。
2、增加一个数据库作为同步数据库:
create databbse test;
3、创建一个表结构:
create table mytest (username varchar(20),password varchar(20));
4、修改配置文件:
修改A的/etc/my.cnf文件,在my.cnf配置项中加入下面配置:
server-id = 1 #Server标识
log-bin
binlog-do-db=test #指定需要日志的数据库
5、重起数据库服务:
service mysqld restart
查看server-id:
show variable like ‘server_id’;
实例:
mysql> show variables like 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 1 |
+---------------+-------+
1 row in set (0.00 sec)
6、用show master status/G命令看日志情况。
正常为:
mysql> show master status/G
*************************** 1. row ***************************
File: mysqld-bin.000002
positiion: 198
Binlog_Do_DB: test,test
Binlog_Ignore_DB:
1 row in set (0.08 sec)
3.2.2 配置B 为slave
1、增加一个数据库作为同步数据库:
create databbse test;
2、创建一个表结构:
create table mytest (username varchar(20),password varchar(20));
3、修改配置文件:
修改B的/etc/my.cnf文件,在my.cnf配置项中加入下面配置:
server-id=2
master-host=10.10. 0.119
master-user=backup #同步用户帐号
master-password=1234
master-port=3306
master-connect-retry=60 #预设重试间隔60秒
replicate-do-db=test #告诉slave只做backup数据库的更新
5、重起数据库服务:
service mysqld restart
查看server-id:
show variables like ‘server_id’;
实例:
mysql> show variables like 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 2 |
+---------------+-------+
1 row in set (0.00 sec)
6、用show slave status/G命令看日志情况。
正常为:
mysql> show slave status/G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.10.0.119
Master_User: backup
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysqld-bin.000001
Read_Master_Log_Pos: 98
Relay_Log_File: mysqld-relay-bin.000003
Relay_Log_Pos: 236
Relay_Master_Log_File: mysqld-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: test,test
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 98
Relay_Log_Space: 236
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0
1 row in set (0.01 sec)
3.2.3 验证配置
分别使用insert, delete , update在A主机进行增删改查数据库;查看B主机的数据库是否与A主机一致;若一致,则配
置成功。
3.3双机互备模式
如果在A主机加入slave设置,在B主机加入master设置,则可以做B->A的同步。
1、在A主机的配置文件中 mysqld配置项加入以下设置:
master-host=10.10.8.112
master-user=backup
master-password=1234
replicate-do-db=test
master-connect-retry=10
2、在B的配置文件中 mysqld配置项加入以下设置:
log-bin
binlog-do-db=test
注意:当有错误产生时,*.err日志文件同步的线程退出,当纠正错误后,要让同步机制进行工作,运行slave
start。
重起A、B机器,则可以实现双向的热备份。
总之,成功完成以上配置后,在主服务器A的test库里添加数据或删除数据,在从服务器B的test库里马上也能
看到相应的变更。两台服务器的同步操作可以说是瞬间完成的。
Ⅱ 请问sql2008做了双机热备(带镜像服务器),在web里面如何配置,让其自动寻找未挂掉的数据库服务器
最简单的案例就是利用Rose软件,实现。过程挺简单,两个主机的数据库镜像互相备份,主机和丛机。但是如果不用软件,用windowsserver2008自带的集群软件也能弄,就是操作复杂,安装复杂。
Ⅲ windows server 2012r2+sql2008双机热备谁做过需要注意什么问题
注意,需要三台服务器,一台域控服务器,两台数据库服务器双机,如果两台不能成功。
Ⅳ sql server 2008 如何实现数据库定时备份到局域网内另外一台服务器上
这个偶一般是先在sql 2008中建一个计划,先将数据库备份到本机某个目录下,然后用ftp设定好这个目录。然后在另一台机器上安装一个备份软件,比如second之类的,定时从这个ftp同步过去就行了。
Ⅳ 如何sqlserver2008双向同步
1、查询SQL中的所有表: Select TABLE_NAME FROM 数据库名称.INFORMATION_SCHEMA.TABLES Where TABLE_TYPE='BASE TABLE' 执行之后,就可以看到数据库中所有属于自己建的表的名称 2、查询SQL中所有表及列: Select dbo.sysobjects.name as Table_name, dbo.syscolumns.name AS Column_name FROM dbo.syscolumns INNER JOIN dbo.sysobjects ON dbo.syscolumns.id = dbo.sysobjects.id Where (dbo.sysobjects.xtype = 'u') AND (NOT (dbo.sysobjects.name LIKE 'dtproperties')) 3、在Sql查询分析器,还有一个简单的查询方法: EXEC sp_MSforeachtable @command1="sp_spaceused '?'" 执行完之后,就可以看到数据库中所有用户表的信息 4、查询总存储过程数:select count(*) 总存储过程数 from sysobjects where xtype='p' 附:xtype类型D = 默认值或 DEFAULT 约束
F = FOREIGN KEY 约束L = 日志FN = 标量函数
IF = 内嵌表函数
P = 存储过程
PK = PRIMARY KEY 约束(类型是 K)
RF = 复制筛选存储过程S = 系统表TF = 表函数
TR = 触发器U = 用户表UQ = UNIQUE 约束(类型是 K)V = 视图X = 扩展存储过程 另:在sqlserver中取得某个数据库中所有表名的sql语句 select sysobjects.name from sysobjects.xtype ='U';SELECT name
WHERE (xtype = 'U') 在数据库的sysobjects表里有这个数据库全部表的信息, xtype值为'U'的就是表名 注意:一般通过上述方法获得全部用户表示都会有一个dtproperties表,SQLSERVER 默认它也是用户表,想要从用户表中排出,需要加上限定条件 status>0,即:select * from sysobjects where xtype='U' and status>0
Ⅵ windows server 2008+sql server 2008+DELL MD3200I 如何做双机热备份
1. 用系统自带的MSCS功能,需要存储。
特点是免费,但是部署和维护相当复杂(需要搭建域环境,若出现故障后需要重装域环境修复),非凡人所能驾驭 :(
2. 买一套第三方软件来做,如果有存储用HA架构产品,没有存储用Mirror架构。
比较知名,性价比不错的有叫Rose的双机热备厂商,还有像赛门铁克这类似的厂商都有,你可以问一问。
求分哦,亲
Ⅶ sqlserver2008 局域网内异机备份,该怎么解决
1、如果你是想着把A电脑备份出来的文件存放在B电脑上,这个容易,B电脑上共享一个文件夹,A电脑上用映射网络驱动器的方法,把B电脑上共享的文件夹当成一个分区。然后象普通的备份一样,指定备份文件到网络驱动器上就可以了。
2、比较大一些的企业的服务器一般都会使用硬盘阵列,如果有硬盘阵列,分别备份到本机硬盘和阵列硬盘基本上就可以了。
3、如果你想做到的是两台服务器上的数据同步,也就是所谓的双机热备,那技术要求就高了,或是购买SQL双机热备软件(很贵,几万一套)。
Ⅷ sql server2008数据库实时同步怎么做一台服务器在电信,另一台是本地机
SQL Server在数据同步方面应用比较多还是复制技术,通过事务复制可以实现准实时同步,准实时同步的意思并不是真正的实时同步,总会有一定延迟的,这主要取决于两台服务器间的网络状况,即便网络状况非常好,比如内网中的2台机器,也是会有一定延迟的,一般在几秒吧。
另外事务复制对表结构要求比较严格,需要有主键。如果需要整库同步,可以考虑使用数据库镜像,这对表没有太多要求。
通过备份方式也可以实现,SQL Server本身也提供了日志传送功能来通过备份进行同步,但是这样数据延迟就更大了,取决于备份恢复的频率,可能并不符合楼主需要。
复制和数据库镜像这两项技术都不是一两句话能说清楚的,详细信息可以查看微软MSDN文档
http://msdn.microsoft.com/zh-cn/library/bb500346%28v=SQL.100%29.aspx
http://msdn.microsoft.com/zh-cn/library/bb934127%28v=SQL.100%29.aspx
Ⅸ 如何把sqlserver2008r2数据库的备份,每天都备份到其他台电脑。
1、sqlserver2008R2备份文件不可以还原到sqlserver2005。
2、sqlserver2005备份文件可以还原到sqlserver2008R2。
3、如果数据库中数据不多总体体积不是太大(最多几百M,具体自个试),可以用导出数据库到脚本(过程中可以选导出兼容版本),然后在SQL2005中运行脚本还原。
4、要是数据量非常大,那导出脚本过程可能很困难,甚至无法完成。
Ⅹ 微软的Server2008标准版操作系统和SQL2008数据库能做双机热备吗
你说的是镜像服务器,我只测试了企业版的,个人感觉效率极其低下,主要是想相当于你写数据库要同时写两台机器。标准版好像有数据订阅功能,也基本上可以做到上面的功能,就是有个时间差。