年归档:2017年

mysql reset slave / reset master

RESET SLAVE

官方的解释如下

1)RESET SLAVE makes the slave forget its replication position in the
master's binary log. This statement is meant to be used for a clean
start: It clears the master info and relay log info repositories,
deletes all the relay log files, and starts a new relay log file. It
also resets to 0 the replication delay specified with the MASTER_DELAY
option to CHANGE MASTER TO. To use RESET SLAVE, the slave replication
threads must be stopped (use STOP SLAVE if necessary).

2)RESET SLAVE does not change any replication connection parameters
such as master host, master port, master user, or master password, which
are retained in memory. This means that START SLAVE can be issued
without requiring a CHANGE MASTER TO statement following

reset slave

其实,它是直接删除master.info和relay-log.info文件,并删除所有的relay log,然后重新生成一个新的relay log,即使relay log中还有SQL没有被SQL线程apply完。

但是RESET SLAVE有个问题,它虽然删除了上述文件,但内存中的change master信息并没有删除,此时,可直接执行start
slave,但因为删除了master.info和relay-log.info,它会从头开始接受主的binlog并应用。(注意:这里所说的从头是说:reset的时候,正在接受的主的binlog,从新接受这个binlog).如果SQL
thread 正在复制临时表的过程中,执行了stop slave ,并且执行了reset slave,这些被复制的临时表将被删除。

reset master 做了什么?

1. reset master 将删除日志索引文件中记录的所有binlog文件,创建一个新的日志文件 起始值从000001 开始,

2. reset master 不能用于有任何slave 正在运行的主从关系的主库。因为在slave 运行时刻 reset master
命令不被支持,reset master 将master 的binlog从000001 开始记录,slave 记录的master log
则是reset master 时主库的最新的binlog,从库会报错无法找的指定的binlog文件。

继续阅读

发表在 db | mysql reset slave / reset master已关闭评论

Mysql Replicate Relay log read failure

一、描述

Mysql主从复制模式中,slave上报错 “relay log read failure”,导致主从同步停止。

mysql> show slave status\G
...
Master_Log_File: dd-bin.002542
Relay_Master_Log_File: dd-bin.002540
Exec_Master_Log_Pos: 950583017
Last_Error: Relay log read failure:...
...

二、分析

      报错信息为从库“无法读取relay log 里的条目”,可能原因为master库的binglog错误,或slave库的中继日志错误。或者为网络问题及bug原因。

      一般是由于网络故障或slave库压力过大,导致relay-log格式错误造成的。找到当前已经同步的时间点,重新设置主从同步,就会产生新的中继日志,恢复正常。

三、问题处理

从"show  slave  status\G"的输出中,找到如下信息:

Relay_Master_Log_File: dd-bin.002540     //slave库已读取的master的binlog

Exec_Master_Log_Pos: 950583017           //在slave上已经执行的position位置点



    停掉slave,以slave已经读取的binlog文件,和已经执行的position为起点,重新设置同步。会产生新的中继日志,问题解决。

(不需要指定host,user,password等,默认使用当前已经设置好的)

mysql>stop slave;

mysql>change master to master_log_file='dd-bin.002540' , master_log_pos=950583017;

mysql>start slave;



四、验证结果

再次查看,错误已经解决,slave 开始追 master 的日志

mysql>show  slave status\G

Exec_Master_Log_Pos: 225927489        //slave上已经执行的position已经变化

Seconds_Behind_Master: 58527            //slave  落后主库的时间,单位秒



过几秒钟,再次查看。离与master同步更近了

mysql>show  slave status\G

Exec_Master_Log_Pos: 307469867

Seconds_Behind_Master: 29570

继续阅读

发表在 db | 标签为 | Mysql Replicate Relay log read failure已关闭评论

RPC

RPC(远程过程调用)是什么

  • 简单的说,RPC就是从一台机器(客户端)上通过参数传递的方式调用另一台机器(服务器)上的一个函数或方法(可以统称为服务)并得到返回的结果。
  • RPC 会隐藏底层的通讯细节(不需要直接处理Socket通讯或Http通讯)
  • RPC 是一个请求响应模型。客户端发起请求,服务器返回响应(类似于Http的工作方式)
  • RPC 在使用形式上像调用本地函数(或方法)一样去调用远程的函数(或方法)。

远程过程调用发展历程

  • ONC RPC (开放网络计算的远程过程调用),OSF RPC(开放软件基金会的远程过程调用)
  • CORBA(Common Object Request Broker Architecture公共对象请求代理体系结构)
  • DCOM(分布式组件对象模型),COM+
  • Java RMI
  • .NET Remoting
  • XML-RPC,SOAP,Web Service
  • PHPRPC,Hessian,JSON-RPC
  • Microsoft WCF,WebAPI
  • ZeroC Ice,Thrift,GRPC
  • Hprose

早期的 RPC

  • 第一代 RPC(ONC RPC,OSF RPC)不支持对象的传递。
  • CORBA 太复杂,各种不同实现不兼容,一般程序员也玩不转。
  • DCOM,COM+ 逃不出 Windows 的手掌心。
  • RMI 只能在 Java 里面玩。
  • .NET Remoting 只能在 .NET 平台上玩。

XML-...

继续阅读

发表在 technologys | RPC已关闭评论

db

RDS:

Oracle - Business
DB2    - Business
PostgreSQL    - Free
Microsoft SQL Server
MySQL - Free

Embed:

SQLite - Free
Microsoft Access - Free

Document:

MongoDb - Free
CouchDB - Free

Memory/Key Value:

Redis - Free
Memcache - Free
Cassandra - Free

Other:

HBase - Free
Infinite Graph - Free
InfoGrid - Free
Riak - Free

继续阅读

发表在 db | db已关闭评论

.NET技术

问题

大家是否想过:

  • .NET究竟包含哪些技术呢?
  • 我所掌握的技术这个子集,在.NET技术大系这个超集里面占地比例是什么呢?
  • 我究竟还没有掌握多少.NET技术呢?
  • 面试的时候会考哪些技术呢?

相信大家也看过Java的技术栈,一个金字塔形状的(我一下子没找回,如果你知道,烦请告诉我),包含了繁多的技术:
点击查看原图

查看大图

这些年来,看过n多.Net架构图/技术栈,搜索了很久,没有找到一个符合我要求的“较为全面”地表述.Net技术大系的图表。相信微软内部有更全面的,但可惜我没有找到。

互联网上来去都是那几个简单的按版本新增分类等10来个点的,譬如这个:

 点击查看原图

或者这个按照.NET版本新增技术的:
点击查看原图

圣殿骑士 在 新加坡架构师面试总结 里面发表过一张.NET架构师面试需要的技术总结图:

点击查看原图
 

查看大图

不过这个总结图面向的是.NET架构师需要掌握的技术,和我需要的不一样。

 

.NET技术栈

最近找工作,面试了多家公司,不同公司有不同的技术要求,我把这些技术,结合我已经掌握的技术,总结了一下.Net相关技术,大约10个大类50个技术点,花了一点时间搞个.NET技术栈概览。

 

从最底层的到最顶层:

  • 操作系统
  • CLI
  • CLR
  • CTS/CLS/CIL
  • .NET Fx
  • CLI 语言
  • DLR
  • DLR 语言
  • Desktop 桌面
  • Web 网络
  • SOA
  • SDKs
  • OWIN
  • IDE 编辑器
  • Platforms 平台
  • Prod...

继续阅读

发表在 .net | .NET技术已关闭评论

samba

安装 SAMBA 组件

sudo apt-get install samba smbfs smbclient

配置相关参数

sudo gedit /etc/samba/smb.conf

文件中相关属性如下

1.全局设置部分

security = user
    这行设置了samba的安全等级,Samba一共可以设置四个安全登记,由底到高分别为:
    share        这个选项表示任何人都可以不需要输入密码登录。
    user          这个是Samba的默认级别,要求每个用户必须输入密码才能登录。
    server      user级别的密码都是保存在本机上,而server级别的密码和用户名都保存在另一台主机上。
    domain    这个级别要求网络里必须有一台Windows的域控制器,验证工作由域控制器来完成。
&n...

继续阅读

发表在 linux | samba已关闭评论

linux echo -n、-e

echo -n 不换行输出

$echo -n "123"
$echo "456"
最终输出 
123456
而不是
123
456
echo -e
处理特殊字符
若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:
\a 发出警告声;
\b 删除前一个字符;
\c 最后不加上换行符号;
\f 换行但光标仍旧停留在原来的位置;
\n 换行且光标移至行首;
\r 光标移至行首,但不换行;
\t 插入tab;
\v 与\f相同;
\\ 插入\字符;
\nnn 插入nnn(八进制)所代表的ASCII字符;
$echo -e "a\bdddd"
dddd
$echo -e "a\adddd" //输出同时会发出报警声音
adddd
$echo -e "a\ndddd" //自动换行
a
dddd

继续阅读

发表在 linux | 标签为 | linux echo -n、-e已关闭评论

windows 10 远程桌面 第一次登录之前 你必须更改密码 请更新密码

MSTSC方式登录Windows 2012服务器,登录失败

问题描述

 

对于密码鉴权方式创建的Windows 2012弹性云服务器,使用初始密码以MSTSC方式登录时,登录失败,系统显示“第一次登录之前,你必须更改密码。请更新密码,或者与系统管理员或技术支持联系”。
可能原因

用户本地使用的计算机(即客户机)操作系统为Windows 10。

由于Windows 10操作系统的自身限制,不能以初始密码直接远程连接操作系统为Windows 2012的弹性云服务器。
处理方法

    方法一

    更换使用Windows 7操作系统的计算机作为客户机,远程连接操作系统为Windows 2012的弹性云服务器。

    方法二

    继续使用Windows 10 客户机远程登录,但是,需先修改弹性云服务器的初始密码。
        首次登录,以VNC方式登录操作系统为Windows 2012的弹性云服务器。
        登录成功后,按照界面提示修改弹性云服务器的密码。
  &n... 继续阅读

发表在 windows | windows 10 远程桌面 第一次登录之前 你必须更改密码 请更新密码已关闭评论

ascii

点击查看原图


继续阅读

发表在 technologys | ascii已关闭评论

dmarc

基于域的邮件验证、报告和一致性(DMARC) 这个规范旨在减少邮件滥用(例如通过伪造邮件的“From:
报头来篡改原件的入站垃圾邮件和网络钓鱼邮件。 DMARC 帮助域拥有者使用“域名系统”(DNS)来向收件服务器告知其 DMARC
策略,例如他们希望这些服务器如何处理自称来自他们域但无法验证实际来源的邮件。 收件服务器在处理入站邮件时通过 DNS
查询检索到的这个策略可以向服务器表明应该隔离或拒收不符合这个策略的邮件,或根本不采取任何操作(例如继续照常处理邮件)。 除了这个策略以外,该域的
DMARC DNS 记录也可以包含服务器请求来向某人发送 DMARC
报告、概述自称来自此域的入站邮件的总数、它们是否通过验证、以及任何失败的详细信息。 DMARC
的报告功能在确定您的邮件验证流程是否有效,以及伪造邮件使用您域名的频率时极其有用。

在“安全设置”对话框的“发件人验证”部分中,提供以下三个部分供您配置 MDaemon 的 DMARC 验证和报告功能: DMARC 验证、DMARC 报告和 DMARC 选项。

DMARC 验证

作为 DMARC 验证流程的一部分,MDaemon 对在每封入站邮件的“From:” 报头中找到的域执行 DMARC DNS 查询。 这用来确定该域是否使用 DMARC,如果使用了 DMARC 则检索其“DMARC DNS 记录”,其中...

继续阅读

发表在 mail | dmarc已关闭评论

前端知识图谱

 

来源于群分享:

点击查看原图
继续阅读

发表在 technologys | 前端知识图谱已关闭评论

Memcache文本协议中文版

Memcache 协议 (译)

协议

---------------------------------------------------------

       Memcache客户端通过TCP连接与服务器进行通信(UDP接口也是可用的,在下文的"UDP协议"部分有详细描述)。Memcache服务器在一个(可配置的)端口上监听;客户端连接该端口,发送命令到服务器,读取响应,最后关闭连接。

      
终止会话是没有必要发送命令的:如果不需要该连接,客户端任何时候都可以将其关闭。但即便是这样,客户端最好还是缓存连接,而不是在要存取数据时再打开连
接。这是由于memcache被特意设计成可以处理大量(数百个,需要的话可以上千个)打开的连接。缓存这些连接会减少建立TCP连接所带来的开销(相对
于此,在服务器端建立一个新连接的准备工作所带来的开销,可以忽略不计)。

       在Memcache协议中发送的数据分两种:文本行和非结构数据(unstructured
data)。由客户端发送的命令和服务器端的响应使用的是文本行。非结构数据用于客户端存储数据的时候。服务器会将接收到的非结构数据...

继续阅读

发表在 article | 标签为 | Memcache文本协议中文版已关闭评论

Windows Socket Connections

最大TCP连接数

[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip
\Parameters] TcpNumConnections = 0x00fffffe (Default = 16,777,214)

以上注册表信息配置单机的最大允许的TCP连接数,默认为 16M。这个数值看似很大,这个并不是限制最大连接数的唯一条件,还有其他条件会限制到TCP 连接的最大连接数。

最大动态端口数

TCP客户端和服务器连接时,客户端必须分配一个动态端口,默认情况下这个动态端口的分配范围为 1024-5000 ,也就是说默认情况下,客户端最多可以同时发起3977 个Socket 连接。我们可以修改如下注册表来调整这个动态端口的范围

[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \Tcpip \Parameters] MaxUserPort = 5000 (Default = 5000, Max = 65534)

最大TCB 数量

系统为每个TCP 连接分配一个TCP 控制块(TCP control block or
TCB),这个控制块用于缓存TCP连接的一些参数,每个TCB需要分配 0.5 KB的pagepool 和 0.5KB
的Non...

继续阅读

发表在 network | 标签为 | Windows Socket Connections已关闭评论

vmware linux copy network

linux copy

/etc/udev/rules.d/   

              70-persistent-net.rules

继续阅读

发表在 linux | vmware linux copy network已关闭评论

WARNING overcommit_memory , vm.overcommit_memory=1

来源:http://m.blog.csdn.net/article/details?id=50864933

 

Redis 3.0.7版本启动时出现警告的解决办法

7283:M 12 Mar 12:13:33.749 # WARNING: The
TCP backlog setting of 511 cannot be enforced because
/proc/sys/net/core/somaxconn is set to the lower value of 128.

7283:M 12 Mar 12:13:33.749 # Server started, Redis version 3.0.7
7283:M 12 Mar 12:13:33.749 # WARNING
overcommit_memory is set to 0! Background save may fail under low memory
condition. To fix this issue add 'vm.overcommit_memory = 1' to
/etc/sysctl.conf and then reboot or run the command 'sysctl
vm.overcommit_memory=1' for this to tak...

继续阅读

发表在 cache | WARNING overcommit_memory , vm.overcommit_memory=1已关闭评论