My Books

My Slides

rss 아이콘 이미지

6월 PostgreSQL 교육을 위해서 MySQL 연구를 잠시 접고, PostgreSQL 파티션을 테스트하던 중이었는데요. PostgreSQL 10 베타 버전이 나왔네요.

 

소스 파일을 이용해서 PostgreSQL 10 베타 버전을 설치하는 법을 간단히 정리했습니다.

 

다운로드

 

아래의 사이트에서 postgresql-10beta1.tar.gz 파일을 다운로드합니다.

 

https://www.postgresql.org/ftp/source/v10beta1/

 

 

설치 절차

 

-- 압축을 풉니다.

 

gunzip postgresql-10beta1.tar.gz
tar xvf postgresql-10beta1.tar
cd postgresql-10beta1

 

-- Configure 명령어를 수행해서 Makefile을 생성합니다.
-- 기본 설치 디렉토리는 /usr/local/pgsql 인데요.

-- 만일, 해당 위치에 다른 버전이 설치돼있으면 prefix 옵션을 이용해서 디렉토리를 지정합니다.

 

./configure --prefix=/usr/local/pgsql10
make
make install

mkdir /usr/local/pgsql10/data
chown -R postgres:postgres /usr/local/pgsql10/data

 

-- postgresql 유저로 스위치합니다.

 

su - postgres

 

-- initdb를 수행합니다.

 

/usr/local/pgsql10/bin/initdb -D /usr/local/pgsql10/data

 

-- $PGDATA/postgresql.conf  파일에서 port를 변경합니다. (9.6 버전이 설치된 경우)

 

port = 5410

 

-- 데이터베이스를 시작합니다.

 

/usr/local/pgsql10/bin/pg_ctl -D /usr/local/pgsql10/data start

 

저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

한 서버에 MySQL 5.6 버전과 5.7 버전을 설치하는 방법

MySQL 2017.04.28 22:12 Posted by 시연아카데미

5.7을 이용해서 MySQL 연구를 하던 중에 5.7의 옵티마이저 동작 원리가 5.6과 달라진 부분이 많아서 5.6을 설치할 필요가 생겼습니다. 그런데 한 서버에 MySQL 5.6과 5.7 버전을 설치하는 것이 약간 까다롭네요.


PostgreSQL은 RPM을 이용해서 설치하더라도 설치 디렉토리, 접속 포트 등을 지정할 수 있었는데, MySQL은 RPM을 이용해서는 지정된 디렉토리 (/var/lib/mysql)에만 설치가 가능한 것 같습니다.


일부 문서를 보면 --relocate 옵션을 이용해서 디렉토리 지정이 가능하다고 되어있는데, 5.6, 5.7 버전은 relocate가 불가능합니다.


그래서 이참에 소스 컴파일로 두 개의 버전을 설치해보기로 했습니다. 그런데 이 또한 사전 설치 작업, 라이브러리 설치, socket 지정 등의 작업으로 인한 시행착오가 일부 있었습니다. 따라서 관련 내용을 공유하고자 포스팅합니다.


사전 설치 작업



소스 컴파일을 위해선 cmake와 Bison을 설치해야 합니다. 그리고 5.7은  Boost 라이브러리를 추가로 설치해야 합니다.


1) cmake 설치


다운로드 사이트: https://cmake.org/
다운로드 파일: cmake-3.8.0-Linux-x86_64.tar.gz 


-- 설치 단계


배포용 파일이므로 컴파일은 필요없고 디렉토리에 압축만 풀면됩니다.


# gunzip cmake-3.8.0-Linux-x86_64.tar.gz
# tar xvf cmake-3.8.0-Linux-x86_64.tar
# cp -rp cmake-3.8.0-Linux-x86_64 /usr/local/cmake


-- .bash_profile PATH를 수정합니다.


PATH=$PATH:$HOME/bin:/usr/local/cmake/bin


# . .bash_profile


2) Bison 설치


다운로드 사이트: http://www.gnu.org/software/bison/
다운로드 파일: bison-3.0.tar.gz


-- 설치 단계 


# gunzip bison-3.0.tar.gz
# tar xvf bison-3.0.tar
# cd bison-3.0
# ./configure
# make
# make install


3) Boost 라이브러리 설치 (참고사이트: http://dslee1.blogspot.kr/2016/04/mysql-5711-cmake-error-at.html)


-- 설치 단계


# cd /usr/local/src/
# wget http://downloads.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
# tar xvfz boost_1_59_0.tar.gz


4) 유저 및 그룹 생성


# groupadd mysql56
# useradd -r -g mysql56 -s /bin/false mysql56

# groupadd mysql57
# useradd -r -g mysql57 -s /bin/false mysql57


5) 소스 다운로드


https://github.com/mysql/mysql-server/tree/5.6
https://github.com/mysql/mysql-server/tree/5.7


MySQL 5.6 설치



설치 단계는 다음과 같습니다.


1) 설치 단계


# unzip mysql-server-5.6.zip
# cd mysql-server-5.6
# mkdir bld
# cd bld
# cmake ..


-- CmakeCache.txt 파일을 열어서 설치 디렉토리 위치를 변경합니다.


CMAKE_INSTALL_PREFIX:PATH=/usr/local/mysql56
MYSQL_DATADIR:PATH=/usr/local/mysql56/data
SYSCONFDIR:PATH=/usr/local/mysql56/etc


-- 내용을 수정한 후에 make 및 make install을 수행합니다.


# make
# make install


2) 후속 작업


# chown -R mysql56:mysql56 /usr/local/mysql56
# /usr/local/mysql56/scripts/mysql_install_db --user=mysql56


3) 비밀번호 변경 (참고사이트: http://egloos.zum.com/spongebody/v/3530932)


5.6을 소스로 설치할 때 root 비번을 잘 모르는 경우가 있습니다. 이때는 다음과 같이 조치합니다.


# /usr/local/mysql56/bin/mysqld_safe --user=mysql56 --skip-grant-tables &
# mysql -u root mysql
mysql> update user set password=password('rootpassword') where user = 'root';
mysql> flush privileges;


# killall mysqld
# /usr/local/mysql56/bin/mysqld_safe --user=mysql56 &


4) /usr/local/mysql56/my.cnf 파일 편집


저 같은 경우에는 5.6은 기본 포트인 3306으로, socket은 /tmp/mysql56.sock 으로 설정했습니다. 따라서 /usr/local/mysql56/my.cnf 파일을 다음과 같이 편집합니다.


[mysqld]
port = 3306
socket=/tmp/mysql56.sock
이하 생략


5) 접속 방법


소켓을 별도로 지정했으므로 -S 옵션을 이용해서 해당 소켓을 지정합니다.

# mysql -uroot -p -S /tmp/mysql56.sock


MySQL 5.7 설치



설치 단계는 다음과 같습니다.


1) 설치 단계


# unzip mysql-server-5.7.zip
# cd mysql-server-5.7
# mkdir bld
# cd bld
# cmake .. -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/src/boost_1_59_0


-- CmakeCache.txt 파일을 열어서 설치 디렉토리 위치를 변경합니다.


CMAKE_INSTALL_PREFIX:PATH=/usr/local/mysql57
MYSQL_DATADIR:PATH=/usr/local/mysql57/data
MYSQL_KEYRINGDIR:PATH=/usr/local/mysql57/keyring
SYSCONFDIR:PATH=/usr/local/mysql57/etc


-- 내용을 수정한 후에 make 및 make install을 수행합니다.


# make
# make install


2) 후속 작업


아래 작업 시에 화면에 root 임시 비번이 출력됩니다. 해당 비번을 복사해둡니다.


chown -R mysql57:mysql57 /usr/local/mysql57
/usr/local/mysql57/bin/mysqld --initialize --user=mysql57
/usr/local/mysql57/bin/mysql_ssl_rsa_setup


3) /usr/local/mysql57/my.cnf 파일 편집 


[mysqld]
socket=/tmp/mysql57.sock
port=3307
이하 생략


4) MySQL 시작
 
# /usr/local/mysql57/bin/mysqld_safe --user=mysql57 &


5) 비밀번호 변경


# mysql -uroot -ptcDqMfDh:7h? -S /tmp/mysql57.sock
mysql> alter user 'root'@'localhost' identified by 'rootpassword';
mysql> flush privileges;


6) 접속


소켓을 별도로 지정했으므로 -S 옵션을 이용해서 해당 소켓을 지정합니다.


# mysql -uroot -p -S /tmp/mysql57.sock


이로써 한 서버에 2개의 MySQL 설치가 완료됐습니다.


저는 서버에서 테스트용으로 2개 버전을 설치한 것이라서 mysql 접속만 하면 되는데요.

만일 PHP를 이용하는 경우에는 기본적으로는 /tmp/mysql.sock을 이용하므로 socket 명을 변경한 경우에는 php.ini를 수정하는 등의 작업이 필요할 것 같습니다.


저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

RUN 파일을 이용하면 아주 간단하게 PostgreSQL 9.4와 9.6을 설치할 수 있습니다.


1. RUN 파일을 다운로드합니다.
아래의 사이트에서 9.4 및 9.6 버전을 다운로드합니다.
http://www.enterprisedb.com/products-services-training/pgdownload


2. 한 서버에 2개의 버전을 설치하려면 9.4를 먼저 설치합니다.

[root@pgserver postgres]# ls -rlt
합계 134188
-rwxr-xr-x. 1 postgres postgres 99134297  8월 25 17:09 postgresql-9.6.0-beta4-linux-x64.run
-rwxr-xr-x. 1 postgres postgres 38271901  8월 25 17:58 postgresql-9.4.9-1-linux-x64.run

[root@pgserver postgres]# ./postgresql-9.4.9-1-linux-x64.run
----------------------------------------------------------------------------
Welcome to the PostgreSQL Setup Wizard.
-- 생략

-- postgres OS 유저가 없는 경우에는 자동으로 생성됩니다.. 
Please provide a password for the database superuser (postgres). A locked Unix
user account (postgres) will be created if not present.

-- postgres DB User의 비밀번호를 설정합니다. 
Password :
Retype password :

-- 리스너 포트를 설정합니다. 기본 설정 값은 5432입니다. 
Port [5432]:

-- 로케일을 설정합니다. 
Locale

[1] [Default locale]
[2] C
[3] POSIX
..
Please choose an option [1] : 2
..
Please wait while Setup installs PostgreSQL on your computer.

 Installing
 0% ______________ 50% ______________ 100%
 ########################################
----------------------------------------------------------------------------
Setup has finished installing PostgreSQL on your computer.

-- 설치가 완료되었습니다. 
-- ps 명령어로 프로세스를 확인하면 postgres 관련 프로세스 목록을 확인할 수 있습니다. 
[root@pgserver postgres]# ps -ef | grep postgres | grep -v root
postgres 15535 15530  0  8월25 ?      00:00:00 sshd: postgres@notty
postgres 15536 15535  0  8월25 ?      00:00:00 /usr/libexec/openssh/sftp-server
postgres 17567 17562  0  8월25 ?      00:00:00 sshd: postgres@notty
postgres 17569 17567  0  8월25 ?      00:00:00 /usr/libexec/openssh/sftp-server
postgres 21988     1  0 01:39 ?        00:00:00 /opt/PostgreSQL/9.4/bin/postgres -D /opt/PostgreSQL/9.4/data
postgres 21989 21988  0 01:39 ?        00:00:00 postgres: logger process
postgres 21991 21988  0 01:39 ?        00:00:00 postgres: checkpointer process
postgres 21992 21988  0 01:39 ?        00:00:00 postgres: writer process
postgres 21993 21988  0 01:39 ?        00:00:00 postgres: wal writer process
postgres 21994 21988  0 01:39 ?        00:00:00 postgres: autovacuum launcher process
postgres 21995 21988  0 01:39 ?        00:00:00 postgres: stats collector process


3. DB 종료, 시작 및 접속

[root@pgserver postgres]# su - postgres 
-- DB 종료
[postgres@pgserver ~]$ /opt/PostgreSQL/9.4/bin/pg_ctl -D /opt/PostgreSQL/9.4/data stop

-- DB 시작 
[postgres@pgserver ~]$ /opt/PostgreSQL/9.4/bin/pg_ctl -D /opt/PostgreSQL/9.4/data start

-- DB 접속 
[postgres@pgserver ~]$ /opt/PostgreSQL/9.4/bin/psql
Password:
psql.bin (9.4.9)
Type "help" for help.

postgres=# select current_user;
 current_user
--------------
 postgres
(1 row)

PostgreSQL 9.6도 동일한 방법으로 설치를 진행하면됩니다.

저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

오라클 리눅스 7에 MySQL 5.7을 설치하는 간단한 방법

MySQL 2016.08.27 21:13 Posted by 시연아카데미

MySQL 5.7 설치를 시작으로 MySQL 세계로 다이빙해보도록 하겠습니다.



1. 오라클 리눅스 설치 시에 설치된 mariadb를 삭제합니다.

[root@localhost ~]# yum remove mariadb mariadb-server
[root@localhost ~]# rm -rf /var/lib/mysql 
[root@localhost ~]# rm /etc/my.cnf


2 아래의 사이트에서 YUM 리파지토리를 다운로드합니다.

2016년 8월 현재 가장 최신 버전은 mysql57-community-release-el7-8.noarch.rpm 입니다.


http://dev.mysql.com/downloads/repo/yum/



3. 다운받은 YUM 리파지토리를 설치합니다.

[root@localhost ~]# rpm -Uvh mysql57-community-release-el7-8.noarch.rpm
warning: mysql57-community-release-el7-8.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:mysql57-community-release-el7-8  ################################# [100%]


4. /etc/yum.repos.d/mysql-community.repo 파일을 확인합니다.

-- 아래와 같이 [mysql57-community] 섹션에 enabled=1로 되어있는 것을 확인합니다.
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql


5. YUM으로 MySQL을 설치합니다.

[root@localhost ~]# yum install mysql-community-server
.. 생략
===========================================================================================================
 Package                            Arch          Version                   Repository                Size
===========================================================================================================
Installing:
 mysql-community-libs               x86_64        5.7.14-1.el7              mysql57-community        2.1 M
     replacing  mariadb-libs.x86_64 1:5.5.35-3.el7
 mysql-community-libs-compat        x86_64        5.7.14-1.el7              mysql57-community        2.0 M
     replacing  mariadb-libs.x86_64 1:5.5.35-3.el7
 mysql-community-server             x86_64        5.7.14-1.el7              mysql57-community        152 M
Installing for dependencies:
 mysql-community-client             x86_64        5.7.14-1.el7              mysql57-community         24 M
 mysql-community-common             x86_64        5.7.14-1.el7              mysql57-community        271 k
Updating for dependencies:
 perl-DBD-MySQL                     x86_64        4.023-5.0.1.el7           ol7_latest               140 k
 postfix                            x86_64        2:2.10.1-6.0.1.el7        ol7_latest               2.4 M
 qt                                 x86_64        1:4.8.5-12.el7_2          ol7_latest               4.5 M
 qt-mysql                           x86_64        1:4.8.5-12.el7_2          ol7_latest                31 k
 qt-x11                             x86_64        1:4.8.5-12.el7_2          ol7_latest                13 M

.. 생략 
Complete!


6. MySQL 서비스를 시작합니다.

[root@localhost ~]# service mysqld start


7. root 유저의 비밀번호를 변경합니다.

-- 현재 비밀번호를 확인합니다. 확인 결과 현재 임시 비밀번호는 'LhBgWgt?Y5ry' 인것을 알 수 있습니다.
[root@localhost ~]# grep 'temporary password' /var/log/mysqld.log
2016-08-27T01:57:51.283386Z 1 [Note] A temporary password is generated for root@localhost: LhBgWgt?Y5ry

-- 임시 비밀번호로 접속합니다.
[root@localhost ~]# mysql -uroot -pLhBgWgt?Y5ry

-- 새로운 비밀번호를 설정합니다. 
-- 비밀번호 정책에 따라 비밀번호는 대소문자, 숫자, 특수문자가 각각 1개 이상 있어야하고 최소 8자리 이상이어야 합니다. 

mysql> alter user 'root'@'localhost' identified by 'Mynewpass4!';
Query OK, 0 rows affected (0.00 sec)

설치가 완료되었습니다.


참고사이트
http://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/

저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

[01] LAB실 - 3 노드 RAC 설치하기

RAC 2016.06.08 15:24 Posted by 시연아카데미

1. LAB실 - 3 노드 RAC 설치하기



RAC 연재에 앞서, 3 노드 RAC 환경을 구축하기로 마음 먹었습니다. 2 노드 RAC 설치, EXADATA 설치 등, 설치로 인한 피로감이 있긴 하지만 제대로 된 3-Way 통신 테스트를 위해서는 3 노드 RAC 환경을 구축하는 것이 필요하기 때문입니다.


3 노드 RAC 설치를 위해 구글링한 결과, 오라클에서는 이미 OOW 행사 시의 LAB실 진행을 위해 3 노드 및 4 노드 RAC 생성을 위한 템플릿을 제공하고 있습니다. 해당 템플릿을 이용하면 3 노드, 4 노드 뿐 아니라 Flex ASM & Cluster 환경도 구성이 가능합니다. 


이번 LAB실은 표준 모드로 RAC 3 노드를 구축할 예정입니다. (Flex ASM & Cluster 환경 구성은 향후 진행 예정입니다). 대부분의 내용은 오라클에서 제공하는 문서대로 진행하시면 됩니다. 영문으로 된 문서이긴 하지만 정리가 잘되어 있으므로 문서대로만 따라하시면 설치가 완료될 것으로 확신합니다. 몇 가지 주의 사항은 아래 내용을 참고하세요.


  • 3 노드 RAC 환경 구축을 위해서는 최소 16 GB RAM이 필요합니다.
  • 16 GB RAM 인 경우에도, VM 메모리 설정을 적절히 잘 해야합니다. ("그림1" 참고)
  • Deploy시에는 Manager Server의 root 유저 홈 디렉토리에 있는 DBRACOVM-Deploycluster3-tool_HOL10471.zip을 이용하시면 됩니다.
  • 오라클에서 제공하는 템플릿은 Flex ASM & Cluster 환경 (2 HUB 노드, 1 LEAF 노드)이므로, 템플릿을 약간 수정해야 합니다 ("표1" 참고)

1-1. 오라클 설치 가이드 및 VM 이미지 다운로드 위치


아래의 사이트에서 2개의 ova (ovmm10471.oow.local.ova, ovs10471.oow.local.ova)를 다운로드하고 "Read the tab instructions here"를 클릭해서 설치 매뉴얼을 다운로드합니다.

http://www.oracle.com/technetwork/server-storage/vm/downloads/hol-oraclevm-2368799.html



1-2. VM 및 RAC 노드 메모리 설정


16 GB RAM 환경이더라도, PC에서 사용하는 기본 메모리등을 고려했을때 "그림1"과 같이 설정하는 것이 좋습니다.


  • OVMM10471.OOW.LOCAL VM 메모리는 3 GB로 설정 (기본 설정은 4 GB이므로, VM 환경 설정에서 변경)
  • OVS10471.OOW.LOCAL VM 메모리는 8 GB로 설정 (기본 설정은 9 GB이므로, VM 환경 설정에서 변경)
  • RACNODE0.1/0.2/0.3 3개의 RAC 노드의 메모리는 2400 MB로 설정 (기본 설정은 3 GB임. 변경 방법은 설치 매뉴얼 참고)

그림1. 3 노드 RAC 구성도



1-3. 빌드 스크립트 변경


Manager Server (192.168.56.30)의 /root/deploycluster3/utils/netconfig12cRAC3node.ini 파일 내용을 "표1" 내용으로 변경합니다.(##으로 된 부분이 표준 RAC 모드 설치를 위해 주석 처리한 부분입니다)


표1. 표준 모드 RAC 생성용 스크립트

# Node specific information
NODE1=racnode01h
NODE1IP=192.168.56.120
NODE1PRIV=racnode01h-priv
NODE1PRIVIP=10.10.10.230
NODE1VIP=racnode01h-vip
NODE1VIPIP=192.168.56.230
##NODE1ROLE=HUB
NODE2=racnode02h
NODE2IP=192.168.56.121
NODE2PRIV=racnode02h-priv
NODE2PRIVIP=10.10.10.231
NODE2VIP=racnode02h-vip
NODE2VIPIP=192.168.56.231
##NODE2ROLE=HUB
NODE3=racnode03h
NODE3IP=192.168.56.122
NODE3PRIV=racnode03h-priv
NODE3PRIVIP=10.10.10.232
NODE3VIP=racnode03h-vip
NODE3VIPIP=192.168.56.232
##NODE3ROLE=LEAF
# Common data
PUBADAP=eth0
PUBMASK=255.255.255.0
PUBGW=192.168.56.1
PRIVADAP=eth1
PRIVMASK=255.255.255.0
RACCLUSTERNAME=oow12c
DOMAINNAME=oow.local  # May be blank
DNSIP=  # Starting from 2013 Templates allows multi value
# Device used to transfer network information to second node
# in interview mode
##NETCONFIG_DEV=/dev/xvdc
# 11gR2 specific data
SCANNAME=oow12c-scan
SCANIP=192.168.56.235
##GNS_ADDRESS=192.168.56.236
# 12c Flex parameters (uncomment to take effect)
##FLEX_CLUSTER=yes  # If 'yes' implies Flex ASM as well
##FLEX_ASM=yes
##FLEX_ASM=yes
##ASMADAP=eth2  # Must be different than private/public
##ASMMASK=255.255.255.0
##NODE1ASMIP=10.11.0.230
##NODE2ASMIP=10.11.0.231
##NODE3ASMIP=10.11.0.232
# Single Instance (description in params.ini)
# CLONE_SINGLEINSTANCE=yes  # Setup Single Instance
#CLONE_SINGLEINSTANCE_HA=yes  # Setup Single Instance/HA (Oracnodele Restart)



마치며


"RAC 연재"의 다음 주제는 "그리드 인프라스트럭처에 대한 이해" "RAC 아키텍처" 입니다. 설치 환경을 기반으로 연구 및 테스트 후에 포스팅 예정입니다.




저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

누구나 쉽게 따라할 수 있는 Oracle 12c RAC 설치 가이드

RAC 2016.05.10 20:14 Posted by 시연아카데미

누구나 쉽게 따라할 수 있는 Oracle 12c RAC (12.1.0.2) 설치 가이드입니다.


설치 시에는 입력해야 할 명령어 및 설정 내용들이 많이 있습니다. 따라서, 실제 설치 시에는

"슬라이드 보기"을 누른 후에 pdf 파일을 다운로드 받아서 진행하시는 것이 좋습니다.

 


저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License


 

티스토리 툴바