国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL中存儲程序、函數、觸發程序以及復制

2024-07-24 12:57:50
字體:
來源:轉載
供稿:網友

  作者:shuixian

  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關鍵詞來執行,以便于在主服務器上導致錯誤的更新被忽略,并且不會導致錯誤的更新被復制到從服務器。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安丘市| 苗栗县| 连平县| 东宁县| 昔阳县| 堆龙德庆县| 山阳县| 刚察县| 和田市| 长寿区| 靖西县| 马山县| 新蔡县| 饶阳县| 北票市| 屏东县| 古丈县| 宁安市| 罗江县| 沈阳市| 黔西县| 浦城县| 聂荣县| 仁布县| 德阳市| 额尔古纳市| 延安市| 东阳市| 盐城市| 方正县| 广平县| 东莞市| 乐至县| 奉新县| 多伦县| 沙雅县| 隆德县| 中西区| 佳木斯市| 余干县| 科尔|