테스트 사이트 - 개발 중인 베타 버전입니다

백업된 데이타베이스의 멤버 데이타를 비교하여 복구하려고 하는데...?? 채택완료

크레이티브 3년 전 조회 2,551

기존의 멤버데이터를 어찌어찌하다 일부 3/2 정도의 회원이 삭제되었습니다.

백업을 해 놓고 해야 하는데 실수로 삭제되었습니다.

 

그래도 다행스럽게 예전 데이터를 백업 받아놓은게 있더라고요

그래서 phpadmin로 기존데이터를 데이타베이스를 하나 만들어 복구를 했는데...

 

sunjang -> 현재 운영 되고 있는 데이타베이스

       

test1 -> 임시로 데이타베이스를 복구한곳 (백업해 둔 데이타베이스)

 

이렇게 두곳이 있는데 백업해 둔 데이타베이스의 멤버데이타를 현재 운용되고 있는 멤버데이타에 삭제된 부분만 비교해서 복구를 하려고 하는데 어떻게 해야 할까요.?

 

백업해 둔 데이타 베이스 회원이 약 3만명이상이라서 웹상에서는 복구중 정지할것 같으니 putty 에서 할수 있는 방법 알려주시면 감사하겠습니다

 

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 5개

채택된 답변
+20 포인트
insert into sunjang.g5_member ( mb_id, ... mb_10)
select a.mb_id, .. a.mb_10 from test1.g5_member a left join sunjang.g5_member b on a.mb_id=b.mb_id where b.mb_id is null

g5_member의 컬럼 중에서 mb_no만 빼고 컬럼을 다 적으세요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 8개

크레이티브
3년 전
전에도 답변을 주셨는데 다시 답변 주셔서 감사합니다.
그런데 어떻게 사용하는지 안되던데요.?
어떻게 사용하는지 알려주시면 감사하겠습니다.
크레이티브
3년 전
insert into sunjang.g5_member ( mb_id,mb_password,mb_password2,mb_name,mb_nick,mb_nick_date,mb_email,mb_homepage,mb_level,mb_sex,mb_birth,mb_tel,mb_hp,mb_certify,mb_adult,mb_dupinfo,mb_zip1,mb_zip2,mb_addr1,mb_addr2,mb_addr3,mb_addr_jibeon,mb_signature,mb_recommend,mb_point,mb_today_login,mb_login_ip,mb_datetime,mb_ip,mb_leave_date,mb_intercept_date,mb_email_certify,mb_email_certify2,mb_memo,mb_lost_certify,mb_mailling,mb_sms,mb_open,mb_open_date,mb_profile,mb_memo_call,mb_memo_cnt,mb_scrap_cnt,mb_1,mb_2,mb_3,mb_4,mb_5,mb_6,mb_7,mb_8,mb_9.mb_10,google_otp_code)
select a.mb_id, .. a.mb_10 from test1.g5_member a left join sunjang.g5_member b on a.mb_id=b.mb_id where b.mb_id is null

1. 이런식으로 넣으라는 말인가요.?
phpamdin 에서 다 복사해 일일이 적었습니다.


2. 그런데 test1 에 오래전것이라 마지막에 google_otp_code 가 없습니다
제가 google_otp_code 얼마전에 넣었거든요

google_otp_code 를 삭제를 해야 하나요.?
엑스엠엘
3년 전
google_otp_code 가 필요하면 넣어야 하고
필요 없으면 빼면 됩니다.
query에서는 양쪽 컬럼이 같게 하는 것이 중요합니다.
크레이티브
3년 전
최종적으로 알려주신 데로 하면

insert into sunjang.g5_member ( mb_id,mb_password,mb_password2,mb_name,mb_nick,mb_nick_date,mb_email,mb_homepage,mb_level,mb_sex,mb_birth,mb_tel,mb_hp,mb_certify,mb_adult,mb_dupinfo,mb_zip1,mb_zip2,mb_addr1,mb_addr2,mb_addr3,mb_addr_jibeon,mb_signature,mb_recommend,mb_point,mb_today_login,mb_login_ip,mb_datetime,mb_ip,mb_leave_date,mb_intercept_date,mb_email_certify,mb_email_certify2,mb_memo,mb_lost_certify,mb_mailling,mb_sms,mb_open,mb_open_date,mb_profile,mb_memo_call,mb_memo_cnt,mb_scrap_cnt,mb_1,mb_2,mb_3,mb_4,mb_5,mb_6,mb_7,mb_8,mb_9.mb_10)
select a.mb_id,mb_password,mb_password2,mb_name,mb_nick,mb_nick_date,mb_email,mb_homepage,mb_level,mb_sex,mb_birth,mb_tel,mb_hp,mb_certify,mb_adult,mb_dupinfo,mb_zip1,mb_zip2,mb_addr1,mb_addr2,mb_addr3,mb_addr_jibeon,mb_signature,mb_recommend,mb_point,mb_today_login,mb_login_ip,mb_datetime,mb_ip,mb_leave_date,mb_intercept_date,mb_email_certify,mb_email_certify2,mb_memo,mb_lost_certify,mb_mailling,mb_sms,mb_open,mb_open_date,mb_profile,mb_memo_call,mb_memo_cnt,mb_scrap_cnt,mb_1,mb_2,mb_3,mb_4,mb_5,mb_6,mb_7,mb_8,mb_9.mb_10 from test1.g5_member a left join sunjang.g5_member b on a.mb_id=b.mb_id where b.mb_id is null

이렇게 넣으란 말인가요.?
정확히 맞는지 확인해 주시면 감사하겠습니다

그리고

query에서는 양쪽 컬럼이 같게 하는 것이 중요합니다.
이말이 무슨말인지요.?
엑스엠엘
3년 전
정확한 것은 한번 실행 보시면 되구요,
"query에서는 양쪽 컬럼이 같게 하는 것이 중요합니다.
이말이 무슨말인지요.?"이 것은
insert 쪽 컬럼과
select 쪽 컬럼이 데이터 타입과 컬럼 순서, 갯수가 같아야 한다는 거죠.
크레이티브
3년 전
오류메세지가 뜨네요
사진이 댓글쓰기에 안들어가서 답변을 썼습니다 확인해 주시면 감사하겠습니다
크레이티브
3년 전
엑스엠엘님 알려주신데로 다시 수정을 해서 아래와 같이 수정했습니다

insert into sunjang.g5_member ( mb_id,mb_password,mb_password2,mb_name,mb_nick,mb_nick_date,mb_email,mb_homepage,mb_level,mb_sex,mb_birth,mb_tel,mb_hp,mb_certify,mb_adult,mb_dupinfo,mb_zip1,mb_zip2,mb_addr1,mb_addr2,mb_addr3,mb_addr_jibeon,mb_signature,mb_recommend,mb_point,mb_today_login,mb_login_ip,mb_datetime,mb_ip,mb_leave_date,mb_intercept_date,mb_email_certify,mb_email_certify2,mb_memo,mb_lost_certify,mb_mailling,mb_sms,mb_open,mb_open_date,mb_profile,mb_memo_call,mb_memo_cnt,mb_scrap_cnt,mb_1,mb_2,mb_3,mb_4,mb_5,mb_6,mb_7,mb_8,mb_9.mb_10)
select a.mb_id,a.mb_password,a.mb_password2,a.mb_name,a.mb_nick,a.mb_nick_date,a.mb_email,a.mb_homepage,a.mb_level,a.mb_sex,a.mb_birth,a.mb_tel,a.mb_hp,a.mb_certify,a.mb_adult,a.mb_dupinfo,a.mb_zip1,a.mb_zip2,a.mb_addr1,a.mb_addr2,a.mb_addr3,a.mb_addr_jibeon,a.mb_signature,a.mb_recommend,a.mb_point,a.mb_today_login,a.mb_login_ip,a.mb_datetime,a.mb_ip,a.mb_leave_date,a.mb_intercept_date,a.mb_email_certify,a.mb_email_certify2,a.mb_memo,a.mb_lost_certify,a.mb_mailling,a.mb_sms,a.mb_open,a.mb_open_date,a.mb_profile,a.mb_memo_call,a.mb_memo_cnt,a.mb_scrap_cnt,a.mb_1,a.mb_2,a.mb_3,a.mb_4,a.mb_5,a.mb_6,a.mb_7,a.mb_8,a.mb_9.a.mb_10 from test1.g5_member a left join sunjang.g5_member b on a.mb_id=b.mb_id where b.mb_id is null

그리고 다시 phpmyadmin 에 sunjang 데이타베이스에 들어가서 SQL 탭에 넣고 실행을 누르니 아래와 같이 오류메세지가 나옵니다.?
뭐가 잘못된것인가요.?


오류
정적 분석 :

분석 중에 1개의 오류가 발생했습니다.

예상되지 않은 점(.)입니다. (near "." at position 1178)
SQL 질의: 문서

insert into sunjang.g5_member ( mb_id,mb_password,mb_password2,mb_name,mb_nick,mb_nick_date,mb_email,mb_homepage,mb_level,mb_sex,mb_birth,mb_tel,mb_hp,mb_certify,mb_adult,mb_dupinfo,mb_zip1,mb_zip2,mb_addr1,mb_addr2,mb_addr3,mb_addr_jibeon,mb_signature,mb_recommend,mb_point,mb_today_login,mb_login_ip,mb_datetime,mb_ip,mb_leave_date,mb_intercept_date,mb_email_certify,mb_email_certify2,mb_memo,mb_lost_certify,mb_mailling,mb_sms,mb_open,mb_open_date,mb_profile,mb_memo_call,mb_memo_cnt,mb_scrap_cnt,mb_1,mb_2,mb_3,mb_4,mb_5,mb_6,mb_7,mb_8,mb_9.mb_10) select a.mb_id,a.mb_password,a.mb_password2,a.mb_name,a.mb_nick,a.mb_nick_date,a.mb_email,a.mb_homepage,a.mb_level,a.mb_sex,a.mb_birth,a.mb_tel,a.mb_hp,a.mb_certify,a.mb_adult,a.mb_dupinfo,a.mb_zip1,a.mb_zip2,a.mb_addr1,a.mb_addr2,a.mb_addr3,a.mb_addr_jibeon,a.mb_signature,a.mb_recommend,a.mb_point,a.mb_today_login,a.mb_login_ip,a.mb_datetime,a.mb_ip,a.mb_leave_date,a.mb_intercept_date,a.mb_email_certify,a.mb_email_certify2,a.mb_memo,a.mb_lost_certify,a.mb_mailling,a.mb_sms,a.mb_open,a.mb_open_date,a.mb_profile,a.mb_memo_call,a.mb_memo_cnt,a.mb_scrap_cnt,a.mb_1,a.mb_2,a.mb_3,a.mb_4,a.mb_5,a.mb_6,a.mb_7,a.mb_8,a.mb_9.a.mb_10 from test1.g5_member a left join sunjang.g5_member b on a.mb_id=b.mb_id where b.mb_id is null

MySQL 메시지: 문서

#1064 - 'SQL 구문에 오류가 있습니다.' 에러 같습니다. ('.mb_10 from test1.g5_member a left join sunjang.g5_member b on a.mb_id=b.mb_i...' 명령어 라인 2)
크레이티브
3년 전
제가 열심히 다시 한번 보니 마지막에 , 이 들어가야 하는데 . 이 들어갔네요
다시 수정하고 넣으니 바로 되네요

정말 감사합니다...
답변 채택했습니다 다시 한번 감사합니다

댓글을 작성하려면 로그인이 필요합니다.

크레이티브

엑스엠앨님 오류메세지가 뜨네요.?

왜 일까요.?

알려주시면 감사하겠습니다

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

엑스엠엘
3년 전
select a.mb_id,
a.mb_password,
a.mb_password2,
...

이런 식으로 다 a.을 붙여 주어야 합니다.

댓글을 작성하려면 로그인이 필요합니다.

크레이티브

https://sir.kr/bbs/profile.php?mb_id=xml" onclick="return false;" rel="nofollow" target="_blank" title="엑스엠엘 자기소개">엑스엠엘 님의 답변의 내용을 넣어보았는데 에러가 나오네요

이렇게 사용하는것인가요.?

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

엑스엠엘
3년 전
...
이 아니라
g5_member에 있는 컬럼을 다 적으세요, mb_no 빼고.
당연 순서는 같아야 하구요.

댓글을 작성하려면 로그인이 필요합니다.

크레이티브

https://sir.kr/bbs/profile.php?mb_id=marscompany" onclick="return false;" rel="nofollow" target="_blank" title="마르스컴퍼니 자기소개">마르스컴퍼니 님의 답변을 넣어 보았는데 에러가 나옵니다

이렇게 하는것인지.?

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

3년 전

만일의 상황을 대비하여 현 DB 테이블(sunjang.g5_member) 백업 후 진행하시기를 바랍니다.

 

</p>

<p>insert into sunjang.g5_member</p>

<p>select *</p>

<p>  from test1.g5_member</p>

<p> where not exists (select 1 from sunjang.g5_member where mb_no = test1.g5_member.mb_no)</p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

크레이티브
3년 전
이 소스를 어떻게 사용해야 하나요.?

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인