Ace-T's Blog 내 검색 [네이버 커넥트 이웃 합니다~^-^/ 요청 大 환영~~]

[Windows용] postgreSQL

DataBase/Postgresql 2013.09.02 21:42
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T




아래의 링크는 postgreSQL + pgAdmin 이 함께 깔리는 일석이조의 set up 파일이다.


http://www.enterprisedb.com/products-services-training/pgdownload


환경 

    OS : window 7 64bit

    

원하는 버전에 맞게..설치를 하면 된다.


다른쪽에서 구한 것을 깔아서 해보았다니...설치는 되어지나 커넥션부분에서 접속이 되지 않았다..


md5를 trust로 바꾸어주는 등 여러가지 방법을 해보았으나..fail~!!


위의 링크에서 다운받아서 하니 잘 된다. ^-^good~


      - 끝 -




저작자 표시 비영리 변경 금지
신고

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

windows postgreSQL autocommit off 만들기

DataBase/Postgresql 2013.05.25 17:02
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T

windows postgreSQL autocommit off .....

 

JTA가 잘되지 않아서..어제 하루 동안 찾아서 해봤는데..못찾았는데..ㅠ.ㅠ..

오늘 스터디 와서 함께 해보니..해결 되었다 ㅎㅎㅎ 감사!!

 

PostgreSQL AUTOCOMMIT : postgreSQL은 default가 ON 이다.-_-;; MS-SQL도 그러하다.

Oracle은 OFF가 default~~!

설정 방법은 아래와 같다.

 

 

 

2PC 관련 설명^-^(성능 이슈..느림, 외부와 연결이 힘듬..계정/암호 알려 줄 것인가?..ㅋㅋ;;)

통합 이슈 : 2pc DATASOURCE를 넘어..서로 다른 조직에서 서로다른 애플리케이션, 환경에서의 통합은 어떻게 해야하나??? 옛날에 COBBA라는 녀석이 나옴.

자바진영은 새로운것을 만듬. => RMI (Java끼리) - call 가능, 트랜잭션 보장 x

원격호출 + 트랜잭션 보장 => EJB

통합을 쉽게 하기 위해! WebService가 나옴!! 오홀~

규칙 중에 하나가 SOAP 프로토콜!! 표준이 나옴

조금 더 간단한 REST가 나옴(http 기반으로) - 잘지원해주는 서비스를 RestFul 이라 함.

 

인증

: SSO, OAUTH(디펙토 : 사실상의 표준?) - 트위터에서 만들었다고 함.

SSO는 내부에서 많이 씀. 외부는 OAUTH를 많이씀. 그러나 트랜잭션을 보장 하지 못함.

그러면 이것은 어떻게 푸느냐?? 협의로 풀 수 있다.(비지니스로 품, 절차를 만듬)

비지니스를 쪼개서 잘 만들어야 함..절차를!

 

XA Driver  : 2pc를 제공해주는 jdbc를 써야 함.

 

SOAP : 스프링에서 웹서비스를 지원해주지만 실질적인 것은 apache cxf를 사용.

 

분산트랜잭션도 마찬가지로 JTA를 지원해주지만 실질적인 분산 트랜잭션은 JBOSS에서 해준다.

 

통합 : 아파치 카멜, 스프링 인티그레이션

 

 

 

 

저작자 표시 비영리 변경 금지
신고

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

postgreSQL clob 처리

DataBase/Postgresql 2013.05.13 16:06
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T

 

 

postgreSQL을 사용하면서 oracle에서 사용되어지는 CLOB, BLOB을 대신하여 어떤 것을 사용해야하는지..

알아보자^-^

 

아래의 링크(매뉴얼)을 통해 알 수가 있다.

http://www.postgresql.org/docs/current/static/datatype-character.html

 

"In addition, PostgreSQL provides the text type, which stores strings of any length"
Be aware that CLOBs in Postgres are limited to 1GB, whereas Oracle can handle 4GB (which is also well documented in the manual) - 참고 사이트 : http://forums.devshed.com/postgresql-help-21/does-postgres-support-clob-535055.html

 

결론 : postgreSQL은 text라는 녀석(1G limited) 으로 대신 하고 있다는 것을 알 수 가 있다.

 

 

저작자 표시 비영리 변경 금지
신고

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

postgreSQL 외부접근, DB 공유

DataBase/Postgresql 2013.03.22 11:21
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T


위의 그림은 내용과 전혀 무관한 그림입니다 =ㅁ=ㅋㅋㅋ;

이번에 실습교육을 진행하면서..DB를 셋팅하면서 pc마다 다른 환경에...이상한 오류도 많고..안깔리는 경우도 많고...ㅋㅋㅋㅋ 최악이였다 = =;;

그래서..postgreSQL을 설치한 PC에 모두 붙는 형태로..가야겠다는 생각이 들었다^-^good~

그럼 어떻게??? DB를 공유 시킬 수 있을까?? (spring + postgreSQL 환경)
spring 설정은 제외 한 설명을 하겠다.

1. pg_hba.conf 파일.
Postgresql 은 Host Based Authorization 기반으로 외부 접속을 제어 한다. 이는 pg_hba.conf 파일을 다음과 같이 편집함으로써 가능하다.

 host    all             all             192.134.2.11/32          trust

localhost - > 192.134.2.11(db가 설치된 ip) -> cmd -> ipconfig /all 로 확인 가능!
md5로 하면...pgAdmin에 접속이 안되었다...그래서 trust로!! 해주었다.
위에서 all all 즉 모든 사용자가 192.134.2.11 이 아이피에있는 DB를 접근 가능 하다는 설정이다.

그리고..제일 중요한!! 한줄!! 이 한줄...
 host   all              all              0.0.0.0/0               trust


2. postgresql.conf 파일.

이 파일도 반드시 설정을 바꿔줘야 외부에서 접속을 할 수 있다. 바꿔야 할 설정은 다음과 같다.

 listen_addresses = '*'                  # what IP address(es) to listen on;

 port   5432

max_connections = 100

이 설정과 함께!! 방화벽 설정 해제를 해주시면...됩니다^^

테스트는 다른PC에서 접속해보시면 됩니다.(소스 코드 ㄱㄱㄱ)

- 끝 -




저작자 표시 비영리 변경 금지
신고

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

  • 우와 2013.09.04 15:56 신고 답글 | 수정/삭제 | ADDR

    정말 딱 찾던 정보입니다 감사합니다^-^

    • Favicon of http://acet.pe.kr BlogIcon String Ace-T 2013.09.05 00:32 신고 수정/삭제

      도움이 되셨다니 다행이에요! ㅎㅎ
      코멘트 감사합니다!^-^/

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections

DataBase/Postgresql 2013.01.16 19:04
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T


[위의 그림은 본 내용과 무관 합니다..ㅋㅋ YG 걸그룹의 새얼굴 김지수!]

혹은

JNDI lookup for name [database.driver.ClassName] threw NamingException with message: database.driver.ClassName not bound. Returning null.

이런 에러가 났다면...

환경은 Spring3.1 & Jboss & Postgre9.x


C:\Acet\Middleware\jboss-eap-5.1\jboss-as\server\default\deploy
의 postgres-ds.xml 을 열어서...
<datasources> 부분을 수정 하면 된다. 다른 서버이름 데이터베이스이름 등등이 틀렸었다..ㅋㅋ
 <datasources>
  <xa-datasource>
    <jndi-name>PostgresDS</jndi-name>
    <track-connection-by-tx>true</track-connection-by-tx>
    <xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
    <xa-datasource-property name="ServerName">localhost</xa-datasource-property>
    <xa-datasource-property name="PortNumber">5432</xa-datasource-property>
    <xa-datasource-property name="DatabaseName">postgres</xa-datasource-property>
    <xa-datasource-property name="User">postgres</xa-datasource-property>
    <xa-datasource-property name="Password">acet1004</xa-datasource-property>

위의 부분을 수정하니 잘돌아갔다^-^good~

저작자 표시 비영리 변경 금지
신고

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

postgre SQL : 예외처리

DataBase/Postgresql 2012.11.21 18:25
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T


예외처리? 오류처리?

음..anyways...찾아보니 RAISE 라는 것과 Exception이라는 것이 있는 것 같다.
우선 EXCEPTION 을 학습하고 적용시켜 보자^-^


http://www.postgresql.org/docs/8.0/static/plpgsql-control-structures.html


By default, any error occurring in a PL/pgSQL function aborts execution of the function, and indeed of the surrounding transaction as well. You can trap errors and recover from them by using a BEGIN block with an EXCEPTION clause. The syntax is an extension of the normal syntax for a BEGIN block:

[ <<label>> ]
[ DECLARE
    declarations ]
BEGIN
    statements
EXCEPTION
    WHEN condition [ OR condition ... ] THEN
        handler_statements
    [ WHEN condition [ OR condition ... ] THEN
          handler_statements
      ... ]
END;

예제 1] When an error is caught by an EXCEPTION clause, the local variables of the PL/pgSQL function remain as they were when the error occurred, but all changes to persistent database state within the block are rolled back. As an example, consider this fragment:

더보기


 
예제2] This example uses exception handling to perform either UPDATE or INSERT, as appropriate.

더보기

 

Handling Errors and Exceptions
RAISE statements raise errors and exceptions during a PL/pgSQL function's operation. A RAISE statement sends specified information to the PostgreSQL elog mechanism (the standard PostgreSQL error logging utility, which typically logs data either to /var/log/messages , or to $PGDATA/serverlog , as well as displaying to stderr ).

A RAISE statement is also given the level of error it should raise, and the string it should send to PostgreSQL. Additionally, you can list variables and expressions whose values you wish to have placed into the string. Use percent signs (%) to mark the locations in the string at which you want those values inserted. The syntax of the RAISE statement is as follows:

Table 11-1 lists the three possible values for the RAISE statement's level and their meanings.

더보기


http://www.linuxtopia.org/online_books/database_guides/Practical_PostgreSQL_database/PostgreSQL_x20238_003.htm

에러코드
http://www.postgresql.org/docs/9.1/static/errcodes-appendix.html

우선..더 학습이 필요할 것 같다..ㅋㅋ
퇴근 시간이니.. 집으로 =3=3=3;;
눈이 너무 피로하다..ㅠ_ㅠ.. 
저작자 표시 비영리 변경 금지
신고

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

postgresql 학습하기

DataBase/Postgresql 2012.11.21 17:55
[Good Comment!!, Good Discussion!!, Good Contens!!]
[ If you think that is useful, please click the finger on the bottom~^-^good~ ]
by ace-T


pgAdmin...오픈소스 데이타베이스라고 한다. 와우!

학습해보자~~+ㅁ+/

http://www.postgresql.org/docs/8.1/static/plpgsql-development-tips.html 


프로시저 or 함수를 사용해보자^-^
PL/pgSQL - SQL Procedural Language

36.11. Porting from Oracle PL/SQL
http://www.postgresql.org/docs/8.1/static/plpgsql-porting.html#PLPGSQL-PORTING-EX2 

This section explains differences between PostgreSQL's PL/pgSQL language and Oracle's PL/SQL language, to help developers who port applications from Oracle® to PostgreSQL.

PL/pgSQL is similar to PL/SQL in many aspects. It is a block-structured, imperative language, and all variables have to be declared. Assignments, loops, conditionals are similar. The main differences you should keep in mind when porting from PL/SQL to PL/pgSQL are:

  • There are no default values for parameters in PostgreSQL.

  • You cannot use parameter names that are the same as columns that are referenced in the function. Oracle allows you to do this if you qualify the parameter name using function_name.paramater_name.

  • You can overload function names in PostgreSQL. This is often used to work around the lack of default parameters.

  • No need for cursors in PL/pgSQL, just put the query in the FOR statement. (See Example 36-6.)

  • In PostgreSQL the function body must be written as a string literal. Therefore you need to use dollar quoting or escape single quotes in the function body. See Section 36.2.1.

  • Instead of packages, use schemas to organize your functions into groups.

  • Since there are no packages, there are no package-level variables either. This is somewhat annoying. You can keep per-session state in temporary tables instead.

 
예제 1 Example 36-5. Porting a Simple Function from PL/SQL to PL/pgSQL

더보기


예제 2 Example 36-6. Porting a Function that Creates Another Function from PL/SQL to PL/pgSQL

The following procedure grabs rows from a SELECT statement and builds a large function with the results in IF statements, for the sake of efficiency. Notice particularly the differences in the cursor and the FOR loop.

This is the Oracle version:

더보기


Here is how this function would end up in PostgreSQL:

더보기


IF ELSE
http://www.postgresql.org/docs/8.1/static/plpgsql-control-structures.html




작성한 function - 예외처리는 하지 않았다.(간단한 예제로 만들어보았다.)

더보기

 
팁!]
만든 Function 실행하기!!
실행은 컴파일 -> 실행이 되겠다.

1) 아래와 같이 작성을 한 뒤에 F5(실행)을 시키면 컴파일이 된다.

 
2) 아래와 같이 SELECT function 이름(); 을 한 뒤 pgScript 수행(F6)을 누르면 수행이 되어진다.

 
3) 간단히 select를 날려 확인하면 된다. 

FOR 말고도 FECHE, CURSOR 등 다양한 반복적인 행위를 하는 것들이 있다.
오라클에서는 CURSOR를 많이 썼었는데 여기에서는 FOR를 한번 써보았다.

또한 리포트도 지원을 해준다.


웹에서 확인


또한..콘솔창도 열수가 있다^-^ 
앞으로도 학습 할 것이 많은 것으로 간주가 되어진다.~

-끝- 
저작자 표시 비영리 변경 금지
신고

acet 박태하가 추천하는 readtrend 추천글!

설정

트랙백

댓글

:::: facebook을 이용하시는 분들은 로그인 후 아래에 코멘트를 남겨주세요 ::::

티스토리 툴바