전체 글

'DBA 업무'와 '알게되는 정보'를 기록하는 공간
· AWS/RDS
파라미터 그룹이란 DB 옵션을 설정하기 위해 AWS 에서 제공하는 기능입니다. 파라미터 그룹을 생성하면 그룹 DB 버전에 맞는 프로퍼티 값들을 제공합니다. 사용자는 이 값을 수정하여 DB 의 옵션을 변경할 수 있습니다. DB 파라미터 그룹 값을 변경하는 방법 DB 파라미터 값을 변경하는 방법 1. AWS Management 콘솔에 로그인 합니다. 2. RDS > 파라미터 그룹에 들어갑니다. 3. 수정하고자 하는 파라미터 그룹을 선택합니다. 4. '파라미터 편집' 을 클릭합니다. 5. 값 부분을 클릭하면, 원하는 값을 선택할 수 있습니다. 혹은 원하는 값을 기입할 수 있습니다. 6. 값 설정을 완료했으면 '변경 사항 저장' 을 클릭하여 저장합니다. 적용 유형 static : 파라미터 값을 수정하면 인스턴스..
· AWS/RDS
파라미터 그룹이란 파라미터 그룹에는 DB 옵션을 설정할 수 있는 여러가지 기능을 제공합니다. 예를들면, MySQL 에서 언어셋을 지정할 수 있고, 지연쿼리를 수집할 수도 있습니다. RDS DB 인스턴스와 Aurora 클러스터를 파라미터 그룹과 연결하여 DB 엔진 구성을 관리할 수 있습니다. 인스턴스를 생성할 때, 파라미터 그룹은 사용자가 생성하여 인스턴스별로 설정할 수도 있고, 아무것도 지정하지 않으면 default 파라미터로 적용됩니다. 파라미터 그룹을 생성하는 방법 AWS CLI, RDS API 로도 생성할 수 있지만, 콘솔에서 직접하는 방법만 설명합니다. DB 파라미터 그룹을 생성하는 방법 1. AWS Management 콘솔에 로그인 합니다. 2. RDS > 파라미터 그룹에 들어갑니다. 3. '파..
생성자의 개념 생성자의 이름은 반드시 클래스의 이름과 같아야 합니다. 생성자는 클래스의 객체가 생성될 때, 생성자 안의 코드가 자동으로 실행됩니다. 메소드와 다르게 생성자는 자유롭게 호출할 수 없습니다. 때문에 생성자는 객체의 멤버에 자동으로 초기 값을 설정하는 용도로 사용하는 것이 일반적입니다. 생성자는 리턴 값이 없습니다. 생성자 사용방법 C_constructor 객체를 생성하였습니다. 아무런 함수를 호출하지 않았지만, 객체가 생성되면서 생성자 함수가 호출되었습니다. 이렇게 생성자는 private 의 기본값을 설정하는 대에 사용할 수 있습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 public class Constructor { public ..
오버로딩의 원리 클래스는 같은 이름의 메소드를 2개 이상 정의할 수 있는 기능을 제공합니다. 이렇게 같은 이름을 가지는 메소드 여러개를 같은 클래스에 정의할 수 있는 기능을 오버로딩 이라고 합니다. 오버로딩 주의점 메소드를 오버로딩 하기 위해서는 메소드 인수의 타입 혹은 갯수가 달라야 합니다. 오버로딩 사용방법 C_overloading 클래스에 타입 혹은 갯수가 다른 동일한 함수명을 지정하였습니다. 이렇게 지정하면, 호출되는 값과 일치하는 함수로 실행됩니다. 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 26 27 28 29 30 31 32 33 package Chapter9; public class Overloading { publ..
상황 아래와 같은 구조에서 레디스 Failover 테스트 중에 failover-abort-no-good-slave 오류가 발생했습니다. 원인 레디스 접속을 위해서는 암호를 입력하도록 설정된 상태입니다. 그러나 센티넬에서는 레디스 인증관련 암호설정이 없었습니다. 레디스 conf 파일 requirepass "P@ssword" masterauth "P@ssword" 센티넬 conf 파일 # sentinel auth-pass TEST P@ssword 시나리오 - 해결방법 센티넬 conf 파일에 auth-pass 설정이 안됨 센티넬에서 레디스 TEST 인스턴스의 암호가 없기 때문에 접속하여 replication 정보를 얻어올 수 없었고, failover-abort-no-good-slave 로그가 기록되었습니다. ..
상황 2.8.4 버전에서 2.8.24 버전으로 업그레이드 후 발생하였습니다. 구조는 다음과 같습니다. 테스트 환경에서 재연에 필요한 인스턴스만 구성하였습니다. 업그레이드 작업 방법 단계 작업내용 1 Sentinel 인스턴스 다운 2 Redis Slave 인스턴스 다운 3 Redis Master 인스턴스 다운 4 redis / sentinel 바이너리 2.8.24 버전으로 교체 5 Redis Master 인스턴스 구동 6 Redis Slave 인스턴스 구동 7 Sentinel 인스턴스 구동 8 Sentinel 페일오버 테스트 진행 (오류 발생) 원인 Redis conf 파일에는 rename-command 의 옵션이 있었습니다. 이 옵션이 있는 경우, failover 시 아래와 같은 오류가 발생하는 것으로 ..
개요 데이터 건수가 많아질수록 인덱스 생성시간은 오래 소요됩니다. 벌크 데이터 적재나 갱신같은 경우 단위처리방식으로 끊어서 진행할 수 있어서 진행률을 확인 가능하지만 인덱스의 경우에는 단위처리 방식이 불가능합니다. 즉, 한번 실행하면 완료될때까지 쿼리가 계속 실행되어야 합니다. 오래수행되는 인덱스는 생성이 잘 진행이 되고 있는지, 어디에서 멈춰있는 것은 아닌지 알기가 힘듭니다. 이런 경우 인덱스 생성 진행률을 확인하여 완료시간또한 추정할 수 있습니다. (SQL Server 2014 이상) 단, 이 진행률을 알기 위해서는 선행조건이 필요합니다. 선행조건 profile on 혹은 '실제 실행 계획' 활성화가 필요합니다. 아래 방법 둘 중 하나를 적용해 줍니다. SSMS 창에서 빨간 네모박스를 활성화 합니다...
· Linux/개념
sudo 권한을 설정하는 일반적인 방법 일반적으로 /etc/sudoers 파일에 사용자를 등록 후 ALL 로 전체권한을 부여하는 방식으로 설정합니다. 1 2 3 4 5 6 7 8 9 10 [root@~] # ls -al /etc/sudoers -r--r----- 1 root root 755 1월 18 2018 /etc/sudoers [root@~] # chmod 640 /etc/sudoers [root@~] # vi /etc/sudoers # User Add testuser ALL=(ALL:ALL) ALL [root@~] # chmod 440 /etc/sudoers cs 이렇게 되면 sudo 명령어 실행시 최초 한번은 사용자암호를 입력해 주어야 합니다. 1 2 3 4 5 6 7 8 9 10 11 12 1..
· Linux/개념
sudo 란 A사용자가 B사용자의 권한을 얻어서 수행할 수 있게 하는 명령어 입니다. 대부분의 경우 슈퍼유저 권한을 얻어서 명령어를 수행하게 됩니다. 리눅스 기본명령어로 설치가 필요하지 않습니다. /etc/sudoers 파일 일반사용자에 sudo 권한을 부여하기 위해서는 /etc/sudoers 파일에 계정을 설정해 주어야 합니다. 기본적으로 sudoers 파일권한은 440 으로 읽기만 가능하고 쓰기가 불가능 합니다. 파일에 사용자를 등록하기 위해서 파일 권한을 먼저 변경해 주어야 합니다. sudoers 파일에 사용자가 등록되어 있지 않을때 sudoers 파일에 사용자가 등록되어 있지 않다면, 아래와 같은 오류가 발생합니다. user is not in the sudoers file. This inciden..
테이블이란 데이터들을 모아놓은 객체를 의미합니다. 하나의 테이블 안에는 다수의 데이터가 저장될 수 있습니다. 테이블 생성하는 방법 테이블은 기본적으로 컬럼을 가지고 있어야 합니다. 1 2 3 4 5 CREATE TABLE dbo.table_name ( column_name1 INT ,column_name2 VARCHAR(10) ) cs 파일그룹을 지정하는 방법 MSSQL 은 다른DBMS 와 다르게 하나의 DB에서 다수의 파일그룹을 가질 수 있습니다. 파일그룹은 물리적파일을 그룹으로 묶어놓은 개념으로, 파일그룹을 다르게 지정함으로 써 데이터가 저장되는 파일을 나눌 수 있습니다. 1 2 3 4 5 CREATE TABLE dbo.table_name ( column_name1 INT ,column_name2 V..
꽁담
꽁담