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

手动搭建ob三副本集群+obproxy

1172

之前两篇笔记使用了obd自动安装部署obclust单副本和三副本集群

obd安装部署单副本:https://www.modb.pro/db/193823

obd安装部署三副本+opbroxy:https://www.modb.pro/db/194750

这次我们不打算使用obd,选择手动部署。以下是我的搭建步骤,其中有一些步骤出现错误,上图文:

这次我们不是用obd自动部署,而是是用手动安装部署,上一次我们安装的三节点ob集群是用的用户是admin,为了给自己留个学习环境,这次我们用一个新的用户admintwo用户手工安装(ps:我只偷偷使用了一台服务器)

1、环境配置

       因为我这里是在一台机器上折腾,所以环境变量都省掉了,唯一需要的就是配置了admintwo用户的ssh免密认证。

在主控机上操作,因为我就一台机器所以复制以此即可

ssh-keygen -t rsa

ssh-copy-id observer1-ip

ssh-copy-id observer2-ip

ssh-copy-id observer3-ip

2、安装oceanbase-ce包

默认安装到/home/admin/oceanbase下面,我们需要安装到/home/admintwo/oceanbase

 rpm -ivh --prefix=/home/admintwo/oceanbase/ oceanbase-ce-*.rpm

安装成狗后目录结构如下


需要给oceanbase目录更改一下权属

chown -R admintwo:admintwo /home/admintwo/oceanbase/

3、手动创建目录

模拟三个节点创建三个节点的data目录

mkdir -p /home/admintwo/oceanbase/store/obdata{1,2,3}/

在三个数据目录下创建对应的文件夹

sstable,etc3,clog,ilog,slog,etc2

官网中把sstable,etc3创建到了/data/下面,clog,ilog,slog,etc2创建到了/redo下,这样需要创建一个软链接到 /home/admintwo/oceanbase/store/obdata/,方便重挂载两块新的磁盘,

ln -s /redo/clog /home/admintwo/oceanbase/store/obdata{1,2,3}/

我们这里就一台机器,也没有那么多磁盘,就不需要软连接了,直接在目标路径创建

mkdir -p  /home/admintwo/oceanbase/store/obdata{1,2,3}/{sstable,etc3,clog,ilog,slog,etc2}

创建完的路径结构如下:


4、修改环境变量

vi .bash_profile增加以下内容

export PATH=$PATH:/home/admintwo/oceanbase/bin

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/admintwo/oceanbase/lib

使配置生效

source .bash_profile

5、启动observer

Server1:

 cd  /home/admintwo/oceanbase/store/obdata1

 observer -i ens192 -p 5881 -P 5882 -z zone1 -d /home/admintwo/oceanbase/store/obdata1 -r '10.251.19.65:5882:5881;10.251.19.65:6882:6881;10.251.19.65:7882:7881' -c 2 -n mandb -o "memory_limit=8G,cache_wash_threshold=1G,__min_full_resource_pool_memory=268435465,system_memory=3G,memory_chunk_cache_size=128M,cpu_count=16,net_thread_count=4,datafile_size=8G,stack_size=512K"

Server2:

 cd  /home/admintwo/oceanbase/store/obdata2

 observer -i ens192 -p 6881 -P 6882 -z zone2 -d /home/admintwo/oceanbase/store/obdata2 -r '10.251.19.65:5882:5881;10.251.19.65:6882:6881;10.251.19.65:7882:7881' -c 2 -n mandb -o "memory_limit=8G,cache_wash_threshold=1G,__min_full_resource_pool_memory=268435465,system_memory=3G,memory_chunk_cache_size=128M,cpu_count=16,net_thread_count=4,datafile_size=8G,stack_size=512K"

Server3:

 cd  /home/admintwo/oceanbase/store/obdata3

 observer -i ens192 -p 7881 -P 7882 -z zone3 -d /home/admintwo/oceanbase/store/obdata3 -r '10.251.19.65:5882:5881;10.251.19.65:6882:6881;10.251.19.65:7882:7881' -c 2 -n mandb -o "memory_limit=8G,cache_wash_threshold=1G,__min_full_resource_pool_memory=268435465,system_memory=3G,memory_chunk_cache_size=128M,cpu_count=16,net_thread_count=4,datafile_size=8G,stack_size=512K"

注意:必须进入到对应数据目录启动相应的节点,否则会报pid已经存在,个人认为既然已经指定-d参数,那么对应的pid应该自动指定pid的生成路径。

6、检查进程是否启动成功

ps -ef | grep observer


netstat -ntlp


7、初始化集群

连接到任意一个节点

mysql -h 10.251.19.65 -u root -P 5881 -p -c -A


第一次登录报错,查询oceanbase的错误码发现

Error 8001 (08004) :observer正在启动,等待一会重新连接即可

执行一下语句进行初始化(自举)

set session ob_query_timeout=1000000000;alter system bootstrap ZONE 'zone1' SERVER '10.251.19.65:5882',ZONE 'zone2' SERVER '10.251.19.65:6882',ZONE 'zone3' SERVER '10.251.19.65:7882';

8、安装obproxy

因为我之前使用obd搭建三副本的时候安装过obproxy,因此我又找了其他一台机器重新安装了obproxy。避免冲突


同样注意默认路径,如果不指定路径就会安装在/home/admin/obproxy{版本号},需要登录root,把目录权属给admin

9、启动obproxy

进入到obproxy目录,

./bin/obproxy -r "10.251.19.65:5881;10.251.19.65:6881;10.251.19.65:7881" -p 2883 -o "enable_strict_kernel_release=false,enable_cluster_checkout=false,enable_metadb_used=false" -c mandb


10修改obproxy的密码

mysql -h 10.251.19.57 -u root@proxysys -P 2883 -p


如果使用obproxy连接ob集群,还需要配置observer的密码,与我们之前配置的observer密码移植。


11、使用obproxy登录手动搭建的三副本集群


登录报错,查看obproxy的日志 目录在/home/admin/obproxy{版本号}/log/obproxy_xflush.log发现如下错误


obproxyro用户连接失败,我登录observer的sys租户,查询__all_user发现并没有这个用户,

难道是需要在sys租户下创建这个用户?

连接到某个observer节点,创建一下obproxyro这个用户,并且赋值oceanbase的select权限。


创建完成之后可以连接了


好了,搭建社区版ob集群已经尝试了3中办法,请详见我的几篇笔记,接下来我们就尝试做一些其他的实验,比如扩容、缩容等等。


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

评论