2006년 7월 26일 수요일

DB Link 관련

DBA 택이 님 페이지 에서 퍼온 내용입니다.

http://blog.naver.com/taek78?Redirect=Log&logNo=40024448851

먼저 oraA, oraB 의 서비스네임을 가진 데이타베이스 2개가 있다고 하자.

그리고 oraA 에서 oraB 의 데이타를 보려고 한다.

간단하게 설명하면 아래의 절차와 같다.

1 oraA 에서 oraB 로 접속 가능하게 설정한다.
2 oraA 에서 oraB 로 접속해본다.
3 oraA 에서 db link 를 만든다.
4 만든 db_link 로 테이블을 select 해본다.




1. oraA 서버상에 상대 오라클 서버(oraB)를 등록한다.

% vi $ORACLE_HOME/network/admin/tnsnames.ora 파일에 등록함 (oraA)



oraB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = oraB의 ip 또는 host name )(PORT = 포트번호))
)
(CONNECT_DATA =
(SERVICE_NAME 또는 SID = remote SID)



2. 일단 접속해본다.

% sqlplus /@oraB

접속이 되면 빠져나온다.



3. DB Link 를 사용할 오라클 계정(oraA)으로 sqlplus에 로그인하고 다음과 같이 DB Link를 생성한다.

SQL> create database link <링크로사용할이름> connect to identified by using 'oraB(상대 서비스 네임)';



4. 잘 만들어 졌는지 확인

SQL> select * from tab@<링크이름>
oraB의 테이블정보와 일치하면 성공.


5. drop Database link 방법

잘못 만들었다면 지우고 다시 만든다.

SQL> drop database link <링크이름>;

6. Database link 현황 보기

SQL> select * from all_db_links;

SQL> select * from dba_db_links;



7. TNS-03505 에러 발생시

oraA와 oraB의$ORACLE_HOME/network/admin/sqlnet.ora 비교하여 NAMES.DIRECTORY_PATH= 의 값이 동일한지 확인

2006년 7월 4일 화요일

FLICKR

http://kr.blog.yahoo.com/mineout/1360457.html
http://kldp.org/~kss/node/52
http://ilmol.com/wp/2005/06/11/28/
http://www.airtightinteractive.com/projects/related_tag_browser/app/

2006년 7월 3일 월요일

Select Insert Select Create

--select Insert
[oracle]
INSERT INTO TESTTABLE(SELECT * FROM TESTTABLE WHERE TESTCOLUMN = 'TESTVALUE');
[mssql]
INSERT INTO TESTTABLE SELECT * FROM TESTTABLE WHERE TESTCOLUMN = 'TESTVALYE'

--select create
[oracle]
CREATE TABLE TESTTABLEBK AS SELECT * FROM TESTTABLE;

[mssql]
SELECT * INTO TESTTABLEBK FROM TESTTABLE