MySQL 8 에서 버전관리에 변화가 있었다. MySQL 도 이제는 LTS 버전과 그렇지 않은 버전으로 나누어 릴리즈 된다고 한다. MySQL 8.4 LTS 에서 변경사항이 있다. 설치는 Ubuntu 22.04 에서 진행 되었다. 의존성 패키지 설치 MySQL 8.4 는 GCC 10 버전 이상을 필요로 한다. 그래서 Ubuntu 20.04 에서는 설치할 수 없다. 다음과 같이 의존성 패키지를 설치한다. Configure WITH_BOOST, DOWNLOAD_BOOST 옵션이 없어졌다. 추가로 FIDO 관련해 설정을 해줘야 한다. 사용하지 않는다면 none 으로 지정해줘야 한다. 에러가 발생한다면 다시 해줘야 하는데, 다음과 같이 파일과 디렉토리를 […]
MySQL 모니터링을 위한 계정 권한
MySQL 에서는 각종 지표등을 제공하는데, 이러한 지표를 얻기 위해서는 MySQL 계정이 있어야 한다. 대부분 MySQL 계정을 생성하고 권한을 주는데, 습관처럼 “ALL PRIVLEGES” 를 주는 경우가 많다. 하지만 모든 시스템에서 계정은 최소한의 필요한 권한만 주도록 하는 것이 보안의 시작이다. 이 문서는 MySQL 모니터링을 위한 계정 권한에 대해 다룬다. 계정생성 MySQL 8.0 기준으로 계정 생성은 다음과 같다. 이렇게 생성을 하고 난 후에 이제 GRANT 명령어를 이용해서 권한을 줘야 한다. 모니링을 위한 권한 부여 ‘ALL PRIVILEGES’ 로 모든 권한을 줘는 안되며 모니터링을 위한 […]
Oracle 계정 생성
오라클에서 계정을 생성해 보자. 오라클에서 계정 생성은 다른 데이터베이스와는 완전히 다른 의미를 갖는다. 보통 데이터베이스의 계정은 데이터베이스에 접속을 하기 위한 목적만 가진다. 하지만 오라클 데이터베이스의 계정은 이와는 다르다. 스키마(Schema) 오라클에서 스키마는 데이터베이스 오브젝트(Object)들의 모음이다. 오브젝트라고 하면 테이블(Table), 뷰(View) 와 같은 것을 말한다. 이론적으로 데이터베이스에 의해서 사용되어지는 메타데이터의 집합이라고도 한다. 하나의 스키마는 테이블, 컬럼, 속성등과 같은 데이터베이스의 애튜리브트(Attribute) 를 정의한다. 그래서 데이터베이스는 이러한 스키마들을 관리해주는 시스템이라고 보면 된다. 스키마의 존재 이유는 데이터의 모음을 그룹화하고 권한 설정을 하는데 있다. 오라클은 관계형 데이터베이스이기 […]
listener.ora, tnsnames.ora 생성하기
오라클 데이터베이스 19c 를 Silent 설치를 하고 나면 listener.ora, tnsnames.ora 가 생성되지 않는다. 어떻게 수동으로 이것을 생성하는지에 대해서 알아보고 차이에 대해서 간단히 설명한다. 신기하게도 오라클 데이터베이스 19c를 Silent 설치하고 난 후에 이것을 생성하지 않는다고 하더라도 원격 클라이언트 접속에는 아무런 문제가 되지 않는다. 하지만 접속 서비스를 할당하고 접속을 쪼개고 싶다면 tnsnames.ora 파일이 반드시 있어야 한다. Oracle Net Listener Listener 는 정확하게는 ‘Oracle Net Listener’ 라고 한다. 리스너는 하나 혹은 그 이상의 지원하는 서비스에 대한 정보, 프로토콜 주소들을 리스닝하도록 설정된다. 리스너의 설정 […]
오라클 기본 정보 확인
오라클을 설치하고 나면 정보를 확인해야 한다. 오라클은 많은 테이블, 뷰, 동적쿼리등을 지원하는데 워낙 많다보니까 다 알수는 없다. 필요한 정보를 위한 간단한 쿼리들을 소개 한다. 데이터베이스 컴포넌트들의 상태 확인 오라클 데이터베이스는 다양한 컴포넌트들로 구성되는데, 이에 대한 상태를 확인할 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
SQL> col comp_name for a40 SQL> col version for a15 SQL> col status for a10 SQL> SELECT name, comp_name, version, status FROM v$database, dba_registry; NAME COMP_NAME VERSION STATUS O19C Oracle Database Catalog Views 19.0.0.0.0 VALID O19C Oracle Database Packages and Types 19.0.0.0.0 VALID O19C Oracle Real Application Clusters 19.0.0.0.0 OPTION OFF O19C JServer JAVA Virtual Machine 19.0.0.0.0 VALID O19C Oracle XDK 19.0.0.0.0 VALID O19C Oracle Database Java Packages 19.0.0.0.0 VALID O19C OLAP Analytic Workspace 19.0.0.0.0 VALID O19C Oracle XML Database 19.0.0.0.0 VALID O19C Oracle Workspace Manager 19.0.0.0.0 VALID O19C Oracle Text 19.0.0.0.0 VALID O19C Oracle Multimedia 19.0.0.0.0 VALID O19C Spatial 19.0.0.0.0 VALID O19C Oracle OLAP API 19.0.0.0.0 VALID O19C Oracle Label Security 19.0.0.0.0 VALID NAME COMP_NAME VERSION STATUS O19C Oracle Database Vault 19.0.0.0.0 VALID 15 rows selected. |
만일 INVALID 컴포넌트가 있다면 다음과 같이 해준다.
1 |
SQL> @?/rdbms/admin/utlrp.sql |
데이터베이스 이름 확인 데이터베이스 이름이 뭔지를 확인할 수 있다.
1 2 3 |
SQL> SELECT dbid, name, db_unique_name, created, log_mode, open_mode, cdb, con_id FROM v$database; DBID NAME DB_UNIQUE_NAME CREATED LOG_MODE OPEN_MODE CDB CON_ID 2857479539 O19C o19c 30-APR-21 NOARCHIVELOG READ WRITE YES 0 |
CDB 가 YES 면 데이터베이스가 CDB 로 생성되었다는 것을 말한다. NO 라면 non-CDB 데이터베이스다. DB_UNIQUE_NAME 은 쉘 환경변수에도 사용되고 있어 확인해 둘 […]
오라클 데이터베이스 19c 샘플 스키마 생성
오라클 데이터베이스 19c 를 Silent 설치를 할 경우에 대부분 데이터베이스를 생성하고 끝나게 된다. 하지만 오라클은 샘플 스키마를 제공하고 있는데, HR 관련 된 내용의 샘플 스키마를 제공 한다. 이것을 설치해보자. SQLcl 활용 SQL Plus 에 기능을 더한 SQLcl 를 활용할 것이다. SQLcl 은 $ORACLE_HOME/sqldeveloper/sqldeveloper/bin 디렉토리가 있다. 여기에 sql 스크립트가 존재하는데 이것이 SQLcl 이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
]$ cd $ORACLE_HOME ]$ cd sqldeveloper/sqldeveloper/bin ]$ chmod +x sql ]$ ./sql SQLcl: Release 19.1 Production on Fri Apr 30 23:23:46 2021 Copyright (c) 1982, 2021, Oracle. All rights reserved. Username? (''?) sys as sysdba Password? (**********?) ************ Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.3.0.0.0 SQL> set sqlformat ansiconsole; SQL> |
“set sqlformat ansiconsole” 를 할 경우에 결과를 보다 보기 좋게 해준다. PDB 로 세션 변경 오라클 데이터베이스 19c 의 경우에 CDB, PDB 개념이 존재한다. 실제 사용자 데이터베이스는 […]
Oracle Database 19c 설치
오라클 데이터베이스 19c (Oracle Database 19c) 설치에 대한 문서다. 설치는 Slient Mode 로 설치되었으면 PDB 를 기반으로 하였다. PDB, CDB 에 대한 설명은 오라클 문서를 참고. 환경 Oracle Linux 8.3 Kernel: 5.4.17-2102.200.13.el8uek.x86_64 Memory: 7.7Gib Swap: 12Gi Root Partition: 32GB 호스트 네임 변경
1 2 3 |
]# hostnamectl set-hostname oradb1.systemv.local ]# vim /etc/hosts 192.168.96.29 oradb1.systemv.local oradb1 |
Selinux 를 Permissive 로 변경
1 2 |
]# setenforce Permissive ]# sed -i 's/^SELINUX=enforcing$/SELINUX=Permissive/' /etc/selinux/config |
HugePages 비활성화. 오라클은 HugePages 를 비활성화할 것을 권장하고 있다.
1 2 3 4 5 6 |
]# cat /sys/kernel/mm/transparent_hugepage/enabled [always] madvise never ]# vim /etc/default/grub - GRUB_CMDLINE_LINUX="crashkernel=auto resume=UUID=e17bf72e-de7f-49a6-9d37-4c61864a4ba3" + GRUB_CMDLINE_LINUX="crashkernel=auto resume=UUID=e17bf72e-de7f-49a6-9d37-4c61864a4ba3 transparent_hugepage=never" ]# systemctl reboot |
PreInstallation RPM 설치 오라클은 시스템 계정, 설치 디렉토리, 시스템 리소스 설정등을 필요로 하는데 PreInstallation RPM 은 이것을 자동으로 해준다.
1 |
]# dnf install oracle-database-preinstall-19c |
이것은 […]
데이터베이스를 위한 시스템 설정 – HugePage Size
Oracle, MariadB, MySQL 등과 같은 관계형 데이터베이스를 다루다보면 시스템 튜닝에 대해서 많이 접하게 된다. 특히나 리눅스 시스템에서 이들 데이터베이스 시스템이 제대로 작동하기 위한 운영체제 차원에서 필요한 작업을 많이 하게 된다. 이러한 운영체제 차원에서 작업은 여러가지가 있어서 알아야 하는 내용도 많고 세팅해야 하는 것도 많다. 대부분 인터넷이나 가이드 북을 이용해 어찌어찌 설정을 한다고 하지만 많은 사람들이 그것이 왜 필요한지 깊게 이해하는 사람들은 드물다. 그래서 아주 간단하게 데이터베이스 시스템을 다루는데 있어 리눅스 운영체제에서 필요로 하는 작업에 필요한 배경지식에 대해서 다루어 보고자 한다. […]
MariaDB 10.5.8 컴파일 설치
MariaDB 10.5.8 컴파일 설치를 해보도록 한다. 컴파일 설치를 위한 환경은 다음과 같다. CentOS 8(x86_64) Latest version 최소 설치(Minimal Installation) 환경 CentOS 8 에 최소 설치 환경이 매우 중요 하다. 최소 설치 환경이 아니라면 이 문서 내용 그대로 할 수는 없을 수도 있다. 컴파일 환경 구축 CentOS 8 을 최소설치하게 되면 패키지 저장소 또한 최소한으로 활성화가 된다. CentOS 8 은 패키지를 위한 저장소를 많이 분할해 놨는데 다음과 같다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
]# ls -lh /etc/yum.repos.d/ total 48K -rw-r--r--. 1 root root 719 Nov 10 09:32 CentOS-Linux-AppStream.repo -rw-r--r--. 1 root root 704 Nov 10 09:32 CentOS-Linux-BaseOS.repo -rw-r--r--. 1 root root 1.2K Nov 10 09:32 CentOS-Linux-ContinuousRelease.repo -rw-r--r--. 1 root root 318 Nov 10 09:32 CentOS-Linux-Debuginfo.repo -rw-r--r--. 1 root root 731 Jan 24 20:47 CentOS-Linux-Devel.repo -rw-r--r--. 1 root root 704 Nov 10 09:32 CentOS-Linux-Extras.repo -rw-r--r--. 1 root root 719 Nov 10 09:32 CentOS-Linux-FastTrack.repo -rw-r--r--. 1 root root 740 Nov 10 09:32 CentOS-Linux-HighAvailability.repo -rw-r--r--. 1 root root 693 Nov 10 09:32 CentOS-Linux-Media.repo -rw-r--r--. 1 root root 706 Nov 10 09:32 CentOS-Linux-Plus.repo -rw-r--r--. 1 root root 723 Jan 24 20:48 CentOS-Linux-PowerTools.repo -rw-r--r--. 1 root root 898 Nov 10 09:32 CentOS-Linux-Sources.repo |
최소설치한 후 활성화된 저장소는 다음과 같다.
1 2 3 4 5 |
]# dnf repolist repo id repo name appstream CentOS Linux 8 - AppStream baseos CentOS Linux 8 - BaseOS extras CentOS Linux 8 - Extras |
RedHat 배포판의 경우 프로그래밍 라이브러리들은 […]
Oracle JDBC Memory Management
이 문서는 Oracle JDBC Memory Management 를 번역한 것 입니다. 일부 오역과 오타가 있을 수 있습니다. Introduction 데이터베이스 애플리케이션들은 아주 많은 양의 메모리를 사용할 수 있다. 큰 스케일의 JDBC 애플리케이션들은 그들이 사용하는 아주 많은 메모리 때문에 성능상의 문제를 발생시킬 수 있다. 오라클 데이터베이스 10i, 11g JDBC 드라이버는 의도적으로 성능 향상을 위한 많은 메모리 사용과 트레이드 오프 관계다. Oracle Database 12c 드라이버는 메모리를 좀 더 절약하지만 여전히 아주 큰 애플리케이션은 메모리 문제를 일으킬 수 있다. 이 화이트 페이퍼는(White paper) 다양한 드라이버들이 […]