1、下载最新的OB安装包
手动安装OceanBase软件包
rpm -ivh oceanbase-ce-libs-4.2.2.0-100010012024022719.el7.x86_64.rpm
rpm -ivh oceanbase-ce-4.2.2.0-100010012024022719.el7.x86_64.rpm
2、初始化数据目录
mkdir /data
mkdir /redo
chown admin:admin /data
chown admin:admin /redo
su - admin
mkdir -p ~/oceanbase/store/obdemo /data/obdemo/{sstable,etc3} /redo/obdemo/{clog,ilog,slog,etc2}
for f in {clog,ilog,slog,etc2}; do ln -s /redo/obdemo/$f ~/oceanbase/store/obdemo/$f ; done
for f in {sstable,etc3}; do ln -s /data/obdemo/$f ~/oceanbase/store/obdemo/$f; done
3、启动observer进程
su - admin
echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/oceanbase/lib' >> ~/.bash_profile
. ~/.bash_profile
cd ~/oceanbase && bin/observer -i ens160 -p 2881 -P 2882 -z zone1 -d ~/oceanbase/store/obdemo -r '10.102.23.43:2882:2881' -c 20210912 -n obdemo -o "memory_limit=8G,cache_wash_threshold=1G,__min_full_resource_pool_memory=268435456,system_memory=3G,memory_chunk_cache_size=128M,cpu_count=6,net_thread_count=4,datafile_size=50G,stack_size=1536K,config_additional_dir=/data/obdemo/etc3;/redo/obdemo/etc2" -d ~/oceanbase/store/obdemo
第1次启动时报错
[2024-03-08 15:44:02.765650] EDIAG [SHARE] operator() (ob_common_config.cpp:366) [947][observer][T0][Y0-0000000000000000-0-0] [lt=4][errcode=-4147] Invalid config, value out of [1073741824,) (for reference only). name=__min_full_resource_pool_memory, value=268435456, ret=-4147 BACKTRACE:0x12a0688c 0x53dbba5 0x554e695 0x554e328 0x554df8c 0xffcd147 0xff8d207 0xff8c9b8 0xa85f5d1 0xa8552e9 0x73fe460 0x7fc3d4311555 0x56c374f
调整参数__min_full_resource_pool_memory=1073741824
第2次启动还有报错
[2024-03-08 15:55:21.747412] ERROR resize_ (ob_server_log_block_mgr.cpp:211) [4617][observer][T0][Y0-0000000000000000-0-0] [lt=16][errcode=-4290] cannot allocate disk space(possible reason="may be diskspace is not enough, please check the configuration about log disk", new log disk size(MB)=29340)
调整datafile_size=20G
cd ~/oceanbase && bin/observer -i ens160 -p 2881 -P 2882 -z zone1 -d ~/oceanbase/store/obdemo -r '10.102.23.43:2882:2881' -c 20210912 -n obdemo -o "memory_limit=8G,cache_wash_threshold=1G,__min_full_resource_pool_memory=1073741824,system_memory=3G,memory_chunk_cache_size=128M,cpu_count=6,net_thread_count=4,datafile_size=20G,stack_size=1536K,config_additional_dir=/data/obdemo/etc3;/redo/obdemo/etc2" -d ~/oceanbase/store/obdemo
启动成功,查看observer进程
[admin@obtest log]$ ps -ef|grep observer
admin 7114 1 11 16:02 ? 00:00:49 bin/observer -i ens160 -p 2881 -P 2882 -z zone1 -d /home/admin/oceanbase/store/obdemo -r 10.102.23.43:2882:2881 -c 20210912 -n obdemo -o memory_limit=10G,cache_wash_threshold=1G,__min_full_resource_pool_memory=1073741824,system_memory=3G,memory_chunk_cache_size=128M,cpu_count=6,net_thread_count=4,datafile_size=20G,stack_size=1536K,config_additional_dir=/data/obdemo/etc3;/redo/obdemo/etc2 -d /home/admin/oceanbase/store/obdemo
[admin@obtest log]$ netstat -ntlp|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 7114/bin/observer
tcp 0 0 0.0.0.0:2882 0.0.0.0:* LISTEN 7114/bin/observer
集群初始化
mysql -h 10.102.23.43 -u root -P 2881 -p -c -A
set session ob_query_timeout=1000000000;
alter system bootstrap ZONE 'zone1' SERVER '10.102.23.43:2882';
初始化成功
设置root@sys的密码
alter user root identified by '2QAZwsx' ;
创建proxyro用户
grant select on oceanbase.* to proxyro identified by '2QAZwsx' ;
安装 OBPROXY
rpm -ivh obproxy-ce-4.2.1.0-11.el7.x86_64.rpm
启动obproxy进程
cd ~/obproxy-4.2.1.0/ && bin/obproxy -r "10.102.23.43:2881" -p 2883 -o "enable_strict_kernel_release=false,enable_cluster_checkout=false,enable_metadb_used=false" -c obdemo
obproxy端口监听正常
[admin@obtest obproxy-4.2.1.0]$ netstat -ntlp |grep obproxy
(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:2883 0.0.0.0:* LISTEN 22436/bin/obproxy
tcp 0 0 0.0.0.0:2884 0.0.0.0:* LISTEN 22436/bin/obproxy
obclient -h 127.0.0.1 -u root@proxysys -P 2883 -p
alter proxyconfig set obproxy_sys_password = '2QAZwsx' ;
修改 OBPROXY 连接 OceanBase 集群用户 proxyro 的密码
alter proxyconfig set observer_sys_password = '2QAZwsx' ;
通过obproxy连接sys租户成功
obclient -h10.102.23.43 -uroot@sys#obdemo -P2883 -p -c -A oceanbase
4、通过obproxy连接ob,创建业务租户、数据库和表
创建资源单元
CREATE RESOURCE UNIT U1C2G MAX_CPU 1, MEMORY_SIZE '2G', MAX_IOPS 1280,LOG_DISK_SIZE '10G', MIN_IOPS=1024;
CREATE resource pool my_pool unit = 'U1C2G', unit_num = 1;
创建业务租户
create tenant obmysql resource_pool_list=('my_pool'), primary_zone='RANDOM',comment 'mysql tenant/instance', charset='utf8mb4' set ob_tcp_invited_nodes='%', ob_compatibility_mode='mysql';
登录obmysql租户,默认密码为空
obclient -h 127.1 -uroot@obmysql -P2883 -p -c
修改租户的root密码,下次登录后需要输入密码
ALTER USER root IDENTIFIED BY 'Hello123';
创建业务数据库和表
obclient [(none)]> create database testdb1;
Query OK, 1 row affected (0.035 sec)
obclient [(none)]> use testdb1;
Database changed
obclient [testdb1]> create table t1(id int,content varchar(10));
Query OK, 0 rows affected (0.076 sec)
obclient [testdb1]> insert into t1 values(1,'test');
Query OK, 1 row affected (0.020 sec)
obclient [testdb1]> select * from t1;
+------+---------+
| id | content |
+------+---------+
| 1 | test |
+------+---------+
1 row in set (0.003 sec)