//구글광고

오라클(oracle) freespace 간편조회 script


일부 온라인 배포된 오라클 데이터베이스의 freespace 조회 스크립트는 파일 하나하나 별로 사이즈가 길게 나와 

테이블 스페이스별 freespace 로 깔끔하게 나오게 만든 버전 입니다.


일부 간편버전 스크립트 중에 dba_freespace 의 bytes 가 0일 경우( 즉 freespace가 없을경우) 해당 행이 조회 되지 않는 것이 있었습니다.

아래의 스크립트는 그 버그를 수정한 것 입니다.


 

column "NAME" format a20

column "FILECNT" format 999999

column "TOTAL(MB)" format 999,999,999.99

column "USED(MB)" format 999,999,999.99

column "FREE(MB)" format 999,999,999.99

column "MAXBYTE(MB)" format 999,999,999.99

column "FREE(%)" format 999.99


set linesize 120

set pagesize 100


SELECT tbs.tablespace_name as "NAME", tbs.FILECNT as "FILECNT", tbs.TOTAL as "TOTAL(MB)"

              , (tbs.TOTAL - nvl(fr.FREE,0)) as "USED(MB)" ,  nvl(fr.FREE,0) as "FREE(MB)"

              , nvl(tbs.MAX,0) as "MAXBYTE(MB)",  nvl(fr.FREE,0)/tbs.TOTAL *100 as "FREE(%)"

FROM   (select tablespace_name, sum(bytes/1024/1024) as "FREE" 

                   from dba_free_space

                  group by tablespace_name) fr,

                (select tablespace_name, sum(bytes/1024/1024) as "TOTAL", count(*) as "FILECNT",

                  sum(maxbytes/1024/1024) as "MAX"

                  from dba_data_files

                  group by tablespace_name) tbs

WHERE tbs.tablespace_name = fr.tablespace_name (+)

ORDER BY "FREE(%)" ;




( 제꺼 퍼가실때는 출처나 사용법을 꼭 명기해주시고 -  오라클 및 서버 명령어, 스크립트는 모든 경우에 적용하실수 있는게 아닙니다.

상황및 사용법이 나오게, 그리고 드래그 할 수 없게는 절대 가져가지마세요, 엔지니어나 공부하시는 분들에게 다 타이핑 하게 할수 없습니다 

일부러 드래그 해서 편히 쓰시라고 표에 따로 적어놓은 겁니다.)



" 출처나 사용법을 명기하셨더라도, 

절대 드래그-복사(Ctrl-c) 금지설정을 해놓은 페이지,블로그,카페에는 제 자료 일체 가져가지 마시기 바랍니다. "



사용하면 이렇게 나옵니다.


위의 표의 내용을 freespace.sql 로 저장하여 수행한 것 입니다.


컬럼 설명


NAME  : 테이블 스페이스의 이름.

FILECNT : 해당 테이블 스페이스의 파일 수.

TOTAL(MB) : 총 파일시스템에 할당된 용량(단위, 메가 바이트 ).

USED(MB) : 사용된 용량( 단위 , 메가바이트 ).

FREE(MB) : 여유공간 ( 단위, 메가바이트 ),

MAXBYTE(MB ) : 자동 증가할 수 있는용량 ( 단위, 메가바이트 )

    - 주의점

     1)  최대 증가가능용량이 32GB 라고 하더라도 실제 서버의 파일시스템에 공간이 없으면 더이상 늘어나지 않습니다. 

     2)  만약, 한 테이블 스페이스에 3개의 파일이 있고(FILECNT가 3)  그중에 1개의 파일만 32GB로 최대 자동 증가가 되어있다면

        MAXBYTES 는 32기가로 표현됩니다. 따라서 TOTAL 보다 MAXBYTE가 작을 수 도 있는점 있습니다.

        이럴땐, 파일별 용량을 표시해주는 스크립트(인터넷에서 돌아다니는 스크립트) 로 각 파일별 여유공간을 확인하시기 바랍니다.

        본 스크립트는 간편하게 한방에 조회 하게 축약된 축약본입니다.

FREE(%) : 전체 TOTAL 에서 Free 남은 비율 입니다. (자동 증가될 수 있는 용량은 고려하지 않음 )




ORANGE 나 SQL Tool 에서 수행할 때는 SELECT ~ 부터 붙여넣으시면 됩니다.


우리 회사가 갑자기 체코에 지사를 세운답니다.

오라클 DB 설계를 해야하는데 체코어는 캐릭터셋을 어떻게 설계하죠?


오라클 데이터베이스를 설계할때 많은 고민을 하게 하는것이 캐릭터 셋이다.
최근에 제조업들이 유럽으로 진출하기 위해서 거점을 두는 곳이 체코인데 한국에서 개발하는 개발자들이 체코어 데이터베이스를 설계할때 고려할 사항을 검토해 보자.


1. 캐릭터셋 

 문자열의 집합이다. 영어 알파벳을 1바이트 한글은 2바이트 이렇게 우리는 상식으로 알고있다.
조금더 어렵게 내려가보면 내가 완성형 한글 '가' 를 입력했다고 치자. 
이게 파일 시스템에 저장될 때는 ASCII 문자표에 KO16KSC5601(완성형) 페이지의 코드표에 맞게 2바이트의 '가' 에 해당하는 값 'B0A1'을 저장할 것이다.
이를 데이터베이스에서 읽을때 2바이트 단위로 읽으면서 B0A1 이 나오면 '가' 로 바꾸어서 표현해 주는 방식이다.

그럼 한글을 표현하는 캐릭터 셋은 무었일까?

KO16KSC5601(완성형)
KO16MSWIN949(조합형)
UTF8 ( 3바이트 다국어 )

이 3개의 캐릭터 셋은 한국어를 저장하고 꺼낼 수 있다.

2. 체코어는 어떤 캐릭터셋을 사용할까?

  체코어(Czech) EE8ISO8859P2, EE8MSWIN1250 캐릭터셋 군에 속한다.


캐릭터 셋군에 들어가는 다른언어는 중앙유럽에 필요한 언어들 Czech 포함한 Hungarian, Polish 이며 유로 심볼은 포함되지 않으며. 체코어로 1바이트를 차지 한다.


이중에 , 

EE8MSWIN1250 euro 심볼을 포함함으로(TM 마크 ) 윈도우 클라이언트를 많이 사용하며 TM마크등에서 ? 표시가 나는 것을 방지하기 위해  EE8MSWIN1250 추천할 수 있다.


3. 하지만 본사가 한국이라 한국어 매니저들이 들어가는 값은 한국어 인데?

(즉 한국어와 체코어가 동시에 들어가야 하는 상황 )

만약 한국어와 체코어를 병행해서 사용할 일이 있다면 UTF-8 혹은 AL32UTF8 을 사용하면 된다.

이때의 캐릭터 바이트 계산은 아래의 표와 같다. 
(UTF-8 과 AL32UTF-8의 차이는 4byte 문자 지원여부 AL32UTF-8 이 4byte지원함.)

       아스키 문자 : 1바이트 , 한글 3바이트, 유럽언어 2바이트, 유로심볼 3바이트



이렇게 정리할 수 있다.




무료로 즐기는 파워풀한 백업!!

시놀로지 오라클 Export 백업 설정




본 포스트는 연재 포스트입니다. 


1. 시놀로지 NAS에 오라클 XE를 설치해보자 ( http://kimazfactory.tistory.com/4 )
2. 시놀로지 ORACLE XE 설치 및 설정 2 - 한글과 타임존 설정 ( http://kimazfactory.tistory.com/5 )
3. 시놀로지 docker 오라클 XE 아카이브 모드 변경 ( http://kimazfactory.tistory.com/14 )





시놀로지 NAS 에서 개발 시스템을 구축할때의 가장 큰 장점중 하나는 파워풀한 백업 시스템을 무료로 이용할 수 있다는 것이다.
개발 시스템의 백업은 잘 신경쓰지 않는다. 최초에 개발환경을 구축할 때 모든 시스템은 건강하기 때문에 그냥 쓰지뭐.. 이렇게 생각하다가 
막상 개발이 마무리 되거나 한참 자료가 중요해 질 때쯤 예기치 못한 에러로 인해 백업을 해놓지 않은 것을 후회하게 될 것이다.

시놀로지 NAS 에 내가 관심을 가지고 이렇게 기록을 남겨놓는 이유는 다시 구축할 때 , 혹은 인수인계할 때 도움이 되기도 하지만 이렇게 잘 정리 해놓지 않으면 한 1년 뒤에는 나도 아쉬울 날이 오더라는 것이다.

우선 내가 세팅할 백업 환경은 아래의 그림과 같다.


시놀로지 안에서 Export 를 하루에 한번 수행하고 그 export 백업본을 시놀로지의 백업 솔루션을 이용해서 다중화 한다.

HyperBackup 솔루션수준의 오라클 데이터베이스 백업을 받으려면 그 가격만으로도 NAS보다 비쌀 것이다.


BTRFS를 이용한 멀티 스냅샷 기능또한 마찬가지 개발 환경에서 아무렇게나 굴러다니는 시스템으로 개발 환경을 구축해놓으면 이러한 시너지 효과를 누릴수 없기 때문이다.


심지어 시놀로지는 이러한 백업이 정상적으로 되었는지 에대한 리포팅을 이메일로 해주고,

해당 백업본을 cloud 시스템으로 복제 까지 해준다.

( 이 클라우드 복제  - Dropbox 라던지, 구글 Drive라던지... - 의 기능은 다음에 포스팅을 쓸 예정이지만 엄청 파워풀하다 4테라바이트의 수백만개의 파일을

일반적인 환경으로 복제 버전 관리가 가능할까? 사실 불가능하다. 복제하다가 오류가 발생하기 쉽상이지.. 하지만 시놀로지 클라우드 동기화는 아주 만족스럽게 싱크를 해주고 있다. )


이러한 장점 떄문에 시놀로지 NAS에 SVN 을 설치하고, Tomcat 서버를 운영하고, Oracle DB서버를 운용 해서 테스트 시스템을 구축했다.

강력한 무료 솔루션들 때문에 NAS 가격보다 더 많은 이점을 누리고 있다.


즉, 소규모 개발서버 구축엔 시놀로지 구성을 적극 추천하는바임.

사설은 여기까지 이제 구축해봅시다.


1. 공유폴더 만들기

시놀로지 dsm 으로 접속한다.



1. [ File Station ] 을 클릭한다.

2.[ docker] 폴더를 우클릭한다.

3. [폴더생성] 을 클릭한다.


폴더 이름에 [exp] 라고 입력하고 [확인] 버튼을 클릭한다.


[exp] 폴더가 생긴걸 확인할 수 있다.



2. Docker 볼륨에 공유폴더 연결하기

좌측상단의 네모버튼의 프로그램 메뉴 버튼 클릭한뒤 Docker 를 클릭하여 Docker 를 실행한다.



Docker 에서 좌측의 비디오 형식 클릭 후 우측에 오라클 이미지를 더블클릭한다.


1.가상머신 창에서 [터미널] 을 클릭한다.

2.좌측 상단의 [생성] 버튼을 클릭한다.

3.하단에 [bash] 쉘을 클릭한다.

4.우측에 검정화면에 root ... # 프롬프트가 깜빡거릴것이다.


                             다음의 명령어를 입력하여 오라클 DB를 종료한다.

su - oracle


lsnrctl stop


sqlplus "/as sysdba"


shutdown immediate

 


 

이제 가상머신을 종료한다.


x 버튼을 눌러 현재 가상머신 화면을 종료한다.


전원 버튼을 눌러 현재 가상머신을 끈다.


오라클 가상머신을 한번 클릭으로 선택한 후,

[편집 ] 버튼을 클릭한다.



1. [볼륨] 버튼을 클릭한다.

2. 볼륨 탭에서 [폴더추가] 버튼을 클릭한다.


1. 아까 우리가 생성한 docker 폴더 밑에 exp 폴더를 클릭하고 

2. 우측하단에 선택 버튼을 클릭한다.


1. 마운트 경로에 /exp 를 입력한다. ( 이후 가상머신내에 /exp 마운트 포인트로 잡힌다. )

2. 적용 버튼을 클릭한다.


전원 버튼을 클릭하여 가상머신의 전원을 켜준다.


가상머신을 더블 클릭한다.


가상머신 화면에서 

1. [터미널] 클릭

2. [생성] 클릭

3. [bash] 쉘 클릭

4. 우측에 root 프롬프트가 깜빡입니다. 

이상태에서 다음의 명령어를 입력합니다.


방금 마운트한 exp 경로의 권한 설정



ls -altr /exp


chown -R oracle:dba /exp


ls -altr /exp


 





3. export 스크립트 작성

/exp 폴더 아래에 fullexp.sh 스크립트를 작성한다.
다음의 명령어로 작성한다.


cd /exp


vi fullexp.sh

 



i 키를 누른 다음 아래의 내용을 입력 후 esc키와 :wq 를입력하여 저장한다.


 export LANG=ko.KR_UTF8

export NLS_LANG=KOREAN_KOREA.AL32UTF8

export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe

export ORACLE_SID=XE

export PATH=$ORACLE_HOME/bin:$PATH


exp system/oracle file=/exp/fullexp.dmp log=/exp/fullexp.log full=y statistics=none 




다음 명령어로 권한을 부여합니다.


chown oracle:dba ./fullexp.sh


chmod 755 ./fullexp.sh

 




4. 시놀로지 백업 스케쥴 설정

이제 모든 창을 닫고 시놀로지 메인 화면으로 이동한다.

[제어판]을 클릭한다.



[ 제어판] 화면에서 작업 스케쥴러를 클릭한다.

만약 작업 스케쥴러가 보이지 않으면 우측 상단의 고급모드 > 를 클릭한다.


[ 작업 스케쥴러 ] 를 클릭한다.


작업 스케쥴러 창에서 [생성] 버튼 클릭 [예약된 작업] 에서 [사용자 정의 스크립트] 를 선택한다.


작업생성 창의 [일반] 탭에서 작업 이름을 oracle export 로 입력한다.



알림에 메일주소를 입력하면 해당 작업이 실행된 후 결과를 알려준다.


사용자 정의 스크립트 창에 다음을 입력한다.


 docker exec alexeiled-docker-oracle-xe-11g1 su - oracle -c /exp/fullexp.sh



여기서 alexeiled-docker-oracle-xe-11g1 값은 오라클 docker 이미지의 이름이다.

docker 이미지 창에서 확인할 수 있다.


su - oracle -c 는 root 유저로 수행하기 때문에 오라클 유저에서 해당 스크립트를 실행하라는 의미이다.



수행시간을 지정하고 싶으면 스케쥴 탭에서 시간을 지정한다.

기본값은 매일 자정에 수행된다.



[확인] 을 클릭하여 저장한다.


oracle export 작업을 우클릭 하여 실행 버튼을 클릭해서 한번 수행해 본다.


[예] 를 클릭하여 수행해 본다.


[파일스테이션] 에서 exp 경로에 정상적으로 export 파일이 생성되는 것을 볼 수 있다.


설정한 메일 함에도 이렇게 수행된 로그가 메일로 전송된다.




8세대 i7 노트북이 60만원대 가격실화냐!?

하이마트발 Asus ZenBook A-UX310UA-FC945(DOS) 분해 및 사용소감


올해 3월에 하이마트 대란으로 젠북이 혜택 싸그리 긁어모아서 60만원대에 풀려서 지름했습니다. 가끔 다시 세일 하는거 보고 혹시 이거 쓸만한가?

라는 의문을 가지실 분이 많아서 제 사용 후기를 적습니다. 



1. 발열 및 성능

가격대비 성능은  풀 할인을 영혼까지 모아서 60만원 후반대에 산다면 더이상의 가성비는 없지 싶습니다.


발열에 대한 우려 : 혹사시키는 수준의 작업을 해보니 CPU온도는 90도까지 간혹 가지만 팬소음이 심하지 않습니다. 울트라북의 적절한 팬소음입니다. 제 기준에는 거의 무소음 입니다.


발열에 대한 퍼포먼스 저하부분 : 모든 코어를 풀로드로 당길시 1.8 기가에서 풀로드가 계속 걸리지만 쓰로틀링을 경험해보진 못했습니다.

다만 온도는 80~90도를 찍습니다. 팬소음은 매우 조용합니다. 일반 게이밍 노트북의 이륙하는 소리는 들을수 없습니다.


안정성 : 놀랍게도 이렇게 혹사하는 동안에 노트북이 뻗은적은 없습니다. 풀로드로 3일씩 돌아갈때도 있지만 다운된적이 없어서 일반 울트라북 사용자들의 패턴에서는 안심하고 쓸수 있습니다.


2. 가벼운 어댑터


  45W 의 어댑터를 사용하고 아쉽게도 usb-c 가 아닙니다만 어댑터의 크기가 너무 작고 가볍습니다. 

  인증때문에 전원선에 대한 규제가 생겨 전원선이 두꺼운 부분은 아쉽지만 안전을 위한거라 어쩔수 없죠


                                    어댑터가 정말 작고 가볍다, 선이 두꺼운건 비밀  , 좌) 젠북 ux310 어댑터, 우) 핸드폰 충전기



3. 액정

액정품질 : 13.3 인치 액정답게 영화 보거나 간단한 웹서핑 (확대 150%) 에는 쓸만하지만, 장시간 코딩같은건 무리일듯 합니다


저는 LG패널로 액정을 교체 해보았으나, 이 두께에는 높은 사양의 액정이 존재 하지 않았습니다.(즉 다른 IPS 노트북과 비슷합니다. )


요즘 베젤리스 액정이 많이 나오는데 거기 비하면 베젤이 너무 넓어서.. 14인치 사이즈에 13.3 인치가 있다고 보시면 됩니다. 노트북이 커보이죠 


저반사 코팅이 되어있습니다, 



(액정은 AUO B133HAN02.7 모델입니다. )





4. 흰지각


구형입니다. 180도 펼쳐지지 않습니다만, 예전에 쓰던 노트북 수준의 각도라 업무용으로는 크게 지장 없습니다.



5. 입출력 포트


풀사이즈 HDMI , USB 3.0 1개 , 3.1 gen 1 usb-c ( 사실상 usb 3.0의 c type ) 1개 , 우측에 USB 2.0 2개 


이렇게 있어서 USB 2.0 2개가 우측에 있다는걸 명심해야 하는 부분입니다. (키보드 마우스 연결 말고 전송속도를 요하는 장치는

왼편에 3.0 1개뿐 ) 


6. 사운드


윈도우 처음 까시면 스피커 소리가 너무 작다는 느낌을 받으시는데

꼭! 사운드 프로그램을 깔아서 야간모드를 해제 하면 소리가 커집니다.


사운드 성능은 무난한 성능 을 보여줍니다.



7.  키보드 & 터치패드


정말 극찬합니다. 이 키보드만 따로 팔면 사고 싶습니다.


음 어떤 느낌이냐면 맥북 2015 버전의 느낌이지만 약간 더 반발력이 있습니다.

지금의 나비식 키보드의 맥북보다 감이 좋습니다.


약간 세게 타이핑을 치시는 분들도 충격을 적당히 먹어줘서 손가락이 안아픕니다. 물론 백라이트도 있습니다. 


터치패드는 그냥 보통입니다만, 플라스틱으로 되어 있지 않습니다. 윈도우 계열 노트북중에서는 꽤 좋은편인듯하고

정밀 터치 기능이 있습니다.


하지만 윈도우에선 터치패드는 못쓸거같습니다. 드레그시 약간의 고주파음이 들립니다. (엄청 조용한 방에서 )







8. 무선연결 


  블루투스와 와이파이 2.5 사이의 간섭현상은 보입니다. 다운로드 속도가 약간 저하됩니다. 그렇다고 싸구려 노트북들 처럼 연결 끊어짐 현상은 아직 발견되지 않았습니다.


  와이파이 5기가로 연결하면 그런현상은 없습니다.


 이 노트북으로 동시사용자 50명 규모의 웹서비스를 2개월째 운용중이고 공간의 문제로 wifi로 설정되어있지만 별다른 문제가 발생하지 않았습니다.

연결은 안정적이다고 말할수 있습니다.


사용된 블루투스.wifi 칩입니다.


안테나는 상판 하단의 은색으로 몰딩된곳 안에 있습니다.



9. 업그레이드 가능성


업그레이드는 기본 SATA 1TB하드에 M2 2280규격의 128 GB SSD 가 설치 되어 있으며,


분해가 너무 쉽고 하판뜯어도 워런티가 안날아가서 매우 좋습니다.

실제로 아수스 서비스 센터에서 초기 결함으로 부품받을때 이미 내부는 다 파해쳐진 상태였지만 워런티거부 받지 않고

서비스 잘 받았습니다.


                하판뜯는 방법은 엄청 쉽습니다. 파란색 고무부분을 기타피크 같은걸로 벗기면 십자 나사가 있습니다.  2개 뜯으시고

                (딱히 연장 없으면 헤어드라이기로 약간 가열해서 카드같은거나, 어차피 고무니까 일자드라이버 얇은걸로 살짝 쑤시면 벗겨집니다 )


                빨간 부분 별드라이버로 열어주면 됩니다.




                              배터리는 나사풀고 위쪽을 당기면 간단하게 들립니다. (케이블 같은거 안뺴서 정말 편함 )


 

                           전 하드 빼버렸는데 이렇게 하드 장착할 수 있습니다. 교체 가능하구요 원래 1TB 하드있는 모델을 사야할 것 같습니다

없는 모델사면 저 금속의 트레이가 없을거같은 느낌이 .. ( 전 NAS에 쓸려고 1tb하드 제거 해버렸습니다 ;; ) 


메모리 확장이 가능합니다

슬롯이 1개 존재해서 DDR4 8GB 꼽으면 16기가로 구성이 가능하구요


M2 슬롯도 나사 하나만 풀면 간단히 업그레이드 할 수 있습니다.



업그레이드가 정말 쉽습니다.



10. 기타 팁


- 운영체제 추천 : 윈도우츠 10을 추천드리며 https://www.asus.com/kr/Laptops/ASUS-ZenBook-UX310UA/HelpDesk_Download/ 경로에서

                 UX310 UAR  버전용 드라이버를 설치해서 사용중입니다.


- 소리작으면 ICE드라이버 깔아서 야간모드 해제 하면 됩니다. 그럼 커지고 음질도 좋아짐


- 액정 밝기가 안밝아 진다면, 드라이버 설치 후 fn + a 누르세요 자동 밝기 적용되어서 안밝아보일수 있음


- 배터리 100프로 충전 60% , 40% 충전 설정 가능

(배터리 관리자 깔면 됨 )



11. 후기


전체적으로 가성비 모델인거 같음.


젠북이 고급라인이긴 하지만 이 모델은 하이마트 PB상품이 아닐까 하는 생각이 듭니다.


일단 가격대비 성능은 아주 좋은거 같고 


이보다 더 높은거 원하는 120만원대로 확 올라가버립니다.


저는 장난감으로 싼맛에 사서 이것저것 가지고 노는 맛에 씁니다.


가끔 커뮤니티에 마감이슈가 올라오지만 교품을 잘해주는 편이라고 합니다.







안녕하세요 오늘 포스트는 이전에 시놀로지 NAS 에 docker오라클 XE 설치 세팅에 계속해서

Archive log mode (아카이브 모드로 변경) 설정 방법입니다.



아카이브 로그 모드로 변경하는 이유는 오라클 데이터베이스를 온라인(운영중인)상태에서 백업( Hot backup ) 을 받기 위해서 설정합니다.


바로 다음에 RMAN 으로 온라인 백업 설정 방법도 포스팅할 예정입니다.



  주의사항 : 


 -   Archive log 모드 로 변경하기 위해선 DB를 내렸다가 올려야 합니다.


-   Archive log 파일이 계속 생성됩니다. 지워주지 않아 공간이 가득차게 되면 Archive log full 에 의해 데이터베이스가 멈춥니다.


 -  온라인 백업(online backup, hotbackup)을 하지 않을 것이라면 Archive log 모드로 변경할 필요가 없습니다.




이전에 포스팅한 환경이 궁금하시면 링크를 따라 과거 포스팅을 참조하시기 바랍니다.

과거 포스팅 대로 설정된 환경에서 진행합니다.


1. 시놀로지 NAS에 오라클 XE를 설치해보자 ( http://kimazfactory.tistory.com/4 )


2. 시놀로지 ORACLE XE 설치 및 설정 2 - 한글과 타임존 설정 ( http://kimazfactory.tistory.com/5 )




자 그럼 시작해 봅시다.



1 ) DSM 으로 접속합니다.


2 )  File Station 을 클릭합니다.


3 )  아카이브 로그 저장 경로를 지정해야 합니다. 


   저는 [ docker ] 밑에 [ arch ] 폴더로 지정할 것 입니다.


   [ docker ]  에서 우클릭 하여 [ 폴더 생성 ] 을 클릭합니다.



생성할 폴더명 [ arch ] 를 입력하고 확인을 클릭합니다.



 [ arch ] 폴더가 생성된 것을 확인할 수 있습니다.



4 )  이제 Dock 를 실행해 줍니다


좌측상단에 [ 메뉴 ] 버튼을 클릭해서 [ docker ] 를 실행합니다.




5 ) Docker 에서 촤측의 [ 비디오 형식 ] 탭을 클릭한 후  우측의 오라클 XE 가상머신을 더블클릭 합니다.



6 ) 가상머신 창에서 터미널을 클릭해서 [ 터미널 ] 로 들어갑니다.



[ 생성 ] 버튼을 클릭하면 새로운 [ bash ] 쉘이 생깁니다. [ bash ] 쉘을 클릭하면 root 프롬프트가 깜빡입니다.



7 ) 오라클 유저로 들어가서 DB를 종료합니다.




다음과 같이 명령어를 입력합니다


 i) 오라클 유저로 전환


 su - oracle


 ii) 리스너 서비스 종료


 lsnrctl stop


iii) 오라클 관리자 권한으로 접속


 sqlplus "/as sysdba"


iv ) 오라클 종료 


 shutdown immediate


 



8 )  가상머신을 종료하고 3) 에서 만든 arch 경로를 마운트 시켜줍니다.


 우측상단에 X 버튼을 클릭하여 가상머신 창을 닫아줍니다.



프롬프트가 나오면 [예] 를 클릭합니다.



  비디오형식 탭에서 전원 버튼을 눌러 가상머신을 종료합니다.



클릭하면 이렇게 회색으로 종료가 됩니다.



가상머신을 한번 클릭해주면 하늘색으로 선택이 됩니다.

그 상태에서 상단에 [ 편집 ] 버튼을 클릭해주세요.



편집 창에서 [볼륨] 을 클릭합니다.



볼륨 탭에서 [폴더추가 ] 버튼을 클릭합니다.


폴더추가 창에서 아까생성 했던 [ docker ] 폴더 밑의 [ arch ] 폴더를 선택한 후 [ 선택 ] 버튼을 클릭합니다.



마운트 경로에 커서가 깜빡일 것 입니다.



마운트 경로에 원하는 경로를 입력합니다. 이는 가상머신 os에서 보여지는 마운트 경로입니다.

우리는 [ /arch ] 라고 입력한 후 적용 버튼을 클릭합니다.

이후 본 포스팅에서 실습에서 아카이브 로그 경로는 /arch 가 됩니다.




다시 가상머신 창으로 돌아왔으면 전원 버튼을 눌러 가상머신을 시작합니다.



클릭하면 이렇게 파란색으로 변하면서 전원이 켜집니다.



가상머신을 더블클릭하여 터미널로 들어갑니다.



가상머신 화면에서 [ 터미널 ] 을 클릭합니다.

상단의 [ 생성 ] 을 클릭한 후,

좌측탭의 [ bash ] 쉘을 클릭하면 우측에 root 커서가 깜빡입니다.



9 ) 마운트 포인트 확인 후 oracle 권한 부여


  터미널 창에서 다음의 명령어를 입력합니다.


df -k


그럼 화면에서 /arch 가 마운트 된것을 확인할 수 있습니다.


다음명령어를 입력합니다.


ls -altr /arch  


그럼 현재 디렉토리 권한이 잡혀있지 않는것을 확인할 수 있습니다.





다음의 명령어로 권한을 부여합니다.



 chown oracle:dba /arch

 



 다시 ls -altr /arch 를 입력해보면

현재 /arch 디렉토리 권한이 oracle : dba 로 부여된것을 확인할 수 있습니다.



10 ) 오라클데이터배이스를 archive log 모드로 변경


먼저 오라클 유저로 접속합니다

다음 명령어를 입력합니다.


su - oracle 


다음 명령어를 입력해서 오라클 데이터베이스 관리자 모드로 접속합니다.


sqlplus "/as sysdba" 



현재 아카이브 모드인지 확인합니다

다음의 명령어를 입력하세요


archive log list 



아카이브 모드로 바꾸는 방법은 여러가지가 있으나, 저는 손에 익은 관계로 pfile 을 만들어서 변경하겠습니다.

우선 파라미터 파일을 생성합니다.


다음의 명령어를 입력하여 pfile 을 생성합니다.

create pfile from spfile; 



 다음의 명령어를 입력하여 DB를 종료한뒤, sqlplus 를 빠져나옵니다.


shutdown immediate 


exit



다음의 명령어를 이용해서 파라미터 파일 경로로 이동합니다.

cd $ORACLE_HOME/dbs 


ls 명령어로 파라미터 파일이 있는지 확인합니다.

ls -altr 

spfileXE.ora , initXE.ora 파일이 보입니다.



다음의 명령어로 spfile을 백업해둡니다.

mv spfileXE.ora spfileXE.bak 



vi를 이용하여 파라미터를 편집해줍니다.

다음의 명령어를 입력해주세요.

vi initXE.ora 


vi 화면에서 커서를 위, 아래 화살표를 이용해서 움직여서 *_DB_RECOVERY_FILE_DEST 와 *_DB_RECOVERY_FILE_DEST_SIZE 행 위에서 [d] 키를 두번 눌러 해당 2개 행을 지워줍니다.


지운후 [o] 키를 누르면 새로 들여쓰기가 가능합니다.

 (  만약 중간에 실수를 했다면 [esc] 키를 누르고 :q! 를 입력하면 저장하지 않고 밖으로 나옵니다. 다시 vi initXE.ora 로 진행하시면 됩니다.  )


들여쓰기 상태에서 다음의 파라미터를 입력합니다.

log_archive_dest='/arch'

log_archive_format='arch_%r_%t_%s.arc'

 


입력하였으면 [esc] :wq 를 입력하여 저장합니다.


다음의 명령어를 입력하여 sqlplus 관리자 모드로 접속합니다

sqlplus "/as sysdba" 



다음의 명령어를 입력하여 mount 모드까지 DB를 기동합니다

startup mount 



database mounted. 라는 메세지 까지 떳습니다.

다음의 명령어로 아카이브 모드로 변경합니다.


alter database archivelog; 



database altered. 라는 메세지가 나옵니다.


다음의 명령어로 spfile 을 생성한 후 데이터베이스를 재기동합니다.


create spfile from pfile;


startup force 




이제 명령어로 정상적으로 archive log 모드가 적용되었는지 확인합니다.

다음명령어를 입력하세요


archive log list 



Archive Mode 로 변경된 것을 확인할 수 있습니다.


11 ) 아카이브가 잘 떨어지는지 확인해봅시다.


다음의 명령어로 로그스위치를 일으켜 아카이브가 잘 떨어지는지 확인해 봅시다.


alter system switch logfile; 





실제 /arch 경로에 아카이브 로그가 잘 떨어졌는지 확인해 봅시다.


다음의 명령어로 sqlplus 관리자 모드에서 접속 종료합니다.

exit 


다음의 명령어로 아카이브 로그파일이 잘 떨어졌는지 확인합니다

ls -altr /arch 



oracle : dba 권한으로 arc 파일이 생성되었으면 정상적으로 설정된 것 입니다.


이상으로 아카이브 모드로 변경을 마칩니다.


오라클 실습 환경 구축시에 8080 포트를 점유하는 apex 서비스 끄는 방법

(disable oracle apex service 8080 port )


오라클 xe를 설치하고 이클립스로 tomcat 서버를 등록하면 8080 포트가 충돌이 나서 
8090 이런식으로 잡기도 한다.


이는 오라클 xe에 기본적으로 들어있는 APEX 서비스가 8080 으로 등록되어 있어 포트 충돌 때문에 mysql환경에서 작업하던 사람들은
매우 심각한 빡침을 느끼기도 하고,

APEX외에도 보통 SQL DEVELOPER 등의 무료툴이 많기 때문에 사용하지 않으려고 하기도 하고,

보안 문제 때문에 사용을 하지 않는 경우도 있다.


이런 저런 문제들 때문에 꺼버리는 방법이다.

1. 오라클 유저로 접속한다


   su - oracle


2. 오라클 관리자 권한으로 접속


  sqlplus "/as sysdba"


3. apex 서비스 종료


  exec dbms_xdb.sethttpport(0);

 



apex 서비스는 사용하고 싶지만 8080 포트에서 변경하고 싶을 때는 다음과 같이 수행한다.



1. 오라클 유저로 접속한다


  su - oracle


2. 오라클 관리자 권한으로 접속


  sqlplus "/as sysdba"


3. 현재 apex 포트 조회


 select dbms_xdb.gethttpport() from dual;


4. 포트 변경


 exec dbms_xdb.sethttpport(변경할포트번호);


 



기본적으로 데이터베이스 서버는 외부에 포트를 열어두지 않고 안에 꽁꽁 숨겨둬야 한다.

그런데 잘 알려진 8080 포트로 web 서비스가 DB와 연관되어 열려있다면

보안에 취약해질수 있다.


털리면 DB의 모든 내용이 웹으로 친절하게 조회가 되어 버리기 때문에...


개인적으로 어지간하면 끄고 쓰는 편이다.




시놀로지 NAS 선택 어떤 모델을 해야할까?



오늘은 사용용도에 따른 NAS 구입에 대해 알아봅시다.

가장먼저 정해야 할 것은 사용용도 입니다.


1. 가정에서 사진과 동영상 저장 및 스마트 기기에서 시청용도 ( + 트랜스 코딩 : 자기가 현재 보는 디바이스에 맞게 화질을 조정하여 네트워크 사용량을 아끼는 기술 )


ds218, ds218play,ds118

가장 베이직한 모델입니다. 일반적인 가정에 적합합니다.

가격도 저렴한 편입니다.

베이수(들어가는 디스크수)에 따라 선택하시면 되겠습니다.



2. 위의 기능에 더해 간단한 웹서버 운용,랜섬웨어 방지를 하고싶다 (btrfs 사용)


이정도 급부터 사실 추천드립니다. 단순히 NAS를 저장용으로 쓰시는 분들외에 여러가지 가이드를 보고 가지고 놀고 싶고

활용도를 높히고 싶다면 현재 등급 이상은 올라와야 합니다.


대표적으로 인텔 CPU를 사용해야 몇가지 패키지들을 더 설치할 수 있으며

스냅샷 기능을 이용하여 랜섬웨어를 방지할 수 있습니다.


btrfs + 스냅샷 기능으로 1시간에 한번씩 스냅샷을 찍어두면 해당시점의 파일로 돌릴수있어서 랜섬웨어 걸린 파일을

걸리기 이전 시점으로 복구할 수 있습니다.


ds218+ , ds718+

좀더 파워풀한 성능으로 웹서비스 같은것도 운영해보고 싶다 하시는분들은 ds 718+ 까지는 올라와 줘야 합니다.



3. 소규모 기업 , 가정용 파워풀 성능, 디스크 용량이 부족해


디스크 공간이 더 필요하다면 918+ 입니다.


성능은 718+와 동일하지만 캐쉬용 SSD를 장착할 수 있고 베이가 총 4개 입니다.

메모리 업그레이드는 918+ 718+ 동일하게 16기가까진 확인했습니다.



이렇게 기준으로 선택하시면 후회 없으실 겁니다.


그 윗단계의 NAS는 기업용 부분이라 다른 선택지가 많기 때문에 본 포스트에서는 언급하지 않겠습니다.


기능 

 DS218+

DS718+ 

DS918+ 

장착가능디스크 

CPU 코어 

RAM 

2

표로 요약하자면 이렇습니다.


이것저것 장난 좋아하시는 저같은 아재 레벨이라면 디스크 크기에 따라 718+나 918+ 정도로 선택하면 될듯 하네요




앞서 포스팅한 502 bad gateway 링크( http://kimazfactory.tistory.com/8 ) 와 같이 이 현상도 다양한 근원 에러들때문에 일어난다.

본 포스팅도 해당 증상이 나올때 마다 해결책을 계속 업데이트 할 예정이다.



case 1. tomcat 과 nginx 를 이용한 reverse proxy 환경에서 Synology 에 설치한 Tomcat 서비스 요청시 웹페이지에서 504 gate way timeout 증상이 나타나는 경우


cause . Oracle DBCP 의 리소스 leak 에 의한 DBCP 불량

해결책. leak 소스 코드 부분 수정


원인 진단.



ssh를 이용하여 oracle 유저로 접속하여

sqlplus "/as sysdba" 를 입력하여 관리자로 접속한다.


접속한 후 다음의 쿼리로 현재 JDBC Thin Client 의 수를 세어본다.


select program, status, count(*) from v$session

where program like '%JDBC%'

group by program, status;




count(*) 컬럼의 값이 계속 증가하다가 일정 값에서 504 gateway timeout 값이 발생하며

페이지가 응답하지 않는다.


이 외에도 확인하는 방법은 다음과 같다.



select * from v$resource_limit; 


쿼리로 


현재 세션과 프로세스의 수 그리고 DB기동 이후 최대치 (High Water mark ) 그리고 파라미터상의 최대 제한치를

조회 할 수 있다.


파라미터를 수정하여 늘려준다.


하지만 leak 현상에 따라 제한이 걸리면 dbcp(connection pool ) 의 설정에 따라 한도에 도달하지 못하고 hang 걸리는 현상이 발생하기도 한다. 


해당증상을 임의로 재현해보면 다음과 같다.


해당 리소스를 close 하지 않고 다시 사용하면 이클립스 상에서 워닝은 뜨지만 무시하고 실행하면

리소스 leak 이 발생은 하지만 프로그램은 동작한다.



많은분들이 오픈소스 하드웨어입문으로 아두이노를 선택합니다.

그 이유는 많은 레퍼런스, 검증된 안정성, 쉬운 프로토 타이핑

입니다.


거기에 중국산 호환보드로 엄청 저렴한 가격에 구성을 할 수 있기 때문입니다.


처음에 임베디드 입문해서 각종 센서들을 테스트 해보면

이제 집에 뭔가를 만들어보자 라고 생각을 하게 되죠


거기에서 제일 처음 막히는게 바로 이더넷 연결입니다.

그 문제를 해결하기 위해 이더넷 쉴드를 연결해서 통신을 구축합니다.


가격적인 부분으로 따져보면요, 아두이노 보드 + 이더넷 쉴드 > 아두이노 윤(yun) 으로

어차피 네트워크 구성할꺼 윤으로 처음부터 시작하시는게 좋을 선택일 수도 있습니다.



아두이노 윤 에는 wifi, ethernet 이 내장되어 있으며

별도의 영역에서 linux 로 호스팅 되는 Ar99331 Linux 코어가 따로 있습니다.


이것의 장점은


여러분들이 아두이노에서 센서 데이터 수집한 값을 자체 리눅스의 mySQL DB로 저장할 수 있습니다.

Python 을 설치해서 문자메세지(SMS) 연동으로 전송할 수 있구요


php를 설치해서 웹 페이지를 제작할 수 있습니다.




로직은 이렇게 구성됩니다.


1) 아두이노 Atmega 32u4 에서 센서값을 센싱한다

2) 센싱한값을 리눅스로 전송한다 (pipe)

3) 리눅스에서 DB에 저장하거나 웹 전송, 웹서버, 문자메시지 전송등의 고급 어플리케이션 레이어를 구동한다.



아두이노 윤의 장점은 아두이노 + 인터넷 쉴드보다 가격이 저렴하고 크기도 작다. 



그럼 차라리 라즈베리파이나 다른 임베디드 보드로 가는 것이 좋은것 아니냐 하는 분들도 있을수 있습니다.



여기에서 개인적인 경험으로는

라즈베리 파이 보드를 전원을 꼽앗다 뺏다 다섯번안에 파일시스템 크러쉬가 날것 입니다.


아두이노 윤은 수십번 테스트 해도 멀쩡했습니다.


임베디드 환경에 따라 안정적인 전원공급여부에 따라 다를수 있겠지만,

저는 그래서 라즈베리 파이등의 시스템을 쓰지 않고 아두이노 윤으로 구성한곳이 많습니다.


파워풀한 컴퓨팅 파워보다는 전원에 따른 시스템 안정성이 아두이노 윤이 높았고

오래 운영가능했습니다.


앞으로 아두이노 윤으로도 몇가지 프로젝트를 진행해보고자 합니다.



시놀로지 NAS를 처음 구매하시고

DDNS 를 등록하시면 아주 쉽게 DSM으로 접속해서 운영할 수 있습니다.


근데 실제로 운영하시다 보면 외국에서 해킹시도가 정말 많이 들어옵니다.


실제 사용하시는 지역이 한국이시면 남한으로 방화벽설정은 꼭 하시길 권장드립니다.


그리고 관리자 아이디일 경우 2차 보안으로 Google OTP 설정을 해두세요

( 아이폰 , 안드로이드 모두 가능 )




1. 접속가능 국가를 '남한' 으로 설정하기


기본적으로 국내에서 사용하시고 외국 출장시에만 풀어주시는게 좋습니다.

NAS를 오래 운영할수록 외국에서 접속하는 해킹 시도가 빈번하니

국가를 남한으로 꼭 설정해주세요



1) DSM으로 로그인 합니다.



2) [제어판] 클릭 해서 제어판으로 들어갑니다.


3) [네트워크] 항목을 클릭해서 네트워크 설정으로 들어갑니다.


4) 왼편에 [보안] 항목을 클릭 합니다.


5) 우측 탭에 [방화벽] 을 클릭 합니다.


6) 방화벽 활성화, 방화벽 알림 활성화 체크 하여 두개의 옵션을 활성화 해줍니다.


7) 규칙편집을 클릭합니다.


8) 생성을 클릭하여 규칙을 생성합니다.


9) 소스 IP에서 위치를 클릭합니다.



10) 우측에 선택을 클릭합니다.


11) 우측 상단에 검색창에 남한을 입력합니다.


12) 활성화됨에 체크 하고 확인을 눌러 저장합니다.


13) 확인을 눌러 저장 합니다.


14) 남한, 허용이 설정되어 있는것을 확인하고 저장 합니다.


15) 이제 정상적으로 설정이 저장되었습니다.



이렇게 설정을 해주시면 대부분의 공격접속을 차단할 수 있습니다.

꼭 설정해주세요




+ Recent posts