TFS数据迁移之sync_by_blk

本文档记录了两套tfs 2.2.16系统之间的数据迁移过程。

Source环境介绍:

Tfs 主nameserver: 192.168.1.225/24 (vip 229)

Tfs 从nameserver: 192.168.1.226/24

Tfs  data server 1: 192.168.1.226/24 (启动三个挂载点,每个挂载点分配20G空间)

Tfs  data server 1: 192.168.1.227/24 (启动三个挂载点,每个挂载点分配20G空间)

Tfs  data server 1: 192.168.1.228/23 (启动三个挂载点,每个挂载点分配20G空间)

Target环境介绍:

Tfs namserver: 192.168.1.12/24   (未配置vip)

Tfs dataserver: 192.168.1.12/24   (启动三个挂载点,每个挂载点分配20G空间)

一:查看当前source服务器状态

# /usr/local/tfs/bin/ssm -s 192.168.1.229:8108 
show > machine -a

二:查看当前target服务器状态

# /usr/local/tfs/bin/ssm -s 192.168.1.12:8108 
show > machine -a

三:从source上导出当前存有数据的block的block_id号

# /usr/local/tfs/bin/ssm -s 192.168.1.229:8108
show > block > /tmp/1.txt
show > exit
 
# wc -l /tmp/1.txt 
8406 /tmp/1.txt
 
通过观察,过滤掉version, filecount, size, del_file, del_size这几个字段全部为0的那些block_id,剩下的block上都存有实际的数据。
 
# grep -v ‘0          0          0          0          0‘  /tmp/1.txt  > /tmp/2.txt

取出block_id号
# cut -c 1-10 /tmp/2.txt  > /tmp/3.txt

缩进空格
# for i in $(cat /tmp/3.txt);do echo $i >> /tmp/4.txt; done 
# wc -l /tmp/4.txt
119 /tmp/4.txt

四:使用tfs自带的sync_by_blk进行数据迁移

# /usr/local/tfs/bin/sync_by_blk -s 192.168.1.229:8108 -d 192.168.1.12:8108 -f /tmp/4.txt

通过观察日志发现成功同步文件15515个,失败个数为0,未同步的为532

# /usr/local/tfs/bin/ssm -s 192.168.1.12:8108
show > block

五:数据比对

# /usr/local/tfs/bin/ssm -s 192.168.1.229:8108
show > block

Source上的filecount总数为16349

Target上的filecount总数为15515

16349-15515=834

感觉上少了834个文件,834减去未同步的532等于302,再减去删除掉的3个文件,还是少了299个文件。当然这个可能只是统计信息,说明不了什么问题。

六:日志分析

# cd logs/
# wc -l sync_unsync_file 
532 sync_unsync_file

通过分析日志,发现未同步的532个文件里面,文件名除重后实际上只有16个文件而已

# uniq sync_unsync_file |wc -l
16

实际上采用nginx提供的模块直接访问这些文件都是可以的。

时间: 2024-11-15 02:40:55

TFS数据迁移之sync_by_blk的相关文章

TFS数据迁移之sync_by_file

本文接上一篇文章,介绍了tfs 2.2.16版本下采用syn_by_file工具根据文件名来实现两套tfs系统间的数据迁移.测试的环境同上一篇文章一致. 一:清除上一次迁移结束后target上的数据 # /usr/local/tfs/bin/ssm -s 192.168.1.12:8108 show > block # /usr/local/tfs/scripts/tfs stop_ds 1-3  dataserver 1 exit SUCCESSFULLY   dataserver 2 exi

TFS 根据block块进行数据迁移

还原工具:sync_by_blk 一.source端环境介绍: ip:192.168.1.230 端口:8108 source_DS的ip:192.168.1.238 端口:9999 source_DS硬盘挂载个数:1个  max_mountsize:10G source_DS分区挂载情况 为了体验效果我们上传一张新图片 二.Destination端环境介绍 ip:192.168.1.155 端口:8108 Destination_DS的ip:192.168.1.156 端口:9999 Dest

EFCodeFirst 数据迁移问题~

问题描述:将项目从TFS载下来  然后敲update-database 进行数据迁移 提示:Update-Database : 无法将“Update-Database”项识别为 cmdlet.函数.脚本文件或可运行程序的名称.请检查名称的拼写,如果包括路径,请确保路径正确,然后重试.  其实无论敲什么命令都是这个提示 后面发现是配置包的问题/· 找到你迁移所在的项目  敲这个: Install-Package EntityFramework ok搞定 EFCodeFirst 数据迁移问题~

ABP框架数据迁移报错

问题描述:将项目从TFS载下来  然后敲update-database 进行数据迁移 提示:Update-Database : 无法将"Update-Database"项识别为 cmdlet.函数.脚本文件或可运行程序的名称.请检查名称的拼写,如果包括路径,请确保路径正确,然后重试.  其实无论敲什么命令都是这个提示 解决方案:初始化包

Code First Migrations更新数据库结构(数据迁移) 【转】

背景 code first起初当修改model后,要持久化至数据库中时,总要把原数据库给删除掉再创建(DropCreateDatabaseIfModelChanges),此时就会产生一个问题,当我们的旧数据库中包含一些测试数据时,当持久化更新后,原数据将全部丢失,故我们可以引入EF的数据迁移功能来完成. 要求 已安装NuGet 过程示例 [csharp] view plaincopyprint? //原model //原model [csharp] view plaincopyprint? us

数据迁移,iis的各种坑

最近在搞iis发布  本来在家里实验过很多次 都是可以的 觉得很容易!但是到客户现场去试的时候发现各种坑 在这里给大家说说  望大家注意点哈! 首先:数据迁移先是备份数据库,然后再还原  这个地方一定要注意数据库版本问题,比如你如果在sqlserver2012上备份的,到sqlserver2008版本上还原就不行,因为这是高版本还原到低版本了 就不兼容,但是低版本还原到高版本就可以! 第二步:还原好了数据库,vs代码要配置服务器了,也要注意个问题:因为vs配置的是sqlserver的sql认证账

EF数据迁移,未将对象引用设置到对象实例

现象: 执行Enable-Migrations -force时就报"未将对象引用设置到对象实例"的异常: DbProviderServicesExtensions.GetProviderManifestTokenChecked 原因: 1.项目启动项的App.config或web.config里面没有配置 entityFramework节点或connectionStrings节点,EF在数据迁移时找不到数据库连接串信息 2.项目启动项配置错误,应该选择有entityFramework节

SQL SERVER几种数据迁移/导出导入的实践

SQLServer提供了多种数据导出导入的工具和方法,在此,分享我实践的经验(只涉及数据库与Excel.数据库与文本文件.数据库与数据库之间的导出导入). (一)数据库与Excel 方法1: 使用数据库客户端(SSMS)的界面工具.右键选择要导出数据的数据库,选择“任务”——“导出数据”,下图1,按照向导一步一步操作即可.而导入则相反,导入时,SQLServer会默认创建一张新表,字段名也默认跟导入的Excel标题一样,并且会默认字段数据类型等.当然在可以在向导进行修改.需要注意的是如果标题不是

mysql5.1.33到mysql5.5.33数据迁移的过程中要注意的问题

背景:公司要把测试库mysql5.1.33上面的数据迁移到mysql5.5.33上面,5.1上面的表大都是myisam表,为了尽量让数据一致,用了--lock-all-table选项 注意事项: 1,可以先导权限表,这样就可以把业务迁移到已经导成功的那一部份库上面 2,导之前要先把binlog禁掉,这样导入的速度会快一些,set global sql_log_bin=OFF,没有禁用binlog的情况下每小时大约只能导1G多的数据.禁用binlog后每个小时大概可以导入20G的数据 3,选择in