linux sync命令怎么用,第1张

就是Linux系统为了加快数据的读取速度,有些数据不会被直接写回磁盘,而是暂存在内存中,所以服务器关机或重启前多执行几下sync命令,进行数据的写入操作,放心一些。其实各种关机重启命令在关机前会执行一次sync命令的。

另外,sync命令要用root用户执行,普通用户执行只会更新普通用户自己的数据,而不是更新整个系统的数据。

进入世界登陆器。

打开我的世界登录器,登录正版账号,点击左侧的JAVA版本,点上面的配置,点击新配置按钮,输入名称,并选择最新版本,点击右下角的确定即可。

ServerSync在服务器和客户端运行时会生成不同的配置文件。

打开钱包点开钥匙用NnS。

双击BitTorrentSync图标启动程序,打开BitTorrentSync软件,点击设置图标,在弹出的菜单中,点击Enterakey选项,弹出秘钥可以的输入框。

密钥就是FirefoxSync在将数据传到服务器前用来加密您的数据的。

网络信号不好,sync没有下载速度是由于网络信号不好导致的,检查网络并修复后,重新打开密钥下载即可,密钥是在创建Sync帐户时,为用户生成的一长串字符。提升速度可采取的措施:您的文件在设备间同步的速度受若干因素的影响。调整下文中阐述的一个或若干个层面可能会帮您提升这一速度。

直接连接一个非常重要的因素是您的设备彼此间是直接连接的(即在同一局域网下),还是间接连接的(依靠中继服务器)。一般而言,“直接” 连接是更优的选择,因为直接连接的同步速度会比中继连接的速度快很多。因此,提升 Sync同步速度的第一个步骤就是尝试并确保您的设备间建立的是直接连接。如果他们在物理上全都处于同一本地局域网内(比如,同一 WiFi 下),建立直接连接并不成问题。然而,如果设备是 ”远程“ 的,您可以考虑建立一个 ***(虚拟专用网络)来使得远程设备看起来好像都处在同一本地局域网内。

每个redis实例在启动时候,都会随机生成一个长度为40的唯一字符串来标识当前运行的redis节点,查看此id可通过命令info server查看。

当主从复制在初次复制时,主节点将自己的runid发送给从节点,从节点将这个runid保存起来,当断线重连时,从节点会将这个runid发送给主节点。主节点根据runid判断能否进行部分复制:

如果从节点保存的runid与主节点现在的runid相同,说明主从节点之前同步过,主节点会更具offset偏移量之后的数据判断是否执行部分复制,如果offset偏移量之后的数据仍然都在复制积压缓冲区里,则执行部分复制,否则执行全量复制;

如果从节点保存的runid与主节点现在的runid不同,说明从节点在断线前同步的redis节点并不是当前的主节点,只能进行全量复制;

下图为redis28之后的提供的psync命令执行过程:

图文说明:

如果从服务器以前没有复制过任何主服务器,或者之前执行过SLAVEOF no one命令,那么从服务器在开始一次新的复制时将向主服务器发送PSYNC -1命令,主动请求主服务器进行完整重同步(因为这时不可能执行部分重同步);

相反地,如果从服务器已经复制过某个主服务器,那么从服务器在开始一次新的复制时将向主服务器发送PSYNC <runid> <offset>命令:其中runid是上一次复制的主服务器的运行ID,而offset则是从服务器当前的复制偏移量,接收到这个命令的主服务器会通过这两个参数来判断应该对从服务器执行哪种同步操作,如何判断已经在介绍runid时进行详细说明。

根据情况,接收到PSYNC命令的主服务器会向从服务器返回以下三种回复的其中一种:

如果主服务器返回+FULLRESYNC <runid> <offset>回复,那么表示主服务器将与从服务器执行完整重同步操作:其中runid是这个主服务器的运行ID,从服务器会将这个ID保存起来,在下一次发送PSYNC命令时使用;而offset则是主服务器当前的复制偏移量,从服务器会将这个值作为自己的初始化偏移量;

如果主服务器返回+CONTINUE回复,那么表示主服务器将与从服务器执行部分同步操作,从服务器只要等着主服务器将自己缺少的那部分数据发送过来就可以了;

如果主服务器返回-ERR回复,那么表示主服务器的版本低于Redis 28,它识别不了PSYNC命令,从服务器将向主服务器发送SYNC命令,并与主服务器执行完整同步操作。

 由此可见psync也有不足之处,当从库重启以后runid发生变化,也就意味者从库还是会进行全量复制,而在实际的生产中进行从库的维护很多时候会进行重启,而正是有由于全量同步需要主库执行快照,以及数据传输会带不小的影响。因此在40版本,psync命令做了改进,以下说明。

redis40新版本除了增加混合持久化,还优化了psync(以下称psync2)并实现即使redis实例重启的情况下也能实现部分同步,下面主要介绍psync2实现过程。psync2在psync1基础上新增两个复制id(可使用info replication 查看如下图):

master_replid: 复制id1(后文简称:replid1),一个长度为41个字节(40个随机串+’0’)的字符串,每个redis实例都有,和runid没有直接关联,但和runid生成规则相同。当实例变为从实例后,自己的replid1会被主实例的replid1覆盖。

master_replid2:复制id2(后文简称:replid2),默认初始化为全0,用于存储上次主实例的replid1。

在40之前的版本,redis复制信息完全丢失,所以每个实例重启后只能进行全量复制,到了40版本,主要解决了两种情况下不能进行增量复制的问题:

第一步:存储复制信息

redis在关闭时,通过shutdown save,都会调用rdbSaveInfoAuxFields函数,把当前实例的repl-id和repl-offset保存到RDB文件中,当前的RDB存储的数据内容和复制信息是一致性的可通过redis-check-rdb命令查看。如下图所示:

第二步:重启后加载RDB文件中的复制信息

redis加载RDB文件,会专门处理文件中辅助字段(AUX fields)信息,把其中repl_id和repl_offset加载到实例中,分别赋给master_replid和master_repl_offset两个变量值,特别注意当从库开启了AOF持久化,redis加载顺序发生变化优先加载AOF文件,但是由于aof文件中没有复制信息,所以导致重启后从实例依旧使用全量复制!

第三步:向主库上报复制信息,判断是否进行部分同步

从实例向主库上报master_replid和master_repl_offset+1;从实例同时满足以下两条件,就可以部分重新同步,否则执行全量同步:

从实例上报master_replid串,与主实例的master_replid1或replid2有一个相等,用于判断主从未发生改变;

从实例上报的master_repl_offset+1字节,还存在于主实例的复制积压缓冲区中,用于判断从库丢失部分是否在复制缓冲区中;

psync2除了解决redis重启使用部分同步外,还为解决在主库故障时候从库切换为主库时候使用部分同步机制。redis从库默认开启复制积压缓冲区功能,以便从库故障切换变化master后,其他落后该从库可以从缓冲区中获取缺少的命令。该过程的实现通过两组replid、offset替换原来的master runid和offset变量实现:

第一组:master_replid和master_repl_offset:如果redis是主实例,则表示为自己的replid和复制偏移量; 如果redis是从实例,则表示为自己主实例的replid1和同步主实例的复制偏移量。

第二组:master_replid2和second_repl_offset:无论主从,都表示自己上次主实例repid1和复制偏移量;用于兄弟实例或级联复制,主库故障切换psync。

判断是否使用部分复制条件:如果从库提供的master_replid与master的replid不同,且与master的replid2不同,或同步速度快于master; 就必须进行全量复制,否则执行部分复制。

实验如下:

启动三个实例17220170155:6379(主) ,17220170155:6380(从) ,17220170155:6381(从)

在6379上执行info replication, 如下:

在6380上执行info replication, 如下:

在6381上执行info replication, 如下:

由上图可知, 此时6381和6380的master_replid都存的是6379的master_replid

然后执行shutdown关闭6379实例, 在6380上执行slaveof no one, 6381上执行slaveof 17220170155 6380;

此时通过info replication命令查看6380和6381的信息如下:

由上图可知6379的master_replid都被存到了master_replid2上, 表示为上一次主实例的master_replid,

这时再去查看6381的日志, 如下图:

可以看出6381切换master到6380成功, 并且增量复制也是成功的

这就完成了故障切换下增量复制功能

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » linux sync命令怎么用

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情