본문 바로가기
반응형

DBMS129

[oracle] 리스너 timezone 설정 OS: linux 7.5 DBMS: oracle 19.3 [목차여기] - 리스너에 time zone을 설정하면 해당 리스너로 접속하는 세션은 설정한 시간대로 적용 - 리스너별 시간대를 다르게 설정하는것도 가능(리스너 여러개 사용) - sysdate, systimestamp 값을 통해 확인 가능 참고: oracle alert.log 시간대(time zone) 기준은 무엇인가 참고: oracle 오브젝트 생성시간은 어떤 시간대(time zone) 리스너 TZ 설정 listener.ora 파일에 (ENVS='TZ=UTC') 구문 추가하여 해당 리스너를 통해 접속하는 세션들은 UTC 타임존을 사용하도록 설정합니다 [ora19ent@svr ~]$ cat /ora19ent/product/network/admin/l.. 2024. 2. 20.
[oracle] alert.log 시간대(time zone) 기준은 무엇인가 OS: linux 7.5 DBMS: oracle 19.3 [목차여기] - 오라클 alert.log의 시간대는 어떤설정을 기준으로 적용되는지에 대한 테스트 - OS시간대 기준으로 alert.log 시간이 적용된다 : 정확히는 DB 기동하는 세션의 시간대 참고: oracle 오브젝트 생성시간은 어떤 시간대(time zone) 현재설정(UTC) 현재설정은 UTC(sysdate 확인)로 되어있고 alert.log도 동일한 시간대로 찍히는것으로 확인됩니다 SQL> SELECT dbtimezone, sessiontimezone, sysdate, current_date FROM dual ; DBTIME SESSIONTIMEZONE SYSDATE CURRENT_DATE ------ --------------------.. 2024. 2. 18.
[oracle] 오브젝트 생성시간은 어떤 시간대(time zone) OS: linux 7.5 DBMS: oracle 19.3 오라클에서 오브젝트 생성일시를 확인하려면 DBA_OBJECTS 테이블의 CREATED을 조회합니다. 여기저기 여러 곳에서 오브젝트를 생성하는 경우는 없겠지만 해당 컬럼에 들어가는 시간은 어떤 기준으로 들어가는지에 대한 테스트입니다. [목차여기] - DB time zone, session time zone, OS time zone 3개의 값을 비교하여 어떤 시간대를 기준으로 데이터가 들어가는지 테스트 - 생성시간 기준시간대는 OS Time Zone 시간대(sysdate, systimestamp 시간) 참고 oracle alert.log 시간대(time zone) 기준은 무엇인가 DB TZ: KST, SESS TZ: KST, OS TZ: UTC 세션1.. 2024. 2. 17.
[PostgreSQL] 기본 권한 설정 default privilege(권한 자동 부여) oracle에서는 신규 오브젝트 생성 후 권한을 부여해줘야 합니다. postgresql은 기본권한을 설정하여 신규생성되는 오브젝트에 자동으로 권한을 부여하는 편리한 기능이 있습니다 - 신규 생성되는 오브젝트에 권한을 자동으로 부여하는 방법 - ALTER DEFAULT PRIVILEGES ... 명령으로 수행 - 기존 오브젝트는 적용안되고 기본권한 설정 후 신규 오브젝트에만 적용됨(기본 권한 제거시에도 동일) [목차여기] 명령어 ALTER DEFAULT PRIVILEGES [ FOR USER target_user [, ...] ] [ IN SCHEMA schema_name [, ...] ] grant_or_revoke_clause where grant_or_revoke_clause is one of: GR.. 2024. 2. 15.
[oracle] 테이블 LOB Object 이름 지정 DBMS: oracle 19.3 오라클은 테이블에 LOB컬럼 포함 시 기본적으로 SYS_LOBxxx(데이터), SYS_ILxxx(인덱스)와 같은 이름으로 자동생성됩니다. 이름을 지정하여 생성하는 방법과 변경방법 그리고 특이사항에 대한 내용 입니다. [목차여기] 테이블 생성 LOB명 지정/미지정(기본) 2개 테이블 생성 -- LOB 이름지정 CREATE TABLE SK.LOBTEST1 ( C1 VARCHAR2(255) NOT NULL, LOB1 CLOB NULL ) TABLESPACE TS_DATA LOB(LOB1) STORE AS LD_LOBTEST1_LOB1 (TABLESPACE TS_LOB INDEX LI_LOBTEST1_LOB1 (TABLESPACE TS_LOB)) ; -- 기본 CREATE TAB.. 2024. 2. 8.
[PostgreSQL] pg_hba.conf 우선순위 pg_hba.conf 파일은 PostgreSQL 접속 시 허용 및 차단 등의 정책을 정의하는 파일 입니다. 중복되는 정책이 있을 경우 상위에 정의한 정책이 우선순위가 높음 테스트 시나리오 local에서 postgres 계정으로 접속 시 비밀번호 없어 바로 접속 허용하도록 설정 기존 정책 아래에 추가 pg_hba.conf 파일에 local all postgres trust 정책을 기존 정책 아래에 추가 하였습니다 # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all scram-sha-256 local all postgrestrust # IPv4 local connections:.. 2024. 2. 1.
[PostgreSQL] 데이터 이관 시 ERROR: permission denied for schema COPY 명령등을 사용하여 데이터 이관 작업 진행 시 ERROR: permission denied for schema 에러 발생하는 경우가 있습니다 이런 경우 외래키(foreign key)가 설정되어 있는지 확인이 필요합니다 INSERT 하려는 테이블이 다른 테이블의 데이터를 참조하는 FK(외래키)가 생성되어 있을 때 발생합니다 : 참조되는 테이블의 owner가 작업을 실행하는 계정과 동일하다면 발생하지 않고 다른 경우 발생 PostgreSQL에서는 트리거를 사용하여 외래키(참조 무결성 제약)가 구현되므로 trigger를 비활성화 해주면 됩니다 방법 1 세션 파라미터 변경 session_replication_role 파라미터를 replica로 설정하면 replica 상태의 트리거만 활성화되고 나머지는 비.. 2024. 1. 29.
[linux] 방화벽 비활성화 OS: linux 8.7 방화벽 상태 확인 systemctl status firewalld.service [root@svr1 ~]# systemctl status firewalld.service ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2024-01-19 13:18:36 KST; 1s ago Docs: man:firewalld(1) Main PID: 5175 (firewalld) Tasks: 2 (limit: 5725).. 2024. 1. 19.
[PostgreSQL] 열을 행으로 변환하기 UNNEST 함수 배열(array)을 row로 변경 SELECT unnest(ARRAY['V1','V2','V3','V4','V5']) AS c1 ; c1 ---- V1 V2 V3 V4 V5 (5 rows) 배열 개수가 다른경우 NULL 로 표시함 select * from unnest(ARRAY[1,2], ARRAY['foo','bar','baz']) as x(a,b); a | b ---+----- 1 | foo 2 | bar | baz 구분자가 있는 컬럼을 행으로 변경 테스트 테이블 select * from tab1; id | text_data ----+--------------------- 1 | apple,orange,banana 2 | dog,cat,bird,fish 3 | red,green,bl.. 2024. 1. 4.
[PostgreSQL] ANY 연산자 ANY 연산자 PostgreSQL에서 ANY 연산자는 조건에 들어오는 값 중 하나라도 조건을 충족하는지 확인하는 데 사용됩니다. 이미 익숙한 IN 연산자와 유사하게 사용됩니다. 차이점은 ANY는 = 비교외에 부등호(>=, , = ANY(ARRAY[1, 3]); id | number ----+-------- 1 | 1 2 | 2 3 | 3 4 | 4 5 | 5 (5 rows) -- 비교조건 중 가장 큰 값보다 작은 데이터 조회 test=# SELECT * FROM test11 WHERE number 2024. 1. 1.
[linux] 파일 시간정보 변경 및 확인 명령어 (touch, stat) touchstat리눅스에서 파일의 시간정보 변경 및 접근시간, 변경시간을 확인 할 수 있는 명령어 입니다 [목차여기]touch 명령어해당 파일이 없는 경우 빈파일(내용이 없는)을 생성합니다[postgres@svr1:/home/postgres/ppp]$ ls -altotal 4drwxr-xr-x 2 postgres postgres 6 Dec 26 21:56 .drwxr-xr-x 11 postgres postgres 4096 Dec 26 21:56 ..[postgres@svr1:/home/postgres/ppp]$ -- 빈파일 생성[postgres@svr1:/home/postgres/ppp]$ touch test[postgres@svr1:/home/postgres/ppp]$ ls -altotal 4d.. 2023. 12. 26.
[oracle] optimizer_adaptive_plans 기능 설명 및 권장값 DBMS: oracle 19.3 1. adaptive plan optimizer_adaptive_plans는 실행 중인 쿼리의 실행 계획을 동적으로 조정하여 최적의 성능을 제공하는 데 사용됩니다. 아래 예시처럼 실행계획에 STATISTICS COLLECTOR 구문이 보이면 adaptive_plans이 적용됩니다. 실행계획에 조인 방법이 2개 보이는데(HASH JOIN과 NL JOIN이 함께 보임) SQL실행 시 2개의 방법 중 수집된 통계를 바탕으로 최적의 경로를 선택하는 기능입니다. 관련 파라미터 optimizer_adaptive_plans(기본값: true) 운영환경에서 갑작스런 PLAN변경은 민감한 부분이기 때문에 비활성(false) 권고 adaptive plan 기능 비활성 힌트 no_adapti.. 2023. 12. 22.
[PostgreSQL] 자동 증가(Auto Increment) 컬럼 사용법 PostgreSQL에서 값이 자동으로 증가하는 컬럼을 만들어 사용하는 방법은 아래 3가지 - 시퀀스 사용 - SERIAL 컬럼 사용 - GENERATED AS IDENTITY 컬럼 사용 여러 특징을 고려했을 때 generated always as identity가 자동증가 컬럼을 사용하는 이유에 가장 적합해 보입니다. 여기서 시퀀스 사용은 오래전부터 많이 사용해 오는 방식이므로 설명하지 않습니다. 1. SERIAL 컬럼 자동으로 시퀀스를 생성하여 채번에 사용함 serial 컬럼은 integer 컬럼 타입으로 생성됨 해당 컬럼에 직접 데이터 입력 가능(시퀀스 번호가 같이 증가하지 않음 주의) create table seri_t1 (c1 serial, c2 varchar(30)) ; 2. IDENTITY 컬.. 2023. 12. 15.
[PostgreSQL] unlogged/logged table 성능비교 PostgreSQL은 테이블에 INSERT/UPDATE/DELETE 등이 발생할 때 변경사항을 WAL에 기록합니다. 테이블 변경 사항을 logging 하지 않으려고 할 때 unlogged 옵션을 사용 할 수 있습니다. - WAL에 변경사항을 로깅하지 않아 일반 테이블보다 좋은 성능 - 테이블 문제 발생 시 복구 불가능 - unlogged → logged 변경 시 로그 발생 및 테이블 lock(SELECT 불가) - replication 구성 환경에서 read 노드로 복제 안됨 - 중요하지 않은 임시 데이터 같은 경우 쓸만할 듯 1. unlogged ↔ logged 변경 명령어 -- unlogged로 변경 alter table {테이블명} set unlogged ; -- logged로 변경 alter ta.. 2023. 12. 14.
[PostgreSQL] 테이블 데이터 text 파일로 저장하기(COPY 명령) PostgreSQL에서 테이블에 있는 데이터를 파일로 저장하고자 할 때 사용하는 COPY 유틸리티 테이블 text 파일 모두 가능해서 유용하게 사용하는 경우가 종종 있습니다. Oracle에서 text파일 데이터를 테이블에 적재할 때 사용하는 SQL*Loaderd와 비슷한 방식이라고 생각하면 됩니다. COPY 명령 PSQL 커맨드라인에서 COPY 명령 실행 참고 사이트 https://www.postgresql.org/docs/current/sql-copy.html -- 테이블 -> text파일 COPY { table_name [ ( column_name [, ...] ) ] | ( query ) } TO { 'filename' | PROGRAM 'command' | STDOUT } [ [ WITH ] ( .. 2023. 12. 12.
반응형