Linux Server 하나에 SingleStore, PostgreSQL, MySQL 을 함께 설치합니다.
CPU : 8 vCPU
Memory: 16GB (32GB 권장)
HDD(SSD) : 70GB 이상
O/S : Red Hat 계열 version 7
(이 문서는 Oracle Linux 7 기준으로 작성되었습니다)
예를 들어 opc 라는 계정에 sudo 권한을 설정할 경우 root 계정에서 다음 명령어를 수행합니다.
* 이미 sudo 권한이 부여됐다면 이 스텝은 건너 뛸 수 있습니다.
# visudo -f /etc/sudoers
가장 아래 라인에 다음 추가
opc ALL=(ALL) NOPASSWD:ALL
SELinux 가 설정되어 있는 경우는 sestatus 명령어를 수행하면 enabled 로 나타납니다.
SELINUX 항목을 disabled 로 수정하고 reboot 합니다.
* 이미 SELinux 가 disabled 로 설정되어 있다면 이 스텝은 건너 뛸 수 있습니다.
# sestatus
SELinux status: enabled
...
# vi /etc/selinux/config
SELINUX=disabled
# reboot
필요에 따라서 다음 Port 를 Open 해야 할 수도 있습니다.
추후에 Post 가 방화벽에 의해 막혀 정상적으로 프로세스간 통신하지 못한다면 다음 명령어로 Port 를 Open 합니다.
sudo firewall-cmd --zone=public --permanent --add-port=22/tcp
sudo firewall-cmd --zone=public --permanent --add-port=3306/tcp
sudo firewall-cmd --zone=public --permanent --add-port=3307/tcp
sudo firewall-cmd --zone=public --permanent --add-port=3308/tcp
sudo firewall-cmd --zone=public --permanent --add-port=443/tcp
sudo firewall-cmd --zone=public --permanent --add-port=8080/tcp
sudo firewall-cmd --zone=public --permanent --add-port=3360/tcp
sudo firewall-cmd --zone=public --permanent --add-port=5432/tcp
sudo firewall-cmd --reload
SingleStore Cluster 는 하나의 Box 에 1 Master Aggregator, 1 Leaf 를 동시에 두는 cluster-in-box 형식으로 설치합니다.
License Key 는 다음 링크를 통해 Sign Up 하면 무료 License Key 를 받을 수 있습니다.
다음 명령어를 수행해 SingleStore 를 설치합니다.
<LICENSE KEY> 는 위에서 받은 Key 를 사용합니다.
sudo yum-config-manager --add-repo https://release.memsql.com/production/rpm/x86_64/repodata/memsql.repo
sudo yum install -y singlestore-client singlestoredb-toolbox singlestoredb-studio
sdb-deploy cluster-in-a-box --password 1234 --license <LICENSE KEY>
설치가 모두 끝나면 아래와 같은 Node List 화면이 보입니다.
Hosts
+-----------+------------+-------------+---------------+
| Host | Local Host | SSH address | Identity File |
+-----------+------------+-------------+---------------+
| 127.0.0.1 | Yes | | |
+-----------+------------+-------------+---------------+
Nodes
+------------+--------+-----------+------+---------------+--------------+---------+----------------+--------------------+--------------+
| MemSQL ID | Role | Host | Port | Process State | Connectable? | Version | Recovery State | Availability Group | Bind Address |
+------------+--------+-----------+------+---------------+--------------+---------+----------------+--------------------+--------------+
| 157B219007 | Master | 127.0.0.1 | 3306 | Running | True | 7.8.14 | Online | | 127.0.0.1 |
| 11F1FA1BA1 | Leaf | 127.0.0.1 | 3307 | Running | True | 7.8.14 | Online | 1 | 127.0.0.1 |
+------------+--------+-----------+------+---------------+--------------+---------+----------------+--------------------+--------------+
SingleStore 에 접속합니다. 이 때 password 는 설치할 때 명시했던 1234 를 입력합니다.
테스트 전반에 걸쳐 Disk 부족현상을 줄이기 위해 Tansaction Log 파일 크기를 디폴트 256MB 에서 64MB 로 변경 후 database 를 생성합니다.
singlestore -p
set global log_file_size_partitions=67108864;
create database airportdb;
exit
PostgreSQL 은 다음 명령어를 수행하여 설치합니다.
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install -y postgresql14-server
설치가 완료되면 PostgreSQL Cluster 를 초기화하고 postgresql-14 서비스를 기동합니다.
sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
sudo systemctl start postgresql-14
향후 Socket 접속, 데이터 로딩, Query 테스트를 위해 다음 명령어를 수행합니다.
sudo -u postgres psql
create user opc password '1234';
grant pg_read_server_files to opc;
create database airportdb;
exit
psql -dairportdb
exit
다음 명령어로 MySQL 을 설치합니다.
sudo wget https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
sudo rpm -ivh mysql80-community-release-el7-7.noarch.rpm
sudo yum install -y mysql-server
sudo yum install -y mysql-shell
향후 테스트를 위해 설정을 일부 변경하고 MySQL Server 를 시작합니다.
echo 'port=3360' | sudo tee -a /etc/my.cnf > /dev/null
echo 'local_infile=true' | sudo tee -a /etc/my.cnf > /dev/null
echo 'max_heap_table_size=8G' | sudo tee -a /etc/my.cnf > /dev/null
echo 'tmp_table_size=8G' | sudo tee -a /etc/my.cnf > /dev/null
sudo systemctl start mysqld
MySQL root 계정의 임시 비밀번호를 확인하고 mysql_secure_installation 을 실행하여 향후 사용할 비밀번호로 변경합니다.
sudo grep "temporary password" /var/log/mysqld.log
mysql_secure_installation
Enter password for user root: <임시비밀번호>
New password: Mysql09876*
Re-enter new password: Mysql09876*
나머지는 모두 <Enter> 입력