'전체 글'에 해당되는 글 384건

  1. 2023.11.29 [Oracle] ROWNUM
  2. 2023.11.29 scp 와 pscp 2
  3. 2023.11.28 [Oracle] ORA-01476 제수가 0 입니다
  4. 2023.11.23 [Oracle] WINDOWING 절, ROW, RANGE
  5. 2023.11.21 xml 파일에서
  6. 2023.11.14 조건에 대한 테이블 검색 1
  7. 2023.11.14 [Oracle] DB 세션 kill 관련
  8. 2023.11.14 [MS-SQL] 프로시저 검색
  9. 2023.11.03 [Oracle] Database 관리 관련 수행 쿼리 모음
  10. 2023.10.26 [NAS] Server 에서 NAS 로 데이터 백업하기

[Oracle] ROWNUM

|

[ROWNUM 이란?]

- WHERE 절에 의해 의해 추출된 DATA SET에 ROW 단위로 붙는 순번

- 조회되는 행 수를 제한할 때 많이 사용하지만 제약이 존재 ( ROWNUM = 1 이외에는 사용불가 )

- ROWNUM에 별칭을 주어서 인라인 뷰로 사용하면 위 제약이 해소됨

SELECT
	EXT_ROW.MON
	, ...

FROM (
	SELECT
		ROWNUM AS RN
		, ...
	FROM (
		SELECT 
			...
		FROM FI_DOCU_DAY_SUM A
		...
		) ALL_YEAR_SUM
) EXT_ROW
WHERE EXT_ROW.RN <![CDATA[>=]]> 2 -- 2행 이상 부터 추출 가능

 

'DATABASE(SQL)' 카테고리의 다른 글

[Oracle] VARCHAR형 컬럼 order by 시 오류 해결  (0) 2024.01.18
[Oracle] ALL_OBJECTS, USER_SOURCE  (0) 2023.12.29
[Oracle] ORA-01476 제수가 0 입니다  (0) 2023.11.28
[Oracle] WINDOWING 절, ROW, RANGE  (0) 2023.11.23
xml 파일에서  (0) 2023.11.21
And

scp 와 pscp

|

scp란?

- secure copy의 줄임말

- ssh를 이용하여 네트워크로 연결된 호스트 간에 파일을 주고 받는 명령어

- 원격지에 있는 파일과 디렉터리를 보내거나 가져올 때 사용하는 파일 전송 프로토콜

- ssh와 동일한 22번 포트와 identity file을 사용해서 파일을 송수신하기 때문에 안정된 프로토콜

 

* 보내고자 하는 파일 디렉토리에서 git bash 를 이용해서 진행한다.

SoftIn@DES2342342312GM MINGW64 /d/work_docu/프레임워크 & 인프라/CG/톰캣 버전업
$ scp -r apache-tomcat-8.5.88 ncloud@11.10.12.20:/home1/ncloud/cg-dev/tomcat-test3

 

로컬 → 원격지로 파일 전송

- 단일 파일을 원격지로 전송

$ scp dump.sql root@192.168.000.000:/dump
// scp [옵션] [파일명] [원격지_id]@[원격지_ip]:[받는 위치]

- 복수 파일을 원격지로 전송

$ scp dump.sql dump2.sql root@192.168.000.000:/dump
// scp [옵션] [파일명 1] [파일명 2] [원격지_id]@[원격지_ip]:[받는 위치]

- 여러 파일이 포함된 디렉토리를 원격지로 전송

$ scp -r dumpdir root@192.168.000.000:/dump
// scp [옵션] [디렉터리 이름] [원격지_id]@[원격지_ip]:[보낼 경로]

 

 

원격지 → 로컬로 파일 전송

- 단일 파일을 로컬로 전송

$ scp root@192.168.000.000:/dump.sql /dumpdir
// scp [옵션] [원격지_id]@[원격지_ip]:[원본 위치] [받는 위치]

- 복수 파일을 로컬로 전송

$ scp root@192.168.000.000:"/dump1.sql /dump2.sql" /dumpdir
// scp [옵션] [원격지_id]@[원격지_ip]:[원본 위치 파일][원본 위치 파일] [받는 위치]

- 여러 개의 파일이 포함된 디렉토리를 로컬로 전송

$ scp -r root@192.168.000.000:/dump1 /dump2
// scp [옵션] [원격지_id]@[원격지_ip]:[디렉터리 위치] [받을 경로]

 

옵션

r 디렉토리 내 모든 파일/디렉토리 복사 scp -r
p (소문자) 원본 권한 속성 유지 복사 scp -p
P (대문자) 포트 번호 지정 복사 scp -P [포트번호]
c (소문자) 압축 복사 scp -c
v 과정 출력 복사 scp -v
아카이브 모드 복사 scp -a

- 옵션 구분이 존재하지 않을 경우 그냥 전송

 

 

================================================================================

 

pscp

- cmd 창에서 putty 설치된 경로로 이동

- 명령어 입력

pscp -p [port번호] admin@xxx.xxx.xx.xx:/home/log/zzz.log d:\

admin@xxx.xxx.xx.xx	계정명@서버ip주소
/home/log/zzz.log	서버에서 다운받을 대상 파일 경로
d:\					로컬에 다운받을 경로

 

'IT Infra' 카테고리의 다른 글

[NAS] Server 에서 NAS 로 데이터 백업하기  (0) 2023.10.26
NAS(Network Attached Storage)  (0) 2023.10.26
방화벽 vs. IDS vs. IPS  (0) 2023.09.15
SASE(Secure Access Service Edge)  (0) 2023.08.24
SSL Pinning  (0) 2023.08.24
And

[Oracle] ORA-01476 제수가 0 입니다

|

오류 없이 데이터를 뽑기 위해서 아래와 같이 작성한다.

SELECT NVL(분자 / DECODE(분모, 0, NULL, 분모), 0) FROM 테이블;

 

분자

------

분모

'DATABASE(SQL)' 카테고리의 다른 글

[Oracle] ALL_OBJECTS, USER_SOURCE  (0) 2023.12.29
[Oracle] ROWNUM  (0) 2023.11.29
[Oracle] WINDOWING 절, ROW, RANGE  (0) 2023.11.23
xml 파일에서  (0) 2023.11.21
조건에 대한 테이블 검색  (1) 2023.11.14
And

[Oracle] WINDOWING 절, ROW, RANGE

|
RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW -- 첫번째행 ~ 현재행

ROWS BETWEEN 4 PRECEDING AND CURRENT ROW	-- 이전 행 4개 ~ 현재행

ROWS BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING	-- 첫번째 행 ~ 이전행 1번째

RANGE BETWEEN UNBOUNDED PRECEDING AND 1 PRECEDING -- 동작X

ROWS BETWEEN UNBOUNDED PRECEDING AND (CURRENT ROW - 1) -- 동작X

[WINDOW 함수]

- 행과 행 간의 관계를 정의하고, 행과 행을 비교, 연산하는 것을 도와주는 함수

SELECT 
	
	...
    SUM( -- sum 대신 avg 가 들어갈 수 있다.
    	... 
    ) OVER (
    	[PARTITION BY 컬럼]
        , [ORDER BY 절]
        , [WINDOWING 절]
    )
FROM 테이블명;

 

[WINDOWING절]

- ROWS

  > 개별 행(row)을 기준으로 범위를 지정

 

- RANGE

  > 행이 가지고 있는 값을 기준으로 범위를 지정

 

- CURRENT ROW

  > 현재 행

 

- UNBOUNDED PRECEDING

  > 첫번째 행

 

- UNBOUNDED FOLLOWING

  > 마지막 행

 

- 1 PRECEDING

  > 이전행에서 1개까지 선택

 

- 2 FOLLOWING

  > 다음행에서 2개까지 선택

 

-- 예시
...
) OVER (
    PARTITION BY
        ...
    ORDER BY 

        INSERT_DT	-- 기준 컬럼

        ROWS BETWEEN	-- ROWS 기준 범위 설정
            UNBOUNDED PRECEDING	-- 첫번째 행부터
        AND
            1 PRECEDING	-- 1번째 이전행까지
)

 

 

* 참고사이트

https://gent.tistory.com/473
https://www.dba-oracle.com/t_advanced_sql_windowing_clause.htm

'DATABASE(SQL)' 카테고리의 다른 글

[Oracle] ROWNUM  (0) 2023.11.29
[Oracle] ORA-01476 제수가 0 입니다  (0) 2023.11.28
xml 파일에서  (0) 2023.11.21
조건에 대한 테이블 검색  (1) 2023.11.14
[Oracle] DB 세션 kill 관련  (0) 2023.11.14
And

xml 파일에서

|
-- AND A.CMNY_DT BETWEEN TO_DATE(SUBST(#{s_bill_st_dt},1,4) || '01

위와 같이 주석이 되어 있을때 아래 형태 값이 포함되어 있으면

 

#{OOO} 

 

오류를 내뱉는다.(따라서 깔끔하게 삭제해야한다.)

'DATABASE(SQL)' 카테고리의 다른 글

[Oracle] ORA-01476 제수가 0 입니다  (0) 2023.11.28
[Oracle] WINDOWING 절, ROW, RANGE  (0) 2023.11.23
조건에 대한 테이블 검색  (1) 2023.11.14
[Oracle] DB 세션 kill 관련  (0) 2023.11.14
[MS-SQL] 프로시저 검색  (0) 2023.11.14
And

조건에 대한 테이블 검색

|
-- maria DB
-- 스키마에서 컬럼명으로 검색 후 해당 컬럼명이 쓰인 테이블 속성들을 조회
SELECT UPPER(T.TABLE_NAME) AS '테이블명'
, T.TABLE_COMMENT AS '테이블설명'
, C.COLUMN_NAME AS '컬럼'
, C.COLUMN_COMMENT AS '컬럼명'
, UPPER(CONCAT(C.DATA_TYPE,'(',IFNULL(C.CHARACTER_MAXIMUM_LENGTH,IFNULL(C.NUMERIC_PRECISION,'')),')')) AS '데이터타입'
, CASE WHEN C.COLUMN_KEY = 'PRI' THEN 'PK'
ELSE ''
END AS 'PK'
, CASE WHEN C.IS_NULLABLE = 'NO' THEN 'Y' ELSE '' END AS 'NOT_NULL'
-- , C.COLUMN_KEY
-- , C.IS_NULLABLE
FROM INFORMATION_SCHEMA.TABLES T
INNER JOIN INFORMATION_SCHEMA.COLUMNS C
ON C.TABLE_NAME = T.TABLE_NAME
WHERE C.TABLE_SCHEMA IN ('sams') // 검색 대상이 되는 스키마명 입력
AND (T.TABLE_NAME LIKE 'SFI%' OR T.TABLE_NAME LIKE 'SSP%') // 테이블 검색조건을 입력
AND C.COLUMN_NAME LIKE '%ORG%' -----------> like 검색으로 찾고자 하는 컬럼명 검색어를 입력
ORDER BY T.TABLE_SCHEMA, T.TABLE_NAME, C.ORDINAL_POSITION;

-- Oracle 컬럼명으로 테이블 찾기
select TABLE_NAME, COLUMN_NAME from ALL_TAB_COLUMNS
where COLUMN_NAME LIKE '%컬럼명%';

'DATABASE(SQL)' 카테고리의 다른 글

[Oracle] WINDOWING 절, ROW, RANGE  (0) 2023.11.23
xml 파일에서  (0) 2023.11.21
[Oracle] DB 세션 kill 관련  (0) 2023.11.14
[MS-SQL] 프로시저 검색  (0) 2023.11.14
[Oracle] Database 관리 관련 수행 쿼리 모음  (0) 2023.11.03
And

[Oracle] DB 세션 kill 관련

|
-- active 상태 확인 
SELECT
  a.sid,       -- SID
  a.serial#,   -- 시리얼번호
  a.status,    -- 상태정보
  a.process,   -- 프로세스정보
  a.username,  -- 유저
  a.osuser,    -- 접속자의 OS 사용자 정보
  b.sql_text,  -- sql
  c.program    -- 접속 프로그램
FROM
  v$session a,
  v$sqlarea b,
  v$process c
WHERE
  a.sql_hash_value=b.hash_value
  AND a.sql_address=b.address
  AND a.paddr=c.addr
  AND a.status='ACTIVE';								
 
 -- DB 트랜잭션 상태 확인
 SELECT a.sid
 ,a.serial#
 ,a.username
 ,a.process
 ,b.object_name
 ,DECODE (c.lmode, 2, 'RS', 3, 'RX', 4, 'S', 5, 'SRX', 8, 'X', 'NO') "TABLE LOCK"
 ,DECODE (a.command, 2, 'INSERT', 3, 'SELECT', 6, 'UPDATE', 7, 'DELETE', 12, 'DROP TABLE', 26, 'LOCK TABLE', 'UNknown') "SQL"
 ,DECODE (a.lockwait, NULL, 'NO wait', 'Wait') "STATUS"
 FROM v$session a, dba_objects b, v$lock c
 WHERE a.sid = c.sid AND b.object_id = c.id1
 AND c.TYPE = 'TM';
 
 
 
 -- kill
 ALTER SYSTEM KILL SESSION '14, 54507' -- {#sid}, {#serial}

'DATABASE(SQL)' 카테고리의 다른 글

xml 파일에서  (0) 2023.11.21
조건에 대한 테이블 검색  (1) 2023.11.14
[MS-SQL] 프로시저 검색  (0) 2023.11.14
[Oracle] Database 관리 관련 수행 쿼리 모음  (0) 2023.11.03
[Oracle] 월별 누적 합계  (0) 2023.10.20
And

[MS-SQL] 프로시저 검색

|
SELECT OBJECT_NAME(object_id), OBJECT_DEFINITION(object_id)
FROM sys.procedures
WHERE OBJECT_DEFINITION(object_id) LIKE '%Insert Into DummyTable%' -- 검색 키워드 입력

-- 사용자 정의함수까지 조회가능
SELECT ROUTINE_NAME, ROUTINE_DEFINITION
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE IN ('PROCEDURE','FUNCTION')
AND ROUTINE_DEFINITION LIKE '%검색 키워드%'
And

[Oracle] Database 관리 관련 수행 쿼리 모음

|
-- DB 변경 이력 조회하기
SELECT
	LAST_DDL_TIME -- 마지막 수정시간
    , OBJECT_NAME -- 해당 명칭
FROM USER_OBJECTS
WHERE OBJECT_TYPE IN ('PROCEDURE', 'FUNCTION')

-- 오라클 잡(job) 이력 조회
SELECT
	WHAT -- 명칭
	, LAST_DATE -- 마지막 실행
	, INTERVAL -- 주기

FROM USER_jobs;
And

[NAS] Server 에서 NAS 로 데이터 백업하기

|

1) Server가 리눅스 계열(CentOS, Ubuntu ... ) 의 경우

 - GUI 환경이 아닌 CLI 환경에서 Shell Script 를 이용해서 백업을 진행하는 플랜

0) git file 작성

#!/bin/bash
#변수 지정
_DATE=`date '+%Y%m%d'`
_LOG_TIME=`date '+[%Y/%m/%d %H:%M:%S]'`
_EX_DAY=3
_NAS_DIR=/test
_BACKUP_DIR=$_NAS_DIR/$_DATE
_LOG_DIR=$_BACKUP_DIR
_LOGFILE=$_LOG_DIR/${_DATE}_test_backup.log
_TEST_DIR=/test

(... 로직작성)
 
------------------------------------------------------------------------------------------

1) mount cifs


mount -t cifs -o user='사용자명',password='패스워드' //서버주소/공유폴더경로 마운트경로
mount -t cifs -o user='testuser',password='P@ssw0rd' //111.222.33.44/shared /data

* mount error(95) Operation not supported 에러 시
vers=1.0 명령어 추가
mount -t cifs -o user='testuser',password='P@ssw0rd',vers=1.0 //111.222.33.44/shared /data

* 공유폴더의 경우 네트워크 공유가 설정되어 있어야함.

------------------------------------------------------------------------------------------
 
2) vsftpd 설치해서 Crontab DB 자동 백업

ftp 이용
압축백업 이용(tar, gz, zip)

------------------------------------------------------------------------------------------

3) rsync

cp, scp, ftp 보다 빠르고 안전

https://www.lesstif.com/system-admin/rsync-data-backup-12943658.html
https://kb.synology.com/ko-kr/DSM/tutorial/How_to_back_up_Linux_computer_to_Synology_NAS#x_anchor_id7

------------------------------------------------------------------------------------------

4) nfs

https://kb.synology.com/ko-kr/DSM/tutorial/How_to_access_files_on_Synology_NAS_within_the_local_network_NFS

 

 

2) Server 가 Window 환경(Windows Server 2012 ... ) 의 경우

 - nas 에 synology driver server 설치

 - nas 에서 synology drive 관리콘솔 > 팀폴더 설정 (버저닝은 사용x)

 - NAS 에서 제공하는 ex. Synology Drive Client 프로그램을 server에 설치

 - nas ↔ server 간 백업 플랜 수립 및 실행

'IT Infra' 카테고리의 다른 글

scp 와 pscp  (2) 2023.11.29
NAS(Network Attached Storage)  (0) 2023.10.26
방화벽 vs. IDS vs. IPS  (0) 2023.09.15
SASE(Secure Access Service Edge)  (0) 2023.08.24
SSL Pinning  (0) 2023.08.24
And
prev | 1 | 2 | 3 | 4 | 5 | ··· | 39 | next