暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

开源OceanBase迁移工具OMS部署

原创 许玉冲 2022-02-22
3086

本文介绍开源工具OMS部署方法和步骤。


1,系统和软件版本

操作系统已经完成部署docker软件。


[root@i-AAB0CE27 ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@i-AAB0CE27 ~]# docker --version
Docker version 18.03.1-ce, build 9ee9f40


#OMS的ip地址信息192.168.6.71

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether d0:0d:aa:b0:ce:27 brd ff:ff:ff:ff:ff:ff
    inet 192.168.6.71/24 brd 192.168.6.255 scope global dynamic eth0
       valid_lft 315336008sec preferred_lft 315336008sec
    inet6 fe80::d20d:aaff:feb0:ce27/64 scope link
       valid_lft forever preferred_lft forever


2,导入oms-3.2.2-ce.tar.gz镜像

 docker load -i oms-3.2.2-ce.tar.gz


3,配置文件配置config.yaml

ob数据库地址:192.168.6.61   用户名称和密码:root/root

oms服务器地址:192.168.6.71

#配置文件注释信息:

oms_meta_hostOMS 社区版元信息库的 IP 地址。必选
oms_meta_portOMS 社区版元信息库的访问端口。必选
oms_meta_userOMS 社区版访问元信息库的账号。必选
oms_meta_passwordOMS 社区版访问元信息库的密码。必选
 
drc_rm_db管理控制台的数据库名称。必选
drc_cm_db集群管理服务的元数据库名称。必选
drc_cm_heartbeat_db集群管理服务的心跳库的名称。必选
 
drc_user用于读取 OceanBase 社区版增量日志的账号名称,需要在 sys 租户下创建该用户。必选
drc_passworddrc_user 账号对应的密码。必选

cm_urlOMS 社区版集群管理服务的地址。例如,http://VIP:8088。 说明 通常配置为当前 OMS 社区版机器 IP,不建议您使用 http://127.0.0.1:8088。必选
cm_location地域码,取值范围为 [0,127]。每个地域一个数字,用户自行选择。必选
cm_regionOMS 社区版服务器所在地域,例如 cn-jiangsu。可选
cm_region_cn地域的中文标识。例如,江苏。可选
cm_nodesOMS 社区版集群管理服务的机器 IP 列表。必选


#config.yaml配置文件参考:

[root@i-AAB0CE27 conf]# cat config.yaml
# OMS 社区版部署必填配置
# OMS 社区版元数据库信息,即创建的租户所在 OceanBase 集群对应的信息
# 您需要提前准备一个 OceanBase 数据库,用于存放 OMS 社区版的元信息
oms_meta_host: 192.168.6.61
oms_meta_port: 2881
oms_meta_user: root
oms_meta_password: root

# 用户可以自定义以下三个数据库的名称,OMS 社区版部署时会在元信息库中创建出这三个数据库
drc_rm_db: omsrm
drc_cm_db: omscm
drc_cm_heartbeat_db: omsdb

# OceanBase 社区版增量用户
# 当需要从 OceanBase 社区版消费增量日志时,请在 sys 租户下创建用户
# drc user 需要在待迁移的 OceanBase 集群 sys 租户下创建,然后在 OMS 社区版 yaml 文件中指定
drc_user: oms
drc_password: oms

# OMS 社区版集群配置
# 通常配置为当前 OMS 社区版机器 IP
cm_url: http://192.168.6.71:8088
cm_location: 100
cm_region: bj
cm_region_cn: bjcn
cm_is_default: true# cm_nodes 为列表形式,-前需要有两个空格
cm_nodes:
  - 192.168.6.71


4.启动docker

OMS_HOST_IP=192.168.6.71
CONTAINER_NAME=oms_01

docker run -dit --net host \
-v /data/oms/oms_logs:/home/admin/logs \
-v /data/oms/oms_store:/home/ds/store \
-v /data/oms/oms_run:/home/ds/run \
-e OMS_HOST_IP=${OMS_HOST_IP} \
--privileged=true \
--pids-limit -1 \
--ulimit nproc=65535:65535 \
--name ${CONTAINER_NAME} \
reg.docker.alibaba-inc.com/oceanbase/oms:feature_3.2.2-ce


5.进入容器

[root@i-AAB0CE27 ~]# docker ps
CONTAINER ID        IMAGE                                                       COMMAND                  CREATED             STATUS              PORTS               NAMES
5c8004c28e7b        reg.docker.alibaba-inc.com/oceanbase/oms:feature_3.2.2-ce   "/bin/sh -c '/usr/bi…"   About an hour ago   Up About an hour                        oms_01
[root@i-AAB0CE27 ~]# docker exec -it 5c8004c28e7b bash


6.初始化集群(在容器内部进行初始化操作)

#配置文件位置:修改手动修改相关内容。

/home/admin/conf/config.yaml

#初始化集群

bash /root/docker_init.sh

#初始化过程日志:

[root@i-AAB0CE27 ~]# bash /root/docker_init.sh

------------------------------------------------------------------------------------------------------------------------------------------------
# 【步骤一】校验 config.yaml 配置文件
------------------------------------------------------------------------------------------------------------------------------------------------
python -m omsflow.scripts.units.oms_cluster_config --check /home/admin/conf/config.yaml

/root/omsflow
2022-02-22 13:47:17,555-Oms-DEBUG oms_cluster_config.main.778 :load config file /home/admin/conf/config.yaml
`master_cm_endpoint` is http://192.168.6.71:8080
`master_oms_endpoint` is http://192.168.6.71:8080
`drc_user` is oms
`drc_password` is oms
`role` is master
success: config file is verification ok ...

query {'charset': 'utf8'} {'username': 'root', 'database': 'omsrm', 'host': '192.168.6.61', 'password_original': 'root', 'drivername': 'mysql+pymysql', 'query': {'charset': 'utf8'}, 'port': 2881}
2022-02-22 13:47:17,583-Oms-DEBUG units.create_engine_wrapper.66 :create a new sqlalchemy engine wrapped Engine(mysql+pymysql://root:***@192.168.6.61:2881/omsrm?charset=utf8)
master_drc_rm_meta_uri is accessible
please check your master idc drc_user master is accessible
cm_location is 100


------------------------------------------------------------------------------------------------------------------------------------------------
# 【步骤二】创建 OMS 元信息库
------------------------------------------------------------------------------------------------------------------------------------------------
python -m omsflow.scripts.units.oms_init_manager --init-db

/root/omsflow
/usr/lib/python2.7/site-packages/sqlalchemy_utils/types/encrypted/encrypted_type.py:18: CryptographyDeprecationWarning: Python 2 is no longer supported by the Python core team. Support for it is now deprecated in cryptography, and will be removed in the next release.
  import cryptography
use config /home/admin/conf/config.yaml
no drop task
no init task
query {'charset': 'utf8'} {'username': 'root', 'database': 'omscm', 'host': '192.168.6.61', 'password_original': 'root', 'drivername': 'mysql+pymysql', 'query': {'charset': 'utf8'}, 'port': 2881}
2022-02-22 13:47:18,147-Oms-DEBUG units.create_engine_wrapper.66 :create a new sqlalchemy engine wrapped Engine(mysql+pymysql://root:***@192.168.6.61:2881/omscm?charset=utf8)
/usr/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/base.py:1320: SAWarning: Current MySQL version does not support CAST; the CAST will be skipped.
  "Current MySQL version does not support "
query {'charset': 'utf8'} {'username': 'root', 'database': 'omsrm', 'host': '192.168.6.61', 'password_original': 'root', 'drivername': 'mysql+pymysql', 'query': {'charset': 'utf8'}, 'port': 2881}
2022-02-22 13:47:18,251-Oms-DEBUG units.create_engine_wrapper.66 :create a new sqlalchemy engine wrapped Engine(mysql+pymysql://root:***@192.168.6.61:2881/omsrm?charset=utf8)
query {'charset': 'utf8'} {'username': 'root', 'database': 'omsdb', 'host': '192.168.6.61', 'password_original': 'root', 'drivername': 'mysql+pymysql', 'query': {'charset': 'utf8'}, 'port': 2881}
2022-02-22 13:47:18,349-Oms-DEBUG units.create_engine_wrapper.66 :create a new sqlalchemy engine wrapped Engine(mysql+pymysql://root:***@192.168.6.61:2881/omsdb?charset=utf8)
query {'charset': 'utf8'} {'username': 'root', 'database': 'omsrm', 'host': '192.168.6.61', 'password_original': 'root', 'drivername': 'mysql+pymysql', 'query': {'charset': 'utf8'}, 'port': 2881}
2022-02-22 13:47:18,445-Oms-DEBUG units.create_engine_wrapper.66 :create a new sqlalchemy engine wrapped Engine(mysql+pymysql://root:***@192.168.6.61:2881/omsrm?charset=utf8)
2022-02-22 13:47:18,460-Oms-DEBUG oms_init_manager._import_sql_file_by_engine.68 :Engine(mysql+pymysql://root:***@192.168.6.61:2881/omsrm?charset=utf8)
import /root/omsflow/meta_init/drc_rm_schema.sql
mysql -h'192.168.6.61' -P2881 -u 'root' --password='root' -f -D 'omsrm' < /root/omsflow/meta_init/drc_rm_schema.sql
2022-02-22 13:47:19,777-Oms-DEBUG oms_init_manager._import_sql_file_by_engine.68 :Engine(mysql+pymysql://root:***@192.168.6.61:2881/omsrm?charset=utf8)
import /root/omsflow/meta_init/drc_rm_data.sql
mysql -h'192.168.6.61' -P2881 -u 'root' --password='root' -f -D 'omsrm' < /root/omsflow/meta_init/drc_rm_data.sql
2022-02-22 13:47:19,864-Oms-DEBUG oms_init_manager.init_rm.125 :REPLACE INTO `user`
            (`id`, `name`, `password`, `type`, `linkman`, `linkman_cn`, `reason`, `product`, `gmt_modify`)
            VALUES(1, 'RM_oms', 'RM_oms', 3, 'oms', 'oms', 'oms', 'oms', now());

query {'charset': 'utf8'} {'username': 'root', 'database': 'omscm', 'host': '192.168.6.61', 'password_original': 'root', 'drivername': 'mysql+pymysql', 'query': {'charset': 'utf8'}, 'port': 2881}
2022-02-22 13:47:19,964-Oms-DEBUG units.create_engine_wrapper.66 :create a new sqlalchemy engine wrapped Engine(mysql+pymysql://root:***@192.168.6.61:2881/omscm?charset=utf8)
drc_cm_schema

2022-02-22 13:47:19,981-Oms-DEBUG oms_init_manager._import_sql_file_by_engine.68 :Engine(mysql+pymysql://root:***@192.168.6.61:2881/omscm?charset=utf8)
import /root/omsflow/meta_init/drc_cm_schema.sql

mysql -h'192.168.6.61' -P2881 -u 'root' --password='root' -f -D 'omscm' < /root/omsflow/meta_init/drc_cm_schema.sql
drc_cm_data

2022-02-22 13:47:21,133-Oms-DEBUG oms_init_manager._import_sql_file_by_engine.68 :Engine(mysql+pymysql://root:***@192.168.6.61:2881/omscm?charset=utf8)
import /root/omsflow/meta_init/drc_cm_data.sql

mysql -h'192.168.6.61' -P2881 -u 'root' --password='root' -f -D 'omscm' < /root/omsflow/meta_init/drc_cm_data.sql
2022-02-22 13:47:21,763-Oms-DEBUG oms_init_manager.init_cm.145 :
            INSERT INTO `resource_group`
            (`name`, `store_limit`, `congo_limit`, `jdbc_writer_limit`, `metaq_writer_limit`, `full_check_limit`, `cpu_limit`, `cpu_unit`,`gmt_modified`, `gmt_create`, `description`, `level`, `creator`)
            VALUES('100', 50, 50, 50, 0, 50, 50, 1, now(), now(), 'bjcn', 'GENERAL', 'oms') ON DUPLICATE KEY UPDATE `name` = '100';

query {'charset': 'utf8'} {'username': 'root', 'database': 'omsdb', 'host': '192.168.6.61', 'password_original': 'root', 'drivername': 'mysql+pymysql', 'query': {'charset': 'utf8'}, 'port': 2881}
2022-02-22 13:47:21,865-Oms-DEBUG units.create_engine_wrapper.66 :create a new sqlalchemy engine wrapped Engine(mysql+pymysql://root:***@192.168.6.61:2881/omsdb?charset=utf8)
2022-02-22 13:47:21,881-Oms-DEBUG oms_init_manager._import_sql_file_by_engine.68 :Engine(mysql+pymysql://root:***@192.168.6.61:2881/omsdb?charset=utf8)
import /root/omsflow/meta_init/drc_cm_hb_schema.sql

mysql -h'192.168.6.61' -P2881 -u 'root' --password='root' -f -D 'omsdb' < /root/omsflow/meta_init/drc_cm_hb_schema.sql
2022-02-22 13:47:21,965-Oms-DEBUG oms_init_manager._import_sql_file_by_engine.68 :Engine(mysql+pymysql://root:***@192.168.6.61:2881/omsdb?charset=utf8)
import /root/omsflow/meta_init/drc_cm_hb_data.sql
mysql -h'192.168.6.61' -P2881 -u 'root' --password='root' -f -D 'omsdb' < /root/omsflow/meta_init/drc_cm_hb_data.sql



------------------------------------------------------------------------------------------------------------------------------------------------
# 【步骤三】创建 OMS 各组件的配置文件
------------------------------------------------------------------------------------------------------------------------------------------------
python -m omsflow.scripts.units.oms_init_manager --init-config-file

/root/omsflow
/usr/lib/python2.7/site-packages/sqlalchemy_utils/types/encrypted/encrypted_type.py:18: CryptographyDeprecationWarning: Python 2 is no longer supported by the Python core team. Support for it is now deprecated in cryptography, and will be removed in the next release.
  import cryptography
use config /home/admin/conf/config.yaml
no drop task
no init tas
query {'charset': 'utf8'} {'username': 'root', 'database': 'omscm', 'host': '192.168.6.61', 'password_original': 'root', 'drivername': 'mysql+pymysql', 'query': {'charset': 'utf8'}, 'port': 2881}
2022-02-22 13:47:22,589-Oms-DEBUG units.create_engine_wrapper.66 :create a new sqlalchemy engine wrapped Engine(mysql+pymysql://root:***@192.168.6.61:2881/omscm?charset=utf8)
/usr/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/base.py:1320: SAWarning: Current MySQL version does not support CAST; the CAST will be skipped.
  "Current MySQL version does not support "
query {'charset': 'utf8'} {'username': 'root', 'database': 'omsrm', 'host': '192.168.6.61', 'password_original': 'root', 'drivername': 'mysql+pymysql', 'query': {'charset': 'utf8'}, 'port': 2881}
2022-02-22 13:47:22,692-Oms-DEBUG units.create_engine_wrapper.66 :create a new sqlalchemy engine wrapped Engine(mysql+pymysql://root:***@192.168.6.61:2881/omsrm?charset=utf8)
query {'charset': 'utf8'} {'username': 'root', 'database': 'omsdb', 'host': '192.168.6.61', 'password_original': 'root', 'drivername': 'mysql+pymysql', 'query': {'charset': 'utf8'}, 'port': 2881}
2022-02-22 13:47:22,789-Oms-DEBUG units.create_engine_wrapper.66 :create a new sqlalchemy engine wrapped Engine(mysql+pymysql://root:***@192.168.6.61:2881/omsdb?charset=utf8)
2022-02-22 13:47:22,829-Oms-DEBUG oms_init_manager.render_meta.184 :ocp meta None
query {'charset': 'utf8'} {'username': 'root', 'database': 'omsrm', 'host': '192.168.6.61', 'password_original': 'root', 'drivername': 'mysql+pymysql', 'query': {'charset': 'utf8'}, 'port': 2881}
2022-02-22 13:47:22,936-Oms-DEBUG units.create_engine_wrapper.66 :create a new sqlalchemy engine wrapped Engine(mysql+pymysql://root:***@192.168.6.61:2881/omsrm?charset=utf8)
{
    "drc_user": "oms",
    "kafka_need_schema": "false",
    "oms_meta_password": "root",
    "tsdb_enabled": "false",
    "ocp_version": null,
    "tsdb_username": null,
    "alarm_channel_param": null,
    "oms_host_ip": "192.168.6.71",
    "oms_host": "192.168.6.71:8080",
    "drc_cm_heartbeat_db": "omsdb",
    "obproxy_host": null,
    "cm_location": 100,
    "drc_cm_db": "omscm",
    "tsdb_password": null,
    "oms_meta_port": 2881,
    "dbp_enable": "false",
    "tsdb_service": null,
    "sybase_charset": "UTF-8",
    "obproxy_port": null,
    "ocp_api_username": "admin",
    "oms_meta_host": "192.168.6.61",
    "oms_meta_user": "root",
    "use_log_proxy": null,
    "json_serializer": "DefaultJsonSerializer",
    "tsdb_url": null,
    "kafka_partition_mode": null,
    "dbp_ak": null,
    "dbp_route": null,
    "drc_rm_db": "omsrm",
    "log_proxy_address": null,
    "cm_url": "http://192.168.6.71:8080",
    "ocp_api_password": "root",
    "dbp_middleware_instance_id": null,
    "dbp_op_url": null,
    "drc_password": "oms",
    "alarm_channel": null,
    "ocp_api_domain": null,
    "oms_meta_mode": "oceanbase",
    "dbp_sk": null,
    "connector_transaction_index_enabled": "false"
}
use root dir:/root/omsflow/scripts
use root dir:/root/omsflow/scripts
2022-02-22 13:47:23,241-Oms-DEBUG oms_init_manager.init_config_file.259 :parse template: /root/omsflow/scripts/conf/cm/drc-cm_template.properties->conf/cm/drc-cm.properties
use root dir:/root/omsflow/scripts
------------------------------------------------------------------------------------------------------------------------------------------------
# 【步骤四】重启 OMS 所有组件 (大约需要两分钟,请耐心等待)
------------------------------------------------------------------------------------------------------------------------------------------------
supervisorctl restart nginx oms_console oms_drc_cm oms_drc_supervisor sshd
nginx: stopped
oms_console: stopped
oms_drc_cm: stopped
oms_drc_supervisor: stopped
sshd: stopped
nginx: started
oms_console: started
oms_drc_cm: started
oms_drc_supervisor: started
sshd: started
supervisorctl status nginx oms_console oms_drc_cm oms_drc_supervisor sshd
nginx                            RUNNING   pid 24290, uptime 0:00:53
oms_console                      RUNNING   pid 24292, uptime 0:00:43
oms_drc_cm                       RUNNING   pid 24339, uptime 0:00:32
oms_drc_supervisor               RUNNING   pid 24587, uptime 0:00:22
sshd                             RUNNING   pid 24760, uptime 0:00:11
supervisorctl status nginx oms_console oms_drc_cm oms_drc_supervisor sshd
nginx                            RUNNING   pid 24290, uptime 0:01:53
oms_console                      RUNNING   pid 24292, uptime 0:01:43
oms_drc_cm                       RUNNING   pid 24339, uptime 0:01:32
oms_drc_supervisor               RUNNING   pid 24587, uptime 0:01:22
sshd                             RUNNING   pid 24760, uptime 0:01:11
------------------------------------------------------------------------------------------------------------------------------------------------
# 【步骤五】初始化 OMS 资源标签和资源组
------------------------------------------------------------------------------------------------------------------------------------------------
python -m omsflow.scripts.units.oms_cluster_manager add_resource
/root/omsflow
Will add cm_nodes 192.168.6.71
Add host by ip 
2022-02-22 13:55:19,478-urllib3.connectionpool-DEBUG connectionpool._new_conn.231 :Starting new HTTP connection (1): 192.168.6.71:8088
2022-02-22 13:55:19,517-urllib3.connectionpool-DEBUG connectionpool._make_request.461 :http://192.168.6.71:8088 "POST /locationCm/add HTTP/1.1" 200 182
{"errCode":null,"errMsg":null,"isSuccess":true,"result":{"cmUrl":"http://192.168.6.71:8088","gmtCreated":null,"gmtModified":null,"id":1,"location":"100","status":0},"retryable":null}
2022-02-22 13:55:19,520-urllib3.connectionpool-DEBUG connectionpool._new_conn.231 :Starting new HTTP connection (1): 192.168.6.71:8088
2022-02-22 13:55:19,550-urllib3.connectionpool-DEBUG connectionpool._make_request.461 :http://192.168.6.71:8088 "POST /consumer/create HTTP/1.1" 200 35
{"consumer":"drc","isSuccess":true}


------------------------------------------------------------------------------------------------------------------------------------------------
# 【结束】全部初始化步骤执行成功
------------------------------------------------------------------------------------------------------------------------------------------------
[root@i-AAB0CE27 conf]# exit


7.访问控制台

访问地址:192.168.6.71:8089

用户和密码:admin/admin



#平台界面


参考手册:

https://open.oceanbase.com/docs/oms-cn/V3.2.2/10000000000017378

最后修改时间:2022-03-01 18:14:56
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论