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

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

QA

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

본문

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

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

 

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

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

 

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

       

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

 

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

 

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

 

 

 

이 질문에 댓글 쓰기 :

답변 5

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만 빼고 컬럼을 다 적으세요.

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 를 삭제를 해야 하나요.?

최종적으로 알려주신 데로 하면

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에서는 양쪽 컬럼이 같게 하는 것이 중요합니다.
이말이 무슨말인지요.?

정확한 것은 한번 실행 보시면 되구요,
"query에서는 양쪽 컬럼이 같게 하는 것이 중요합니다.
이말이 무슨말인지요.?"이 것은
insert 쪽 컬럼과
select 쪽 컬럼이 데이터 타입과 컬럼 순서, 갯수가 같아야 한다는 거죠.

엑스엠엘님 알려주신데로 다시 수정을 해서 아래와 같이 수정했습니다

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)

제가 열심히 다시 한번 보니 마지막에 , 이 들어가야 하는데 . 이 들어갔네요
다시 수정하고 넣으니 바로 되네요

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

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

 


insert into sunjang.g5_member
select *
  from test1.g5_member
 where not exists (select 1 from sunjang.g5_member where mb_no = test1.g5_member.mb_no)

엑스엠엘 님의 답변의 내용을 넣어보았는데 에러가 나오네요

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

thumb-3717403211_1649131088.4167_730x464.png

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

왜 일까요.?

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

 

3717403211_1649235428.1843.png

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

회원로그인

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