Sign in
Sign up
Explore
Enterprise
Education
Search
Help
Terms of use
About Us
Explore
Enterprise
Education
Gitee Premium
Gitee AI
AI teammates
Sign in
Sign up
Fetch the repository succeeded.
Donate
Please sign in before you donate.
Cancel
Sign in
Scan WeChat QR to Pay
Cancel
Complete
Prompt
Switch to Alipay.
OK
Cancel
Watch
Unwatch
Watching
Releases Only
Ignoring
1
Star
0
Fork
0
angel
/
solicit articles-1
Code
Issues
1
Pull Requests
0
Wiki
Insights
Pipelines
Service
JavaDoc
PHPDoc
Quality Analysis
Jenkins for Gitee
Tencent CloudBase
Tencent Cloud Serverless
悬镜安全
Aliyun SAE
Codeblitz
SBOM
DevLens
Don’t show this again
Update failed. Please try again later!
Remove this flag
Content Risk Flag
This task is identified by
as the content contains sensitive information such as code security bugs, privacy leaks, etc., so it is only accessible to contributors of this repository.
安装部署 手动部署CentOS7.9环境下的 OceanBase 单副本集群
Top
Backlog
#I5AGGQ
angel
owner
Opened this issue
2022-06-02 04:06
一、前期准备 1.准备: ⑴ 硬件条件: 4核CPU,32G内存,500G硬盘容量,网卡型号: lo ⑵ 软件信息: IP地址: 127.0.0.1 。软件版本:CentOS Linux release 7.9.2009 (Core) ⑶ 准备服务器: 角色 机器 备注 observer 127.0.0.1 zone1, 监听2881和2883端口 obproxy 127.0.0.1 监听2883和2884端口 ⑷ 硬盘信息: 2.安装相关应用工具软件 yum -y install tree yum install epel-release -y yum install -y net-tools lrzsz tree htop dstat sysvinit-tools yum -y install sysvinit-tools yum install -y net-tools 3.下载OceanBase 软件: 从OB官网社区版下载如下五个软件: ①libobclient-2.0.0-2.el7.x86_64.rpm ②obclient-2.0.0-2.el7.x86_64.rpm ③obproxy-3.2.0-1.el7.x86_64.rpm ④oceanbase-ce-3.1.2-10000392021123010.el7.x86_64.rpm ⑤ oceanbase-ce-libs-3.1.2-10000392021123010.el7.x86_64.rpm 4.服务器内核参数初始化 [root@localhost etc]# vim /etc/sysctl.conf net.core.somaxconn = 2048 net.core.netdev_max_backlog = 10000 net.core.rmem_default = 16777216 net.core.wmem_default = 16777216 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.ipv4.ip_local_port_range = 3500 65535 net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 net.ipv4.tcp_syncookies = 0 net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 65536 16777216 net.ipv4.tcp_max_syn_backlog = 16384 net.ipv4.tcp_fin_timeout = 15 net.ipv4.tcp_max_syn_backlog = 16384 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_slow_start_after_idle = 0 vm.swappiness = 0 vm.min_free_kbytes = 2097152 vm.max_map_count = 655360 fs.aio-max-nr = 1048576 [root@localhost etc]# sysctl -p生效。 5.会话设置: [root@localhost security]# vim limits.conf * soft nofile 655360 * hard nofile 655360 * soft nproc 655360 * hard nproc 655360 * soft core unlimited * hard core unlimited * soft stack unlimited * hard stack unlimited [root@localhost security]# ulimit -a ulimit -a检查,退出重新登录会话生效。 6.关闭防火墙和SELinux设置: ⑴查看防火墙状态 systemctl stop firewalld ⑵关闭 SELinux 修改 SELinux 配置文件中的 SELINUX 选项。 vim /etc/selinux/config ``` # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled ``` 配置文件修改后只会重启主机后生效,还需要使用下面命令立即生效。 setenforce 0 二、安装 1.用户设置: ⑴增加用户: useradd admin passwd admin ⑵授予admin用户sudo权限: [angel@localhost /]#cat /etc/sudoers root ALL=(ALL) ALL admin ALL=(ALL) ALL ⑶目录权限: chown -R admin.admin /data /redo ⑷时钟同步: yum -y install chrony 2.创建工作目录: mkdir -p /home/admin/oceanbase/store/{sstable,etc3,clog,ilog,slog,etc2} [admin@XTZJ-20211224SR ~]$ tree ~/oceanbase/store/ /home/admin/oceanbase/ ├── bin ├── etc ├── etc2 ├── etc3 ├── lib ├── log ├── run └── store ├── clog ├── sort_dir ├── ilog ├── slog └── sstable 3.安装软件: rpm -ivh *.rpm 4.查看安装: rpm -ql libobclient-2.0.0-2.el7.x86_64.rpm rpm -ql obclient-2.0.0-2.el7.x86_64.rpm rpm -ql obproxy-3.2.0-1.el7.x86_64.rpm rpm -ql oceanbase-ce-3.1.2-10000392021123010.el7 rpm -ql oceanbase-ce-libs-3.1.2-10000392021123010.el7.x86_64.rpm 5.环境变量设置: [admin@oceanbase01 soft]$ echo ‘export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/oceanbase/lib’ >> ~/.bash_profile [admin@oceanbase01 soft]$ source ~/.bash_profile echo $LD_LIBRARY_PATH 三、启动OB进程: 1.启动: cd /home/admin/oceanbase && bin/observer -i lo -p 2881 -P 2882 -z zone1 -d /home/admin/oceanbase/store -r '127.0.0.1:2882:2881' -c 20220221 -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=16,net_thread_count=4,datafile_size=50G,stack_size=1536K" 2.查看进程: ps -ef|grep observer 3.查看监听: netstat –ntlp OB启动成功! 4.集群: obclient -h 127.0.0.1 -P 2881 -uroot -c -A set session ob_query_timeout=1000000000; alter system bootstrap ZONE 'zone1' SERVER '127.0.0.1:2882'; 5.集群成功后重新登录: obclient -h 127.0.0.1 -P 2881 -uroot@sys -c -A alter user root identified by '123'; #更改用户名和密码。后退出。 show databases; #多了一个oceanbase数据库,说明初始化成功了。 然后更改密码,退出后带密码登录。 登录OB数据库,查看表: show processlist; select gmt_create,gmt_modified,tenant_id,tenant_name,replica_num,zone_list,primary_zone,info,locality,default_tablegroup_id,drop_tenant_time,status from __all_tenant; select * from __all_tenant; use test; #建表也可以,但是不要在SYS实例里面导入大量的数据,或者做功能性或性能测试。 如果做测试可以做业务实例, show tables; MySQL [oceanbase]> select * from gv$tenant; #只有一个实例是SYS实例。 退出OB: 四、启动 OBPROXY 进程 1.启动: cd ~/obproxy-3.2.0 && bin/obproxy -r "127.0.0.1:2881" -p 2883 -o "enable_strict_kernel_release=false,enable_cluster_checkout=false,enable_metadb_used=false" -c obdemo 启动-c 指定的集群名obdemo和OBserver的集群名保持一致才能启动 2.检查 OBPROXY监听进程正常 进程 obproxy 默认会监听2个端口:2883 和 2884 。 ps -ef|grep obproxy netstat -ntlp |grep obproxy obclient -h 127.0.0.1 -u root@proxysys -P 2883 -p123 3.修改 OBPROXY 管理密码 MySQL [(none)]> show proxyconfig like '%sys_password%'; alter proxyconfig set observer_sys_password = '123'; #修改obproxy and observer通信的密码。 alter proxyconfig set obproxy_sys_password = '123'; #修改obproxy 管理员的密码。 密文显示如下: 退出obproxy,再一次带密码登录 obclient -h 127.0.0.1 -u root@proxysys -P 2883 -p123 show processlist; show databases; 测试obproxy连OB集群: obclient -h 127.0.0.1 -u root@sys#obdemo -P 2883 -p123 -c -A oceanbase 漏了一步,需要到OB上去建用户。 obclient -h 127.0.0.1 -u root@sys -P 2881 -p123 -c -A oceanbase proxyro的用户需要在oceanbase集群里创建,并同时设置密码。 grant select on oceanbase.* to proxyro identified by '123'; obclient -h 127.0.0.1 -u root@sys#obdemo -P 2883 -p123 -c -A oceanbase obproxy连接到了 ob集群。 show databases; show processlist; show full processlist; 这表明obproxy起作用了。 五、创建业务租户、数据库和表: 1.创建资源规格和资源池: create resource unit lxs_unit1 max_cpu=1, max_memory='1g', max_iops=1000, max_disk_size='10g', max_session_num=10000, min_cpu=1, min_memory='1g', min_iops=1000; select * from __all_unit_config; create resource pool lxs_pool1 unit='lxs_unit1', unit_num=1, zone_list=('zone1'); select resource_pool_id, name from __all_resource_pool; tenant_id=-1,表示没有关联到用户。 2.创建业务租户: create tenant lxs_tenant1 resource_pool_list=('lxs_pool1'); select * from __all_tenant; select gmt_create,gmt_modified,tenant_id,tenant_name,replica_num,zone_list,primary_zone,info,locality,default_tablegroup_id,drop_tenant_time,status from __all_tenant; 查看资源情况: 重新登录数据库,连接新建业务租户:lxs_tenant1 exit 退出sys,登录lxs_tenant1 show databases; 3.创建数据库 执行命令:create database lxs_db; 创建数据表:lxs_student03 执行命令:use lxs_db create table lxs_student03(id int, name varchar(20)); insert into lxs_student03(id, name) value(1, 'angel'); insert into lxs_student03(id, name) value(2, 'alice'); 总结:遇到的坑。 1. 启动时,CPU数量设置至少需要16个,否则在租户中可能无法打开数据库。 2. 根目录设置尽可能大一点,我开始设置50G,无法启动,后来扩容了。 3. 查询IP时,要用hostname –i查询,再结合ifconfig确认网卡型号。 4. 启动的命令行需要用英文半角标点符号。 5. 如果启动过程中有任何问题,立即与老师和同学联系,请求帮助!
一、前期准备 1.准备: ⑴ 硬件条件: 4核CPU,32G内存,500G硬盘容量,网卡型号: lo ⑵ 软件信息: IP地址: 127.0.0.1 。软件版本:CentOS Linux release 7.9.2009 (Core) ⑶ 准备服务器: 角色 机器 备注 observer 127.0.0.1 zone1, 监听2881和2883端口 obproxy 127.0.0.1 监听2883和2884端口 ⑷ 硬盘信息: 2.安装相关应用工具软件 yum -y install tree yum install epel-release -y yum install -y net-tools lrzsz tree htop dstat sysvinit-tools yum -y install sysvinit-tools yum install -y net-tools 3.下载OceanBase 软件: 从OB官网社区版下载如下五个软件: ①libobclient-2.0.0-2.el7.x86_64.rpm ②obclient-2.0.0-2.el7.x86_64.rpm ③obproxy-3.2.0-1.el7.x86_64.rpm ④oceanbase-ce-3.1.2-10000392021123010.el7.x86_64.rpm ⑤ oceanbase-ce-libs-3.1.2-10000392021123010.el7.x86_64.rpm 4.服务器内核参数初始化 [root@localhost etc]# vim /etc/sysctl.conf net.core.somaxconn = 2048 net.core.netdev_max_backlog = 10000 net.core.rmem_default = 16777216 net.core.wmem_default = 16777216 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216 net.ipv4.ip_local_port_range = 3500 65535 net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 net.ipv4.tcp_syncookies = 0 net.ipv4.tcp_rmem = 4096 87380 16777216 net.ipv4.tcp_wmem = 4096 65536 16777216 net.ipv4.tcp_max_syn_backlog = 16384 net.ipv4.tcp_fin_timeout = 15 net.ipv4.tcp_max_syn_backlog = 16384 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_slow_start_after_idle = 0 vm.swappiness = 0 vm.min_free_kbytes = 2097152 vm.max_map_count = 655360 fs.aio-max-nr = 1048576 [root@localhost etc]# sysctl -p生效。 5.会话设置: [root@localhost security]# vim limits.conf * soft nofile 655360 * hard nofile 655360 * soft nproc 655360 * hard nproc 655360 * soft core unlimited * hard core unlimited * soft stack unlimited * hard stack unlimited [root@localhost security]# ulimit -a ulimit -a检查,退出重新登录会话生效。 6.关闭防火墙和SELinux设置: ⑴查看防火墙状态 systemctl stop firewalld ⑵关闭 SELinux 修改 SELinux 配置文件中的 SELINUX 选项。 vim /etc/selinux/config ``` # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled ``` 配置文件修改后只会重启主机后生效,还需要使用下面命令立即生效。 setenforce 0 二、安装 1.用户设置: ⑴增加用户: useradd admin passwd admin ⑵授予admin用户sudo权限: [angel@localhost /]#cat /etc/sudoers root ALL=(ALL) ALL admin ALL=(ALL) ALL ⑶目录权限: chown -R admin.admin /data /redo ⑷时钟同步: yum -y install chrony 2.创建工作目录: mkdir -p /home/admin/oceanbase/store/{sstable,etc3,clog,ilog,slog,etc2} [admin@XTZJ-20211224SR ~]$ tree ~/oceanbase/store/ /home/admin/oceanbase/ ├── bin ├── etc ├── etc2 ├── etc3 ├── lib ├── log ├── run └── store ├── clog ├── sort_dir ├── ilog ├── slog └── sstable 3.安装软件: rpm -ivh *.rpm 4.查看安装: rpm -ql libobclient-2.0.0-2.el7.x86_64.rpm rpm -ql obclient-2.0.0-2.el7.x86_64.rpm rpm -ql obproxy-3.2.0-1.el7.x86_64.rpm rpm -ql oceanbase-ce-3.1.2-10000392021123010.el7 rpm -ql oceanbase-ce-libs-3.1.2-10000392021123010.el7.x86_64.rpm 5.环境变量设置: [admin@oceanbase01 soft]$ echo ‘export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/oceanbase/lib’ >> ~/.bash_profile [admin@oceanbase01 soft]$ source ~/.bash_profile echo $LD_LIBRARY_PATH 三、启动OB进程: 1.启动: cd /home/admin/oceanbase && bin/observer -i lo -p 2881 -P 2882 -z zone1 -d /home/admin/oceanbase/store -r '127.0.0.1:2882:2881' -c 20220221 -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=16,net_thread_count=4,datafile_size=50G,stack_size=1536K" 2.查看进程: ps -ef|grep observer 3.查看监听: netstat –ntlp OB启动成功! 4.集群: obclient -h 127.0.0.1 -P 2881 -uroot -c -A set session ob_query_timeout=1000000000; alter system bootstrap ZONE 'zone1' SERVER '127.0.0.1:2882'; 5.集群成功后重新登录: obclient -h 127.0.0.1 -P 2881 -uroot@sys -c -A alter user root identified by '123'; #更改用户名和密码。后退出。 show databases; #多了一个oceanbase数据库,说明初始化成功了。 然后更改密码,退出后带密码登录。 登录OB数据库,查看表: show processlist; select gmt_create,gmt_modified,tenant_id,tenant_name,replica_num,zone_list,primary_zone,info,locality,default_tablegroup_id,drop_tenant_time,status from __all_tenant; select * from __all_tenant; use test; #建表也可以,但是不要在SYS实例里面导入大量的数据,或者做功能性或性能测试。 如果做测试可以做业务实例, show tables; MySQL [oceanbase]> select * from gv$tenant; #只有一个实例是SYS实例。 退出OB: 四、启动 OBPROXY 进程 1.启动: cd ~/obproxy-3.2.0 && bin/obproxy -r "127.0.0.1:2881" -p 2883 -o "enable_strict_kernel_release=false,enable_cluster_checkout=false,enable_metadb_used=false" -c obdemo 启动-c 指定的集群名obdemo和OBserver的集群名保持一致才能启动 2.检查 OBPROXY监听进程正常 进程 obproxy 默认会监听2个端口:2883 和 2884 。 ps -ef|grep obproxy netstat -ntlp |grep obproxy obclient -h 127.0.0.1 -u root@proxysys -P 2883 -p123 3.修改 OBPROXY 管理密码 MySQL [(none)]> show proxyconfig like '%sys_password%'; alter proxyconfig set observer_sys_password = '123'; #修改obproxy and observer通信的密码。 alter proxyconfig set obproxy_sys_password = '123'; #修改obproxy 管理员的密码。 密文显示如下: 退出obproxy,再一次带密码登录 obclient -h 127.0.0.1 -u root@proxysys -P 2883 -p123 show processlist; show databases; 测试obproxy连OB集群: obclient -h 127.0.0.1 -u root@sys#obdemo -P 2883 -p123 -c -A oceanbase 漏了一步,需要到OB上去建用户。 obclient -h 127.0.0.1 -u root@sys -P 2881 -p123 -c -A oceanbase proxyro的用户需要在oceanbase集群里创建,并同时设置密码。 grant select on oceanbase.* to proxyro identified by '123'; obclient -h 127.0.0.1 -u root@sys#obdemo -P 2883 -p123 -c -A oceanbase obproxy连接到了 ob集群。 show databases; show processlist; show full processlist; 这表明obproxy起作用了。 五、创建业务租户、数据库和表: 1.创建资源规格和资源池: create resource unit lxs_unit1 max_cpu=1, max_memory='1g', max_iops=1000, max_disk_size='10g', max_session_num=10000, min_cpu=1, min_memory='1g', min_iops=1000; select * from __all_unit_config; create resource pool lxs_pool1 unit='lxs_unit1', unit_num=1, zone_list=('zone1'); select resource_pool_id, name from __all_resource_pool; tenant_id=-1,表示没有关联到用户。 2.创建业务租户: create tenant lxs_tenant1 resource_pool_list=('lxs_pool1'); select * from __all_tenant; select gmt_create,gmt_modified,tenant_id,tenant_name,replica_num,zone_list,primary_zone,info,locality,default_tablegroup_id,drop_tenant_time,status from __all_tenant; 查看资源情况: 重新登录数据库,连接新建业务租户:lxs_tenant1 exit 退出sys,登录lxs_tenant1 show databases; 3.创建数据库 执行命令:create database lxs_db; 创建数据表:lxs_student03 执行命令:use lxs_db create table lxs_student03(id int, name varchar(20)); insert into lxs_student03(id, name) value(1, 'angel'); insert into lxs_student03(id, name) value(2, 'alice'); 总结:遇到的坑。 1. 启动时,CPU数量设置至少需要16个,否则在租户中可能无法打开数据库。 2. 根目录设置尽可能大一点,我开始设置50G,无法启动,后来扩容了。 3. 查询IP时,要用hostname –i查询,再结合ifconfig确认网卡型号。 4. 启动的命令行需要用英文半角标点符号。 5. 如果启动过程中有任何问题,立即与老师和同学联系,请求帮助!
Comments (
0
)
Sign in
to comment
Status
Backlog
Backlog
Doing
Done
Closed
Assignees
Not set
angel
li-xueshan
Assignee
Collaborator
+Assign
+Mention
Labels
一年一度OceanBase技术征文
Not set
Label settings
Milestones
No related milestones
No related milestones
Pull Requests
None yet
None yet
Successfully merging a pull request will close this issue.
Branches
No related branch
Branches (
-
)
Tags (
-
)
Planed to start   -   Planed to end
-
Top level
Not Top
Top Level: High
Top Level: Medium
Top Level: Low
Priority
Not specified
Serious
Main
Secondary
Unimportant
参与者(1)
1
https://gitee.com/li-xueshan/solicit-articles-1.git
git@gitee.com:li-xueshan/solicit-articles-1.git
li-xueshan
solicit-articles-1
solicit articles-1
Going to Help Center
Search
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
Comment
Repository Report
Back to the top
Login prompt
This operation requires login to the code cloud account. Please log in before operating.
Go to login
No account. Register