mssql에서 mysql로 마이그레이션하는 작업은 시스템의 코드가 어떠냐에 따라 노가다의 정도가 다를 것으로 보인다. 작업 기간은 코드를 봐야 추측이 가능할 것이다.
0. 준비해야 할 사항(로컬에서)
- mysql 서버 설치
- mysql workbench
https://dev.mysql.com/downloads/workbench/
- mysql odbc 설치
https://dev.mysql.com/downloads/connector/odbc/
1. mssql to mysql 테이블/데이터 변환
- 스키마
mysql workbench 를 통해 스키마 정도는 무사히 마이그레이션이 가능하다.
- 데이터
mysql workbench를 통해서도 가능한 것으로 아는데, 테스트 상에서 문제가 많아 추후에 다시 테스트해보려고 한다.
mssql data를 덤프파일로 얻어 insert 가능하도록 적절하게 수정을 거치는 방법이 있다.
또 하나는 MSSQL to MySQL 프로그램을 이용하는 것인데, 대량인 경우는 에러가 발생하거나 먹통이
될 수도 있으므로, 테이블을 나눠서 얻는 것이 좋을 것이다.
이 또한 데이터를 어느 정도 수정을 해야 할 수도 있다.
2. select, view 쿼리
mysql과 mssql 은 sql 함수가 다른 것이 있으므로, 이를 찾아 수정해줘야 한다.
하단에 각각의 함수를 찾아볼 수 있는 w3schools.com 의 링크를 걸어뒀다.
3. 프로시저 변환
프로시저 역시 상당히 다른 부분이 많기 때문에 툴을 이용한다.
소스 내 프로시저 파라미터 수정이 필요할 수 있다.
이는 시스템 소스가 어떤 식으로 개발되어 있느냐에 따라 매우 다르다.
4. ASP 에서 mysql 연결 테스트하기
mysql ODBC 8.0을 사용했다.
<!--METADATA TYPE= "typelib" NAME= "ADODB Type Library"
FILE="C:\Program Files\Common Files\SYSTEM\ADO\msado15.dll" -->
<%
Dim strConn, Conn
strConn = "Driver={MySQL ODBC 8.0 UNICODE Driver};Server=localhost;Database=디비명;UID=디비계정;Pwd=비밀번호;Option=3"
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strConn
' select 테스트
set objRs=server.createobject("adodb.recordset")
Dim strQuery : strQuery = " SELECT * FROM members WHERE no = 4"
objRs.open strQuery,Conn
if objRs.bof = true Then
else
response.write objRs("id")
end If
' 프로시저 테스트
' 간단한 insert 프로시저이다.
SET objCmd = Server.CreateObject("ADODB.Command")
WITH objCmd
.ActiveConnection = Conn
.CommandText = "프로시저이름"
.CommandType = adCmdStoredProc
.Parameters.Append .CreateParameter("id", adVarChar, adParamInput, 20)
.Parameters.Append .CreateParameter("ip", adVarChar, adParamInput, 20)
.Parameters.Append .CreateParameter("site", adVarChar, adParamInput, 250)
.Parameters.Append .CreateParameter("engine", adVarChar, adParamInput, 50)
.Parameters.Append .CreateParameter("search_str", adVarChar, adParamInput, 250)
.Parameters.Append .CreateParameter("pReturn", adUnsignedTinyInt, adParamOutput, 1)
.Parameters("id") = "guest1"
.Parameters("ip") = "127.0.0.1"
.Parameters("site") = "http://example.xx.xx"
.Parameters("engine") = "hohoho"
.Parameters("search_str") = "ahaha"
.Execute , , adExecuteNoRecords
sReturn = .Parameters("pReturn")
END WITH
response.write sReturn
%>
5. 기타 참고하기
- ADO Data type
프로시저 사용시 ASP 코드상에서 CreateParameter를 사용하지 않은 경우 작성해야 할 수도 있는데,
그 경우 DataTypeEnum Values 가 필요할 수 있다.
https://www.w3schools.com/asp/met_comm_createparameter.asp
- mysql 함수
https://www.w3schools.com/mysql/mysql_ref_functions.asp
- mssql 함수
https://www.w3schools.com/sql/sql_ref_sqlserver.asp
'Programming > Classic ASP, ASP.NET' 카테고리의 다른 글
IIS HTTP 오류 403.14 - Forbidden (0) | 2023.06.26 |
---|---|
IIS 설정 백업하기 (0) | 2023.06.26 |
Classic ASP MVC 패턴 구현하기 관련 자료 (0) | 2023.01.17 |
[ASP.NET] 시작해보기 (0) | 2022.11.27 |
[IIS] asp에서 excel 이용할 때 필요한 AccessDatabaseEngine (0) | 2022.11.27 |
댓글