테이블 복제

테이블 복제

QA

테이블 복제

본문

안녕하세요,

이전에도 외부db연동건 때문에 질문올렸는데 죄송합니다.

 

외부db를 연동해서 뿌려줄 때에는 이런저런 오류때문에

다들 내부db로 복제해서 쓴느걸 권장하시는데..

 

1. 해당게시판에서 외부db연동

2. 외부db table select

3. $result에 담은 후 외부db연동 해제

4. 내부db연동

5. 내부db에 $result insert

 

이런 흐름이 맞나요? 

 

이 질문에 댓글 쓰기 :

답변 5

제일 좋은 방법은 외부 DB를 연결하여 프로그램을 만드는 방법이 좋아요

 

그런데 이 부분을 못하시기 때문에 차선책인 db를 복사 한 후에 작업 하시는 것을 추천하는 것이에요

 

 

저번에 작업 방법을 댓글로 남겼는데요.

 

다시 정리 해드릴게요

 

board.php나 tail.php 안에 아이프레임으로 파일 한개 만드세요.

 

그 파일은 사이트 접속시 매번 실행 될 거에요.

 

아무런 조건이 없으니깐요.   외부 DB에서 내부 DB로 데이터만 복사하닌까요.

 

 

1. 아이프레임을 만든다.

2. 대략적인 코딩

2.1 내부 테이블에서 외부 테이블에 시퀀스를 알아낸다.

시퀀스를 저장해야지 외부 테이블 어디까지 저장되었는지 알 수 있죠.

 select max(wr_id) as wr_id from 내부 테이블 

2.2 외부 DB 조회

select * from 외부 테이블 where wr_id > '외부시퀀스' order by wr_id asc  

2.3 조회된 데이터를 내부 테이블에 넣는다.

while( $f = sql_fetch_array( $res ) ){

insert 쿼리   <== 이곳에서 중요한 것은 외부 테이블 시퀀스 번호를 꼭 저장해야 해요. 그래야 다음에 그 번호를 초과한 데이터 부터 복사할 수있어요 

}

 

이렇게 하면 내부 테이블로 시도 때도 없이 접속하여 데이터를 복사하게 될 것이고요.

 

그럼.. 그누보드 board.php를 순정 상태에서 사용할 수 있어요

 

그럼 이전처럼 list.skiin에 if로 db연동부분 따로 작성해주지 않아도 되나요?
board.php에 db연동부분은 어떻게 해결하나요?
db복제하려면 내부,외부 db가 둘 다 연결되어 있어야 하지 않나요?

당연 dbcon을 두개 만들어야죠.
내부, 외부

mysqli를 이용하면 편해요.

mysql과 비슷한 방법으로 연결되고요.
이것은 네이버에 검색 해보세요.

dbcon 할 줄 알고 select 할 줄 알고 내부, 외부 테이블 구조가 같으니
dbcon만 성공하면 쉽게 풀리죠.

단,
이경우는 그누보드 라이브러리 못 사용해요.

mysqli_query, mysqli_fetch_array를 검색해보세요.

mysql_query, mysql_fetch_array와 같아요
mysql_query => 그누보드 sql_query
mysql_fetch_array => 그누보드 sql_fetch_array
에요.

 

결국 외부테이블을 내부서버에 복사해서 사용한다는 것인가요?(나중에 실력이 좀 붙어서 보면 왜 이런짓을 했을까 할 겁니다)

질문의 내용 그대로만 하면 됩니다. 정확한 순서입니다

그런데 복사할 필요없이 외부, 내부 왔다갔다하면서 테이블을 열고 쓰고 하는 방법도 똑 같습니다

다만

4. 내부db연동 --> 이것은 connect를 다시 하는 것이 아니라 $g5['connect_db'] 값만 변경해주면 됩니다

 -- 디비해제 즉 mysql_close()는 하지않고 그냥 둡니다

 

 이 작업을 하는 방법이 예전 답변 어디에 설명이 있었을텐데...

 이렇게 하는 이유는 그누보드 자체함수를 모두 그대로 사용할 수 있게 하는 것입니다

 에를들어 외부 디비에 작업할때도 $result=sql_query("select~~~), sql_query('update~~) 처럼 내부 디비 작업과 동일하게 하면 된다는 말입니다

 

common.php 파일 열어보니 균이님이 이야기 하신게 제일 좋은 대인인거 같네요
실제적인 common.php파일에 하나의 function을 제작하고 그 function에다가
connect시킬 디비를 지정하게 하고 query를 날리기 이전에 function호출을 해주면 될듯
하네요...

현재는 내부db연결했다가 외부db연결했다가~ 하고 잇는데..
db를 동시에 두개를 연동해야 복제할 수 있는 거 아닌가요?
그렇다면 외부db연결 후 $result에 담은 후 내부db연결하면..$result에 담긴 내용은 없어지지 않는다 이건가여?

그럼 대부분 db복제보단 AJAX가 훨씬 간단하다는거군요..

외부 디비에서 가지고 오는 데이터를 

내부 디비와 혼합해서 출력을 해주시는게 아니라면

 

그냥 비동기 형태의 ajax로 외부 서버와 연동해서

해당 데이터만 배열로 받아서 처리 하시는걸 생각해 보시는것도 

나쁘진 않아 보이는데요...

 

뭐 내부서버와 혼합해서 출력을 하더라도... 그냥 배열로 처리한다음

출력해주시면 될듯한데요

 

 

정확하게 어떤 시스템에서 어떤 데이터의 형태인지 알수 없으니..^^

글쎄요 php내에서 해결 하시는게 훨씬 어려워 보입니다만..
jquery를 활용하시면 ajax그리 어렵지 않습니다.

php소스 보실 수 있는 실력이시라면 금방 배우실수 있어요
ajax매소드만 조금 보시면 되니깐요..

음.. ajax로 한다면 흐름이 어떻게 될까여?
일단 그누보드 순정기능을 사용하고자 하면
내부db에 복제하는게 가장 정확한 방법인거 같아서요..

내부db테이블명과 외부db테이블명을 같게해도 데이터가 꼬인다고 해야하나..?
문제점이 발생하더라구요 ;;

출력은 그냥 외부db연동해서 쿼리문 실행해서 하면 출력은 하는데 그누보드 기능이 먹통이고..(실은 php전공도 아닙니다..ㅎ...ㅜㅜ)

글쎄요 정확하게 어떤기능을 원하시는지를 알 수 없으니 정확한 답변을 드리기가 힘드네요..
그냥 제작의뢰로 가시는게 편해 보이긴 합니다만...

기능설명을 쓰기 힘드부분이라면
쪽지로 보내주시면 일단 아는 부분이라면 조언드리겠습니다.

음... 전에 XML이나 JSON으로 데이터를 받아서 보여주는 게시판을 말씀드렸는데, 그 내용이 AJAX와 동일한 내용이나 마찬가지 입니다.

AJAX가 jquery 를 쓰면 어렵지 않은건 사실이나 전혀 모르는 상태에서 개념부터 잡고 들어가려면 이해하시는데 시간이 좀 걸리실겁니다.

같은 문제로 워낙 고생하시는것 같아서 도와드리고 싶어도 간단한 내용이 아니라 참 안타깝네요.

화이팅 입니다~~!!! 

xml이나 json 같은 거 필요 없고용,.

 

그냥 외부 db connect 하나 더 만들어서 사용하시면 됩니다.

 

연동 방법은 어떻게 하실지 정확한 설계를 하신 다음에 정하시면 됩니다.

 

질문글을 읽어본 결과 아직 비전공자이거나 초급이신 것 같으신데, 혼자 감당하기는 어려울 경우

경력직의 도움을 받아보세요. 간단한 것인데 아직 경험이 부족하여 헤매시는 것 같습니다. 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 45
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT