DBLink Datapump

싱하·2024년 8월 27일
0

oracle

목록 보기
4/6

최근에 DR없는 서비스 장애가 터졌다...Fuxxxxxx!

Mission

서비스 중의 중간다리 역할을 해주는 놈(ex. A업무)의 스토리지 작업 중 장애가 터져버렸다.
DR구축 전까지 이 놈의 비상전환용을 찾아서 매주 1회라도 데이터를 옮겨둬야한다.

지령 : 주 1회, 이 놈의 데이터를 B업무 DB(운영중인 다른놈)에다가 임시로라도 옮겨둬라~

How?

옮길 용량은 크지않으니 일단 어떻게 옮길 지 고민을 해봤다.

흠냠... A와 B의 물리적인 위치는 다르기 때문에 방화벽을 열수 있나?

확인 결과 : 전용선이 뚫려있으니 Ok

B에다가 부어둬야 하니 DBLINK는 어디에? tnsnames.ora는 어디꺼를 바꿔야하나...
엔지니어에 문의 후 알게됨.

Do(1)

어디에다 만들어야하냐!
A의 데이터를 B에다가 부어야한다.
A->B라고 생각하면 오산.
B에서 A를 긁어와야함.
고로, B(비상전환용)꺼 tnsnames.ora DBLINK를 생성 및 수정

tnsnames.ora
A업무 alias = (DESCRIPTION = 
	(ADDRESS = (PROTOCOL = TCP)(HOST = A DB IP)(PORT = A DB PORT)) 
	(CONNECT_DATA = 
		(SERVER = DEDICATED) 
		(SERVICE_NAME = A DB ServiceName)
    )
)

tnsping A업무alias 를 했을때 정상? -> DBLINK 만들러!
안된다? -> 방화벽체크 및 tns정상수정 확인

Do(2)

DBLINK를 만들어보자

B(비상용)
SQL> CREATE [PUBLIC] DATABASE LINK <link_name> 
       CONNECT TO <user> IDENTIFIED BY <password> 
       USING '<service_name>';

정상 생성 확인
SQL> select * from all_db_links;

간단히 접속 확인
SQL> select * from table@link_name;

정상 확인 되면 3단계로

Do(3)

$ impdp user/passwd network_link=link_name schemas=schema logfile=imp.log
-- 이외 옵션은 각자 환경에 맞게 추가
-- 나는 remap_tablespace, exclude, parallel, content 옵션 추가

로그 확인하면서 에러나는거 확인

나는 impdp할때 에러가 계속 나길래 확인해보니
as-is쪽에 있는 profile이 없어서 나는 에러였음.
profile도 꼭 확인 후 진행.

profile
끄적끄적...

0개의 댓글

관련 채용 정보