概述
OCEANBASE HOW TO 查询DDL操作记录
SQL
select gmt_create,ddl_stmt_str from __all_virtual_ddl_operation where
ddl_stmt_str like '%表名或其它对象名或DDL操作关键字%' order by gmt_create desc;
参考
MySQL [oceanbase]> desc __all_virtual_ddl_operation;
+----------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+-------+
| tenant_id | bigint(20) | NO | PRI | NULL | |
| schema_version | bigint(20) | NO | PRI | NULL | |
| gmt_create | timestamp(6) | NO | | NULL | |
| gmt_modified | timestamp(6) | NO | | NULL | |
| user_id | bigint(20) | NO | | NULL | |
| database_id | bigint(20) | NO | | NULL | |
| database_name | varchar(128) | NO | | NULL | |
| tablegroup_id | bigint(20) | NO | | NULL | |
| table_id | bigint(20) | NO | | NULL | |
| table_name | varchar(128) | NO | | NULL | |
| operation_type | bigint(20) | NO | | NULL | |
| ddl_stmt_str | longtext | NO | | NULL | |<<<ddl操作语句
| exec_tenant_id | bigint(20) | NO | | 1 | |
+----------------+--------------+------+-----+---------+-------+
13 rows in set (0.002 sec)
operation_type为DDL类型代码,参考源码
https://github.com/oceanbase/oceanbase/blob/master/src/share/schema/ob_schema_service.h
=无值时,从上面的有值的开始,递增
#define OP_TYPE_DEF(ACT) \
ACT(OB_INVALID_DDL_OP, = 0) \
ACT(OB_DDL_TABLE_OPERATION_BEGIN, = 1) \
ACT(OB_DDL_DROP_TABLE, = 2) \
ACT(OB_DDL_ALTER_TABLE, = 3) \
ACT(OB_DDL_CREATE_TABLE, = 4) \
ACT(OB_DDL_ADD_COLUMN, = 5) \
ACT(OB_DDL_DROP_COLUMN, = 6) \
ACT(OB_DDL_CHANGE_COLUMN, = 7) \
ACT(OB_DDL_MODIFY_COLUMN, = 8) \
ACT(OB_DDL_ALTER_COLUMN, = 9) \
ACT(OB_DDL_MODIFY_META_TABLE_ID, = 10) \
ACT(OB_DDL_KILL_INDEX,) \
ACT(OB_DDL_STOP_INDEX_WRITE,) \
ACT(OB_DDL_MODIFY_INDEX_STATUS,) \
ACT(OB_DDL_MODIFY_TABLE_SCHEMA_VERSION,) \
ACT(OB_DDL_MODIFY_TABLE_OPTION, = 15) \
ACT(OB_DDL_TABLE_RENAME,) \
ACT(OB_DDL_MODIFY_DATA_TABLE_INDEX,) \
ACT(OB_DDL_DROP_INDEX,) \
ACT(OB_DDL_DROP_VIEW,) \
ACT(OB_DDL_CREATE_INDEX, = 20) \
ACT(OB_DDL_CREATE_VIEW,) \
ACT(OB_DDL_ALTER_TABLEGROUP_ADD_TABLE,) \
ACT(OB_DDL_TRUNCATE_TABLE_CREATE,) \
ACT(OB_DDL_TRUNCATE_TABLE_DROP,) \
ACT(OB_DDL_DROP_TABLE_TO_RECYCLEBIN, = 25) \
ACT(OB_DDL_DROP_VIEW_TO_RECYCLEBIN,) \
ACT(OB_DDL_FLASHBACK_TABLE,) \
ACT(OB_DDL_FLASHBACK_VIEW,) \
ACT(OB_DDL_ADD_PARTITION,) \
ACT(OB_DDL_DROP_PARTITION, = 30) \
ACT(OB_DDL_TRUNCATE_DROP_TABLE_TO_RECYCLEBIN,) \
ACT(OB_DDL_RENAME_INDEX,) \
ACT(OB_DDL_DROP_INDEX_TO_RECYCLEBIN,) \
ACT(OB_DDL_FLASHBACK_INDEX,) \
ACT(OB_DDL_PARTITIONED_TABLE, = 35) \
ACT(OB_DDL_FINISH_SPLIT,) \
ACT(OB_DDL_ADD_CONSTRAINT,) \
ACT(OB_DDL_DROP_CONSTRAINT,) \
ACT(OB_DDL_TRUNCATE_PARTITION, = 39) \
ACT(OB_DDL_CREATE_GLOBAL_INDEX, = 40) \
ACT(OB_DDL_ALTER_GLOBAL_INDEX, ) \
ACT(OB_DDL_RENAME_GLOBAL_INDEX,) \
ACT(OB_DDL_DROP_GLOBAL_INDEX,) \
ACT(OB_DDL_MODIFY_GLOBAL_INDEX_STATUS,) \
ACT(OB_DDL_FINISH_LOGICAL_SPLIT, = 45) \
ACT(OB_DDL_SPLIT_PARTITION, = 46) \
ACT(OB_DDL_STANDBY_REPLAY_CREATE_TABLE, = 47) \
ACT(OB_DDL_DELAY_DELETE_TABLE, = 48) \
ACT(OB_DDL_DELAY_DELETE_TABLE_PARTITION, = 49) \
ACT(OB_DDL_UPDATE_TABLE_SCHEMA_VERSION, = 50) \
ACT(OB_DDL_ADD_SUBPARTITION, = 51) \
ACT(OB_DDL_DROP_SUBPARTITION, = 52) \
ACT(OB_DDL_ALTER_INDEX_PARALLEL, = 53) \
ACT(OB_DDL_ADD_SUB_PARTITION, = 54) \
ACT(OB_DDL_DROP_SUB_PARTITION, = 55) \
ACT(OB_DDL_TRUNCATE_SUB_PARTITION, = 56) \
ACT(OB_DDL_SET_INTERVAL, = 57) \
ACT(OB_DDL_INTERVAL_TO_RANGE, = 58) \
ACT(OB_DDL_TRUNCATE_TABLE, = 59) \
ACT(OB_DDL_TABLE_OPERATION_END, = 100) \
ACT(OB_DDL_TENANT_OPERATION_BEGIN, = 101) \
ACT(OB_DDL_ADD_TENANT,) \
ACT(OB_DDL_ALTER_TENANT,) \
ACT(OB_DDL_DEL_TENANT,) \
ACT(OB_DDL_DEL_TENANT_START,) \
ACT(OB_DDL_DEL_TENANT_END,) \
ACT(OB_DDL_ADD_TENANT_START,) \
ACT(OB_DDL_ADD_TENANT_END,) \
ACT(OB_DDL_RENAME_TENANT,) \
ACT(OB_DDL_DROP_TENANT_TO_RECYCLEBIN,) \
ACT(OB_DDL_FLASHBACK_TENANT,) \
ACT(OB_DDL_TENANT_OPERATION_END, = 200) \
ACT(OB_DDL_DATABASE_OPERATION_BEGIN, = 201) \
ACT(OB_DDL_ADD_DATABASE,) \
ACT(OB_DDL_ALTER_DATABASE,) \
ACT(OB_DDL_DEL_DATABASE,) \
ACT(OB_DDL_RENAME_DATABASE,) \
ACT(OB_DDL_DROP_DATABASE_TO_RECYCLEBIN,) \
ACT(OB_DDL_FLASHBACK_DATABASE,) \
ACT(OB_DDL_DELAY_DELETE_DATABASE,) \
ACT(OB_DDL_DATABASE_OPERATION_END, = 300) \
ACT(OB_DDL_TABLEGROUP_OPERATION_BEGIN, = 301) \
ACT(OB_DDL_ADD_TABLEGROUP,) \
ACT(OB_DDL_DEL_TABLEGROUP,) \
ACT(OB_DDL_RENAME_TABLEGROUP,) \
ACT(OB_DDL_ALTER_TABLEGROUP,) \
ACT(OB_DDL_ALTER_TABLEGROUP_PARTITION,) \
ACT(OB_DDL_FINISH_SPLIT_TABLEGROUP,) \
ACT(OB_DDL_FINISH_LOGICAL_SPLIT_TABLEGROUP, = 308) \
ACT(OB_DDL_SPLIT_TABLEGROUP_PARTITION, = 309) \
ACT(OB_DDL_PARTITIONED_TABLEGROUP_TABLE, = 310) \
ACT(OB_DDL_DELAY_DELETE_TABLEGROUP, = 311) \
ACT(OB_DDL_DELAY_DELETE_TABLEGROUP_PARTITION, = 312) \
ACT(OB_DDL_TABLEGROUP_OPERATION_END, = 400) \
ACT(OB_DDL_USER_OPERATION_BEGIN, = 401) \
ACT(OB_DDL_CREATE_USER,) \
ACT(OB_DDL_DROP_USER,) \
ACT(OB_DDL_RENAME_USER,) \
ACT(OB_DDL_LOCK_USER,) \
ACT(OB_DDL_SET_PASSWD,) \
ACT(OB_DDL_GRANT_REVOKE_USER,) \
ACT(OB_DDL_ALTER_USER_REQUIRE,) \
ACT(OB_DDL_MODIFY_USER_SCHEMA_VERSION,) \
ACT(OB_DDL_ALTER_USER_PROFILE,) \
ACT(OB_DDL_ALTER_USER,) \
ACT(OB_DDL_ALTER_ROLE,) \
ACT(OB_DDL_USER_OPERATION_END, = 500) \
ACT(OB_DDL_DB_PRIV_OPERATION_BEGIN, = 501) \
ACT(OB_DDL_GRANT_REVOKE_DB,) \
ACT(OB_DDL_DEL_DB_PRIV,) \
ACT(OB_DDL_DB_PRIV_OPERATION_END, = 600) \
ACT(OB_DDL_TABLE_PRIV_OPERATION_BEGIN, = 601) \
ACT(OB_DDL_GRANT_REVOKE_TABLE,) \
ACT(OB_DDL_DEL_TABLE_PRIV,) \
ACT(OB_DDL_TABLE_PRIV_OPERATION_END, = 700) \
ACT(OB_DDL_OUTLINE_OPERATION_BEGIN, = 701) \
ACT(OB_DDL_CREATE_OUTLINE,) \
ACT(OB_DDL_REPLACE_OUTLINE,) \
ACT(OB_DDL_DROP_OUTLINE,) \
ACT(OB_DDL_ALTER_OUTLINE,) \
ACT(OB_DDL_OUTLINE_OPERATION_END, = 800) \
ACT(OB_DDL_ZONE_OPERATION_BEGIN, = 801) \
ACT(OB_DDL_ALTER_ZONE,) \
ACT(OB_DDL_ADD_ZONE,) \
ACT(OB_DDL_DELETE_ZONE,) \
ACT(OB_DDL_START_ZONE,) \
ACT(OB_DDL_STOP_ZONE,) \
ACT(OB_DDL_ZONE_OPERATION_END, = 900) \
ACT(OB_DDL_SYNONYM_OPERATION_BEGIN, = 901) \
ACT(OB_DDL_CREATE_SYNONYM,) \
ACT(OB_DDL_DROP_SYNONYM,) \
ACT(OB_DDL_REPLACE_SYNONYM,) \
ACT(OB_DDL_SYNONYM_OPERATION_END, = 1000) \
ACT(OB_DDL_PLAN_BASELINE_OPERATION_BEGIN, = 1001) \
ACT(OB_DDL_CREATE_PLAN_BASELINE,) \
ACT(OB_DDL_REPLACE_PLAN_BASELINE,) \
ACT(OB_DDL_DROP_PLAN_BASELINE,) \
ACT(OB_DDL_ALTER_PLAN_BASELINE,) \
ACT(OB_DDL_PLAN_BASELINE_OPERATION_END, = 1100) \
ACT(OB_DDL_ROUTINE_OPERATION_BEGIN, = 1201) \
ACT(OB_DDL_CREATE_ROUTINE,) \
ACT(OB_DDL_DROP_ROUTINE,) \
ACT(OB_DDL_ALTER_ROUTINE,) \
ACT(OB_DDL_REPLACE_ROUTINE,) \
ACT(OB_DDL_ROUTINE_OPERATION_END, = 1250) \
ACT(OB_DDL_PACKAGE_OPERATION_BEGIN, = 1251) \
ACT(OB_DDL_CREATE_PACKAGE,) \
ACT(OB_DDL_ALTER_PACKAGE,) \
ACT(OB_DDL_DROP_PACKAGE,) \
ACT(OB_DDL_PACKAGE_OPERATION_END, = 1300) \
ACT(OB_DDL_UDF_OPERATION_BEGIN, = 1301) \
ACT(OB_DDL_CREATE_UDF,) \
ACT(OB_DDL_DROP_UDF,) \
ACT(OB_DDL_UDF_OPERATION_END, = 1310) \
ACT(OB_DDL_SEQUENCE_OPERATION_BEGIN, = 1311) \
ACT(OB_DDL_CREATE_SEQUENCE,) \
ACT(OB_DDL_ALTER_SEQUENCE,) \
ACT(OB_DDL_DROP_SEQUENCE,) \
ACT(OB_DDL_SEQUENCE_OPERATION_END, = 1320) \
ACT(OB_DDL_UDT_OPERATION_BEGIN, = 1321) \
ACT(OB_DDL_CREATE_UDT,) \
ACT(OB_DDL_REPLACE_UDT,) \
ACT(OB_DDL_DROP_UDT,) \
ACT(OB_DDL_DROP_UDT_BODY,) \
ACT(OB_DDL_UDT_OPERATION_END, = 1330) \
ACT(OB_DDL_AUDIT_OPERATION_BEGIN, = 1331) \
ACT(OB_DDL_ADD_AUDIT,) \
ACT(OB_DDL_UPDATE_AUDIT,) \
ACT(OB_DDL_DEL_AUDIT,) \
ACT(OB_DDL_AUDIT_OPERATION_END, = 1340) \
ACT(OB_DDL_SYS_VAR_OPERATION_BEGIN, = 1401) \
ACT(OB_DDL_ALTER_SYS_VAR,) \
ACT(OB_DDL_SYS_VAR_OPERATION_END, = 1500) \
ACT(OB_DDL_ONLY_SIGNAL_OPERATION_BEGIN, = 1501) \
ACT(OB_DDL_NOT_SYNC_OPERATION,) \
ACT(OB_DDL_END_SIGN,) \
ACT(OB_DDL_SWITCHOVER_TO_LEADER_SUCC,) \
ACT(OB_DDL_START_SWTICHOVER_TO_FOLLOWER,) \
ACT(OB_DDL_FINISH_SCHEMA_SPLIT,) \
ACT(OB_DDL_REFRESH_SCHEMA_VERSION,) \
ACT(OB_DDL_FINISH_BOOTSTRAP,) \
ACT(OB_DDL_FINISH_SCHEMA_SPLIT_V2,) \
ACT(OB_DDL_FINISH_PHYSICAL_RESTORE_MODIFY_SCHEMA,) \
ACT(OB_DDL_ONLY_SIGNAL_OPERATION_END, = 1600) \
ACT(OB_DDL_STANDBY_FINISH_REPLAY_SCHEMA_SNAPSHOT, = 1601) \
ACT(OB_DDL_KEYSTORE_OPERATION_BEGIN, = 1650) \
ACT(OB_DDL_CREATE_KEYSTORE,) \
ACT(OB_DDL_ALTER_KEYSTORE,) \
ACT(OB_DDL_KEYSTORE_OPERATION_END, = 1700) \
ACT(OB_DDL_LABEL_SE_POLICY_OPERATION_BEGIN, = 1701) \
ACT(OB_DDL_CREATE_LABEL_SE_POLICY,) \
ACT(OB_DDL_ALTER_LABEL_SE_POLICY,) \
ACT(OB_DDL_DROP_LABEL_SE_POLICY,) \
ACT(OB_DDL_LABEL_SE_POLICY_OPERATION_END, = 1750) \
ACT(OB_DDL_LABEL_SE_COMPONENT_OPERATION_BEGIN, = 1751) \
ACT(OB_DDL_CREATE_LABEL_SE_LEVEL,) \
ACT(OB_DDL_ALTER_LABEL_SE_LEVEL,) \
ACT(OB_DDL_DROP_LABEL_SE_LEVEL,) \
ACT(OB_DDL_CREATE_LABEL_SE_COMPARTMENT,) \
ACT(OB_DDL_ALTER_LABEL_SE_COMPARTMENT,) \
ACT(OB_DDL_DROP_LABEL_SE_COMPARTMENT,) \
ACT(OB_DDL_CREATE_LABEL_SE_GROUP,) \
ACT(OB_DDL_ALTER_LABEL_SE_GROUP,) \
ACT(OB_DDL_DROP_LABEL_SE_GROUP,) \
ACT(OB_DDL_LABEL_SE_COMPONENT_OPERATION_END, = 1800) \
ACT(OB_DDL_LABEL_SE_LABEL_OPERATION_BEGIN, = 1801) \
ACT(OB_DDL_CREATE_LABEL_SE_LABEL,) \
ACT(OB_DDL_ALTER_LABEL_SE_LABEL,) \
ACT(OB_DDL_DROP_LABEL_SE_LABEL,) \
ACT(OB_DDL_LABEL_SE_LABEL_OPERATION_END, = 1850) \
ACT(OB_DDL_LABEL_SE_USER_LABEL_OPERATION_BEGIN, = 1851) \
ACT(OB_DDL_CREATE_LABEL_SE_USER_LEVELS,) \
ACT(OB_DDL_ALTER_LABEL_SE_USER_LEVELS,) \
ACT(OB_DDL_DROP_LABEL_SE_USER_LEVELS,) \
ACT(OB_DDL_LABEL_SE_USER_LABEL_OPERATION_END, = 1900) \
ACT(OB_DDL_TABLESPACE_OPERATION_BEGIN, = 1901) \
ACT(OB_DDL_CREATE_TABLESPACE,) \
ACT(OB_DDL_ALTER_TABLESPACE,) \
ACT(OB_DDL_DROP_TABLESPACE,) \
ACT(OB_DDL_TABLESPACE_OPERATION_END, = 1950) \
ACT(OB_DDL_TRIGGER_OPERATION_BEGIN, = 1951) \
ACT(OB_DDL_CREATE_TRIGGER,) \
ACT(OB_DDL_ALTER_TRIGGER,) \
ACT(OB_DDL_DROP_TRIGGER,) \
ACT(OB_DDL_DROP_TRIGGER_TO_RECYCLEBIN,) \
ACT(OB_DDL_FLASHBACK_TRIGGER,) \
ACT(OB_DDL_TRIGGER_OPERATION_END, = 1960) \
ACT(OB_DDL_PROFILE_OPERATION_BEGIN, = 1961) \
ACT(OB_DDL_CREATE_PROFILE,) \
ACT(OB_DDL_ALTER_PROFILE,) \
ACT(OB_DDL_DROP_PROFILE,) \
ACT(OB_DDL_PROFILE_OPERATION_END, = 1970) \
ACT(OB_DDL_SYS_PRIV_OPERATION_BEGIN, = 1971) \
ACT(OB_DDL_SYS_PRIV_GRANT_REVOKE,) \
ACT(OB_DDL_SYS_PRIV_DELETE,) \
ACT(OB_DDL_SYS_PRIV_OPERATION_END, = 1980) \
ACT(OB_DDL_OBJ_PRIV_OPERATION_BEGIN, = 1981) \
ACT(OB_DDL_OBJ_PRIV_GRANT_REVOKE,) \
ACT(OB_DDL_OBJ_PRIV_DELETE,) \
ACT(OB_DDL_OBJ_PRIV_OPERATION_END, = 1990) \
ACT(OB_DDL_DBLINK_OPERATION_BEGIN, = 1991) \
ACT(OB_DDL_CREATE_DBLINK,) \
ACT(OB_DDL_DROP_DBLINK,) \
ACT(OB_DDL_DBLINK_OPERATION_END, = 2000) \
ACT(OB_DDL_DIRECTORY_OPERATION_BEGIN, = 2001) \
ACT(OB_DDL_CREATE_DIRECTORY,) \
ACT(OB_DDL_ALTER_DIRECTORY,) \
ACT(OB_DDL_DROP_DIRECTORY,) \
ACT(OB_DDL_DIRECTORY_OPERATION_END, = 2010) \
ACT(OB_DDL_CONTEXT_OPERATION_BEGIN, = 2011) \
ACT(OB_DDL_CREATE_CONTEXT,) \
ACT(OB_DDL_ALTER_CONTEXT,) \
ACT(OB_DDL_DROP_CONTEXT,) \
ACT(OB_DDL_CONTEXT_OPERATION_END, =2020) \
ACT(OB_DDL_MOCK_FK_PARENT_TABLE_OPERATION_BEGIN, = 2021) \
ACT(OB_DDL_CREATE_MOCK_FK_PARENT_TABLE, = 2022) \
ACT(OB_DDL_ALTER_MOCK_FK_PARENT_TABLE, = 2023) \
ACT(OB_DDL_DROP_MOCK_FK_PARENT_TABLE, = 2024) \
ACT(OB_DDL_MOCK_FK_PARENT_TABLE_OPERATION_END, =2030) \
ACT(OB_DDL_RLS_POLICY_OPERATION_BEGIN, = 2031) \
ACT(OB_DDL_CREATE_RLS_POLICY, = 2032) \
ACT(OB_DDL_DROP_RLS_POLICY, = 2033) \
ACT(OB_DDL_ALTER_RLS_POLICY, = 2034) \
ACT(OB_DDL_RLS_POLICY_ADD_ATTRIBUTE, = 2035) \
ACT(OB_DDL_RLS_POLICY_DROP_ATTRIBUTE, = 2036) \
ACT(OB_DDL_RLS_POLICY_OPERATION_END, = 2040) \
ACT(OB_DDL_RLS_GROUP_OPERATION_BEGIN, = 2041) \
ACT(OB_DDL_CREATE_RLS_GROUP, = 2042) \
ACT(OB_DDL_DROP_RLS_GROUP, = 2043) \
ACT(OB_DDL_RLS_GROUP_OPERATION_END, = 2050) \
ACT(OB_DDL_RLS_CONTEXT_OPERATION_BEGIN, = 2051) \
ACT(OB_DDL_CREATE_RLS_CONTEXT, = 2052) \
ACT(OB_DDL_DROP_RLS_CONTEXT, = 2053) \
ACT(OB_DDL_RLS_CONTEXT_OPERATION_END, = 2060) \
ACT(OB_DDL_MAX_OP,)
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




