Database/Oracle (25)

오라클 테이블스페이스(Oracle Tablespace) 삭제

오라클 테이블 스페이스는 SQL 쿼리문을 통해서 간단하게 삭제가 가능하다. 아래와 같은 명령어로 테이블 스페이스를 삭제하거나 이름을 변경할 수 있다. # 테이블 스페이스 삭제 DROP TABLESPACE [Tablespace Name] INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS; # 테이블 스페이스 이름 변경 ALTER TABLESPACE [Tablespace Old Name] RENAME TO [Tablespace New Name]; DB 툴에서 테이블스페이스가 정상적으로 지워졌는지 아래와 같은 SQL 쿼리문으로 확인할 수 있다. SELECT * FROM DBA_DATA_FILES; [조회 결과]

Database/Oracle | 2018.01.24 14:47

오라클 CONCAT 함수: 문자열 합치기

오라클에서는 문자열을 합칠 수 있는 함수가 존재한다. 단순히 연결 연산자(||)와 동일한 기능을 한다. 오라클 관점에서는 연결 연산자를 통한 쿼리보다 조금더 안정적인 가독성을 제공한다. 오라클 11g 교제에는 아래와 같이 함수를 설명하고 있다. # CONCAT(column1|expression1, column2|expression2) -. 첫번째 문자 값을 두번째 문자 값과 연결합니다. 연결연산자(||)와 같은 기능입니다. 사용법에 대한 특별한 설명은 필요없이 몇번 조작해보면 금방 익힐 수 있다. 단순하게 expression1과 expression2를 연결해주는 역할이 전부다. 오라클에서 기본으로 제공되는 EMP 테이블로 예제는 아래와 같다. SELECT CONCAT(JOB, SAL) FROM EMP; ..

Database/Oracle | 2017.12.07 22:37

오라클(Oracle) 언피봇(Unpivot) 사용 방법

오라클 함수인 Pivot 및 Unpivot 기능은 Oracle 11g 버전부터 제공하는 강력한 함수이다. 피봇함수는 행을 열로 뒤집는 함수지만, 언피봇함수는 열을 행으로 뒤집는 함수다. 이러한 강력한 함수가 지원되기 이전에는 decode, case문을 이용해서 행 또는 열을 뒤집어야 했다. 언피봇 함수는 약간의 제약사항과 룰만 지켜주면 훌륭한 함수로 사용할 수 있다. 본 포스팅에서 주의하길 바라는 키워드는 컬럼명, 데이터 영역이다. 각 용어들에 대해서 반복적으로 자주 사용할 것이다. 오라클(Oracle) 피봇(Pivot) 사용 방법 그룹핑 개념으로: http://wookoa.tistory.com/240 설명에 사용할 예시 데이터는 오라클에서 교육용으로 제공해주는 EMP 테이블이며, 자세한 데이터는 아래와..

Database/Oracle | 2017.11.10 00:30

오라클(Oracle) 피봇(Pivot) 사용 방법: 그룹핑 개념으로

오라클 함수인 Pivot 및 Unpivot 기능은 Oracle 11g 버전부터 제공하는 강력한 함수이다. 피봇함수가 지원되기 이전에는 decode, case문을 이용해서 행과 열을 뒤집어야 했지만, 피봇함수가 지원되면서 행과 열을 간결하게 뒤집을 수 있다. 피봇 함수를 사용한다해도 피봇할 컬럼들은 미리 정의를 해놓아야 하지만, 조금 더 간결하게 코딩할 수 있어서 좋다. 지금부터 오라클 11g Pivot 함수에 대해서 GROUP BY 절과 연관지어서 자세히 설명하도록 한다. 오라클(Oracle) 언피봇(Unpivot) 사용 방법: http://wookoa.tistory.com/241 설명에 사용할 예시 데이터는 오라클에서 교육용으로 제공해주는 EMP 테이블이며, 자세한 데이터는 아래와 같다. EMP 테이블..

Database/Oracle | 2017.11.09 01:13

[Oracle 12c] ORA-28040: No matching authentication protocol

오라클의 서버와 클라이언트 버전이 일치하지 않아서 발생하는 에러이다. 일반적으로 Oracle 12c에서 발생하는 에러이며, 데이터베이스 서버는 12c 버전인데 클라이언트가 하위 버전일 경우 발생한다. 오라클 서버의 SQLNET.ORA 파일을 수정하는 것으로 해결이 가능하다. 파일명: SQLNET.ORA 파일의 경로: C:\app\dp\product\11.2.0\dbhome_1\NETWORK\ADMIN\SQLNET.ORA 파라미터: SQLNET.ALLOWED_LOGON_VERSION = 9 파라미터 값 9의 의미는 10G, 11G 버전의 클라이언트 접속을 허용한다는 의미다. 오라클에서 제공해준 자세한 내용은 아래와 같다. Allowed Values • 12 for the critical patch upda..

Database/Oracle | 2017.11.07 04:00

[Oracle 12c] ORA-65096: invalid common user or role name 오류

전체적인 구조를 변경해서일까 Oracle 12c를 사용하면서 여러가지 오류에 직면하게 된다. 사용자 생성 방법이나 규칙이 조금 변했다. 일반적인 사용자 생성 스크립트로는 에러에 직면한다. ORA-65096: invalid common user or role name 위의 에러를 해결하기 위한 방법은 두가지가 존재한다. 첫번째는 생성할 계정명 앞에 'C##' 키워드를 붙여주는 것이며, 두번째는 예전의 스크립트 방식 그대로 생성이 가능하도록 설정을 변경하는 방법이다. 딱히 자신의 환경이 연습용이거나 12c의 클라우드 계정을 염두해서 사용할 것이 아니라면 후자를 추천한다. 추가로, C## 키워드가 붙는 이유는 12c 버전에 등장하는 CDB, PDB 개념 때문이다. -. 계정명 앞에 C## 키워드 추가 CREA..

Database/Oracle | 2017.11.06 21:49

Preventing user to connect / as sysdba 접근 방지

오라클을 처음 셋팅하면 관리자 유저로 접속하기 위한 방법 중 하나가 바로 '/ as sysdba'이다. 이러한 접근 방법은 관리자의 편의성 및 SYS 및 SYSTEM 계정의 암호 분실시 간편한 복구를 위함이다. 하지만 이같은 편리한 접속 방법을 방지하지 않으면 보안에 취약점을 노출하게 된다. 따라서, SQLNET.ORA 파일에 SQLNET.AUTHENTICATION_SERVICES 파라미터를 NONE 으로 설정할 경우, 위에서 언급한 로그인 기능은 방지된다. 따라서, 반드시 관리자 계정의 패스워드를 명시해야만 접근이 가능하다. 일반적으로 파라미터의 기존 값은 NTS로 설정되어 있다. 파일명: SQLNET.ORA 파일의 경로: C:\app\dp\product\11.2.0\dbhome_1\NETWORK\AD..

Database/Oracle | 2017.11.05 22:44

오라클(oracle) SYS/SYSTEM 비밀번호 변경

오라클을 처음 셋팅하면 SYS 및 SYSTEM 계정의 비밀번호를 설정해야 한다. 간단한 방법으로 다시 설정할 수 있다. 다만, 이 방법은 데이터베이스에 'sqlplus / as sysdba'로 접근이 가능할때 유효하다. -. Preventing user to connect / as sysdba 접근 방지: http://wookoa.tistory.com/235 # SYS 및 SYSTEM 계정으로 접속 1. cmd 창에서 SQLPlus 실행 2. 사용자명 입력: sys as sysdba 3. 비밀번호 입력: 아무런 입력 없이 엔터 # 접속한 계정의 비밀번호 변경 4. 하기 명령어와 같이 비밀번호를 변경한다. 본인의 경우 패쓰워드는 'wookoa'로 지정했다. ex) alter user sys identifi..

Database/Oracle | 2017.11.05 21:46

리눅스(CentOS)에서 오라클 리스너(lsnrctl) 실행

오라클을 설치하고 다른 PC에서 접속을 시도할 경우 접속이 되지 않는다. 이유는 오라클 리스너를 실행하지 않았기 때문인데, 오라클 리스너를 제어하는 명령어는 lsnrctl [help/start/stop/status/reload] 등이 존재한다. 대부분의 포스팅은 윈도우 환경에서 오라클 리스너를 실행하는 방법을 설명한다. 그렇기 때문에 커맨드창에 막바로 lsnrctl 명령어를 입력해도 오라클 리스너를 실행할 수 있다. 하지만, 리눅스 환경에서는 정확한 경로에 접근해서 해당 프로그램을 실행해야 한다. 오라클 리스너를 수행하기 위해 lsnrctl을 아무리 명령해도 'bash: lsnrctl: 명령을 찾을 수 없습니다...'라는 문구만 되풀이하는 것이 그 이유다. lsnrctl 프로그램의 정확한 위치는 오라클홈..

Database/Oracle | 2016.12.27 13:22

테이블스페이스(데이터파일) 사용량 조회/자동확장/디렉터리를 조회 및 관리하는 프로시저

- 테이블스페이스(Tablespace) 사용량 조회 프로시저 - 데이터파일(Datafile) 디렉터리 조회 프로시저 - 테이블스페이스(Tablespace)의 온라인 여부 조회 프로시저 - 테이블스페이스(Tablespace)의 읽기 전용 여부 조회 프로시저 - 테이블스페이스(Tablespace)의 사용량이 90% 이상이면 사이즈를 자동으로 확장 프로시저 ◆ 프로시저 생성 PL/SQL1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969..

Database/Oracle | 2016.04.02 17:08