본문 바로가기
Programming/Classic ASP, ASP.NET

Classic ASP + mssql 에서 Classic ASP + mysql 로 마이그레이션 하기

by Berasix 2023. 2. 24.
반응형

mssql에서 mysql로 마이그레이션하는 작업은 시스템의 코드가 어떠냐에 따라 노가다의 정도가 다를 것으로 보인다. 작업 기간은 코드를 봐야 추측이 가능할 것이다.

 

0. 준비해야 할 사항(로컬에서)

- mysql 서버 설치

- mysql workbench

https://dev.mysql.com/downloads/workbench/

 

MySQL :: Download MySQL Workbench

Select Operating System: Select Operating System… Microsoft Windows Ubuntu Linux Red Hat Enterprise Linux / Oracle Linux Fedora macOS Source Code Select OS Version: All Windows (x86, 64-bit) Recommended Download: Other Downloads: Windows (x86, 64-bit), M

dev.mysql.com

- mysql odbc 설치

https://dev.mysql.com/downloads/connector/odbc/

 

MySQL :: Download Connector/ODBC

Select Operating System: Select Operating System… Microsoft Windows Ubuntu Linux Debian Linux SUSE Linux Enterprise Server Red Hat Enterprise Linux / Oracle Linux Fedora Linux - Generic Oracle Solaris macOS Source Code Select OS Version: All Windows (x86

dev.mysql.com

 

1. mssql to mysql 테이블/데이터 변환

- 스키마

mysql workbench 를 통해 스키마 정도는 무사히 마이그레이션이 가능하다.

 

- 데이터

mysql workbench를 통해서도 가능한 것으로 아는데, 테스트 상에서 문제가 많아 추후에 다시 테스트해보려고 한다.

mssql data를 덤프파일로 얻어 insert 가능하도록 적절하게 수정을 거치는 방법이 있다.

또 하나는 MSSQL to MySQL 프로그램을 이용하는 것인데, 대량인 경우는 에러가 발생하거나 먹통이

될 수도 있으므로, 테이블을 나눠서 얻는 것이 좋을 것이다.

이 또한 데이터를 어느 정도 수정을 해야 할 수도 있다.

 

2. select, view 쿼리

mysql과 mssql 은 sql 함수가 다른 것이 있으므로, 이를 찾아 수정해줘야 한다.

하단에 각각의 함수를 찾아볼 수 있는 w3schools.com 의 링크를 걸어뒀다.

 

3. 프로시저 변환

프로시저 역시 상당히 다른 부분이 많기 때문에 툴을 이용한다.

http://www.sqlines.com/online

 

SQLines - Online SQL Conversion - SQL Scripts, DDL, Queries, Views, Stored Procedures, Triggers

 

www.sqlines.com

소스 내 프로시저 파라미터 수정이 필요할 수 있다. 

이는 시스템 소스가 어떤 식으로 개발되어 있느냐에 따라 매우 다르다.

 

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

 

ADO Command Object

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

- mysql 함수

https://www.w3schools.com/mysql/mysql_ref_functions.asp

 

MySQL Functions

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

- mssql 함수

https://www.w3schools.com/sql/sql_ref_sqlserver.asp

 

SQL Server Functions

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

 

728x90

댓글