手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网络编程>Mysql>列表

MySQL中存储程式、函数连同复制

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
  MySQL 5.1存储程式和函数对复制起作用吗?

  是的,在存储程式和函数中被执行标准行为被从主MySQL服务器复制到从服务器。

  在主服务器上创建的存储程式和函数能够被复制到从服务器上么?

  是的,通过一般DDL语句执行的存储程式和函数,其在主服务器上的创建被复制到从服务器,所以目标将存在两个服务器上。对存储程式和函数的ALTER 和DROP语句也被复制。

  行为如何在已复制的存储程式和函数里发生?

  MySQL纪录每个发生在存储程式和函数里的DML事件,并复制这些单独的行为到从服务器。执行存储程式和函数的切实调用不被复制。

  对一起使用存储程式,函数和复制有什么特别的安全需要么?

  是的,因为一个从服务器有权限来执行任何读自主服务器的二进制日志的语句,指定的安全约束因和复制一起使用的存储程式和函数而存在。假如复制或二进制日志大体上是激活的(为point-in-time恢复的目的),那么MySQL DBA 有两个安全选项可选:

  任何想创建存储程式的用户必须被赋予SUPER权限。

  作为选择,一个DBA能够配置log_bin_trust_routine_creators系统变量为1,他将会允许有标准CREATE ROUTINE权限的人来创建一个存储程式和函数。

  对复制存储程式和函数的行为有什么限制?

  嵌入到存储程式中的不确定(随机)或时基行不能适当地复制。随机产生的结果,仅因其本性,是您可预测的和不能被确实克隆的。因此,复制到从服务器的随机行为将不会映像那些产生在主服务器上的。注意, 声明存储程式或函数为DETERMINISTIC或在log_bin_trust_routine_creators中配置系统变量为0 将会允许随即值操作被调用。

  此外,时基行为不能在从服务器上重新产生,因为在存储程式中通过对复制使用的二进制日志来计时这样的时基行为是不可重新产生的,因为该二进制日志仅纪录DML事件且不包括计时约束。

  最后,在大型DML行为(如大批插入)中非交互表发生错误,该非交互表可能经历复制,在复制版的非交互表中主服务器能够被部分地从DML行为更新。但是因为发生的那个错误,对从服务器没有更新。 对函数的DML行为,工作区将被用IGNORE关键词来执行,以便于在主服务器上导致错误的更新被忽略,并且不会导致错误的更新被复制到从服务器。


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!