본문 바로가기

DataBase12

[유지보수] 백업과 복원 : CLI와 GUI를 사용하여 백업과 복원 유지보수에 중요한 부분인 백업과 복원에 대해서 터미널을 사용한 방법과 DBeaver를 사용한 방법을 각각 톺아본다 pg_dump | pg_restore 데이터베이스 유틸리티를 사용한 백업 및 복원을 알아본다. 데이터베이스 유틸리티 데이터베이스 관리 및 유지보수를 위해 사용되는 도구나 프로그램 종류 - psql : 쿼리 수행 및 데이터베이스 관리를 위한 대화형 셸 - pg_dump : 백업에 사용되는 명령어 - pg_restore : pg_dump으로 백업한 파일로 복원하는 데 사용되는 명령어 - pg_ctl : PostgreSQL 서버의 시작, 정지, 재시작 등을 관리하는 명령어 - pg_stat : 통계 정보를 확인하는데 사용되는 다양한 명령어 (pg_stat_database, pg_sta.. 2023. 11. 14.
[환경설정] 시간대(time zone) 설정 관련 time zone 다양한 이유로 원하지 않는 time zone으로 설정될 수 있다. 이를 확인하고 고쳐나가는 방법을 톺아본다. PostgreSQL 시간대설정 프로그램 자체의 타임존을 확인하고 설정한다 확인방법 - 현재 세션 기준 : SELECT current_setting('timezone'); - 데이터베이스 클러스터 전체 : SHOW timezone; 임시변경 방법 - 시간조회시마다 타임존을 지정한다 >> current_timestamp AT TIME ZONE 'Asia/Seoul' - 세션변수를 설정한다(세션 종료시 원래 설정) >> SET timezone='Asia/Seoul'; 영구변경 방법 - 설정파일을 열고 timezone항목을 수정한다 >> C:\Program Files\PostgreSQL.. 2023. 9. 11.
[Docker] DB서버 및 DB 구축, GUI 연결 DB서버와 DB 구축 docker의 컨테이너를 사용해서 DB서버를 구축하고 DB를 만들어 활용하는 방법을 톺아본다. 이미지 : postgres 컨테이너로 PostgreSQL 서버를 실행하기 위한 환경을 구성해주는 이미지 기능 - PostgreSQL 데이터베이스 엔진 설치 >> 데이터베이스 관리 및 쿼리를 수행할 수 있게 한다. - 설정파일 제공 >> 기본 데이터베이스 및 사용자 설정(postgres 서버, postgres 유저 생성) 등 - 포트 설정 >> 이미지는 PostgreSQL의 기본 포트번호인 5432번 포트를 사용하여 컨테이너 내부에서 PostgreSQL 서비스에 액세스할 수 있도록 설정 - 데이터베이스 파일을 저장하기 위한 데이터 디렉토리 설정 버전 - 이미지 버전 확인하기 : https:/.. 2023. 7. 17.
[psql] 터미널로 PostgreSQL 사용하기 psql PostgreSQL을 GUI 도움 없이도 사용할 수 있게 해주는 psql의 사용법을 알아본다 psql이란? PostgreSQL에 대한 터미널 기반 프론트 앤드 * 프론트 앤드 : 사용자가 직접 상호작용한다는 의미 PostgreSQL 데이터베이스에 연결하여 대화식으로 쿼리를 입력하여 보낸 후, 쿼리 결과를 확인해 볼 수 있다 스크립트를 작성하고 다양한 작업을 자동화할 수 있도록 많은 메타 명령어(meta-commands)와 shell-like 기능을 제공 psql 접속하기 접속방법 - 터미널을 연 후 아래의 명령을 실행한다 psql -U 유저명 -d db명 -h 호스트주소 -p 포트 옵션조건 - 슈퍼유저(postgres)로 접속하는경우 -d는 생략 가능하다 (h,p도 생략) >> 슈퍼유저로 접속하.. 2023. 7. 10.
[객체] 시퀀스 시퀀스 PostgreSQL의 Sequence 사용문법에 대해 알아본다 시퀀스생성 create sequence 시퀀스이름 start 시작값; 시퀀스를 받을 칼럼의 타입은 시퀀스의 형태에 따라 integer, varchar등을 저장할 수 있다. 함수 사용법 nextval('시퀀스이름') : 시퀀스 값을 증가시키고 리턴한다 currval('시퀀스이름') : 현재 세션에서 가장 최근 nextval를 호출하여 얻은 값을 리턴한다. 발생한 nextval가 없을 경우 오류가 난다. 2023. 5. 24.
[함수] 시간연산관련, 시리즈 생성 시간연산관련 함수 interval 타입을 비롯하여 시간 및 날짜를 다루는 타입들을 활용하는 방법을 알아본다. 연산규칙 interval과 다른타입 간의 연산 - interval은 date, timestamp 타입과 (+)와 (-)같은 연산자를 사용할 수 있다. - date타입과 (+), (-) 연산시 timestamp로 자동 형변환된다. date/timestamp 간의 연산 - 날짜간 덧셈은 지원되지 않는다. - 서로 다른 date를 (-)연산하면 차이나는 일수가 integer로 반된다. - 서로 다른 timestamp를 (-)연산하면 interval이 반환된다. 연산 함수 now() - 현재시간을 반환 - current_timestamp류는 SQL 표준에서 지정한 함수로 세션의 타임존을 기반으로 반환 -.. 2023. 5. 2.
[함수] 타입변환 관련 타입 변환 관련 함수 타입캐스트(형변환) PostgreSQL에서는 다음과 같은 데이터 타입간의 캐스트가 가능하다 문자열(TEXT) ↔ 숫자(INTEGER, BIGINT, NUMERIC 등) 문자열(TEXT) ↔ 날짜/시간(DATE, TIMESTAMP 등) 문자열(TEXT) ↔ 불리언(BOOLEAN) 문자열(TEXT) ↔ 이진 데이터(BYTEA) 방법1) SQL 표준 : CAST(value as type) 방법2) PostgreSQL 제공 연산자 : value::type - 방법1과 완전히 동일한 기능 - 활용예) '{apple,cherry apple, avocado}'::text[] '2013-02-12 15:20:31'::timestamp 방법3) 함수 사용 : float2(value), double(.. 2023. 5. 2.
[JDBC] 자바 연결, Connection Pool 자바와 DB연결 자바등과 같은 어플리케이션에서 데이터베이스를 사용하려면 DB Connection이 필요하다. DB Connection DB를 사용하기 위해 DB와 애플리케이션 간 통신을 할 수 있는 수단 DB Connection은 Database Driver와 Database 연결 정보를 담은 URL이 필요함 ex: 오라클DB의 thin 드라이버를 사용하기 위한 파라미터 Driver - oracle.jdbc.driver.OracleDriver URL - jdbc:oracle:thin:@IP주소:1521:ORA7 Java의 DB Connection은 JDBC를 주로 이용하는데, URL 타입을 사용함 구조 - 2Tier : 클라이언트로서의 자바프로그램(JSP)이 직접 DB서버로 접근하여 데이터에 엑세스하는 .. 2023. 4. 28.
[데이터타입] 숫자, 문자, 날짜/시간 데이터 타입 PostgreSQL에서 자주쓰이는 데이터 타입들을 알아본다 숫자 integer : - 정수만을 저장할 수 있는 숫자타입 numeric (가변적크기) : - 정수 또는 소수값을 저장한다.(Oracle의 Number타입) serial : - PostgreSQL에서 지원하는 타입으로 시퀀스를 사용한 auto increment 기능이 있다. --serial타입으로 칼럼을 생성할때, CREATE TABLE test( id serial ); --내부적으로 실행되는 SQL문 CREATE SEQUENCE test_id_seq; CREATE TABLE table_name ( id integer NOT NULL DEFAULT nextval('test_id_seq')); ALTER SEQUENCE table_n.. 2023. 4. 11.
[DBeaver] 편리한 작업툴 DBeaver DBeaver 란? Oracle, MySQL, PostgreSQL 등 다양한 DB에 연결해서 쿼리를 보낼 수 있는 GUI 설치하기 1. DBeaver 이전버전 다운로드 2. 피해야할 버전 23.0.2 이후 버전 : 자바 17이상 필요 23.0.1 : 글씨크기 설정 안되는 버그 >> '회사1'에는 22.3.3 설치 단축키 편집창 글꼴 확대 축소 : Ctrl + '+' , Ctrl + '-' SQL문 실행 : Ctrl + Enter DB연결하기 플러그+ 모양 아이콘 클릭 - [PostgreSQL] 선택 Host에 localhost입력 (DB공유시 해당 pc 네트워크의 IPv4입력) Database에 생성해둔 DB이름입력 Password에 'postgres' 입력 Save password loc.. 2023. 4. 10.
[개요] DBMS 개요 및 PostgreSQL 특징 DBMS DataBase Management System에 대해 알아보고 그 중 한 종류인 PostgreSQL을 시작해본다 DBMS란? 정의 데이터베이스라는 데이터의 집합을 만들고, 저장 및 관리할 수 있는 기능들을 제공하는 응용 프로그램 종류에 따라 DataBase Server까지 지원하기도 한다. 종류 Oracle, MySQL, MariaDB, Microsoft Access, PostgreSQL, ... 관리도구 : DBMS를 전문적으로 관리하기 위한 프로그램 sqldeveloper(Oracle), MySQL Workbench(MySQL), DBeaver(다양한 DBMS지원)... SQL이란? Structured Query Language 관계형 데이터베이스에서 사용되는 언어로 특정 회사에서 만드는 .. 2023. 4. 4.
[SQL] SELECT문 오답노트 오답노트SQL을 배우면서 스스로 문제를 해결하지 못했거나,해결하는데 오래 걸렸던 문제들을 모아놓는다 PostgreSQL개발루키 시절 '회사1'에서 작성된 오답노트  **전제조건** 1분마다 측정값을 보내는 측정소(station)들이 여러개 있고, 해당 데이터들은 eco_data 테이블에 쌓인다.측정소별로 현재로부터 1시간 이내의 데이터들을 뿌리고 있다.**문제상황** station_id가 's01'인 측정소가 고장나서 데이터를 보내지 못하고 있다.이러한 경우에도 시간 만은 보낼 수 있도록 generate_series()를 써서 외부 조인을 해야겠다. >* 풀이과정 중 맞닥뜨린 문제 *외부조인을 해도 's01'를 조회시 시간 데이터가 나오지 않고 있다.* 헤맸던 원인 *외부조인에 대한 부적절한 이해* 해결.. 2022. 11. 18.