如何搭建Datakit迁移环境
发表于 2023/12/11
0
本文的实操过程需要使用鲲鹏平台环境,以及Datakit软件包和openGauss软件包。
环境部署
如果开发者选择使用自备的鲲鹏平台环境来完成实验,则需要确保平台环境与如下环境要求保持一致。
硬件要求:
项目 | 说明 |
---|---|
CPU | Kunpeng 920 |
操作系统要求:
项目 | 版本 | 下载地址 |
---|---|---|
OpenEuler | 20.03 | https://repo.openeuler.org/openEuler-20.03-LTS-SP3/ |
软件要求:
环境配置
1. 创建用户
openGauss 数据库安装和使用需使用非root用户,因此本次Datakit数据迁移实践将使用个人用户test完成,并在实验开始时关闭防火墙。
systemctl stop firewalld
useradd test
passwd test
注意:后续所有操作如未特殊说明,均使用test用户完成。
例如:密码设定为Sample@123,需输入两次
将环境部署时下载的安装包放在/opt/datakit/目录下,并将/opt/datakit目录赋权给test用户,并切换至test用户
2. JDK安装配置
在ARM服务器上,datakit 5.1.0要求jdk版本是11及以上。
输入命令java -version查看jdk版本:
环境中没有jdk(如上图)或者版本低于11则需要重新安装JDK。
首先,下载并配置JDK:
mkdir -p /opt/datakit/tools/jdk
cd /opt/datakit/tools/jdk
wget https://mirrors.huaweicloud.com/kunpeng/archive/compiler/bisheng_jdk/bisheng-jdk-11.0.20-linux-aarch64.tar.gz
tar -zxvf bisheng-jdk-11.0.20-linux-aarch64.tar.gz
如何通过开发框架工具快速部署SDK并创建工程
然后,配置环境变量:
vim /home/test/.bashrc
文件末尾新增配置:
export JAVA_HOME=/opt/datakit/tools/jdk/bisheng-jdk-11.0.20
export PATH=$JAVA_HOME/bin:$PATH
:wq保存文件并退出,执行:source /home/test/.bashrc
java -version查看jdk版本是否是11.0.20
MySQL安装配置
下载MySQL 5.7:
mkdir -p /opt/datakit/tools/mysql5.7
cd /opt/datakit/tools/mysql5.7
wget https://obs.cn-north-4.myhuaweicloud.com/obs-mirror-ftp4/database/mysql-5.7.27-aarch64.tar.gz
tar -xvf mysql-5.7.27-aarch64.tar.gz
1. 创建配置文件
创建配置文件/opt/datakit/tools/mysql5.7/my.cnf
并输入如下配置项:
[mysqld]
port=3306
basedir=/opt/datakit/tools/mysql5.7/mysql-5.7.27-aarch64
datadir=/opt/datakit/tools/mysql5.7/datadir
pid-file=/opt/datakit/tools/mysql5.7/mysql.pid
socket=/opt/datakit/tools/mysql5.7/mysql.sock
log_error=/opt/datakit/tools/mysql5.7/error.log
server-id=1
enforce_gtid_consistency=on
gtid_mode=on
binlog_format= ROW
log_bin=mysql-bin
binlog_row_image=FULL
bind_address = xx.xx.xx.xx
请注意bind_address = xx.xx.xx.xx需修改为实际ip,实际ip可通过ifconfig命令查看。
:wq保存文件并退出。
2. 安装并启动
配置环境变量:
vim /home/test/.bashrc
文件末尾新增配置:
export MYSQL_PATH=/opt/datakit/tools/mysql5.7/mysql-5.7.27-aarch64
export PATH=$MYSQL_PATH/bin:$PATH
:wq保存文件并退出,执行:
source /home/test/.bashrc
mysql --version查看mysql版本。
a. 安装MySQL
mysqld --defaults-file=/opt/datakit/tools/mysql5.7/my.cnf --initialize --user=test --basedir=/opt/datakit/tools/mysql5.7/mysql-5.7.27-aarch64
--datadir=/opt/datakit/tools/mysql5.7/datadir
如果在安装过程中出现报错:
./mysqld: error while loading shared libraries: libatomic.so.1: cannot open shared object file: No such file or directory
对应的解决方案为创建软链接:
ln -s /opt/datakit/tools/mysql5.7/mysql-5.7.27-aarch64/extra/libatomic.so.1 /usr/lib64/libatomic.so.1
该操作需在root下执行
b. 启动MySQL
mysqld_safe --defaults-file=/opt/datakit/tools/mysql5.7/my.cnf --user=test &
查看root用户的临时密码
cat /opt/datakit/tools/mysql5.7/error.log | grep root@localhost
用上面查到的密码登录MySQL
mysql -u root -p -S /opt/datakit/tools/mysql5.7/mysql.sock
设置root用户的密码,新的密码为123456
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
创建新的用户mysql_test,对应的密码为password123
CREATE USER mysql_test;
SET PASSWORD FOR mysql_test=PASSWORD('password123');
GRANT ALL ON *.* TO 'mysql_test';
GRANT RELOAD ON *.* to 'mysql_test';
GRANT REPLICATION CLIENT ON *.* to 'mysql_test';
GRANT REPLICATION SLAVE ON *.* to 'mysql_test';
FLUSH PRIVILEGES;
查看mysql的用户,确认新用户创建成功
select * from mysql.user;
3. 启停命令总结
若需手动启停或连接MySQL,可使用如下命令:
a. 启动MySQL
mysqld_safe --defaults-file=/opt/datakit/tools/mysql5.7/my.cnf --user=test &
b. 远程连接命令
其中-h指定的参数 xx.xx.xx.xx需修改为实际ip
mysql -h xx.xx.xx.xx -P 3306 -u mysql_test -ppassword123 -S /opt/datakit/tools/mysql5.7/mysql.sock
c. 关闭MySQL
mysqladmin shutdown -u mysql_test -p -S /opt/datakit/tools/mysql5.7/mysql.sock
密码password123
openGauss部署
1. 环境变量部署
/opt/datakit目录下已提前下载好openGauss 安装包openGauss-5.0.0-openEuler-64bit-all.tar.gz,直接解压并配置环境变量即可。
a. 部署openGauss数据库
cd /opt/datakit
mkdir opengauss
tar -zxvf openGauss-5.0.0-openEuler-64bit-all.tar.gz -C opengauss
cd opengauss
tar -xf openGauss-5.0.0-openEuler-64bit.tar.bz2
b. 配置环境变量
vim /home/test/.bashrc
文件末尾新增配置:
export GAUSSHOME=/opt/datakit/opengauss
export LD_LIBRARY_PATH=$GAUSSHOME/lib:$LD_LIBRARY_PATH
export PATH=$GAUSSHOME/bin:$PATH
:wq保存文件并退出,执行:
source /home/test/.bashrc
初始化数据库
gs_initdb -D /opt/datakit/opengauss/datanode/dn1 --nodename=single -w Sample@123
2. 参数配置
设置配置文件pg_hba.conf相关参数:
gs_guc set -D /opt/datakit/opengauss/datanode/dn1 -h "host all all 0.0.0.0/0 sha256"
gs_guc set -D /opt/datakit/opengauss/datanode/dn1 -h "host replication all 0.0.0.0/0 sha256"
设置配置文件postgresql.conf相关参数:
gs_guc set -D /opt/datakit/opengauss/datanode/dn1 -c "listen_addresses = '*'"
gs_guc set -D /opt/datakit/opengauss/datanode/dn1 -c "wal_level = logical"
3. 启动数据库
启动数据库
gs_ctl start -D /opt/datakit/opengauss/datanode/dn1
连接数据库
gsql -d postgres -p 5432 -r
创建用户及数据库
create user opengauss_test with password 'Sample@123';
grant all privileges to opengauss_test;
create database datakit;
create database target_db with dbcompatibility = 'b';
其中datakit数据库作为datakit平台的底层数据库,target_db作为数据迁移的目标数据库。
\q退出gsql命令,使用初始用户连接b库,目的是加载dolphin插件。
gsql -d target_db -p 5432 -r
4. 启停命令总结
启动数据库:
gs_ctl start -D /opt/datakit/opengauss/datanode/dn1
关闭数据库:
gs_ctl stop -D /opt/datakit/opengauss/datanode/dn1
远程连接数据库
其中-h指定的参数 xx.xx.xx.xx需修改为实际ip。
gsql -d target_db -p 5432 -r -U opengauss_test -W Sample@123 -h xx.xx.xx.xx
Datakit部署
/opt/datakit目录下已提前下载好datakit 安装包Datakit-5.1.0.tar.gz,直接解压并配置相关参数即可部署一站式迁移平台datakit。
1. 解压安装包
假设DataKit安装在/opt/datakit/datakit5.1目录中:
mkdir -p /opt/datakit/datakit5.1
cd /opt/datakit/datakit5.1
tar -zxvf /opt/datakit/Datakit-5.1.0.tar.gz .
2. 创建工作目录
mkdir -p logs config ssl files
mkdir -p logs config ssl files
3. 拷贝配置文件
cp ./application-temp.yml ./config
4. 修改配置文件
修改config目录下默认配置文件application-temp.yml文件中的数据库连接ip、port、database、username、password,并将配置文件中涉及的默认工作目录/ops均修改为实际工作目录/opt/datakit/datakit5.1,server-ssl-enabled配置为false。
“启动数据库”小节已经创建了数据库datakit可作为datakit平台的底层数据库,以及数据库用户opengauss_test,密码Sample@123,因此可配置连接ip=实际ip、port=5432、database=datakit、username=opengauss_test、password= Sample@123
以下提供修改后的配置文件:
system:
# File storage path
defaultStoragePath: /opt/datakit/datakit5.1/files
# Whitelist control switch
whitelist:
enabled: false
server:
port: 9494
ssl:
key-store: /opt/datakit/datakit5.1/ssl/keystore.p12
key-store-password: 123456
key-store-type: PKCS12
enabled: false
servlet:
context-path: /
logging:
file:
path: /opt/datakit/datakit5.1/logs/
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: org.opengauss.Driver
url: jdbc:opengauss://xx.xx.xx.xx:5432/datakit?currentSchema=public&batchMode=off
username: opengauss_test
password: Sample@123
druid:
test-while-idle: false
test-on-borrow: true
validation-query: "select 1"
validation-query-timeout: 10000
connection-error-retry-attempts: 0
break-after-acquire-failure: true
max-wait: 3000
management:
server:
port: 9494
请注意将ip xx.xx.xx.xx修改为实际ip
5. 创建ssl文件
keytool -genkey -noprompt -dname "CN=opengauss, OU=opengauss, O=opengauss, L=Beijing, S=Beijing, C=CN" -alias opengauss -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore /opt/datakit/datakit5.1/ssl/keystore.p12 -validity 3650 -storepass 123456
此处为一条完整命令
a. 启动datakit
cd /opt/datakit/datakit5.1
nohup java -Xms2048m -Xmx4096m -jar openGauss-datakit-5.1.0.jar --spring.profiles.active=temp > ./logs/datakit.out 2>&1 &
b. 登录datakit平台:
启动成功后,可通过浏览器界面访问datakit平台
登录地址:http://xx.xx.xx.xx:9494/,其中xx.xx.xx.xx为实际ip
初始用户:admin
初始密码:admin123
首次登录需修改初始密码