MySQL [MSSQLtoMySQL] MSSQL에서 MariaDB(MySQL) 마이그레이션
페이지 정보
본문
MSSQL to MySQL Exporter 프로그램을 이용해서 MS SQL 데이타베이스 자료를 MySQL 형식으로 변경해서 다운로드 합니다.
1. htps://sourceforge.net/projects/mssqltomysql/ 에서 프로그램을 다운로드 합니다.
파일명 : MSSQLtoMySQLv02.zip 최종업데이트 : 2003-06-18
2. 보안 경고가 열려도 바이러스나 그런 문제가 아니므로 안심하고 실행합니다.
3. MS SQL 서버 접속 정보를 입력후 [ Get Tables ] 를 클릭합니다.
4. 접속이 성공했다는 메시지가 보이네요
5. SQL 서버에 있는 테이블 목록이 보입니다.
6. MySQL 형식으로 변환하고자 하는 테이블을 선택합니다.
한번에 하나씩 데이타를 변환할 수 있습니다. ( 공짜니까 이정도 수고는 해줘야죠 )
7. 파일이름을 입력후 저장을 클릭합니다.
8. 생성된 파일을 MySQL 에 insert 합니다.
[ Error 메세지 ]
System.OutOfMemoryException: 'System.OutOfMemoryException' 형식의 예외가 Throw되었습니다.
변환할 자료양이 너무 많아서 변환하는 과정에서 메모리 부족을 호소하면 중단에 되네요
https://msdn.microsoft.com/ko-kr/library/9w766t6y.aspx
http://ensof.blog.me/220137191108
[ 사용후기 ]
A테이블
행수 : 172,686줄
용량 : 120MB
결과 : PC 성공 / 서버 성공 ( sql 데이타 추출 성공 )
B테이블
행수 : 191,659줄
용량 : 522MB
결과 : PC 실패 ( sql 데이타 추출 실패 )
서버 성공 ( sql 데이타 추출 성공 )
C테이블
행수 : 2,309,080
용량 : 891MB
결과 : 서버 실패 ( sql 데이타 추출 실패 )
[ 결론 ]
위 프로그램이 2003-06-13 배포된 32bit 프로그램으로이용에 한계가 확인되었습니다.
서버의 CPU와 메모리가 충분히 확보만 된다면 더 큰 용량의 테이블 추출도 가능하리라 생각됩니다.
Microsoft SQL Server Management Studio 에서 미리 테이블 용량을 확인후 이전할 테이블 용량이 제일 큰 테이블을 이전 테스트후 순차적으로 진행하는 것이 좋을듯 합니다.
테이블 용량을 확인하는 쿼리문 입니다.
select table_name = convert(varchar(30), min(o.name)) ,
table_size = convert(int, ltrim(str(sum(reserved) * 8.192 / 1024., 15, 0))), UNIT = 'MB'
from sysindexes i inner join sysobjects o on (o.id = i.id)
where i.indid in (0, 1, 255) and o.xtype = 'U' group by i.id order by 2 desc
참고자료
http://dd00oo.tistory.com/entry/DB-MSSQL-에서-MySQL-로-마이그레이션
https://www.happyjung.com/lecture/396
1. htps://sourceforge.net/projects/mssqltomysql/ 에서 프로그램을 다운로드 합니다.
파일명 : MSSQLtoMySQLv02.zip 최종업데이트 : 2003-06-18
2. 보안 경고가 열려도 바이러스나 그런 문제가 아니므로 안심하고 실행합니다.
3. MS SQL 서버 접속 정보를 입력후 [ Get Tables ] 를 클릭합니다.
4. 접속이 성공했다는 메시지가 보이네요
5. SQL 서버에 있는 테이블 목록이 보입니다.
6. MySQL 형식으로 변환하고자 하는 테이블을 선택합니다.
한번에 하나씩 데이타를 변환할 수 있습니다. ( 공짜니까 이정도 수고는 해줘야죠 )
7. 파일이름을 입력후 저장을 클릭합니다.
8. 생성된 파일을 MySQL 에 insert 합니다.
[ Error 메세지 ]
System.OutOfMemoryException: 'System.OutOfMemoryException' 형식의 예외가 Throw되었습니다.
변환할 자료양이 너무 많아서 변환하는 과정에서 메모리 부족을 호소하면 중단에 되네요
https://msdn.microsoft.com/ko-kr/library/9w766t6y.aspx
http://ensof.blog.me/220137191108
[ 사용후기 ]
A테이블
행수 : 172,686줄
용량 : 120MB
결과 : PC 성공 / 서버 성공 ( sql 데이타 추출 성공 )
B테이블
행수 : 191,659줄
용량 : 522MB
결과 : PC 실패 ( sql 데이타 추출 실패 )
서버 성공 ( sql 데이타 추출 성공 )
C테이블
행수 : 2,309,080
용량 : 891MB
결과 : 서버 실패 ( sql 데이타 추출 실패 )
[ 결론 ]
위 프로그램이 2003-06-13 배포된 32bit 프로그램으로
서버의 CPU와 메모리가 충분히 확보만 된다면 더 큰 용량의 테이블 추출도 가능하리라 생각됩니다.
Microsoft SQL Server Management Studio 에서 미리 테이블 용량을 확인후 이전할 테이블 용량이 제일 큰 테이블을 이전 테스트후 순차적으로 진행하는 것이 좋을듯 합니다.
테이블 용량을 확인하는 쿼리문 입니다.
select table_name = convert(varchar(30), min(o.name)) ,
table_size = convert(int, ltrim(str(sum(reserved) * 8.192 / 1024., 15, 0))), UNIT = 'MB'
from sysindexes i inner join sysobjects o on (o.id = i.id)
where i.indid in (0, 1, 255) and o.xtype = 'U' group by i.id order by 2 desc
참고자료
http://dd00oo.tistory.com/entry/DB-MSSQL-에서-MySQL-로-마이그레이션
https://www.happyjung.com/lecture/396
댓글목록
등록된 댓글이 없습니다.