OB指定开源版本MySQL模式单节点安装

发布时间 2023-12-18 09:17:21作者: 济南小老虎

OB指定开源版本MySQL模式单节点安装


yum源处理

yum install -y yum-utils
yum-config-manager --add-repo https://mirrors.aliyun.com/oceanbase/OceanBase.repo
yum install -y ob-deploy

磁盘处理

阿里云可以买一个磁盘, 然后进行挂载, 可以分为两块盘和一块盘.

一块盘的简单处理
pvcreate /dev/vdb
vgcreate obvg /dev/vdb
lvcreate -L 20G obvg -n lvredo
lvcreate -l 100%FREE obvg -n lvdata

mkdir -p /data /redo
mkfs.ext4 /dev/obvg/lvdata
mkfs.ext4 /dev/obvg/lvredo

vim /etc/fstab 
/dev/obvg/lvredo          /redo              ext4            defaults,noatime,nodiratime,nodelalloc,barrier=0        0 0
/dev/obvg/lvdata             /data         ext4            defaults,noatime,nodiratime,nodelalloc,barrier=0        0 0

-----------如果是两块高速闪存盘, 可以如下处理
pvcreate /dev/nvme1n1
vgcreate obvg /dev/nvme1n1
lvcreate -l 100%FREE obvg -n lvredo

pvcreate /dev/nvme2n1
vgcreate obvg2 /dev/nvme2n1
lvcreate -l 100%FREE obvg2 -n lvdata

mkfs.ext4 /dev/obvg2/lvdata
mkfs.ext4 /dev/obvg/lvredo

mkdir -p /redo /data
增加配置
vim /etc/fstab
/dev/obvg/lvredo          /redo              ext4            defaults,noatime,nodiratime,nodelalloc,barrier=0        0 0
/dev/obvg2/lvdata             /data         ext4            defaults,noatime,nodiratime,nodelalloc,barrier=0        0 0

useradd admin
chown -R admin  /data /redo

修改部分参数

# 内存参数
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

# 安全限制
vi /etc/security/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

建立特定版本的本地资源库

--eanblerepo不太管用, 建议暂时移走非oceanbase的repo 

进入 /etc/yum.repos.d/ 只留下 Oceanbase.repo 的资源库文件

yum install *3.1.3* --downloadonly --downloaddir=/oceanbase3.1.3 -y 

在目录下就可以看到下载的文件了. 

配置文件

可以将文件保存为 /oceanbase/single.yaml 文件. 

oceanbase-ce:
  servers:
    # Please don't use hostname, only IP can be supported
    - 172.24.110.175
  global:
    #  The working directory for OceanBase Database. OceanBase Database is started under this directory. This is a required field.
    home_path: /home/admin/oceanbase-ce
    # The directory for data storage. The default value is $home_path/store.
    data_dir: /data
    # The directory for clog, ilog, and slog. The default value is the same as the data_dir value.
    redo_dir: /redo
    # Please set devname as the network adaptor's name whose ip is  in the setting of severs.
    # if set severs as "127.0.0.1", please set devname as "lo"
    # if current ip is 192.168.1.10, and the ip's network adaptor's name is "eth0", please use "eth0"
    devname: eth0
    mysql_port: 2881 # External port for OceanBase Database. The default value is 2881.
    rpc_port: 2882 # Internal port for OceanBase Database. The default value is 2882.
    zone: zone1
    cluster_id: 1
    # please set memory limit to a suitable value which is matching resource.
    memory_limit: 8G # The maximum running memory for an observer
    system_memory: 3G # The reserved system memory. system_memory is reserved for general tenants. The default value is 30G.
    stack_size: 512K
    cpu_count: 16
    cache_wash_threshold: 1G
    __min_full_resource_pool_memory: 268435456
    workers_per_cpu_quota: 10
    schema_history_expire_time: 1d
    # The value of net_thread_count had better be same as cpu's core number.
    net_thread_count: 4
    major_freeze_duty_time: Disable
    minor_freeze_times: 10
    enable_separate_sys_clog: 0
    enable_merge_by_turn: FALSE
    # datafile_disk_percentage: 20 # The percentage of the data_dir space to the total disk space. This value takes effect only when datafile_size is 0. The default value is 90.
    datafile_size: 100G
    syslog_level: WARN # System log level. The default value is INFO.
    enable_syslog_wf: false # Print system logs whose levels are higher than WARNING to a separate log file. The default value is true.
    enable_syslog_recycle: true # Enable auto system log recycling or not. The default value is false.
    max_syslog_file_count: 10 # The maximum number of reserved log files before enabling auto recycling. The default value is 0.
    root_password: Testxxxx  # root user password, can be empty

初始化以及启动服务

注意需要先删除在线的仓库
/bin/rm -rf ~/.obd/mirror/remote/OceanBase.repo
增加本地仓库:
obd mirror clone /oceanbase3.1.3/*.rpm
注意需要设置本地可以免密登录, 这一块与 tidb 其实是一样的.
ssh-keygen
以及设置互信登录
ssh-copy-id root@172.24.110.175 

开始部署与安装. 
obd cluster deploy oberp -c single.yaml
obd cluster start oberp

如果想删除可以使用:
obd cluster destroy oberp -f

客户端连接

yum install obclient -y
然后使用客户端连接:
obclient -h172.24.110.175 -P2881 -uroot -p'Testxxxx' -Doceanbase -A

mysql方式连接:
mysql -h127.0.0.1 -P2881 -pTestxxxx

# 查看字符集:
mysql> show variables like '%character%';
+--------------------------+---------+
| Variable_name            | Value   |
+--------------------------+---------+
| character_set_client     | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database   | utf8mb4 |
| character_set_filesystem | binary  |
| character_set_results    | utf8mb4 |
| character_set_server     | utf8mb4 |
| character_set_system     | utf8mb4 |
+--------------------------+---------+
7 rows in set (0.00 sec)

# 大表验证
mysql> create table zhaobshbigtable (zhaobsh1 varchar(10000),zhaobsh2 varchar(10000),zhaobsh3 varchar(10000),zhaobsh4 varchar(10000),zhaobsh5 varchar(10000),zhaobsh6 varchar(10000),zhaobsh7 varchar(10000),zhaobsh8 varchar(10000),zhaobsh9 varchar(10000),zhaobsh10 varchar(10000)) ;
Query OK, 0 rows affected (0.02 sec)

# 版本查看
mysql> SELECT @@version;
+--------------------+
| @@version          |
+--------------------+
| 3.1.3-OceanBase CE |
+--------------------+
1 row in set (0.00 sec)