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

手动部署 OceanBase 单节点

原创 Frank 2022-02-04
848

一、测试环境

硬件环境:virtual box虚拟机,16G内存
操作系统:Kylin v10 SP2

PS:默认使用IPV6,需要进行调整,将ONBOOT=no 改成 yes

[root@10 ~]# svim /etc/sysconfig/network-scripts/ifcfg-enp0s3 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=dhcp DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=yes NAME=enp0s3 UUID=f3704d33-0f97-499a-aa51-9224d460f403 DEVICE=enp0s3 #ONBOOT=no ONBOOT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_PRIVACY=no IPV6_ADDR_GEN_MODE=stable-privacy [root@10 ~]# systemctl restart network 二、创建admin用户 [root@10 ob]# useradd admin [root@10 ob]# passwd admin New password: Retype new password:
复制

三、安装软件

  1. 下载软件包
wget https://mirrors.aliyun.com/oceanbase/community/stable/el/8/x86_64/ob-deploy-1.1.0-1.el8.x86_64.rpm wget https://mirrors.aliyun.com/oceanbase/community/stable/el/8/x86_64/oceanbase-ce-3.1.0-3.el8.x86_64.rpm wget https://mirrors.aliyun.com/oceanbase/community/stable/el/8/x86_64/oceanbase-ce-libs-3.1.0-3.el8.x86_64.rpm wget https://mirrors.aliyun.com/oceanbase/community/stable/el/8/x86_64/obclient-2.0.0-2.el8.x86_64.rpm wget https://mirrors.aliyun.com/oceanbase/community/stable/el/8/x86_64/libobclient-2.0.0-2.el8.x86_64.rpm wget https://mirrors.aliyun.com/oceanbase/community/stable/el/8/x86_64/obproxy-3.1.0-1.el8.x86_64.rpm
复制
  1. 安装软件包
yum install *.rpm [root@10 ob]# yum install *.rpm Kylin Linux Advanced Server 10 - Os 7.9 MB/s | 14 MB 00:01 Kylin Linux Advanced Server 10 - Updates 1.1 MB/s | 4.1 MB 00:03 Last metadata expiration check: 0:00:04 ago on Mon 31 Jan 2022 11:16:35 AM CST. Dependencies resolved. ================================================================================================================================================================================================================ Package Architecture Version Repository Size ================================================================================================================================================================================================================ Installing: libobclient x86_64 2.0.0-2.el8 @commandline 1.0 M ob-deploy x86_64 1.1.0-1.el8 @commandline 13 M obclient x86_64 2.0.0-2.el8 @commandline 190 M obproxy x86_64 3.1.0-1.el8 @commandline 7.8 M oceanbase-ce x86_64 3.1.0-3.el8 @commandline 45 M oceanbase-ce-libs x86_64 3.1.0-3.el8 @commandline 486 k Transaction Summary ================================================================================================================================================================================================================ Install 6 Packages Total size: 257 M Installed size: 1.0 G Is this ok [y/N]: y [admin@10 ~]$ pwd /home/admin [admin@10 ~]$ tree . ├── obproxy-3.1.0 │ └── bin │ ├── obproxy │ └── obproxyd.sh └── oceanbase ├── bin │ ├── import_time_zone_info.py │ └── observer ├── etc │ └── timezone_V1.log └── lib ├── libaio.so -> libaio.so.1.0.1 ├── libaio.so.1 -> libaio.so.1.0.1 ├── libaio.so.1.0.1 ├── libmariadb.so -> libmariadb.so.3 └── libmariadb.so.3 6 directories, 10 files
复制

四、初始化目录

[admin@10 ~]$ sudo mkdir -p ~/oceanbase/store/obdemo /data/obdemo/{sstable,etc3} /redo/obdemo/{clog,ilog,slog,etc2} [admin@10 ~]$ for f in {clog,ilog,slog,etc2}; do ln -s /redo/obdemo/$f ~/oceanbase/store/obdemo/$f ; done [admin@10 ~]$ for f in {sstable,etc3}; do ln -s /data/obdemo/$f ~/oceanbase/store/obdemo/$f; done [admin@10 ~]$ tree . ├── obproxy-3.1.0 │ └── bin │ ├── obproxy │ └── obproxyd.sh └── oceanbase ├── bin │ ├── import_time_zone_info.py │ └── observer ├── etc │ └── timezone_V1.log ├── lib │ ├── libaio.so -> libaio.so.1.0.1 │ ├── libaio.so.1 -> libaio.so.1.0.1 │ ├── libaio.so.1.0.1 │ ├── libmariadb.so -> libmariadb.so.3 │ └── libmariadb.so.3 └── store └── obdemo ├── clog -> /redo/obdemo/clog ├── etc2 -> /redo/obdemo/etc2 ├── etc3 -> /data/obdemo/etc3 ├── ilog -> /redo/obdemo/ilog ├── slog -> /redo/obdemo/slog └── sstable -> /data/obdemo/sstable 14 directories, 10 files
复制

五、启动OBSERVER进程

  1. 设置环境
[admin@10 ~]$ echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/oceanbase/lib' >> ~/.bash_profile [admin@10 ~]$ source ~/.bash_profile [admin@10 ~]$ env | grep LD_LIBRARY_PATH LD_LIBRARY_PATH=:/home/admin/oceanbase/lib
复制
  1. 启动observer进程
[admin@10 bin]$ ./observer -h ./observer -h observer [OPTIONS] -h,--help print this help -V,--version print the information of version -z,--zone ZONE zone -p,--mysql_port PORT mysql port -P,--rpc_port PORT rpc port -N,--nodaemon don't run in daemon -n,--appname APPNAME application name -c,--cluster_id ID cluster id -d,--data_dir DIR OceanBase data directory -i,--devname DEV net dev interface -o,--optstr OPTSTR extra options string -r,--rs_list RS_LIST root service list -l,--log_level LOG_LEVEL server log level -6,--ipv6 USE_IPV6 server use ipv6 address -m,--mode MODE server mode -f,--scn flashback_scn [admin@10 oceanbase]$ bin/observer -i enp0s3 -p 2881 -P 2882 -z zone1 -d ~/oceanbase/store/obdemo -r '10.0.2.15:2882:2881' -c 20220201 -n obdemo -o "memory_limit=8G,cache_wash_threshold=1G,__min_full_resource_pool_memory=268435456,system_memory=4G,memory_chunk_cache_size=128M,cpu_count=6,net_thread_count=2,datafile_size=10G,stack_size=1536K" bin/observer -i enp0s3 -p 2881 -P 2882 -z zone1 -d /home/admin/oceanbase/store/obdemo -r 10.0.2.15:2882:2881 -c 20220201 -n obdemo -o memory_limit=8G,cache_wash_threshold=1G,__min_full_resource_pool_memory=268435456,system_memory=4G,memory_chunk_cache_size=128M,cpu_count=6,net_thread_count=2,datafile_size=10G,stack_size=1536K devname: enp0s3 mysql port: 2881 rpc port: 2882 zone: zone1 data_dir: /home/admin/oceanbase/store/obdemo rs list: 10.0.2.15:2882:2881 cluster id: 20220201 appname: obdemo optstr: memory_limit=8G,cache_wash_threshold=1G,__min_full_resource_pool_memory=268435456,system_memory=4G,memory_chunk_cache_size=128M,cpu_count=6,net_thread_count=2,datafile_size=10G,stack_size=1536K
复制
  1. 集群自举(初始化)
[admin@10 log]$ mysql -h10.0.2.15 -P2881 -uroot -c -A Welcome to the MariaDB monitor. Commands end with ; or \g. Your MySQL connection id is 3221225473 Server version: 5.7.25 OceanBase 3.1.0 (r3-b20901e8c84d3ea774beeaca963c67d7802e4b4e) (Built Aug 10 2021 08:10:38) Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MySQL [(none)]> set session ob_query_timeout=1000000000; alter system bootstrap ZONE 'zone1' SERVER '10.0.2.15:2882' ; Query OK, 0 rows affected (0.001 sec) Query OK, 0 rows affected (25.337 sec) MySQL [(none)]> exit Bye [admin@10 log]$ mysql -h10.0.2.15 -P2881 -uroot@sys -c -A Welcome to the MariaDB monitor. Commands end with ; or \g. Your MySQL connection id is 3221487640 Server version: 5.7.25 OceanBase 3.1.0 (r3-b20901e8c84d3ea774beeaca963c67d7802e4b4e) (Built Aug 10 2021 08:10:38) Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MySQL [(none)]> show databases; +--------------------+ | Database | +--------------------+ | oceanbase | | information_schema | | mysql | | SYS | | LBACSYS | | ORAAUDITOR | | test | +--------------------+ 7 rows in set (0.003 sec) MySQL [(none)]> alter user root identified by '123456'; Query OK, 0 rows affected (0.074 sec) MySQL [(none)]> grant select on oceanbase.* to proxyro identified by '123456'; Query OK, 0 rows affected (0.096 sec) MySQL [(none)]> \q Bye
复制

六、启动OBPROXY

  1. 启动
[admin@10 obproxy-3.1.0]$ bin/obproxy -r "10.0.2.15:2881" -p 2883 -o "enable_strict_kernel_release=false,enable_cluster_checkout=false,enable_metadb_used=false" -c obdemo bin/obproxy -r 10.0.2.15:2881 -p 2883 -o enable_strict_kernel_release=false,enable_cluster_checkout=false,enable_metadb_used=false -c obdemo rs list: 10.0.2.15:2881 listen port: 2883 optstr: enable_strict_kernel_release=false,enable_cluster_checkout=false,enable_metadb_used=false cluster_name: obdemo [admin@10 obproxy-3.1.0]$ bin/obproxy -r "10.0.2.15:2881" -p 2883 -o "enable_strict_kernel_release=false,enable_cluster_checkout=false,enable_metadb_used=false" -c obdemo
复制
  1. 检查进程状态
[admin@10 obproxy-3.1.0]$ ps -ef | grep ob admin 32197 1 99 22:12 ? 00:40:00 bin/observer -i enp0s3 -p 2881 -P 2882 -z zone1 -d /home/admin/oceanbase/store/obdemo -r 10.0.2.15:2882:2881 -c 20220201 -n obdemo -o memory_limit=8G,cache_wash_threshold=1G,__min_full_resource_pool_memory=268435456,system_memory=4G,memory_chunk_cache_size=128M,cpu_count=6,net_thread_count=2,datafile_size=10G,stack_size=1536K admin 39089 1 4 22:29 ? 00:00:40 bin/obproxy -r 10.0.2.15:2881 -p 2883 -o enable_strict_kernel_release=false,enable_cluster_checkout=false,enable_metadb_used=false -c obdemo root 44356 2715 0 22:43 ? 00:00:00 bash -c while true; do sleep 1;head -v -n 8 /proc/meminfo; head -v -n 2 /proc/stat /proc/version /proc/uptime /proc/loadavg /proc/sys/fs/file-nr /proc/sys/kernel/hostname; tail -v -n 16 /proc/net/dev;echo '==> /proc/df <==';df -l;echo '==> /proc/who <==';who;echo '==> /proc/end <==';echo '##Moba##'; done admin 44761 3397 0 22:44 pts/3 00:00:00 grep ob [admin@10 obproxy-3.1.0]$ netstat -antpl |grep ob (Not all processes could be identified, non-owned process info will not be shown, you would have to be root to see it all.) tcp 0 0 0.0.0.0:2881 0.0.0.0:* LISTEN 32197/bin/observer tcp 0 0 0.0.0.0:2882 0.0.0.0:* LISTEN 32197/bin/observer tcp 0 0 0.0.0.0:2883 0.0.0.0:* LISTEN 39089/bin/obproxy tcp 0 0 0.0.0.0:2884 0.0.0.0:* LISTEN 39089/bin/obproxy tcp 0 0 10.0.2.15:44440 10.0.2.15:2882 ESTABLISHED 32197/bin/observer tcp 0 0 10.0.2.15:44432 10.0.2.15:2882 ESTABLISHED 32197/bin/observer tcp 0 0 10.0.2.15:2882 10.0.2.15:44434 ESTABLISHED 32197/bin/observer tcp 0 0 10.0.2.15:44452 10.0.2.15:2882 ESTABLISHED 32197/bin/observer tcp 0 0 10.0.2.15:2882 10.0.2.15:44440 ESTABLISHED 32197/bin/observer tcp 0 0 10.0.2.15:2882 10.0.2.15:44432 ESTABLISHED 32197/bin/observer tcp 0 0 10.0.2.15:2882 10.0.2.15:44452 ESTABLISHED 32197/bin/observer tcp 0 0 10.0.2.15:2883 10.0.2.15:38300 ESTABLISHED 39089/bin/obproxy tcp 0 0 10.0.2.15:44434 10.0.2.15:2882 ESTABLISHED 32197/bin/observer
复制
  1. 通过OBPROXY链接集群
admin@10 log]$ mysql -h10.0.2.15 -P2883 -uroot@proxysys -c -A Welcome to the MariaDB monitor. Commands end with ; or \g. Your MySQL connection id is 4 Server version: 5.6.25 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MySQL [(none)]> show databases; +--------------------------+-------------------+ | Variable_name | Value | +--------------------------+-------------------+ | tx_isolation | READ-COMMITTED | | system_time_zone | +08:00 | | time_zone | +08:00 | | character_set_server | utf8mb4 | | character_set_client | utf8mb4 | | interactive_timeout | 28800 | | query_cache_size | 1048576 | | character_set_results | utf8mb4 | | max_allowed_packet | 4194304 | | sql_mode | STRICT_ALL_TABLES | | net_buffer_length | 16384 | | wait_timeout | 28800 | | lower_case_table_names | 2 | | query_cache_type | OFF | | init_connect | | | transaction_isolation | READ | | character_set_connection | utf8mb4 | | net_write_timeout | 60 | +--------------------------+-------------------+ 18 rows in set (0.001 sec) MySQL [(none)]> \q Bye [admin@10 log]$ mysql -h10.0.2.15 -P2883 -uroot@proxysys -c -A Welcome to the MariaDB monitor. Commands end with ; or \g. Your MySQL connection id is 5 Server version: 5.6.25 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MySQL [(none)]> show proxyconfig like '%sys_password%'; +-----------------------+-------+--------------------------------+-------------+---------------+ | name | value | info | need_reboot | visible_level | +-----------------------+-------+--------------------------------+-------------+---------------+ | observer_sys_password | | password for observer sys user | false | SYS | | obproxy_sys_password | | password for obproxy sys user | false | SYS | +-----------------------+-------+--------------------------------+-------------+---------------+ 2 rows in set (0.001 sec)
复制
  1. 验证部署
[admin@10 log]$ mysql -h10.0.2.15 -uroot@sys#obdemo -P2883 -p123456 -c -A oceanbase Welcome to the MariaDB monitor. Commands end with ; or \g. Your MySQL connection id is 10 Server version: 5.6.25 OceanBase 3.1.0 (r3-b20901e8c84d3ea774beeaca963c67d7802e4b4e) (Built Aug 10 2021 08:10:38) Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MySQL [oceanbase]> show processlist; +------+--------+------+-----------------+-----------+-------------+-------------------+-------------------+------+------+ | Id | Tenant | User | Host | db | trans_count | svr_session_count | state | tid | pid | +------+--------+------+-----------------+-----------+-------------+-------------------+-------------------+------+------+ | 10 | sys | root | 10.0.2.15:35694 | oceanbase | 0 | 1 | MCS_ACTIVE_READER | 7880 | 7880 | +------+--------+------+-----------------+-----------+-------------+-------------------+-------------------+------+------+ 1 row in set (0.002 sec) MySQL [oceanbase]> show full processlist; +------------+---------+--------+-----------------+-----------+---------+------+--------+-----------------------+-----------+------+--------------+ | Id | User | Tenant | Host | db | Command | Time | State | Info | Ip | Port | Proxy_sessid | +------------+---------+--------+-----------------+-----------+---------+------+--------+-----------------------+-----------+------+--------------+ | 3221487744 | root | sys | 10.0.2.15:42434 | oceanbase | Query | 0 | ACTIVE | show full processlist | 10.0.2.15 | 2881 | 6 | | 3221487736 | proxyro | sys | 10.0.2.15:42430 | oceanbase | Sleep | 14 | SLEEP | NULL | 10.0.2.15 | 2881 | 5 | +------------+---------+--------+-----------------+-----------+---------+------+--------+-----------------------+-----------+------+--------------+ 2 rows in set (0.005 sec)
复制

七、创建资源单元、资源池、租户

[admin@10 log]$ mysql -h10.0.2.15 -uroot@sys#obdemo -P2883 -p123456 -c -A oceanbase Welcome to the MariaDB monitor. Commands end with ; or \g. Your MySQL connection id is 10 Server version: 5.6.25 OceanBase 3.1.0 (r3-b20901e8c84d3ea774beeaca963c67d7802e4b4e) (Built Aug 10 2021 08:10:38) Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MySQL [oceanbase]> create resource unit ocp_unit min_cpu=1, max_cpu=1, min_memory=1073741824, max_memory=1073741824, max_iops=256, min_iops=128, max_disk_size=1000000000, max_session_num=64; Query OK, 0 rows affected (0.011 sec) MySQL [oceanbase]> create resource pool ocp_frank unit='ocp_unit', zone_list=('zone1'), unit_num=1; Query OK, 0 rows affected (0.020 sec) MySQL [oceanbase]> create tenant frank resource_pool_list = ('ocp_frank') set variables ob_compatibility_mode='mysql', ob_tcp_invited_nodes='%'; Query OK, 0 rows affected (2.104 sec)
复制

八、创建用户

MySQL [oceanbase]> create database obtest; Query OK, 1 row affected (0.033 sec) MySQL [oceanbase]> grant all privileges on *.* to 'ob_user'@'%' with grant option; Query OK, 0 rows affected (0.060 sec) MySQL [oceanbase]> show databases; +--------------------+ | Database | +--------------------+ | oceanbase | | information_schema | | mysql | | SYS | | LBACSYS | | ORAAUDITOR | | test | | obtest | +--------------------+ 8 rows in set (0.005 sec)
复制

九、建表

MySQL [oceanbase]> use obtest; Database changed MySQL [obtest]> CREATE TABLE t1(c1 INT PRIMARY KEY, c2 INT, c3 INT, c4 INT, INDEX k1(c2,c3)); Query OK, 0 rows affected (0.311 sec) MySQL [obtest]> CREATE TABLE t2(c1 INT, c2 INT); Query OK, 0 rows affected (0.122 sec) MySQL [obtest]> INSERT INTO t2 VALUES(1, 1); Query OK, 1 row affected (0.018 sec) MySQL [obtest]> INSERT INTO t2 VALUES(3, 3); Query OK, 1 row affected (0.004 sec) MySQL [obtest]> INSERT INTO t2 VALUES(5, 5); Query OK, 1 row affected (0.004 sec) MySQL [obtest]> show tables; +------------------+ | Tables_in_obtest | +------------------+ | t1 | | t2 | +------------------+ 2 rows in set (0.002 sec) MySQL [obtest]> select * from t2; +------+------+ | c1 | c2 | +------+------+ | 1 | 1 | | 3 | 3 | | 5 | 5 | +------+------+ 3 rows in set (0.002 sec)
复制

十、问题

由于硬件条件限制,在启动observer的时候多次失败,不断调解资源,过程中查看observer.log并没有看到有效信息。经过反复调低资源配置后方可正常启动。

十一、总结

最近上手了一些分布式数据库和其他产品相比,OB要想单机玩起来还是需要注意一些资源的问题,且排查问题的时候比太好定位资源问题,后续还需不断积累和总结。
由于资源限制,后续再补充多节点ob集群的实践。

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

文章被以下合辑收录

评论