Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
oceanbase
oceanbase
提交
bc3effd2
O
oceanbase
项目概览
oceanbase
/
oceanbase
9 个月 前同步成功
通知
261
Star
6084
Fork
1301
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
oceanbase
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
bc3effd2
编写于
11月 30, 2022
作者:
O
obdev
提交者:
OB-robot
11月 30, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[CP] [bugfix] add ob_admin function to deal with sys log stream only_in_member_list
上级
1f24b71d
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
69 addition
and
0 deletion
+69
-0
tools/ob_admin/server_tool/ob_admin_routine.cpp
tools/ob_admin/server_tool/ob_admin_routine.cpp
+69
-0
未找到文件。
tools/ob_admin/server_tool/ob_admin_routine.cpp
浏览文件 @
bc3effd2
...
...
@@ -518,3 +518,72 @@ DEF_COMMAND(TRANS, kill_part_trans_ctx, 1,
{
return
OB_NOT_SUPPORTED
;
}
// ls_remove_member
// @params [in] tenant_id, which tenant to modify
// @params [in] ls_id, which log stream to modify
// @params [in] svr_ip, the server ip want to delete
// @params [in] svr_port, the server port want to delete
// @params [in] orig_paxos_number, paxos replica number before this deletion
// @params [in] new_paxos_number, paxos replica number after this deletion
// ATTENTION:
// Please make sure let log stream's leader to execute this command
// For permanant offline, orig_paxos_number should equals to new_paxos_number
DEF_COMMAND
(
TRANS
,
ls_remove_member
,
1
,
"tenant_id ls_id svr_ip svr_port orig_paxos_number new_paxos_number # ls_remove_member"
)
{
int
ret
=
OB_SUCCESS
;
string
arg_str
;
ObLSDropPaxosReplicaArg
arg
;
int64_t
tenant_id_to_set
=
OB_INVALID_TENANT_ID
;
int64_t
ls_id_to_set
=
0
;
int64_t
orig_paxos_replica_number
=
0
;
int64_t
new_paxos_replica_number
=
0
;
int32_t
port
=
0
;
char
ip
[
30
];
if
(
cmd_
==
action_name_
)
{
ret
=
OB_INVALID_ARGUMENT
;
ADMIN_WARN
(
"should provide tenant_id, ls_id ,member to remove, previous and new paxos replica number"
);
}
else
{
arg_str
=
cmd_
.
substr
(
action_name_
.
length
()
+
1
);
}
if
(
OB_FAIL
(
ret
))
{
}
else
if
(
6
!=
sscanf
(
arg_str
.
c_str
(),
"%ld %ld %s %d %ld %ld"
,
&
tenant_id_to_set
,
&
ls_id_to_set
,
ip
,
&
port
,
&
orig_paxos_replica_number
,
&
new_paxos_replica_number
))
{
ret
=
OB_INVALID_ARGUMENT
;
COMMON_LOG
(
WARN
,
"invalid arg"
,
K
(
ret
),
K
(
arg_str
.
c_str
()),
K
(
cmd_
.
c_str
()),
K
(
tenant_id_to_set
),
K
(
ls_id_to_set
),
K
(
port
),
K
(
orig_paxos_replica_number
),
K
(
new_paxos_replica_number
));
}
else
{
common
::
ObAddr
server_to_remove
(
common
::
ObAddr
::
VER
::
IPV4
,
ip
,
port
);
common
::
ObReplicaMember
remove_member
(
server_to_remove
,
1
);
share
::
ObTaskId
task_id
;
share
::
ObLSID
ls_id
(
ls_id_to_set
);
task_id
.
init
(
server_to_remove
);
if
(
OB_ISNULL
(
client_
)
||
OB_UNLIKELY
(
OB_INVALID_TENANT_ID
==
tenant_id_to_set
||
!
ls_id
.
is_valid_with_tenant
(
tenant_id_to_set
)
||
!
server_to_remove
.
is_valid
()
||
1
<
orig_paxos_replica_number
-
new_paxos_replica_number
||
0
>
orig_paxos_replica_number
-
new_paxos_replica_number
))
{
ret
=
OB_INVALID_ARGUMENT
;
COMMON_LOG
(
WARN
,
"invalid argument"
,
K
(
ret
),
K
(
tenant_id_to_set
),
K
(
ls_id
),
K
(
remove_member
),
K
(
task_id
),
K
(
orig_paxos_replica_number
),
K
(
new_paxos_replica_number
),
K
(
port
),
K
(
ip
),
KP
(
client_
));
}
else
if
(
OB_FAIL
(
arg
.
init
(
task_id
,
tenant_id_to_set
,
ls_id
,
remove_member
,
orig_paxos_replica_number
,
new_paxos_replica_number
)))
{
COMMON_LOG
(
WARN
,
"init arg failed"
,
K
(
ret
),
K
(
task_id
),
K
(
tenant_id_to_set
),
K
(
ls_id
),
K
(
remove_member
),
K
(
orig_paxos_replica_number
),
K
(
new_paxos_replica_number
));
}
else
if
(
OB_FAIL
(
client_
->
ls_remove_paxos_replica
(
arg
)))
{
COMMON_LOG
(
ERROR
,
"send req fail"
,
K
(
ret
));
}
}
COMMON_LOG
(
INFO
,
"ls_remove_member"
,
K
(
arg
));
return
ret
;
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录