如果MySQL服务器启用了二进制日志,你可以使用mysqlbinlog工具来恢复从指定的时间点开始 (例如,从你最后一次备份)直到现在或另一个指定的时间点的数据。“mysqlbinlog:用于处理二进制日志文件的实用工具”。

要想从二进制日志恢复数据,你需要知道当前二进制日志文件的路径和文件名。一般可以从选项文件(即my.cnf or my.ini,取决于你的系统)中找到路径。如果未包含在选项文件中,当服务器启动时,可以在命令行中以选项的形式给出。启用二进制日志的选项为–log-bin。要想确定当前的二进制日志文件的文件名,输入下面的MySQL语句:

SHOW BINLOG EVENTS G

你还可以从命令行输入下面的内容:

mysql –user=root -pmy_pwd -e ‘SHOW BINLOG EVENTS G’

将密码my_pwd替换为服务器的root密码。

1. 指定恢复时间

对于MySQL 4.1.4,可以在mysqlbinlog语句中通过–start-date和–stop-date选项指定DATETIME格式的起止时间。举例说明,假设在今天上午10:00(今天是2006年4月20日),执行SQL语句来删除一个大表。要想恢复表和数据,你可以恢复前晚上的备份,并输入:

mysqlbinlog –stop-date=”2005-04-20 9:59:59″ /var/log/mysql/bin.123456

| mysql -u root -pmypwd

该命令将恢复截止到在–stop-date选项中以DATETIME格式给出的日期和时间的所有数据。如果你没有检测到几个小时后输入的错误的SQL语句,可能你想要恢复后面发生的活动。根据这些,你可以用起使日期和时间再次运行mysqlbinlog:

mysqlbinlog –start-date=”2005-04-20 10:01:00″ /var/log/mysql/bin.123456

| mysql -u root -pmypwd

在该行中,从上午10:01登录的SQL语句将运行。组合执行前夜的转储文件和mysqlbinlog的两行可以将所有数据恢复到上午10:00前一秒钟。你应检查日志以确保时间确切。下一节介绍如何实现。

2. 指定恢复位置

也可以不指定日期和时间,而使用mysqlbinlog的选项–start-position和–stop-position来指定日志位置。它们的作用与起止日选项相同,不同的是给出了从日志起的位置号。使用日志位置是更准确的恢复方法,特别是当由于破坏性SQL语句同时发生许多事务的时候。要想确定位置号,可以运行mysqlbinlog寻找执行了不期望的事务的时间范围,但应将结果重新指向文本文件以便进行检查。操作方法为:

mysqlbinlog –start-date=”2005-04-20 9:55:00″ –stop-date=”2005-04-20 10:05:00″

/var/log/mysql/bin.123456 > /tmp/mysql_restore.sql

该命令将在/tmp目录创建小的文本文件,将显示执行了错误的SQL语句时的SQL语句。你可以用文本编辑器打开该文件,寻找你不要想重复的语句。如果二进制日志中的位置号用于停止和继续恢复操作,应进行注释。用log_pos加一个数字来标记位置。使用位置号恢复了以前的备份文件后,你应从命令行输入下面内容:

mysqlbinlog –stop-position=”368312″ /var/log/mysql/bin.123456

mysqlbinlog –start-position=”368315″ /var/log/mysql/bin.123456

上面的第1行将恢复到停止位置为止的所有事务。下一行将恢复从给定的起始位置直到二进制日志结束的所有事务。因为mysqlbinlog的输出包括每个SQL语句记录之前的SET TIMESTAMP语句,恢复的数据和相关MySQL日志将反应事务执行的原时间


3.指定数据库名
如果一台服务器上有多个库,指定数据库名将不会干扰其他的数据库。格式如下:
mysqlbinlog  --database="5217u" --start-date="2012-04-01 00:00:00" --stop-date="2012-05-01 08:00:00"  mysql-bin.000088 > restore.sql

切记database是库名不是表名。

4.整理干净的sql文档
虽然我们可以通过上面种种条件指定恢复相应的数据,不过mysalbinlog生成的sql文件会有很多其他的代码。造成sql文件过大,打开缓慢甚至打不开。
我这里给出下列vi命令,来精简sql文件。

删除所有#号开头的行
:%s/^#.*//g
删除所有SET开头的行
:%s/^SET.*//g
删除所有BEGIN的行
:%s/^BEGIN//g
删除所有COMMIT的行
:%s/^COMMIT//g
删除所有的/*!*/;的行
:%s/\/\*\!\*\/;//g
删除/*!..*/的行
:%s/\/\*\!.*//g
删除空行
:g/^$/d

下面是我清除问题数据留底的,读者不能直接使用,不过可以借鉴里面的,跨行多行删除的正则表达式写法
注意:跨行多行的写法只支持vim,vi是不支持的
:%s/^REPLACE INTO biweb_d\_.\{-})$//g
:%s/^REPLACE INTO biweb_u\_.\{-})$//g
:%s/^REPLACE INTO biweb_m\_.\{-})$//g
:%s/^REPLACE INTO biweb_n\_.\{-})$//g
:%s/^REPLACE INTO biweb_a\_.\{-})$//g
:%s/^REPLACE INTO biweb_f\_.\{-})$//g
:%s/^REPLACE INTO biweb_task\_.\{-})$//g
:%s/^UPDATE biweb_d\_.\{-}'$//g
:%s/^UPDATE biweb_a\_.\{-}'$//g
:%s/^UPDATE biweb_u\_.\{-}'$//g
:%s/^UPDATE biweb_m\_.\{-}'$//g
:%s/^DELETE FROM biweb_m.*//g
:%s/^DELETE FROM biweb_d.*//g
:%s/^DELETE FROM biweb_a.*//g
:%s/^UPDATE biweb_task.*//g
:%s/^UPDATE biweb_n\_.\{-})$//g
:%s/^UPDATE biweb_n.*//g
:%s/^ALTER TABLE `biweb_a.*//g
:%s/^UPDATE `5217u`.`biweb_a.*//g
:%s/^UPDATE `5217u`.`biweb_u.*//g
:%s/^UPDATE `5217u`.`biweb_m.*//g
:g/^$/d

Tags: ,


  一、      如何选择邮件系统
搭建起邮件服务器,你需要邮件系统的基本知识,SMTP协议规范,MIME编码规范,MX记录的基础知识请参考相应的RFC文档。

(一)IP地址选择

选择放置邮件服务器的IDC,更准确地说是所在的IP段,应选择处于完全静态CIP段之内,最好BIP段也是静态的。注意有时运营商分配的单个所谓静态IP,可能处于一段C类动态IP段(如ADSL)之内,这时候你的IP就很容易被认为是动态IP,要知道,动态IP在邮件运营商那里是不受欢迎的。另外要检查IP是否被列入国际黑名单(RBL),很多RBL经常将国内的整个B段列入黑名单的。

(二)邮件发送软件选择

使用一个权威的第三方发送软件,可以免去你很多烦恼。POSTFIXQMAILFOXMAILAIMCCOREMAIL等在编码规范、SMTP会话规范方面都有着可靠的经验,基本不会出现协议级的低等错误。如果你选择自主开发,那就要好好补习RFC文档了。
如果你的系统有提供给个人用户自定制内容发邮件的功能,如邀请信,贺卡等,你还需要安装一套基本的反垃圾软件,作为一个自律的发送方,这很有必要。

二、      需要建立哪些DNS记录

    为什么要为IPDNS记录?就是要告诉接收方,您使用的是静态的IP和域名,并非伪造,您对这些IP和域名有控制权。

    下面假设邮件服务器有两台:202.100.100.1    202.100.100.2, 邮箱域名是“@abc.com

    (一)A记录

主机名
记录类型
IP
server1.abc.com
A
202.100.100.1
server2.abc.com
A
202.100.100.2
其中server1.abc.com是在SMTP会话时,向对方服务器发送HELO命令后带的主机名参数。如“HELO server1.abc.com”。该A记录通常在提供abc.com域名的运营商处可以申请。
记录生效后,通过nslookup命令查询应该有如下结果,QQ邮箱为例

 

(二)PTR记录

IP
记录类型
主机名
202.100.100.1
PTR
server1.abc.com
202.100.100.2
PTR
server2.abc.com
如您所见,PTR记录其实是A记录的反向,A记录将域名解释为IPPTR记录将IP解释为域名。通常在分配IP地址的电信运营商处可以申请。

记录生效后,通过nslookup命令查询应该有如下结果,以QQ邮箱为例:


 

(三)TXT记录

域名
记录类型
IP
abc.com
TXT
202.100.100.1
abc.com
TXT
202.100.100.2
如果你用上了整个C段的IP,像下面这样做就省事多了。
域名
记录类型
IP
abc.com
TXT
202.100.100.0/24
TXT记录用于声明本邮箱域名的真正发信服务器IP,同样在提供abc.com域名的运营商处可以申请。

记录生效后,通过nslookup命令查询应该有如下结果,QQ邮箱为例:

   
A记录与PTR记录互相搭配,表明你的IP地址是静态的,邮件服务器是固定的。TXT记录能帮助接收方排除仿冒你的域名的来源邮件,从而使你发出的邮件更加可信。

三、如何规范地群发邮件

    完成上述工作后,总算可以开始群发邮件了,每天给什么人发?给多少人发?每人发多少?发些什么内容?如何规范地群发邮件?以下是你需要尽可能遵守的原则,

(一)控制发信速度

1.      邮件服务器都有对IP的发信频率限制,达到了每分钟/每小时等上限时,邮件往往就发不过去,这时候最好的方法是暂停发送,过若干分钟或小时后重试。

2.      为避免垃圾邮件泛滥,邮件服务器都有日发信量限制,达到每日上限时,当日就不能再发邮件了,只能暂停发送,留待明日继续发信。

3.      运营商设置的发信速度和发信量的限制,是适合绝大多数情况的,如你确实有需要超量发送,而邮件的信誉度和重要性也相当高,可以尝试联系运营商特别处理。

(二)规范邮件格式

1.      整齐简洁的排版,专业的语言。

2.      尽可能缩小邮件体积,夹大附件的邮件通常不太受欢迎。

3.      在显眼的地方标有退订入口,会为你的诚意增添几分。


        (三)规范邮件内容

1.      注册信、密保信等重要邮件请在主题标明关键字眼,一般都不会被过滤。 

   

2.      纯广告的邮件最好少发,这是最常受用户投诉的,大多数情况下,你的会员并不需要铺天盖地的广告,倘若真要发的,请放慢速度,主题别忘了加上“(AD)”

   


3.      订阅信息邮件也是一般不会被过滤的。但若是钻空子借订阅邮件大做广告,将引发更多的用户投诉。 

(四)规范发件人信息

1.      由系统群发的邮件请使用相同的发件人,service@abc.com就比较好辨认。同时该发件人地址应该能收信,避免退信时失败而造成接收方邮件队列堆积。同时应避免频繁变动发件人或发件域。
2.      如果是自动中转邮件,即使原文中发件人使用原始发信方,mike@163.com,SMTP会话中的mail from指令也应该使用本域发件人service@abc.com,否则容易被认为是冒用163.com的域名发送。
3.      注册信、密保信等重要邮件最好与纯广告、订阅信分开不同的IP发送,一但发生广告信发送IP被拒,也不会影响正常会员的注册功能。


(五)更新有效收件人地址
经常滚动更新你的会员列表,去掉已经注销的用户或已经退订的会员。做得更细致一点,通过在邮件中放置一些URL,把长期阅读点击率偏低的会员去掉。诚然,这可能会让你损失那么一点潜在用户,但换来好的口碑。何况,激活长期不阅读的沉睡会员的可能性微乎其微。(六)主动清理门户
有些功能可以提供会员向外发邮件,例如邀请信,贺卡等。别有用心的人可能利用这些功能群发垃圾邮件、欺诈信息、政治敏感信息等,这无异于养虎遗患。这类会员是坚决要清理掉的。

四、如何定位发送失败原因

(一) 定位问题

定位问题,最直接的方式是查看系统日志,捕捉SMTP会话中接收方返回的错误信息。不同的邮件软件有不同的返回信息,但基本相似。这里需要定位的是究竟是系统问题还是用户问题。我们以下面的例子说明:


系统问题:
Connection time out
Open relay denied
IP involved in rbl
Server refused mail service用户问题:
User not found
Mail size exceeded
No space in mail box

正像你看到的,系统问题一般是由网络、RBL、内容过滤,会话规范、频率限制一类的全局问题导致。而用户问题一般是由对方用户名、邮箱空间之类的个别问题导致的。
我们需要去解决的,通常仅仅是系统问题。 
(二) 沟通申诉
沟通申诉之前,你需要准备一些资料,以便提高排查速度和准确率。1.      本方发信IP地址
2.      返回错误信息的接受方IP地址
3.      错误日志,最好具备清晰易懂的日志输出,有完整的时间点,收发件人,错误信息等记录。
Tags:

sohu退信代码

2011/03/20 13:56 ArthurXF
若您的邮件无法送达搜狐各域邮箱,并收到退信。请根据退信里的关键字,在下面的表格中查询具体的退信原因。
退信代码  说明  解决方法  
450 4.1.8 发件人被拒 请检查发件人地址
554 5.7.1 发件人被拒 请检查发件人地址
504 5.5.2 发件人被拒 请检查发件人地址
550 5.1.1 接收人被拒 请检查收件人地址
554 5.7.1 接收人被拒 请检查收件人地址
450 4.1.8 发件人被拒 请查看DNS配置
552 5.3.4 邮件大小超限 请减小邮件的大小
503 5.5.0 连接被拒 遵守协议规则
553 5.7.0 IP地址被拒 停止发信,等待其解禁
553 5.7.1 发件人被拒 停止发信,等其解禁
553 5.7.2 收件人被拒 联系收件人修改邮箱配置
553 5.7.3 内容被拒 停止发信,等待其解禁
553 5.7.4 IP地址被拒 停止发信,等待其解禁
421 4.2.1 临时错误 重试
553 5.7.3  不支持附件发送 取消附件重试

如果上述信息仍不能解决你的问题,请联系abuse@sohu-inc.com 寻求帮助
Tags:
什么是SPF记录?如何设置SPF来防止我的邮件被拒收呢?
什么是SPF记录?
定义:
(Sender Policy Framework) 的缩写,一种以IP地址认证发信人身份的技术,
作用:
可以避免伪造地址的垃圾邮件,避免有其他人伪造我的域名来投递。提高发送外域邮箱的成功率。
原理:
spf规则规定了一个域名下的邮件必须通过哪些smtp服务器来发送。一个域名可以为自己创建一个txt解析记录,在这个解析记录里面是这个域名下所有的smtp服务器的ip地址。
接收邮件方会首先检查对方邮箱后缀域名的SPF记录,来确定发件人的smtp服务器的IP地址是否被包含在SPF记录里面,如果在,就认为是一封正确的邮件,否则会认为是一封伪造的邮件进行退回。
 

查询txt记录的方法:

nslookup

> set q=txt

> net263.com

Server:  ns2.263isp.net

Address:  211.150.124.66

Non-authoritative answer:

net263.com      text =

        "v=spf1 include:spf.263xmail.com ~all"

查询txt记录下对应的ip的方法

查询 include 后面字段的域名即可

> set q=txt

> spf.263xmail.com

Server:  ns2.263isp.net

Address:  211.150.124.66

Non-authoritative answer:

spf.263xmail.com        text =

        "v=spf1 ip4:211.150.67.0/24 ip4:211.150.96.0/24 ip4:211.150.100.0/24 ip4

:211.157.128.0/24 ip4:211.150.64.0/24 ip4:211.150.122.0/24 ip4:74.86.11.0/28 ip4

:63.217.87.0/28 ip4:211.157.224.0/24 ~all"

 以上所有的IP都SMTP的服务器IP地址

~all和?all 代表不确定的,我们的mx服务器不会去拒收

-all 代表确定的,一旦发信人没有使用txt记录下规定的ip投递,我们的mx服务器就会拒收。

 
如何设置域名邮箱的SPF记录呢?
 
为了提升域名邮箱发送外域(@qq.com以外的邮箱)邮件的成功率,建议您给自己的域名设置一条TXT记录来避免这种情况。
 
TXT记录值为:v=spf1 include:spf.mail.qq.com ~all
附263企邮箱的TXT记录值为:v=spf1 include:spf.263xmail.com ~all
 
如图:万网的设置页面
1.从diy.hichina.com处登录域名管理系统;
 
2.在TXT(正文字串)处设置一条TXT记录,如下:
 
什么是SPF记录?如何设置SPF来防止我的邮件被拒收呢?
 
注:易名中国中资源目前不支持设置TXT记录 
--------------------------------------------------------------------------------------------------
如何增加SPF记录
非常简单,在DNS里面添加TXT记录即可。登陆http://www.openspf.org/在里面输入你的域名,点击Begin,然后会自动得到你域名的一些相关信息。
a 你域名的A记录,一般选择yes,因为他有可能发出邮件。
mx 一般也是yes,MX服务器会有退信等。
ptr 选择no,官方建议的。

a:有没有其他的二级域名?比如:mail.abc.com和www不在一台server上,则填入mail.abc.com。否则清空。
mx: 一般不会再有其他的mx记录了。
ip4: 你还有没有其他的ip发信?可能你的smtp服务器是独立出来的,那么就填入你的IP地址或者网段。
include: 如果有可能通过一个isp来发信,这个有自己的SPF记录,则填入这个isp的域名,比如:dgcgw.com
~all: 意思是除了上面的,其他的都不认可。当然是yes了。

好了,点击Continue…..
自动生成了一条SPF记录,比如abc.com的是
v=spf1 a mx ~all
并且在下面告诉你如何在你的bind里面添加一条
abc.com. IN TXT “v=spf1 a mx ~all”

加入你的bind,然后ndc reload即可。
检查一下:
dig -t txt extmail.org

如果您的域名是我们的dns服务器进行解析的,我们的网页上没有设置TXT记录的地方,但是如果你的DNS主server是在在我们这里的,我们可以代帮忙设置。设置完毕后您即可以通过使用spf策略进行垃圾邮件验证了。

Tags:
对于正常邮件被投递到不明文件夹,可以指导用户按采用如下几种方法进行处理:

     1、通过WEBMAIL登录邮箱,打开收到不明文件夹中的邮件,点击发件方人右侧的“这不是垃圾邮件”按钮,这样会系统会自动把邮件由不明文件夹移收到收件箱中,并自动把发件方地址添加到地址本,以后所有来自该地址给您发送的邮件均会投递到收件箱中。

     2、登录到超级域管理员,使用“域过滤及黑白名单管理”中“邮件地址白名单”或“邮件域名白名单”功能将发件方地址或发件方域添加到白名单中,以后发件方地址或发件域给贵公司所有企业邮箱发送的邮件均会投递到收件箱中。

      3、将收到不明文件夹的正常邮件做为附件转发以“邮件误判”为主题发送至管理员的信箱,公司管理员的反垃圾部门会对邮件特征重新进行分析,使邮件系统慢慢将此类邮件识别为正常邮件,以减小误判率。
分页: 11/128 第一页 上页 6 7 8 9 10 11 12 13 14 15 下页 最后页 [ 显示模式: 摘要 | 列表 ]