Oracle export/import 유틸리티 – Oracle Data Pump(expdp/impdp)

Oracle Data Pump 유틸리티의 사용법을 알아보겠습니다.

Oracle Data Pump 유틸리티를 사용하기 위해서는 덤프 파일이 생성될 폴더를 지정하고, 그 폴더에 읽기, 쓰기 권한이 있어야 합니다.(데이터 import 를 위해 읽기, export를 위해 쓰기 권한이 필요합니다.)

이 예제에서는 Oracle Express Editon 11g r2를 사용해서 테스트 했습니다.

 

※ 디렉토리 생성 및 권한 주기

1. SYSTEM으로 로그인합니다.(일반 계정으로는 디렉토리를 추가할 권한이 없으므로 SYSTEM 계정으로 추가하고, 권한을 줍니다.)

 

2. 덤프 파일이 생성될 디렉토리를 생성합니다. 여기서는 ‘E:\export’ 를 만들었습니다.(이 폴더는 데이터베이스 서버에 만드는 것입니다.)

 

3. ‘E:\export’ 디렉토리를 TEST_DUMP 다른 이름으로 데이터베이스에 등록합니다.

CREATE OR REPLACE DIRECTORY TEST_DUMP AS 'E:\export';

 

4. 일반유저인 xeuser에게 이 디렉토리에 읽기, 쓰기 권한을 줍니다.

GRANT READ, WRITE ON DIRECTORY TEST_DUMP TO xeuser;

 

5. xeuser 계정으로 로그인하여 권한을 확인합니다.

– 디렉토리는 all_directories 뷰에서 확인할 수 있습니다.

SELECT * FROM all_directories;

결과)
OWNER  DIRECTORY_NAME  DIRECTORY_PATH
SYS    TEST_DUMP       E:\export

 

– 권한의 확인은 다음과 같이 할 수 있습니다.

SELECT * FROM all_tab_privs WHERE TABLE_NAME IN (
  SELECT DIRECTORY_NAME FROM all_directories
);

결과)
GRANTOR  GRANTEE  TABLE_SCHEMA  TABLE_NAME  PRIVILEGE  GRANTABLE  HIERARCHY
SYSTEM   XEUSER   SYS           TEST_DUMP   READ       NO         NO
SYSTEM   XEUSER   SYS           TEST_DUMP   WRITE      NO         NO

 

– Oracle 11g r2 이상이라면 다음 쿼리도 사용할 수 있습니다.

SELECT * FROM datapump_dir_objs;

결과)
NAME       PATH       READ  WRITE
TEST_DUMP  E:\export  TRUE  TRUE

 

※ 데이터 export/import 하기

Oracle Data Pump는 명령행 유틸리티 expdp/impdp를 사용해서 작업합니다.

 

1. 테이블 export/import(특정 테이블을 export/import 합니다.)

E:\>expdp xeuser/xeuser@xe tables=EMP,DEPT directory=TEST_DUMP dumpfile=EMP_DEPT.dmp logfile=expdpEMP_DEPT.log

E:\>impdp xeuser/xeuser@xe tables=EMP,DEPT directory=TEST_DUMP dumpfile=EMP_DEPT.dmp logfile=impdpEMP_DEPT.log

* xeuser/xeuser@xe – 로그인아이디/비밀번호@SID 입니다.

* tables=EMP, DEPT – 테이블을 콤마(,)로 분리해서 나열합니다.

* directory=TEST_DUMP – 덤프 파일이 생성될 디렉토리입니다. 위해서 만들것 입니다.

* dumpfile=EMP_DEPT.dmp – 생성될 덤프 파일의 이름 입니다.

* logfile=expdpEMP_DEPT.log – 로그 파일의 이름입니다. 덤프파일과 같은 위치에 만들어 집니다.

 

2. 스키마(Schema) export/import 하기

E:\>expdp xeuser/xeuser@xe schemas=XEUSER directory=TEST_DUMP dumpfile=XEUSER.dmp logfile=expdpXEUSER.log

E:\>impdp xeuser/xeuser@xe schemas=XEUSER directory=TEST_DUMP dumpfile=XEUSER.dmp logfile=impdpXEUSER.log

* schemas=XEUSER : 주어진 사용자(schema)가 가진 전체 객체를 export/import합니다.(이전 exp의 OWNER와 같은 기능의 옵션 입니다.)

 

3. 데이터베이스 전체 export/import 하기

E:\>expdp system/password@xe full=Y directory=TEST_DUMP dumpfile=XE.dmp logfile=expdpXE.log

E:\>impdp system/password@xe full=Y directory=TEST_DUMP dumpfile=XE.dmp logfile=impdpXE.log

* 전체 작업은 권한이 있는 system 계정으로 작업합니다.

* full=Y – 전체 데이터베이스를 대상으로 합니다.

 

4. 데이터베이스 Link를 export/import 하기

데이터베이스 Link를 통해서 export/import 하기 위해서는 로컬과 리모트 사용자 모두에게 EXP_FULL_DATABASE / IMP_FULL_DATABASE 롤이 부여되어 있어야 합니다.

다음 예는 로컬계정 은 xeuser이고, 리모트 서버가 REMOTE_SCOTT라는 이름으로 링크 되어 있다고 가정합니다.  리모트 계정은 scott 입니다.

E:\>expdp xeuser/xeuser@xe tables=SCOTT.EMP network_link=REMOTE_SCOTT directory=TEST_DUMP dumpfile=EMP.dmp logfile=expdpEMP.log

E:\>impdp xeuser/xeuser@xe tables=SCOTT.EMP network_link=REMOTE_SCOTT directory=TEST_DUMP logfile=impdpSCOTT.log remap_schema=SCOTT:XEUSER

* remap_schema=SCOTT:XEUSER – SCOTT계정의 객체들을 XEUSER계정으로 로드 합니다.

 

5. 버전을 지정하여 export 합니다.(버전은 9.2 이상만 지정할 수 있습니다.)

E:\>expdp xeuser/xeuser@xe schemas=XEUSER version=10.2 directory=TEST_DUMP dumpfile=XEUSER.dmp logfile=expdpXEUSER.log

이것으로 Oracle Data Pump 사용법에 대해 알아보았습니다.

 

자세한 옵션들에 대해서는 다음 URL을 참고 하세요.

출처 : https://oracle-base.com/articles/10g/oracle-data-pump-10g

DB ERD 관계선(실선, 점선)과 기호 설명

 
DBA는 아니지만, 프로그램을 잘 만들기 위해서 완성된 ERD를 이해하고, 나아가 간단한 모델링은 직접 
 
만들줄 알야한다고 생각한다.
 
 
ERD를 이해하기 위한 첫 걸음이자 가장 중요하다 할 수있는 부분이 관계선과 관계선에 사용되는 기호라
 
고 할 수 있다.
 
 
들어가기 앞서 관계선과 기호의 종류에대해 알아보자
 
관계선의 종류
  • 실선(Identifying): 식별관계
    • 부모테이블의 PK가 자식테이블의 FK/PK가 되는 경우
    • 부모가 있어야 자식이 생기는 경우
  • 점선(Non-Identifying): 비식별관계
    • 부모테이블의 PK가 자식테이블의 일반속성이 되는 경우
    • 부모가 없어도 자식이 생기는 경우
 
 
기호의 종류(도형 혹은 식별자)
  • |: 1개 / 실선은(dash) ‘1’을 나타낸다.
  • ∈: 여러개 / 까마귀 발(crow’s foot or Many)은 ‘다수’ 혹은 ‘그 이상’을 나타낸다.
  • ○: 0개 / 고리(ring or Optional)은 ‘0’을 나타낸다.
위와 같은 기호들을 서로 조합하여 사용될 수 있으며, 다음과 같은 조합이 가능하다.
 

  • Type1(실선과 실선): 정확히 1 (하나의 A는 하나의 B로 이어져 있다.)
  • Type2(까마귀발): 여러개 (하나의 A는 여러개의 B로 구성되어 있다.)
  • Type3(실선과 까마귀발): 1개 이상 (하나의 A는 하나 이상의 B로 구성되어 있다.)
  • Type4(고리와 실선): 0 혹은 1 (하나의 A는 하나 이하의 B로 구성되어 있다.)
  • Type5(고리와 까마귀발): 0개 이상 (하나의 A는 0또는 하나 이상의 B로 구성되 있다.)
기호의 조합은 보통 그림 예제의 Type1, Type3, Type4, Type5를 자주사용하며, 사용하는 
 
ERD 프로그램에 따라 조합 방식이 다를 수 있다.
 
 
(상품 테이블과 상품의 옵션 테이블의 관계를 정의할때, 상품의 옵션은 없을 수 도 있고, 여러개가 있을 
 
수 있기 때문에. 그림 예제 Type5로 표현이 가능하다.)
 
 

Oracle 12c ORA-01017: invalid username/password

After I installed Oracle SE 12c on my server, some clients with 11Gr2 or 9i (OCI,Oledb,.net and ODBC drivers) started to show the following error:

ORA-01017: invalid username/password; logon denied

오라클 12c 설치 하면 기존에 사용하던 11g 프로그램을 이용하여 접속시 위와 같은 에러가 나올때가
있다 .

그 경우 아래와 같이 해 주면된다.

1) 아래와 같이 oracle 에 sqlnet.ora 파일을 수정한다.
sqlnet.ora
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8

2) password 버전을 확인 합니다.
select USERNAME,ACCOUNT_STATUS,PASSWORD_VERSIONS from dba_users;

USERNAME          ACCOUNT_STATUS    PASSWORD_VERSIONS
—————                       ————–                   —————–
dummyuser                         OPEN                         11G 12C

3) 기존 패스워드를 재생성 합니다.

You must be careful with quotes and doble quotes.
It’s recommended to reset the user password, using a admin credentials.

ALTER USER user_name IDENTIFIED BY new_password;

4)접속을 해본다.

삼성, 엘지, 대우 세탁기 에러코드 모음

​삼성전자
●점검에러
서비스센타에서 AS받으셔야합니다

에러코드
3E
모터회전이상에러
무거운이불등세탁기 과부하발생
9E
전기 저전압,과전압 or 메인회로판이상
HE
삶음기능시 세탁히터이상으로 온도안올라감
세탁히터쇼트,단선,히터센서불량
PE1,PE2
클러치모터이상,메인회로판이상
9E(아가사랑)
누수감지에러
수위감지센서호스이탈,세제과다상용거품에의한전면누수,pcb회로이상,물흡수력이좋은세탁물세탁시일시적
8E(MEMS)
진동감지센서에러
진동감지센서,pcb회로이상
AE(RE)
통신이상에러
메인pcb 와 서브pcb끼리신호감지못함
OF(5F,OE)
물수위감지못함에러
수위센서에러,수위센서호스결빙,세탁조수위감지안되과급수될수있음
TE
세탁조 세탁히터센서이상
온도센서불량,접촉불량

●기타에러
C5-세탁버튼쇼트에러
01-세탁조청소,통세턱버튼쇼트에러
DP-예약버튼쇼트에러
188-물높이버튼쇼트에러
T**-버튼쇼트에러

●주요에러
자가조치후 증상개선없으면 AS받으시면됩니다

​삼성일반세탁기 에러코드

1E
수위감지에러
4E(YE,E1)
급수에러
일정시간동안 급수변화,급수완료안됨
5E(SE,E2)
배수에러
UE,E4
언발란스에러
수평불량,세탁물한쪽치우침
dE,dE1
세탁기뚜껑열림
CE
배수물온도감지에러
세탁시30분이지나도내부온도55∘c이하로내려가지 않는증상
END,EN
통세척시기 알림증상
6E
세탁히터과열에러
히팅시작후1분동안 온도변화가30∘c이상일 경우(빨래감을 별도로 삶아서넣었을 경우)

​삼성드럼세탁기 에러코드

9E,9E1,9E2
저전압,과전압,회로기판이상
FE
건조팬이상 동작감지 안될때
팬모터단선,벨트이상,쿨링날개동작,베어링불량
HE,HE1
삶음기능시 헤탁히터이상
세탁히터쇼트,단선,세탁히터센서불량
bE1,12E
전원버튼 눌림
전원버튼12초이상 눌려져있을때,전면부컨트롤판넬변형으로버튼 불안정눌림
tE1
세탁히터센서이상
AE(RE,13E)
통신이상에러
메인,서브pcb간 신호감지못함
HE2
건조히터이상으로 온도감지에러
건조히터 온도센서불량
LE,11E
세탁조물 누수감지
물을많이먹는세탁물,실제누수,pcb회로이상
bE2,14E
버튼눌림현상
전원버튼제외한 버튼30초이상눌림현상
tE2
건조히터센서이상
6E
세제자동투입장치의 모터동작이상
자동세제함 금속접촉단자 청소후조립
COLD(CLD)
세탁동작전 세탁통 물감지,배수되면서CLD표기
배수필터,배수호스,배수드레인점검
Hot
내부온도 고온감지
건조,에어워시 도중 껐을때 내부온도가 뜨거워발생
4E1,4E2
냉온급수호스 죄우바뀜

엘지전자
LG일반세탁기 에러코드

LE,LE1,AE
모터구속에러
펄쉐이터와탈수조사이 동전이나 이물이낄경우
DE
도어에러(Door Error)
세탁기 뚜껑 열림
F
세탁물량 자동감지하는중
기다리면 시간표시 나타나고 정상작동됨
IE
급수에러(water inlet error)
급수불량 급수호스,수도꼭지,단수확인
OE
배수에러(water outer error)
배수불량,배수호스 동결 꺽임 막힘 확인
UE
불균형에러(unbalance error)
세탁기수평,빨래감 한쪽치우침확인

LG드럼세탁기 에러코드

FF,U51
배수동결에러
CF
건조행정도중 종료버튼을누른경우
건조덕트식히기위한과정 팬모터30초정도가동
건조행정 정상작동시 CF표시되지않음
PE
물조절센서 오작동,물조절이안될때
FE
급수밸브이상
급수밸브이상,배수동결,계속급수,급수+배수반복
CL
Child Lock 버튼잠금기능
어린이보호기능 ,해제후사용
tCL
세탁조청소시기 알림기능

●에러/버튼 > LED 가 깜빡이는 경우

– UE:배수대기/탈수안함 400/800/1000rpm 전체 점등
탈수 불균형 표시입니다.
– IE:헹굼추가/구김방지 전체 점등
급수가 안되는 경우입니다.
– OE:예비세탁/시간 절약 전체 점등
배수가 원활하지 못한 경우 입니다.
– DE:예비세탁/시간절약/ 헹굼추가/구김방지/물온도 전체 점등
문닫힘이나 문열림이 제대로 되지 못한 경우입니다.
– TE:물온도 전체 점등
온도감지 센서 이상입니다.
– PE:예비세탁/시간절약/물온도 전체 점등
수위감지 센서 이상입니다.
– FE:예비세탁/헹굼추가/시간절약/구김방지 전체 점등
급수 관련 부위 또는 배수 관련 부위가 얼은 경우 입니다

동부대우전자
대우일반세탁기에러코드

UE
불균형에러
수평확인, 빨래감 한쪽으로 치우침확인
OE
배수에러
배수호스확인(막힘,꺽임등)
IE
급수에러
급수호스확인(수도,호스접힘,급수필터)
LE
문열림
H5
수온이상 감지에러
울,란제리 코스사용시 수온감지(냉온호스바뀜확인

대우드럼세탁기 에러코드

IE
급수에러
급수호스확인,수도(단수)확인
OE
배수에러
배수호스확인
LE
문열림
세탁기 도어 확인
UE
불륜형에러
세탁기수평,빨래감 치우침확인
E5
세탁모터회전감지오류 (드럼미니)
a/s 문의
E9
수위조절안됨,수위센서에러
a/s 문의
E8
세탁모터회전감지오류
홀센서고장의심,이물질드럼통구속

산요드럼
U2-드럼세탁기 문열림
ER3-배수불량

이 글은 info 카테고리에 분류되었고 태그가 있으며 님에 의해 에 작성되었습니다.

Oracle remote connection configuration 외부 접속 설정하기 (listener.ora)

최초 오라클을 설치하고 나면 TCP/IP 설정은 localhost 만 지정되어있습니다.

이 설정 파일은 다음과 유사한 경로를 가집니다.

C:\app\Administrator\product\11.2.0\orcl\NETWORK\ADMIN\listener.ora

 

이 파일을 열어보면 다음과 같이 기본 설정되어있습니다.

# listener.ora Network Configuration File: C:\app\Administrator\product\11.2.0\orcl\NETWORK\ADMIN\listener.ora

# Generated by Oracle configuration tools.

 

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

)

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

)

)

ADR_BASE_LISTENER = C:\app\Administrator

 

Administrator 계정으로 설치를 시작하고 다음 > 다음 > 다음 > …… 을 연타하면 위와 같이 지정되죠!!!

바인딩할 추가 IP를 지정합니다.

 

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

)

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

)

(DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.211.55.13)(PORT = 1521))

    )

)

 

실행 경로(Path)는 지정되어있다고 가정하고 리스너 서비스를 재시작합니다.

 

C:\app\Administrator\product\11.2.0\orcl\NETWORK\ADMIN>lsnrctl stop

LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 – Production on 26-6월 -2013 14:32:38

Copyright (c) 1991, 2010, Oracle.  All rights reserved.

(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))에 연결되었습니다

명령이 성공적으로 수행되었습니다

 

C:\app\Administrator\product\11.2.0\orcl\NETWORK\ADMIN>lsnrctl start

LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 – Production on 26-6월 -2013 14:32:43

Copyright (c) 1991, 2010, Oracle.  All rights reserved.

시작 tnslsnr: 잠시만 기다리세요…

TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 – Production

시스템 매개변수 파일은 C:\app\Administrator\product\11.2.0\orcl\network\admi

n\listener.ora 입니다

c:\app\administrator\diag\tnslsnr\jkf\listener\alert\log.xml (으)로 로그 메시지

를 기록했습니다

리스닝이: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))

리스닝이: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))

리스닝이: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.211.55.13)(PORT=1521)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))에 연결되었습니다

리스너의 상태

————————

별칭                     LISTENER

버전                     TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 – Production

시작 날짜                 26-6월 -2013 14:32:49

업타임                   0 일 0 시간. 0 분. 5 초

트레이스 수준            off

보안                     ON: Local OS Authentication

SNMP                     OFF리스너 매개변수 파일   C:\app\Administrator\product\11.2.0\orcl\network\admin\listener.ora

리스너 로그 파일         c:\app\administrator\diag\tnslsnr\jkf\listener\alert\log.xml

끝점 요약 청취 중…

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))

 (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.211.55.13)(PORT=1521)))

리스너는 서비스를 지원하지 않습니다

명령이 성공적으로 수행되었습니다

C:\app\Administrator\product\11.2.0\orcl\NETWORK\ADMIN>

리스너 서비스가 정상적으로 구동되면 이후부터 외부에서 정상적으로 접속 할 수 있습니다.

MariaDB Connect engine JDBC 연결 사용하기

MariaDB에서 이기종 데이터베이스를 사용하기 위해서 Connect 엔진을 사용합니다.

connect 엔진에 대한 MariaDB의 웹페이지는 아래를 참고하시면 됩니다.

https://mariadb.com/kb/en/library/connect/

connect 엔진을 이용해서 이기종 데이터 베이스를 연결할때 ODBC를 사용을 했습니다.

JDBC를 사용하기 위해서는 10.2.2 / 10.1.17 / 10.0.27 이상의 버전을설치하면 됩니다.

JDBC를 사용하는 방법은 아래 웹페이지를 참고합니다.

https://mariadb.com/kb/en/library/connect-jdbc-table-type-accessing-tables-from-another-dbms/

해당 웹페이지만으로 실제 사용하기에는 쉽지 않아서 아래 테스트를 한 내용을 정리해 봅니다.

먼저 MariaDB JDBC connector를 이용해서 같은 서버의 MariaDB를 JDBC로 연결해서 사용하는 방법은 아래와 같습니다.

  • JRE 설치
  • my.cnf 설정 : connect_jvm_path, connect_class_path
  • mariadb start
  • connect 엔진 global variables 확인
  • create table

# apt-get install default-jre

# vi my.cnf
##### connect engine
connect_jvm_path="/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server"
connect_class_path="/ohnew/mariadb/connect/mariadb-java-client-2.2.3.jar"

# systemctl start mariadb

MariaDB> show global variables like 'conn%path';

MariaDB> create table jt_t1 engine=connect table_type=jdbc tabname=t1 connection='jdbc:mariadb://localhost:3306/ohnew' option_list="User=root,Password=";

아래는 다른 서버에 있는 oracle 데이터베이스를 JDBC로 연결해서 사용하는 방법입니다.

  • my.cnf 설정 : connect_jvm_path, connect_class_path
  • mariadb start
  • create server
  • create table

# vi my.cnf
##### connect engine
connect_jvm_path="/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server"
connect_class_path="/ohnew/mariadb/connect/ojdbc6.jar"

# systemctl start mariadb

MariaDB> create server 'oracle' foreign data wrapper 'oracle' options (
HOST 'jdbc:oracle:thin:@192.168.100.101:1521:orcl',
DATABASE 'ORCL',
USER 'system',
PASSWORD 'manager',
PORT 0,
SOCKET '',
OWNER 'SYSTEM');

MariaDB> create table jt_ora_t1 engine=connect table_type=JDBC connection='oracle/ohnew.t1' SRCDEF='select c1 from ohnew.t1';

MariaDB 캐릭터셋을 UTF8 로 설정하기

한글을 사용하기 위해서는 인코딩을 euc-kr이나 UTF8로 바꾸는 것이 필요한데, 요즘은 대부분 UTF8을 사용하므로 UTF8로 설정해 봅니다.

MariaDB의 캐릭터셋을 UTF8로 설정하는 것은 MySQL과 유사합니다.

먼저, 현재 MariaDB의 캐릭터셋이 무엇으로 되어 있는지 확인부터 해보죠. (이미 UTF8로 되어 있다면 바꿀 이유가 없으니까요.)

먼저 터미널로 접속합니다. 그리고 MariaDB에 연결합니다.

$ sudo mysql -uroot -p                        <– root는 MariaDB 유저명

비밀번호를 입력하고 접속 되면, MariaDB에 c로 시작하는 변수값이 어떻게 설정되었는지 확인합니다.

MariaDB [(none)]> show variables like ‘c%’;

제 경우 아래와 같이 나오네요.

utf8로 설정되어 있는 부분들도 있지만, latin1으로 설되어 있는 부분들도 보이는군요.

utf8로 바꾸어 봅시다.

(모두 utf8로 되어 있다면 바꿀 필요 없습니다.)

먼저 quit; 명령으로 MariaDB를 빠져 나옵니다.

MariaDB의 my.cnf 파일을 수정해야 하는데, 우분투의 경우, /etc/mysql/ 디렉터리 밑에 있습니다.

만약을 대비해 먼저 my.cnf 파일을 백업합니다.

$ sudo cp /etc/mysql/my.cnf /etc/mysql/my.cnf.ori

이제 본인에게 편한 에디터로 my.cnf 파일을 수정합니다.

아래 내용이 my.cnf에 있는지 확인하고 없으면 추가하고, 있으면 수정합니다.

(각 섹션별로 추가나 수정을 해 줍니다.)

 

[client]
default-character-set=utf8

[mysqld]
init_connect=”SET collation_connection=utf8_general_ci”
init_connect=”SET NAMES utf8″
character-set-server=utf8
collation-server=utf8_general_ci
skip-character-set-client-handshake

[mysql]
default-character-set=utf8

 

수정을 마쳤으면, MariaDB를 재시작합니다.

$ sudo service mysql restart

다시한번 MariaDB에 접속해서, 아래 명령어로 캐릭터셋이 바뀌었는지 확인합니다.

MariaDB [(none)]> show variables like ‘c%’;

이제 아래와 같이 나오네요.

정상적으로 utf8로 바뀐것을 확인 할 수 있습니다.

Tomcat 서버 HTTPS / SSL 적용

1. .keystore 파일 경로를 원하는 위치에 이동시킨다!!!

2. Tomcat 서버의 server.xml을 연다 .  (보통은 톰캣위치\conf 경로에 존재한다. )

server.xml을 열어보자!

3. 아래의 소스코드를 추가한다.

HTTPS통신을 할 포트번호를 정한다 ( https는 Port 443이 기본이다.  혹시 기존에 해당 포트가 사용중이라면 , 다른포트를 이용하자)

keystorepass에는 키스토어 비밀번호를 입력한다.

keystorefile에는 .keystore의 위치를 지정해준다.

1
2
3
4
5
<Connector port="443" protocol="org.apache.coyote.http11.Http11Protocol"
SSLEnabled="true" URIEncoding="euc-KR" maxThreads="150" scheme="https"
secure="true" ciphers="TLS_RSA_WITH_AES_128_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA"
keystoreFile="D:/Workspace/PLMS/PLAN_PLM/cert/certification/STAR.hankooktech.com.jks"
keystorePass="hankooktire" clientAuth="false" sslProtocol="TLS"/>

ORACLE JOB Schedule 등록방법

오라클에서는 유닉스의 cron tab과 비슷한 기능을 제공합니다.

오라클 자체적으로 프로시저, 패키지, 등의 object 를 oracle job queue에 등록후 스케쥴링 하여 사용할수 있습니다.

 

1. Job 관련 파라메터 확인

SELECT * FROM V$PARAMETER WHERE NAME LIKE ‘%job%’;

‘JOB_QUEUE_PROCESSES’의 값이 ‘0’ 이면 스케줄러가 작동하지 않는다.

ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 1000;

 

2. Job 등록

DECLARE
X NUMBER;
BEGIN
SYS.DBMS_JOB.SUBMIT
( job => X
,what => ‘plan_plm.T_IF_BATCH’
,next_date => to_date(‘2020-02-27 00:00:00’, ‘yyyy-mm-dd hh24:mi:ss’)
,interval => ‘TRUNC(SYSDATE+1)+6/24+30/1440’
,no_parse => TRUE
);
SYS.DBMS_OUTPUT.PUT_LINE(‘Job Number is : ‘ || to_char(x));
END;

 

– next_date : Job이 처음 실행될 시간 설정

– Interval : Job 실행 후 다음 실행 간격 설정

SYSDATE+7 : 7일에 한번 씩 job 수행

SYSDATE+1/24 : 1시간에 한번 씩 job 수행

SYSDATE+30/ : 30초에 한번 씩 job 수행(24: 시간 당, 1440(24×60):분 당, 86400(24x60x60):초 당 )

TRUNC(SYSDATE, ‘MI’)+8/24 : 최초 job 수행시간이 12:29분 일 경우 매시 12:29분에 job 수행

TRUNC(SYSDATE+1) : 매일 밤 12시에 job 수행

TRUNC(SYSDATE+1)+3/24 : 매일 오전 3시 job 수행

NEXT_DAY(TRUNC(SYSDATE),’MONDAY’)+15/25 : 매주 월요일 오후 3시 정각에 job 수행

TRUNC(LAST_DAY(SYSDATE))+1 : 매월 1일 밤 12시에 job 수행

TRUNC(LAST_DAY(SYSDATE))+1+8/24+30/1440 : 매월 1일 오전 8시 30분

 

3. Job 확인

SELECT * FROM DBA_JOBS

SELECT * FROM USER_JOBS

SELECT * FROM ALL_JOBS

 

4. Job 삭제

EXECUTE DBMS_JOB.REMOVE(job_no);

 

5. Job 변경

1) CHANGE

: Job 의 Field를 변경

EXECUTE DBMS_JOB.CHANGE(job, what, next_date, interval);

EXECUTE DBMS_JOB.CHANGE(14144, NULL, NULL, ‘SYSDATE + 3’);

 

2) WHAT

: 수행작업을 변경

EXECUTE DBMS_JOB.WHAT(job, WHAT);

EXECUTE DBMS_JOB.WHAT(14144, ‘유저명.프로시저명’);

 

3) NEXT_DATE

: 다음 수행시간 변경

EXECUTE DBMS_JOB.NEXT_DATE(job, next_date);

EXECUTE DBMS_JOB.NEXT_DATE(14144, TRUNC(SYSDATE,’MI’) + 4);

 

4) INTERVAL

: 수행 간격 변경

EXECUTE DBMS_JOB.INTERVAL(job, interval);

EXECUTE DBMS_JOB.INTERVAL(14144, TRUNC(SYSDATE,’MI’)+30/1440);

 

5) BROKEN

: 수행 중지

EXECUTE DBMS_JOB.BROKEN(14144, TRUE);

 

6) RUN

: Job을 즉시 실행. BROKEN중이어도 실행. 실행 후 정상상태로 변경

EXECUTE DBMS_JOB.RUN(job);

 

이 오라클의 job 스케쥴링을 이용하면,

서버의 이용이 낮은 새벽시간대 등에 자원이 많이 들어가는 연산을 실행시키면, 오라클 서버의 부담을 줄일수 있습니다.

Windows Oracle ODBC 설정

오라클에 ODBC 를 이용해서 접속할 수 있습니다.

(* 파워빌더 10.5 는 오라클11g 이상 버전의 Native 드라이버를 지원하지 않지만 하위 버전의 클라이언트로도 상위 버전의 서버에 접속할 수 있습니다.)

오라클 ODBC 드라이버는

MS에서 제공하는 Microsoft ODBC for Oracle 과

오라클을 설치하면 제공되는 Oracle in OraDb1Xg_home1

두 가지가 있습니다.

Oracle in OraDb1Xg_home1 는 파빌에서 접속할 때 불필요한 메시지를 보여주기 때문에

Microsoft ODBC for Oracle 사용을 권장합니다.

여기서는 두 가지 모두 다루겠습니다.

 

윈도우7 기준으로

제어판 – 시스템 및 보안 – 관리도구 – 데이터 원본(ODBC)

를 실행하십시오.

 

시스템 DSN 탭을 선택하고 추가 버튼 클릭~

1. Microsoft ODBC for Oracle 로 설정하기

목록에서 Microsoft ODBC for Oracle 을 선택합니다.

(만약 목록에 보이지 않는다면 아래 사이트를 참고해서 설치하십시오.

설치 후 처음부터 다시해야 합니다.

http://support.microsoft.com/kb/313008)

마침 클릭~

데이터 원본 이름은 임의로 작성하면 됩니다.

여기서는 TestDB_odbc 라고 합니다.

파빌에서 ODBC 접속할 때 이 이름을 사용합니다.

서버는 Tnsname.ora 파일에 등록되어 있는 로컬 네트 서비스 이름입니다.

오라클 DB 생성 후 설정 글에서 등록한 TestDB_local 을 직접 입력하십시오.

사용자 이름는 입력하지 않고 비워둡니다.

확인 버튼 클릭~

시스템 DSN 에 방금 설정한 오라클 ODBC 데이터를 볼 수 있습니다.

Data Source Name 에 작성한 TestDB_odbc 가 이름 칼럼에 나타났습니다. 

파빌에서 접속할 때 TestDB_odbc 을 사용합니다.

 

2. Oracle in OraDb1Xg_home1 로 설정하기

오라클을 설치하면 위 화면에 오라클 드라이버가 표시됩니다.

여기서는 오라클11g 가 설치되었습니다.

오라클 드라이버를 선택하고 마침 버튼 클릭~

 

Data Source Name 은 임의로 작성하면 됩니다.

여기서는 TestDB_odbc 라고 했습니다. 파빌에서 ODBC 접속할 때 이것을 사용합니다.

 

TNS Service Name 은 Tnsname.ora 파일에 등록되어 있는 로컬 네트 서비스 이름입니다.

우측의 화살표를 클릭하면 나타나는 목록에서 선택하세요.

오라클 DB 생성 후 설정 글에서 등록한 TestDB_local 을 선택하면 됩니다.

 

User ID 는 입력하지 않고 비워둡니다.

OK 버튼 클릭~

 

시스템 DSN 에 방금 설정한 오라클 ODBC 데이터를 볼 수 있습니다.

Data Source Name 에 작성한 TestDB_odbc 가 이름 칼럼에 나타났습니다. 

파빌에서 접속할 때 TestDB_odbc 을 사용합니다.