오라클을 sqlplus에서 작업을 하다보면 특수문자 때문에 힘들때가 있다. 예를들어서 프로시져 실행할때 &나 특수문자 치환때문에 쓰는 여러가지 단어때문에 힘들게 되는데 이때는 특수문자로 치환해서 넣기도 하는데.. 아예 아래와 같이 "set define OFF" 명령어를 넣게 되면 특수문자를 입력 할 수 있다. 참고로 한글을 입력이 제대로 안먹히면 사용자의 환경변수를 잘 확인해서 아래와 같이 넣을 수도 있다. "export NLS_LANG=KOREAN_KOREA.AL32UTF8"
개발 DB에서 배포 스크립트를 만들려고 할때 각 스크립트가 필요하다. 인터넷에서 찾아보니 아래와 같이 하나씩 물어보는데.. 음.. 이건 내가 원하는 명령어가 아니였다. 어떻게 아래와 같이 하나씩 찾아서 할 수가 있을까? -- 오라클 테이블 스크립트 추출 select dbms_metadata.get_ddl('TABLE','테이블명') from dual; -- 오라클 프로시져 스크립트 추출 select dbms_metadata.get_ddl('PROCEDURE','프로시져명') from dual; -- 오라클 VIEW 스크립트 추출 select dbms_metadata.get_ddl('VIEW','VIEW명') from dual; -- 오라클 INDEX 스크립트 추출 select dbms_metadata.g..
고객사에 데이터 베이스 용량이 하루 3%씩 증가한다는 연락을 받았다. 처음에는 데이터가 많으면 그럴수도 있지.. 라고 생각했었는데.. 아차.. 내가 유지보수 하고 있는 사이트는 규칙적으로 데이터를 insert하고 delete 한다. 갑자기.. postgresql에 vacuum, autovacuum가 생각 났다. 구글에서 postgres vacuum, autovacuum라고 치면 엄청나게 많은 글을 볼수가 있다. 여기서 이야기하고 싶은 것은 고객사에 DB 용량이 이미 80%가 되었을때.. 아니면 90% 임시 조치는 어떻게 할 것인가?라는 이야기를 하고 싶다. 우선 이야기 하고 싶은 건은 한번 데이터가 insert 하고 update, delete를 하면 테이블에 용량이 늘어난다. 예를들어서 38만 정도 되는..
요즘에 오라클을 쓰지 않고 postgresql를 쓰기 때문에 생각보다 많이 글을 쓰는 것 같다. 하이튼, postgresql에서 특정 사용자의 DB 테이블를 모두 삭제하고 싶을때가 생겼다. 인터넷에서 찾아보니깐 특정사용자에게 접속하고 아래의 명령어를 쓰면 된다. DO $$ DECLARE r RECORD; BEGIN FOR r IN (SELECT tablename FROM pg_tables WHERE schemaname = current_schema()) LOOP EXECUTE 'DROP TABLE IF EXISTS ' || quote_ident(r.tablename) || ' CASCADE'; END LOOP; END $$; 별거 아닌데 깔끔하게 된다. ㅎㅎ
유지보수를 갔더니 고객사에 톰캣 로그 처럼 startup, down 할때마다 로그를 확인하고 싶어 했다. 고객이 원하면 해야줘 ㅋㅋㅋ postgresql 로그 확인 해보자. 우선 그러면 psql로 명령어를 치고 show data_directory;를 치면 아래와 같이 postgresql 경로를 확인 할 수 있다. 그쪽으로 가자. 위의 경로에 가면 postgresql.conf 파일을 확인 할 수 있다. 해당 파일을 vi로 열어보자 파일을 열면 log_direcory를 확인 할 수 있고 해당 파일에 가면 로그를 확인 할 수 있다. 해당 로그를 확인하면 down을 할 때 database system was shuw down으로 down 로그를 확인 할 수 있고 startup은 autovaccum launche..
요즘에 postgresql DB 관련 솔류션 유지보수를 하다보니.. 아.. 힘들다. ㅋㅋ 오라클이랑 비슷하면서 또 다르기도 하다. 자주 까먹는 내용이기 때문에 한번 정리하려고 한다. 오라클은 익숙해서 그러는지 또는 정보가 많은데 생각보다 postgresql은 정보가 많이 없다. ㅋㅋㅋ 그리고 대용량으로 쓰게 되면 꼭 Autovacuum 이상하게 문제가 된다. 시간이 되면 꼭 한번은 autovacuum 을 공부하고 싶다. [Admin으로 접속하기] psql -U postgres 또는 psql [일반사용자로 접속하기] psql -h 주소 -p 포트 -U 사용자계정 -d tablespace [사용자 정보] \df [테이블 목록] \dl [테이블 상세 명세서] \d 테이블 명 [외부 쿼리 실헹] \i test...
고객사에서 postgresql 기본 패스워드 변경 요청이 왔다. 쉽게 이야기 하면 psql를 입력하고 그냥 들어가냐? 아니면 패스워드를 물어보고 들어가냐?의 차이점이다. 해당 작업은 psql 패스워드 변경, pg_hba.conf 파일 수정 후 DB 재기동이다. 우선 psql로 접속한다. 접속 후 show data_directory; 명령어를 치면 수정하고자 하는 파일 경로를 확인 할 수 있다. 해당 경로에 pg_hba.conf 파일이 있으니깐 꼭 기억한다. 1. postgresql 기본 패스워드를 변경 시켜준다. alter user postgres with password 'test123'; 2. show data_directory; 명령어로 확인한 경로로 이동한다. 만약 잘 모르겠다.하면 아래와 같이 ..
오라클 12c가 참 많이 변경 힘들게 한다. ㅎㅎ 하이튼 사용자를 생성하기 위해서 CREATE USER test IDENTIFIED BY VALUES "test123" 와 같은 명령어를 쳤더니 아래와 같은 메시지를 만나게 되었다. ORA-02153: VALUES 비밀번호 문자열이 부적당합니다. 또는 ORA-02153 : invalid VALUES password string 우선 해결 방안은 패스워드에 특수문자가 있으면 "를 꼭 붙여주고 그게 아니면 패스워드 만들때 12C에 맞는 구문을 쳐주어야 한다. 예를들어 나같은 경우에는 아래와 같이 쳤는데 여기에서 VALUES를 적었기 때문에 오류가 발생 되었다. [오라클 11g] CREATE USER test IDENTIFIED BY VALUES "test123..
웹개발자가.. 고객사의 유지보수를 하다보면 갑자기 tnsnames.ora를 변경해야 할 때가 있는데 내가 설치 하지 않는 서버라면.. oracle의 tnsnames.ora 파일 위치를 찾기가 어렵다. 꼭 오라클을 기본경로에 설치하라는 법은 없지 않는가? ㅎㅎ 이때 찾은 명령어가 lsnrctl status이다. 우선 su - oracle 명령어로 오라클 계정으로 접속 후 lsnrctl status 치면 아래와 같이 나오게 되는데 이때 Listener Paramter File에 가면 딱 tnsnames.ora 파일이 있다. 덤으로 Listener Log File 파일 위치도 알 수 있어좋다. [oracle]$ lsnrctl status LSNRCTL for Linux: Version 12.1.0.2.0 - ..
- Total
- Today
- Yesterday
- PPTX
- 산외한우마을
- pdf ms워드 변환
- ora-01940
- 맛집
- 인천여행
- 테라로사
- 대관령양떼목장
- 임자도
- 덤프
- 파주여행
- java api
- 담양 죽녹원
- 토드
- 이클립스
- 밀리세컨드
- oracle
- 보성녹차밭
- jdk
- 가평여행
- 인스타그램
- 오라클
- 제주도여행
- 가평팬션
- 정동지
- 인천
- 부천역
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |