Database ( DB )/Database 97

CentOS 7에 MariaDB 설치

CentOS 7에서 MariaDB를 yum으로 설치하면 예전 버전이 설치됩니다. 그 이후 버전을 설치하기 위해서는 repo를 등록한 후 설치해야 합니다. 1. MariaDB yum repo 등록 # vi /etc/yum.repos.d/MariaDB.repo [mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.4/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 2. MariaDB 설치 및 확인 # yum install -y MariaDB # rpm -qa | grep MariaDB 3. MariaDB 실행 및 비밀번호 변경 // MariaDB 실행 # system..

springboot에 flyway 사용

개발환경 OS: windows 10 java version: openjdk-1.8 Gradle version: 7.0 Springboot Version: 2.3.5 flyway version: 6.4.2 Database: MariaDB 1.5.6 Flyway란? Flyway는 Open Source Migration Tool 입니다. Java나 c++같은 프로그램의 소스 코드는 svn/git 과 같은 형상관리 툴로 쉽게 관리할 수 있지만, Database는 위와 같은 툴로 변경이력을 관리할 수 없습니다. Spring Boot에서 Flyway 사용하기 의존성 추가 - maven이나 gradle에 아래와 같이 의존성을 추가합니다. 1) maven org.flywaydb flyway-core 2) gradle ..

HikariCP Dead lock

API 개발 후 jMeter를 이용하여 성능테스트를 하던 중 아래와 같은 오류 메시지가 발생했습니다. ​ hikari-pool-1 - Connection is not available, request timed out after 30000ms. 장애의 원인 장애의 원인을 분석하던 중 아래 3가지 항목 간 상관관계가 있다는 것을 알았습니다. HikariCP maximum pool size DB에 insert하고자 하는 전체 Thread Count 하나의 Task에서 동시에 필요한 Connection 수 부하 상황에서 Thread간 Connection을 차지 하기 위한 Race Condition(경쟁 상태)가 발생합니다. Thread가 DB를 사용해야 할 때 사용 가능한 Connection이 없으면 사용가능..

HikariCP 소개

HikariCP란? HikariCP는 Brett Wooldridge 가 2012년 경 개발한 매우 가볍고 빠르고 안정적인 JDBC Connection Pool 입니다. 심지어 HikariCP는"zero-overhead"라고 홍보를 하고 있습니다. 또한 신뢰감을 높이기 위해 아래와 같은 벤치마크 결과도 보여주고 있습니다. - HikariCP는 Spring boot 2.0부터 default JDBC connection pool 입니다. HikariCP가 해주는 역할을 간단히 말하면 Database connection pool을 관리해준다는 것입니다. connection pool을 관리하는 것이 중요한 이유는 성능에 큰 영향을 미치기 때문입니다. 실제로 connection을 맺는 과정은 상당히 복잡할 뿐만 아..

Spring boot Data JPA 2.0에서 auto_increment 문제 해결

기존에는 회사에서 프로젝트를 진행할 때 mybatis를 사용했는데 신규 프로젝트는 JPA 2.0을 사용하게 되었습니다. ​ PK로 sequence를 사용하는 신규 테이블의 경우 요즘 대세인 테이블 전략을 사용하여 구성했습니다. 하지만, Login History는 같은 테이블을 사용하게 되면서 문제가 발생했습니다. 먼저, 기본키 자동 생성 전략에 대해 알아보면 아래와 같습니다. - IDENTITY : 기본 키 생성을 데이터베이스에 위임하는 방법(데이터베이스에 의존적) > 주로 MySQL, PostgresSQL, SQL Server, DB2에서 사용 - SEQUENCE : 데이터베이스 시퀀스를 사용해서 기본 키를 할당하는 방법(데이터베이스에 의존적) > 주로 Oracle, PostgreSQL, DB2, H2..

SQL Server JDBC Driver(MSSQL)에서의 NVARCHAR, VARCHAR

SELECT * FROM TB_USER WHERE USER_NAME = '홍길동'; MSSQL은 DataType에 대한 우선순위가 있습니다. nvarchar가 varchar보다 우선순위가 높기 때문에 index가 있는 varchar 컬럼에 nvarchar parameter가 mapping 된 경우, 우선순위에 따라 varchar 컬럼이 모두 nvarchar로 형변환이 일어난 후 조건을 비교하게 됩니다. 따라서 index가 무시됩니다. ​ 예를 들어 아래와 같은 query가 있다고 가정합니다. CREATE TABLE TB_USER ( USER_ID varchar(64), USER_NAME varchar(64) ); 이 경우 WHERE 절을 만들기 위한 string 타입의 parameter는 SQL Serv..

MSSQL 오류: 'xxx'은(는) 열 'xxx'에 종속되어 있습니다.

특정 컬럼을 수정/삭제할 때 아래와 같은 메시지가 발생할 수 있습니다. 메시지 5074, 수준 16, 상태 1, 줄 4 개체 'DF__TB_CONFIG_P__DESC__0D84EF7E'은(는) 열 'DESC'에 종속되어 있습니다. 메시지 4922, 수준 16, 상태 9, 줄 4 하나 이상의 개체가 이 열에 액세스하므로 ALTER TABLE ALTER COLUMN DESC이(가) 실패했습니다. 위 오류 메시지는 컬럼에 기본키(Primary key)가 설정되어 있거나, 기본값 또는 바인딩 또는 그 외 제약조건이 설정되어 있는 경우 입니다. 위 오류 메시지를 해결하기 위해 해당 컬럼에 적용된 제약조건을 제거하고 컬럼 속성을 변경 또는 삭제하면 됩니다. 위 오류 메시지에서는 DF__TB_CONFIG_P__DES..

[mssql ] DB 백업 후 다른 DB로 복원

작업 환경 Microsoft SQL Server Management Studio 17 Microsoft SQL Server 2016 SP2 백업 1. 백업파일을 생성할 DB를 우클릭하여 [태스크 > 백업] 메뉴를 클릭합니다. 2. 백업할 경로를 추가/변경 후 "확인" 버튼클 클릭합니다.(그림2) [참고] 백업 경로 및 파일이름은 기본적으로 지정이 되어 있습니다. [중요] 명령어를 실행할 PC에 파일이 생기는 것이 아니라, MSSQL이 설치된 서버의 경로에 백업 파일이 생성됩니다. 복원 1. 복원하고자 하는 다른 DB를 연결 및 선택하고 마우스 오른쪽 클릭 후 [태스크 > 복원 > 데이터베이스] 를 선택합니다. 2. 데이터베이스 복원 창에서 "장치"를 선택한 후 "..." 버튼을 클릭합니다. 3. 백업 장..

[Oracle] Create a Schema ( 오라클 스키마 생성 )

-- Step 1. Create tablespace ( 테이블스페이스 생성 ) CREATE TABLESPACE [table space name] datafile 'table space file path' size 500M; ex) CREATE TABLESPACE docs_test datafile 'docs_test.dbf' size 500M; -- Step2. Create Schema ( 스키마 생성 ) CREATE USER [schema name] identified by [password] DEFAULT TABLESPACE [table space name]; ex) CREATE USER docs_test identified by 1234 DEFAULT TABLESPACE docs_test; -- St..

728x90
loading