ITPub博客

首页 > 数据库 > Oracle > 主从环境下的event操作

主从环境下的event操作

原创 Oracle 作者:鲍远森 时间:2014-06-25 11:04:27 0 删除 编辑
默认情况下,master创建event,slave同步后默认是disable的:
1.在master创建event:
create event event_master 
    on schedule at current_timestamp + interval 1 minute
    on completion preserve enable
do insert into baofeng(id) values(1000);

--查看master的event状态:
mysql> select status from information_schema.EVENTS where event_name = 'event_master';
+---------+
| status  |
+---------+
| ENABLED |
+---------+
1 row in set (0.00 sec)

2.查看slave的event语句:
mysql> show create event event_master\G;
*************************** 1. row ***************************
               Event: event_master
            sql_mode: STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
           time_zone: SYSTEM
        Create Event: CREATE DEFINER=`root`@`%` EVENT `event_master` ON SCHEDULE AT '2014-06-25 10:12:56' ON COMPLETION PRESERVE DISABLE ON SLAVE DO insert into baofeng(id) values(1000)
character_set_client: utf8
collation_connection: utf8_general_ci
  Database Collation: latin1_swedish_ci
1 row in set (0.00 sec)

ERROR: 
No query specified

--查看slave的event状态:
mysql> select status from information_schema.EVENTS where event_name = 'event_master';
+--------------------+
| status             |
+--------------------+
| SLAVESIDE_DISABLED |
+--------------------+
1 row in set (0.00 sec)

可见当默认的情况下,在slave的event并不会被enable

主从切换:
    如果主库切换到从库,这个时候我们需要显式的执行alter将该event启动
alter event event_master enable;

    这个时候有个问题,若主库恢复正常后,需要加到从库中,但这个时候的event的状态是“enable”,如果这时启动“master主库”,则event会自动执行,因此我们需要做如下步骤:
1.修改参数文件,将event_scheduler=OFF,启动“主库”。
2.将event disable:
alter event event_master SLAVESIDE_DISABLED;
3.启动event_scheduler(没有特殊需求,这个步骤做不做应该问题都不大):
set event_scheduler=ON;
4.修改参数文件,将event_scheduler=ON









来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25704976/viewspace-1193199/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-07-12

  • 博文量
    13
  • 访问量
    309678