单zone,资源利用最大化
一、确认环境
主机配置:
kc1.4xlarge.4 16c 64G 极速型SSD
# cat /etc/kylin-release
Kylin Linux Advanced Server release V10 (Tercel)
二、源码编译
(略过)
三、创建用户并信任
[root@ecs0003 ob]# groupadd admin
[root@ecs0003 ob]# useradd -g admin admin
[root@ecs0003 ob]#
[root@ecs0003 ob]#
[root@ecs0003 ob]# passwd admin
Changing password for user admin.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@ecs0003 ob]#
信任关系可以用oracle sshUserSetup.sh快速配置
sh sshUserSetup.sh -hosts "ecs0001 ecs0002 ecs0003 ecs0004 ecs0005 ecs0006" -user admin -advanced
四、在各个节点启动observer
节点1、2、3、4、5、6分别执行:
节点1:
su - admin
mkdir -p /data/ob/observer01/store/{sort_dir,sstable,clog,ilog,slog}
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/ob/oceanbase/build_release/src/observer/lib/
su - root
cd /data/ob/observer01 && /data/ob/oceanbase/build_release/src/observer/observer -r 192.168.0.187:2882:2881 -o __min_full_resource_pool_memory=268435456,memory_limit=35G,system_memory=4G,stack_size=512K,cpu_count=16,cache_wash_threshold=1G,workers_per_cpu_quota=10,schema_history_expire_time=1d,net_thread_count=4,sys_bkgd_migration_retry_num=3,minor_freeze_times=10,enable_separate_sys_clog=0,enable_merge_by_turn=False,datafile_size=120G,enable_syslog_recycle=True,max_syslog_file_count=10 -z zone1 -p 2881 -P 2882 -c 1 -d /data/ob/observer01/store -i eth0 -l INFO
[root@ecs-ac3e-0004 oceanbase]# su - admin
Last login: Thu Oct 28 02:08:38 CST 2021 on pts/0
[admin@ecs-ac3e-0004 ~]$ mysql -h127.0.0.1 -uroot -P2881
Welcome to the MariaDB monitor. Commands end with ; or \\g.
Your MySQL connection id is 3221225472
Server version: 5.7.25 OceanBase 3.1.1 (r1-895dd335327983c2fb9a7362e8bb149a7e1343cd) (Built Oct 28 2021 01:21:37)
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;
Query OK, 0 rows affected (0.001 sec)
MySQL [(none)]> alter system bootstrap ZONE 'zone1' SERVER '192.168.0.187:2882' ;
Query OK, 0 rows affected (17.929 sec)
MySQL [(none)]> alter user root identified by 'root1234';
Query OK, 0 rows affected (0.034 sec)
MySQL [(none)]> quit
Bye
[admin@ecs-ac3e-0004 ~]$ mysql -h127.0.0.1 -uroot@sys -P2881 -proot1234 -c -A oceanbase
Welcome to the MariaDB monitor. Commands end with ; or \\g.
Your MySQL connection id is 3221487634
Server version: 5.7.25 OceanBase 3.1.1 (r1-895dd335327983c2fb9a7362e8bb149a7e1343cd) (Built Oct 28 2021 01:21:37)
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 databases;
+--------------------+
| Database |
+--------------------+
| oceanbase |
| information_schema |
| mysql |
| SYS |
| LBACSYS |
| ORAAUDITOR |
| test |
+--------------------+
7 rows in set (0.003 sec)
MySQL [oceanbase]>
节点2:
su - admin
mkdir -p /data/ob/observer02/store/{sort_dir,sstable,clog,ilog,slog}
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/ob/oceanbase/build_release/src/observer/lib/
su - root
cd /data/ob/observer02 && /data/ob/oceanbase/build_release/src/observer/observer -r 192.168.0.187:2882:2881 -o __min_full_resource_pool_memory=268435456,memory_limit=35G,system_memory=4G,stack_size=512K,cpu_count=16,cache_wash_threshold=1G,workers_per_cpu_quota=10,schema_history_expire_time=1d,net_thread_count=4,sys_bkgd_migration_retry_num=3,minor_freeze_times=10,enable_separate_sys_clog=0,enable_merge_by_turn=False,datafile_size=120G,enable_syslog_recycle=True,max_syslog_file_count=4 -z zone1 -p 2881 -P 2882 -c 1 -d /data/ob/observer02/store -i eth0 -l INFO
节点3:
su - admin
mkdir -p /data/ob/observer03/store/{sort_dir,sstable,clog,ilog,slog}
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/ob/oceanbase/build_release/src/observer/lib/
su - root
cd /data/ob/observer03 && /data/ob/oceanbase/build_release/src/observer/observer -r 192.168.0.187:2882:2881 -o __min_full_resource_pool_memory=268435456,memory_limit=35G,system_memory=4G,stack_size=512K,cpu_count=16,cache_wash_threshold=1G,workers_per_cpu_quota=10,schema_history_expire_time=1d,net_thread_count=4,sys_bkgd_migration_retry_num=3,minor_freeze_times=10,enable_separate_sys_clog=0,enable_merge_by_turn=False,datafile_size=120G,enable_syslog_recycle=True,max_syslog_file_count=4 -z zone1 -p 2881 -P 2882 -c 1 -d /data/ob/observer03/store -i eth0 -l INFO
节点4:
su - admin
mkdir -p /data/ob/observer04/store/{sort_dir,sstable,clog,ilog,slog}
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/ob/oceanbase/build_release/src/observer/lib/
su - root
cd /data/ob/observer04 && /data/ob/oceanbase/build_release/src/observer/observer -r 192.168.0.187:2882:2881 -o __min_full_resource_pool_memory=268435456,memory_limit=35G,system_memory=4G,stack_size=512K,cpu_count=16,cache_wash_threshold=1G,workers_per_cpu_quota=10,schema_history_expire_time=1d,net_thread_count=4,sys_bkgd_migration_retry_num=3,minor_freeze_times=10,enable_separate_sys_clog=0,enable_merge_by_turn=False,datafile_size=120G,enable_syslog_recycle=True,max_syslog_file_count=4 -z zone1 -p 2881 -P 2882 -c 1 -d /data/ob/observer04/store -i eth0 -l INFO
节点5:
su - admin
mkdir -p /data/ob/observer05/store/{sort_dir,sstable,clog,ilog,slog}
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/ob/oceanbase/build_release/src/observer/lib/
su - root
cd /data/ob/observer05 && /data/ob/oceanbase/build_release/src/observer/observer -r 192.168.0.187:2882:2881 -o __min_full_resource_pool_memory=268435456,memory_limit=35G,system_memory=4G,stack_size=512K,cpu_count=16,cache_wash_threshold=1G,workers_per_cpu_quota=10,schema_history_expire_time=1d,net_thread_count=4,sys_bkgd_migration_retry_num=3,minor_freeze_times=10,enable_separate_sys_clog=0,enable_merge_by_turn=False,datafile_size=120G,enable_syslog_recycle=True,max_syslog_file_count=4 -z zone1 -p 2881 -P 2882 -c 1 -d /data/ob/observer05/store -i eth0 -l INFO
节点6:
su - admin
mkdir -p /data/ob/observer06/store/{sort_dir,sstable,clog,ilog,slog}
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/ob/oceanbase/build_release/src/observer/lib/
su - root
cd /data/ob/observer06 && /data/ob/oceanbase/build_release/src/observer/observer -r 192.168.0.187:2882:2881 -o __min_full_resource_pool_memory=268435456,memory_limit=35G,system_memory=4G,stack_size=512K,cpu_count=16,cache_wash_threshold=1G,workers_per_cpu_quota=10,schema_history_expire_time=1d,net_thread_count=4,sys_bkgd_migration_retry_num=3,minor_freeze_times=10,enable_separate_sys_clog=0,enable_merge_by_turn=False,datafile_size=120G,enable_syslog_recycle=True,max_syslog_file_count=4 -z zone1 -p 2881 -P 2882 -c 1 -d /data/ob/observer06/store -i eth0 -l INFO
注:
1、这里为了利用全部主机资源,全部加进zone1
2、节点1作为root node启动,其他节点全部指向这个节点
五、扩容
MySQL [oceanbase]> select a.zone,concat(a.svr_ip,':',a.svr_port) observer, cpu_total, (cpu_total-cpu_assigned) cpu_free, round(mem_total/1024/1024/1024) mem_total_gb, round((mem_total-mem_assigned)/1024/1024/1024) mem_free_gb, usec_to_time(b.last_offline_time) last_offline_time, usec_to_time(b.start_service_time) start_service_time, b.status, b.build_version , usec_to_time(a.stop_time) stop_time
-> from __all_virtual_server_stat a join __all_server b on (a.svr_ip=b.svr_ip and a.svr_port=b.svr_port)
-> order by a.zone, a.svr_ip
-> ;
+-------+-------------------+-----------+----------+--------------+-------------+----------------------------+----------------------------+--------+------------------------------------------------------------------------+----------------------------+
| zone | observer | cpu_total | cpu_free | mem_total_gb | mem_free_gb | last_offline_time | start_service_time | status | build_version | stop_time |
+-------+-------------------+-----------+----------+--------------+-------------+----------------------------+----------------------------+--------+------------------------------------------------------------------------+----------------------------+
| zone1 | 192.168.0.187:2882 | 14 | 11.5 | 28 | 21 | 1970-01-01 08:00:00.000000 | 2021-10-28 02:11:29.783668 | active | 3.1.1_1-895dd335327983c2fb9a7362e8bb149a7e1343cd(Oct 28 2021 01:21:37) | 1970-01-01 08:00:00.000000 |
+-------+-------------------+-----------+----------+--------------+-------------+----------------------------+----------------------------+--------+------------------------------------------------------------------------+----------------------------+
1 row in set (0.004 sec)
MySQL [oceanbase]> select a.zone,concat(a.svr_ip,':',a.svr_port) observer, cpu_total, (cpu_total-cpu_assigned) cpu_free, round(mem_total/1024/1024/1024) mem_total_gb, round((mem_total-mem_assigned)/1024/1024/1024) mem_free_gb, usec_to_time(b.last_offline_time) last_offline_time, usec_to_time(b.start_service_time) start_service_time, b.status, b.build_version , usec_to_time(a.stop_time) stop_time from __all_virtual_server_stat a join __all_server b on (a.svr_ip=b.svr_ip and a.svr_port=b.svr_port) order by a.zone, a.svr_ip;
+-------+-------------------+-----------+----------+--------------+-------------+----------------------------+----------------------------+--------+------------------------------------------------------------------------+----------------------------+
| zone | observer | cpu_total | cpu_free | mem_total_gb | mem_free_gb | last_offline_time | start_service_time | status | build_version | stop_time |
+-------+-------------------+-----------+----------+--------------+-------------+----------------------------+----------------------------+--------+------------------------------------------------------------------------+----------------------------+
| zone1 | 192.168.0.187:2882 | 14 | 11.5 | 28 | 21 | 1970-01-01 08:00:00.000000 | 2021-10-28 02:11:29.783668 | active | 3.1.1_1-895dd335327983c2fb9a7362e8bb149a7e1343cd(Oct 28 2021 01:21:37) | 1970-01-01 08:00:00.000000 |
+-------+-------------------+-----------+----------+--------------+-------------+----------------------------+----------------------------+--------+------------------------------------------------------------------------+----------------------------+
1 row in set (0.004 sec)
MySQL [oceanbase]> select * from __all_zone where name in ('region','status','zone_type');
+----------------------------+----------------------------+-------+-----------+-------+----------------+
| gmt_create | gmt_modified | zone | name | value | info |
+----------------------------+----------------------------+-------+-----------+-------+----------------+
| 2021-10-28 02:11:28.120893 | 2021-10-28 02:11:28.120893 | zone1 | region | 0 | default_region |
| 2021-10-28 02:11:28.119862 | 2021-10-28 02:11:28.119862 | zone1 | status | 2 | ACTIVE |
| 2021-10-28 02:11:28.120893 | 2021-10-28 02:11:28.120893 | zone1 | zone_type | 0 | ReadWrite |
+----------------------------+----------------------------+-------+-----------+-------+----------------+
3 rows in set (0.002 sec)
MySQL [oceanbase]> alter system add server '192.168.0.70:2882' zone 'zone1';
Query OK, 0 rows affected (0.010 sec)
MySQL [oceanbase]> alter system add server '192.168.0.162:2882' zone 'zone1';
Query OK, 0 rows affected (0.008 sec)
MySQL [oceanbase]> alter system add server '192.168.0.193:2882' zone 'zone1';
Query OK, 0 rows affected (0.010 sec)
MySQL [oceanbase]> alter system add server '192.168.0.168:2882' zone 'zone1';
Query OK, 0 rows affected (0.009 sec)
MySQL [oceanbase]> alter system add server '192.168.0.173:2882' zone 'zone1';
Query OK, 0 rows affected (0.016 sec)
MySQL [oceanbase]> select a.zone,concat(a.svr_ip,':',a.svr_port) observer, cpu_total, (cpu_total-cpu_assigned) cpu_free, round(mem_total/1024/1024/1024) mem_total_gb, round((mem_total-mem_assigned)/1024/1024/1024) mem_free_gb, usec_to_time(b.last_offline_time) last_offline_time, usec_to_time(b.start_service_time) start_service_time, b.status, b.build_version , usec_to_time(a.stop_time) stop_time
-> from __all_virtual_server_stat a join __all_server b on (a.svr_ip=b.svr_ip and a.svr_port=b.svr_port)
-> order by a.zone, a.svr_ip;
+-------+--------------------+-----------+----------+--------------+-------------+----------------------------+----------------------------+--------+------------------------------------------------------------------------+----------------------------+
| zone | observer | cpu_total | cpu_free | mem_total_gb | mem_free_gb | last_offline_time | start_service_time | status | build_version | stop_time |
+-------+--------------------+-----------+----------+--------------+-------------+----------------------------+----------------------------+--------+------------------------------------------------------------------------+----------------------------+
| zone1 | 192.168.0.162:2882 | 14 | 14 | 31 | 31 | 1970-01-01 08:00:00.000000 | 2021-12-17 16:42:44.380453 | active | 3.1.1_1-4a61aa99e787eaa5eaa6e59ee52768550d0f5fb2(Dec 15 2021 15:28:57) | 1970-01-01 08:00:00.000000 |
| zone1 | 192.168.0.168:2882 | 14 | 14 | 31 | 31 | 1970-01-01 08:00:00.000000 | 2021-12-17 16:42:38.612900 | active | 3.1.1_1-4a61aa99e787eaa5eaa6e59ee52768550d0f5fb2(Dec 15 2021 15:18:16) | 1970-01-01 08:00:00.000000 |
| zone1 | 192.168.0.173:2882 | 14 | 14 | 31 | 31 | 1970-01-01 08:00:00.000000 | 2021-12-17 16:42:48.318850 | active | 3.1.1_1-4a61aa99e787eaa5eaa6e59ee52768550d0f5fb2(Dec 15 2021 15:20:51) | 1970-01-01 08:00:00.000000 |
| zone1 | 192.168.0.187:2882 | 14 | 11.5 | 31 | 23 | 1970-01-01 08:00:00.000000 | 2021-12-17 16:42:36.806127 | active | 3.1.1_1-4a61aa99e787eaa5eaa6e59ee52768550d0f5fb2(Dec 15 2021 14:04:00) | 1970-01-01 08:00:00.000000 |
| zone1 | 192.168.0.193:2882 | 14 | 14 | 31 | 31 | 1970-01-01 08:00:00.000000 | 2021-12-17 16:42:41.755750 | active | 3.1.1_1-4a61aa99e787eaa5eaa6e59ee52768550d0f5fb2(Dec 15 2021 15:32:36) | 1970-01-01 08:00:00.000000 |
| zone1 | 192.168.0.70:2882 | 14 | 14 | 31 | 31 | 1970-01-01 08:00:00.000000 | 2021-12-17 16:42:40.865138 | active | 3.1.1_1-4a61aa99e787eaa5eaa6e59ee52768550d0f5fb2(Dec 15 2021 15:49:35) | 1970-01-01 08:00:00.000000 |
+-------+--------------------+-----------+----------+--------------+-------------+----------------------------+----------------------------+--------+------------------------------------------------------------------------+----------------------------+
六、创建资源池、租户
create resource unit -> create resource pool -> create tenant -> create user -> DDL/DML
查看资源剩余情况
[admin@ecs0001 ~]$ mysql -h127.0.0.1 -uroot@sys -P2881 -proot1234 -c -A oceanbase
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 3221571746
Server version: 5.7.25 OceanBase 3.1.1 (r1-4a61aa99e787eaa5eaa6e59ee52768550d0f5fb2) (Built Dec 15 2021 14:04:00)
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]> select a.zone,concat(a.svr_ip,':',a.svr_port) observer, cpu_total, (cpu_total-cpu_assigned) cpu_free, round(mem_total/1024/1024/1024) mem_total_gb, round((mem_total-mem_assigned)/1024/1024/1024) mem_free_gb, usec_to_time(b.last_offline_time) last_offline_time, usec_to_time(b.start_service_time) start_service_time, b.status, b.build_version , usec_to_time(a.stop_time) stop_time from __all_virtual_server_stat a join __all_server b on (a.svr_ip=b.svr_ip and a.svr_port=b.svr_port) order by a.zone, a.svr_ip;
+-------+--------------------+-----------+----------+--------------+-------------+----------------------------+----------------------------+--------+------------------------------------------------------------------------+----------------------------+
| zone | observer | cpu_total | cpu_free | mem_total_gb | mem_free_gb | last_offline_time | start_service_time | status | build_version | stop_time |
+-------+--------------------+-----------+----------+--------------+-------------+----------------------------+----------------------------+--------+------------------------------------------------------------------------+----------------------------+
| zone1 | 192.168.0.162:2882 | 14 | 14 | 31 | 31 | 1970-01-01 08:00:00.000000 | 2021-12-17 16:42:44.380453 | active | 3.1.1_1-4a61aa99e787eaa5eaa6e59ee52768550d0f5fb2(Dec 15 2021 15:28:57) | 1970-01-01 08:00:00.000000 |
| zone1 | 192.168.0.168:2882 | 14 | 14 | 31 | 31 | 1970-01-01 08:00:00.000000 | 2021-12-17 16:42:38.612900 | active | 3.1.1_1-4a61aa99e787eaa5eaa6e59ee52768550d0f5fb2(Dec 15 2021 15:18:16) | 1970-01-01 08:00:00.000000 |
| zone1 | 192.168.0.173:2882 | 14 | 14 | 31 | 31 | 1970-01-01 08:00:00.000000 | 2021-12-17 16:42:48.318850 | active | 3.1.1_1-4a61aa99e787eaa5eaa6e59ee52768550d0f5fb2(Dec 15 2021 15:20:51) | 1970-01-01 08:00:00.000000 |
| zone1 | 192.168.0.187:2882 | 14 | 11.5 | 31 | 23 | 1970-01-01 08:00:00.000000 | 2021-12-17 16:42:36.806127 | active | 3.1.1_1-4a61aa99e787eaa5eaa6e59ee52768550d0f5fb2(Dec 15 2021 14:04:00) | 1970-01-01 08:00:00.000000 |
| zone1 | 192.168.0.193:2882 | 14 | 14 | 31 | 31 | 1970-01-01 08:00:00.000000 | 2021-12-17 16:42:41.755750 | active | 3.1.1_1-4a61aa99e787eaa5eaa6e59ee52768550d0f5fb2(Dec 15 2021 15:32:36) | 1970-01-01 08:00:00.000000 |
| zone1 | 192.168.0.70:2882 | 14 | 14 | 31 | 31 | 1970-01-01 08:00:00.000000 | 2021-12-17 16:42:40.865138 | active | 3.1.1_1-4a61aa99e787eaa5eaa6e59ee52768550d0f5fb2(Dec 15 2021 15:49:35) | 1970-01-01 08:00:00.000000 |
+-------+--------------------+-----------+----------+--------------+-------------+----------------------------+----------------------------+--------+------------------------------------------------------------------------+----------------------------+
划分资源
MySQL [oceanbase]> create resource unit tpcc_unit max_cpu 14, max_memory '31G', max_iops 66666, max_disk_size '120G', max_session_num 5000, MIN_CPU=14, MIN_MEMORY='31G', MIN_IOPS=66666;
Query OK, 0 rows affected (0.006 sec)
MySQL [oceanbase]> create resource pool tpcc_pool unit = 'tpcc_unit', unit_num = 5, zone_list=('zone1'); Query OK, 0 rows affected (0.018 sec)
//unit_num=5剩一个资源不足的作为管理节点和压测节点
MySQL [oceanbase]> create tenant tpcc_tenant resource_pool_list=('tpcc_pool'), charset=utf8mb4, replica_num=3, zone_list('zone1'), locality='F@zone1' set ob_compatibility_mode=mysql;
Query OK, 0 rows affected (1.486 sec)
//3副本
MySQL [oceanbase]> ALTER TENANT tpcc_tenant SET VARIABLES ob_tcp_invited_nodes='%';
Query OK, 0 rows affected (0.034 sec)
七、创建用户
[admin@ecs0002 ~]$ mysql -h127.0.0.1 -uroot@tpcc_tenant -P2881 -c -A
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 3221770195
Server version: 5.7.25 OceanBase 3.1.1 (r1-4a61aa99e787eaa5eaa6e59ee52768550d0f5fb2) (Built Dec 15 2021 15:49:35)
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)]> create user tpcc identified by 'tpcc';
Query OK, 0 rows affected (0.032 sec)
MySQL [(none)]> GRANT ALL PRIVILEGES ON *.* TO tpcc with grant option;
Query OK, 0 rows affected (0.027 sec)
[admin@ecs0002 ~]$ mysql -h192.168.0.70 -utpcc@tpcc_tenant -P2881 -ptpcc -c -A
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 3221770721
Server version: 5.7.25 OceanBase 3.1.1 (r1-4a61aa99e787eaa5eaa6e59ee52768550d0f5fb2) (Built Dec 15 2021 15:49:35)
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 |
| test |
| tpcc |
+--------------------+
5 rows in set (0.004 sec)
MySQL [(none)]> select version();
+--------------------+
| version() |
+--------------------+
| 3.1.1-OceanBase CE |
+--------------------+
1 row in set (0.001 sec)
MySQL [(none)]> select now();
+---------------------+
| now() |
+---------------------+
| 2021-12-17 21:32:29 |
+---------------------+
1 row in set (0.001 sec)
obproxy和obd均没有arm版,负载均衡考虑HAproxy