⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wait_slave_status.inc

📁 这是linux下运行的mysql软件包,可用于linux 下安装 php + mysql + apach 的网络配置
💻 INC
字号:
# include/wait_slave_status.inc## Created by Matthias Leich## SUMMARY##    Waits until slave has reached certain state or maximum time reached.##    (This script will not work, when the SHOW command delivers more than one #    result record, because only the first record will be caught.)## USAGE##    Set $result_pattern in test file and source this file:##      let $result_pattern= <pattern used for LIKE on the result of#                           SHOW STATUS SLAVE>#      --include wait_slave_status.inc## EXAMPLE##    The script rpl_until.test:#       ...#       --replace_result $MASTER_MYPORT MASTER_MYPORT#       --replace_column 1 # 9 # 23 # 33 ##       --vertical_results show slave status;##    outputs#       show slave status;#       Slave_IO_State  ##       Master_Host     127.0.0.1#       Master_User     root#       Master_Port     MASTER_MYPORT#       Connect_Retry   1#       Master_Log_File master-bin.000001#       Read_Master_Log_Pos     776#       Relay_Log_File  slave-relay-bin.000004#       Relay_Log_Pos   ##       Relay_Master_Log_File   master-bin.000001#       Slave_IO_Running        Yes#       Slave_SQL_Running       No#       Replicate_Do_DB#       Replicate_Ignore_DB#       Replicate_Do_Table#       Replicate_Ignore_Table#       Replicate_Wild_Do_Table#       Replicate_Wild_Ignore_Table#       Last_Errno      0#       Last_Error#       Skip_Counter    0#       Exec_Master_Log_Pos     319#       Relay_Log_Space ##       Until_Condition Master#       Until_Log_File  master-bin.000001#       Until_Log_Pos   319#       Master_SSL_Allowed      No#       Master_SSL_CA_File#       Master_SSL_CA_Path#       Master_SSL_Cert#       Master_SSL_Cipher#       Master_SSL_Key#       Seconds_Behind_Master   ### The main problem with the "show slave status;" in rpl_until is, that# depending on the total test engine power and the current load caused by# other processes, the expected slave status might be not reached though# it will happen in maybe some seconds.## The typical problem with rpl_until is that Slave_IO_Running is "No"# instead of "Yes".## The expected result follows the LIKE pattern:##   let $result_pattern= '%127.0.0.1%root%1%master-bin.000001%776%slave-relay-bin.000004%master-bin.000001%Yes%No%0%0%319%Master%master-bin.000001%319%No%';## The Slave_IO_Running value is the "Yes" just after the "master-bin.000001".## How to get this pattern ?##     Any lines "--replace_result ..." and "--replace_colum ..." just before#     the SHOW TABLE STATUS and of course the expected result itself#     show us columns where the content must be unified, because it is non#     deterministic or it depends on the current test environment.##     Unfortunately "--replace_result ..." and "--replace_colum ..." do not#     affect the result of our assignment    let $my_val= `SHOW SLAVE STATUS`;#     Therefore such content must be covered by '%'.##     Please be careful. A more simple pattern might be dangerous, because we#     might get "wrong" matches. Example: There might be several "Yes" and "No"#     within one result row.################################################################################# We do not want to print the auxiliary commands, because they are not of# interest and their amount will vary depending how fast we get the# desired state.--disable_query_log# The protocol should show# - the setting of $result_pattern   and# - that this file is sourced           ,# because this increases the chance to use the protocol as replay script.eval SELECT "let \$result_pattern= $result_pattern ;" AS "";SELECT '--source include/wait_slave_status.inc' AS "";# We accept to wait maximum 30 seconds (0.2 sec/loop).let $max_wait= 150;while ($max_wait){    let $my_val= `SHOW SLAVE STATUS`;    # Now we have the first record of the SHOW result set as one fat string    # within the variable  $my_val.    eval SET @my_val = '$my_val';    # DEBUG eval SELECT @my_val AS "response to SHOW SLAVE STATUS";    eval SELECT @my_val LIKE $result_pattern INTO @success;    # @success is     '1' if we have a match    #                 '0' if we have no match    # DEBUG SELECT @success;    let $success= `SELECT @success`;    let $no_success= `SELECT @success = 0`;    if ($success)    {       # We reached the expected result and want to jump out of the loop       # without unneeded sleeps.       # Attention: Do not set $max_wait to 0, because "while" with negative value       #            does not work.       let $max_wait= 1;    }    if ($no_success)    {       # We did not reach the expected result and will have to sleep again       # or jump out of the loop, when max_wait is exhausted.       real_sleep 0.2;    }    dec $max_wait;}--enable_query_logif ($no_success){let $message= ! Attention: Timeout in wait_slave_status.inc.              |       Possible reasons with decreasing probability:              |       - The LIKE pattern ($result_pattern) is wrong, because the              |         testcase was altered or the layout of the              |         SHOW SLAVE STATUS result set changed.              |       - There is a new bug within the replication.              |       - We met an extreme testing environment and $max_wait is              |         too small.;--source include/show_msg80.inc--echo DEBUG INFO START (wait_slave_status.inc):--echo $result_pattern--vertical_resultsshow slave status;--echo DEBUG INFO END}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -