출처 : http://blog.naver.com/allnight123/8973253

 

http://wowhoon.pe.kr 의 박훈님이 제공해 주신 번역문입니다.

좋은글 제공해주신 박훈님께 감사드립니다.


 

데이터 적재

MySQL 서버와 함께 제공되는 클라이언트 프로그램인 mysqldump를 이용해 

MySQL 데이터베이스의 스키마와 데이터를.sql /.txt 의 다양한 포맷으로 

뽑아낼 수 있습니다. DTS는 mysqldump로 생성된 파일들을 이용해 오프라인 

상태에서도 대용량 테이블을 로딩할 수 있다. 

다음은 데이터를 로딩하는 진행과정을 설명한다. 

* mysqldump로 데이터를 추출해 SQL스크립트를 생성한다.

* 데이터를 뽑아내는 스크립트를 수행한다. 

* 추출된 문서를 사용한다. 

(추가적인 주석 :  mysqldump로 SQL 스크립트를 만든다는 것은…

mysqldump는 create table~~~ insert 테이블 값~~ 식의 이것이 쭈욱 이어진 

문서를 생성합니다. SQL서버의 백업과는 틀립니다. 이 스크립트를 

조금 변경하면 SQL서버에 별 무리없이 그대로 데이터를 삽입할 수 있게 되는 

겁니다. - 즉.. 백업본인데… INSERT 구문등으로 이루어진 것이라는 겁니다.)

 

mysqldump로 데이터를 추출하는 스크립트를 생성.

MySQL은 데이터베이스 덤프 또는 데이터베이스 콜레이션을 위한 백업 혹은 

SQL Server로 데이터전송을 위한 유틸리티를 제공한다. 

mysqldump 유틸리티는 데이터베이스 SQL 스크립트를 만들 수 있는 기능을 

제공한다. 

mysqldump를 위한 최소한의 문법은(syntax) 다음과 같습니다: 

 

Shell> mysqldump [OPTIONS] database [tables] 

 

mysqldump에 사용법에 관한 옵션이나 상세한 정보는 이 백서 이후에 나오거나, 

MySql 매뉴얼을 참조하길 바란다. 

mysqldump를 사용하고 난 후에는 당신은 데이터베이스의 SQL 스크립트를 

가지고 있어야 한다. 

 

전송을 위한 스크립트를 셋업

mysqldump로 SQL 스크립트를 만든 후에, SQL서버로 전송을 할 수 있다. 

만들어진 스크립트는 File Transfer Protocol (FTP)같은 

네트워크어플리케이션을 사용하여 MySQL 에서 SQL Server 2000이 설치된 

컴퓨터로 전송한다. 

 

SQL 쿼리분석기를 이용한 추출된 스크립트 사용


만들어진 스크립트로 데이터베이스를 생성하거나 데이터를 집어 넣을 수 있다.

MySqldump로 만들어진 스크립트를 가지고 데이터 베이스를 만드는 방법 중에서 

가장 좋은 방법은 SQL Server 에 포함된 SQL Query Analyzer를 사용하는 것이다. 

당신은 SQL Query Analyzer를 실행하기 위해 시작(Start) 메뉴나 

SQL Server Enterprise Manager에 내장된 SQL Query Analyzer 사용할 수 

있다. (엔터 프라이즈 매니저 -> 도구 -> 쿼리분석기) 

SQL Query Analyzer를 명령 프롬프트에서 isqlw(Command prompt isqlw)를 

이용할 수도 있다. 

정확하게 실행하기 위하여 약간의 추가적인 SQL구문 변환 작업을 해야 한다. 

변환작업은 SQL Script 통하여 그리고 데이터타입(data types)을 SQL Server와 

호환되는 타입으로 변환 해야 하는 것을 기억하길 바란다. 

아래의 다이어그램은 mysqldump로 변환된 스크립트를 보여주며 이는 또한 

ASCII 스크립트(텍스트) 파일로 덤프된 것이다.


 

Microsoft SQL Server 2000 SQL Query Analyzer 다음을 허용한다.

* 쿼리와 다른 SQL스크립트를 생성하고 이를 SQL서버 데이터베이스에 

대해서 수행합니다.

* 미리 정의된 스크립트로 빠르게 일반적으로 사용되는 데이터베이스를 생성할 

수 있다.

* 빠르게 이미 존재하는 데이터베이스 객체들을 복사할 수 있다.

* 알려지지 않은 파라미터를 가지고 저장 프로시져를 수행할 수 있다.

* 저장프로시져를 디버그 할 수 있다.

* 퍼포먼스에 문제가 있는 쿼리를 디버그 할 수 있다.

* 데이터베이스 내부 객체들의 위치를 지정할 수 있다.

* 빠르게 테이블의 로우를 insert, update, 또는 delete 할 수 있다.

* 자주 사용되는 질의를 키보드 단축키로 만들 수 있다.

* Tool 메뉴에 자주 사용되는 명령어를 추가 할 수 있다.

 

어플리케이션 확장

당신이 Microsoft SQL Server에 MySQL 어플리케이션의 데이터 관리부분을 

이동시킨 후에, 당신은 데이터를 보호하고 모든 참조 무결성과 business rule 을 

유지하기 위한 참조 제약을 다루기 위한 T-SQL구문을 가지고 있을 수 있다.

ADO, OLE DB, 그리고 ODBC 와 같은 데이터 베이스 응용프로그램 인터페이스 

(APIs)는 여러 가지 응용프로그램을 통하여 사용된다. 

물론, Microsoft Visual C++, Microsoft Visual Basic, 혹은 Microsoft Visual J++과 같은 

개발 시스템 API를 이용하여 Access할 수 있는 여러가지 방법을 제공한다.

부가적으로 어플리케이션이 확장되면, 당신은 Microsoft SQL Server를 이용하여 

어플리케션을 바꾸지 않고 더 좋은 시스템 (larger computers)로 이동할 수 있다. 

SQL Server는 자동으로 하드웨어 정보를 인식하고 자체적으로 최적의 메모리, 

I/O와 프로세스 사용량을 설정합니다

 

인터넷으로 부터 데이터 접근

SQL Server는 Web기반의 인터페이스에 어플리케이션을 확장하는 기능을 제공한다.

이 기능은 언제 어디서든지 어플리케이션에 접속을 허락합니다. 

SQL Server는 IIS Web Server를 사용하고 SQL Server에 저장된 데이터에 빠르고 

효율적인 사용자 인터페이스를 제공하기 위해 IIS Web Server와 

Active Server Pages(ASP) 내에 ActiveX Data Object (ADO)를 사용 하는 것에 의해 

SQL Server는 IIS와 통합 될 수 있다.

상세한 정보는 http://www.msdn.microsoft.com 에서 찾을 수 있다.

 

보안

SQL Server 2000의 데이터 베이스의 보안은 강력하고 유지하기 쉽다. 

SQL Server와 Mysql에 양쪽의2단계 수준의 보안에 대해서 생각하는 것은 상당히 

중요하다.

1) 서버의 접근 그리고 2) 개벌적인 데이터베이스의 접근 

MySQL은 서버로의 접근을 IP주소 혹은 완전한 도메인 이름에 의한 접근을 

제한하는 것에 의해 보안성을 유지 하는 유일한 방법이 있으나, 

도메인 명('%' 같은 와일드카드)로의 접근은 허용한다.

SQL Server는 사용자 계정을 요구한다, 그것은 운영체제(Windows Log On)에 의해 

관리되거나 SQL Server의 마스터 데이터 베이스 내에 저장할 수 있다.

SQL Server는 역할에 따른 그룹별로 접속을 제공한다. 이것은 그룹에 의한 

공통접근을 수립하는 것으로 관리를 쉽게 할 수 있습니다.

다음 단계에서는 Microsoft SQL Server 에서 제공하는 Enterprise Manager Tool을 

이용하여 데이터베이스로의 접근뿐만 아니라 서버로의 접근도 알아 보도록 하자.

1. Enterprise Manager를 열고 보안 폴더까지 연다. 

로그인 아이콘을 선택하고 오른쪽 마우스를 누른 후 새 로그인 을 선택한다.

SQL Server 로그인 속성 대화 상자가 표시됩니다. 이름 이란 항목에 Login 

이름을 입력한다. 이것은 MySQL의 사용자 이름과 유사하다. 

인증에서 SQL서버상의 인증을 사용하기 위해서 SQL Server인증을 선택한다.

 

2. 기본값이란 항목에 기본 데이터베이스와 언어를 선택한다.

 

3. 대화상자 최상위의 탭에서 서버역할을 선택한다. 이 예제에서의 역할은 

sysadmins(시스템 관리자)이다. 그리고 이는 MySQL에서 root 접근과 같다

다음 데이터베이스 엑서스 탭을 보자. 

이 항목은 SQL Server상에 물리적으로 있는 모든 데이터 베이스에 접근을 

제공한다. 지금의 경우는 1개의 접근데이터 베이스를 제공한다.

데이터베이스가 설정된 후에는 데이터 베이스의 역할을 설정할 수 있다. 

기본적으로, 모든 사용자는 public접근이 설정되어 있다. 이 규칙을 적용하기 

위해서는 퍼미션이 필요하다. 이 그림에서 선택되는 추가 역할은 

db_owner이다. 그것은 데이터베이스 제한 없이 접속 할 수 있는 권한을 

허용한다. 그러나 전체는 혹은 다른 SQL Server에 접속은 허락되지 않는다. 

 

5. OK를 클릭하고 난 후 암호 확인 대화 상자가 나온다. 앞에서 입력한 암호를 입력한다.

 

새로운 로그인은 엔터프라이즈 메니저에서 시각적으로 표시된다. 

당신은 'sa'라고 표시된 계정이 있다. 이 시스템 관리자 계정은 SQL Server의 

설치 동안에 패스워드를 가지고 있어야 한다. 

이 로그온에 대하여 공백을 허용하는 옵션이 있다. 하지만 비밀번호는 가급적 

반드시 필요하다. 



Microsoft SQL Server 로그인의 생성에 관한 더 많은 정보를 원한다면 

SQL Server Books Online에서 ""Managing Security" 를  참조하길 바란다. 

 

데이터 베이스 권한

SQL Server 2000은 데이터정의 언어와(DDL) 데이터 조작언어(DML)문장 사용권한 

제한을 통한 보안을 제공한다. 

이는 Ligin을 생성하는 단계와 유사하다. SQL Server에 권한을 할당하는 것은 

엔터프라이즈 메니져를 통하여 쉽게 작업 할 수 있다.

 

데이터 베이스 조작 언어 사용권한 

1. 엔터프라이즈 매니저를 열고 데이터 베이스 폴더를 연다. 

사용자를 선택하고 오른쪽 마우스 버튼을 클릭하고  등록정보를 선택한다. 


2. 사용권한 버튼을 클릭한다.

3. 사용권한 창에는 테이블들, 뷰, 그리고 저장프로시저 들과 같은 

데이터 베이스 객체들 모두에 DML문장을 설정하는 기능을 제공한다. 

권한을 설정한 후에 Ok 버튼을 클릭한다. 

 





데이터 정의 언어 사용자 권한


DDL문장을 데이터 베이스로 접근을 허용하기 위하여 당신은 

데이터베이스의 등록정보를 선택해야 한다. 

변경하고자 하는 데이터 베이스 아이콘을 클릭하고 오른쪽 버튼을 누른 후 

등록정보를 선택한다.

 

2. 다음으로 사용권한 탭을 선택한다.


3. 적당한 권한을 선택한 후에 OK 버튼을 클릭한다.

 


 MySQL을 MSSQL으로 마이그래이션 - (3) 문서의 끝입니다

 

안정적인 DNS서비스 DNSEver DNS server, DNS service
Posted by 키르히아이스
,

출처 : http://blog.naver.com/allnight123/8973304

 

http://wowhoon.pe.kr 의 박훈님이 제공해 주신 번역문입니다.

좋은글 제공해주신 박훈님께 감사드립니다.


 


마이그래이션을 위한 MySQL Tool(도구)

MySQL 많은 클라이언트 Tool과 유틸리티를 제공한다, 다음은 일반적으로 가장 

많이 사용하는 것들이다: 

* mysql - 데이터베이스에 질의를 하고 결과값을 보여주는 클라이언트 Tool 

* mysqldump - MySQL에서 스키마 와 Data를 뽑아내서 파일로 만들어 주는 Tool 

* mysqlimport - 파일에서 스키마와 데이터를 읽어 MySQL에 집어넣는 Tool

* mysqladmin - 데이터베이스를 만들고 지우는 것과 같은 관리작업을 할수 있는 Tool

* myODBC - MySQL과 ODBC가능 어플리케이션을 연결하기 위해 사용되는 

     ODBC레벨 0을 지원하는 연결 소프트웨어.

 

마이그래이션을 위한 MS-SQL Server 도구들 

MS-SQL Server에는 MS-SQL 에서 MySQL으로 마이그래션을 용이하게 해주는 

유틸리티와 Tool이 많이 있다.

MS-SQL Server Data Transformation Services(DTS)는 데이터의 추출, 변환 그리고 

하나 혹은 여러곳의 목적지로 데이터 전송 작업을 할 수 있는 그래픽컬한 Tool 이다.

 

데이터 변환 서비스의 특징 

마이크로소프트 SQL Server 2000의 Data Transformation Services는 

다른(the other)Sources에서 Data를 마이그래이션 하기 위한 많은 방법을 

제공한다. 

DTS는 wizard-driven 하거나 DTS package designer를 이용한다. 

DTS wizard는 연속된 Data를 빨리 전송할 수 있다. 

Package designer는 개발자들이 여러 가지 프로그래밍언어를 사용하여 만들어 

낸 것 들을 변환하는 기능을 제공한다. 

DTS는 다음과 같은 기능이 가능합니다:

* MySQL에서 MS-SQL Server 2000으로의 마이그래이션

* 마이그래이션 전에 Data를 보여주는 것 

* 테이블, 자료형, 문자, Data를 옮기는 것 

* MySQL과 MySQL간의 Data전송 

* 마이그래션 보고서를 만들고 보여주는 것 

* 테이블과 기본 자료형을 규칙에 따라 만드는 것 

* MS-SQL Server의 예약어와 같은지 분석한다.

* 스키마 안에서 객체의 이름을 바꾸거나 지우는 것 

* 개개의 Table Data를 이동하는 것 

 

데이터 변환 서비스 용어집

다음조건은 DTS를 기술하기 위해 사용됩니다: 

DTS 패키지는 DTS 디자이너 또는 프로그래밍적으로 원본 소스 연결, DTS 작업들, 

DTS 변환, 워크플로우 제약들을 그래픽적으로 조합하고 처리할 수 있다.

DTS 작업은 기능성으로 분리되어 있는 하나의 패키지에서 수행되는 한 작업 

단위이다. 각 작업들은 자료의 전송과 데이터 변환 처리를 수행하거나 실행가능한 

Job으로 처리된다.

DTS 전송은 하나 또는 그 이상의 기능, 또는 대상에 도착하기 전에 데이터의 

모듈로 적용하는 작업을 포함한다.

DTS Package 워크 플로우는 Data Transformation Services (DTS)의 단계들 

그리고 항목들의 수행 순서를 정하는 것이다. 당신은 DTS Designer를 이용하거나 

프로그래밍적으로 DTS 패키지의 작업 흐름을 그래피컬하게 디자인 할 수 있다.

Meta Data는 DTS를 저장할 수 있게 하며 메타 데이터 서비스와 연결들을 

데이터 리니지로 저장할 수 있게 한다. 당신은 패키지와 계정 정보를 데이터 마트, 

또는 데이터 웨어하우스의 특정 데이터 정보를 카탈로그 메타 데이터에 저장할 수 있다.

 

Direct Migration 

MySQL 로부터 데이터를 가져오는 가장 직접적인 방법은 myODBC support를 

설치하여 MySQL로부터 Microsoft SQL Server로 데이터를 가져와 만들 수 있도록 

DTS package를 생성시키는 것이다.

이하는 MySQL 을 Ms-SQL Server로 마이그래이션하기 위한 작업 진행법(따라 하기이다)

1. http://www.mysql.com/에서 MyODBC를 받아 설치를 하십시오.

2. 설치를 진행하는 동안 당신은 Dialog Box가 뜬다.



Windows DSN name:  

test 

Description: 

이것은 테스트 데이터 베이스이다

MySQL Database: 

test  

Server: 

서버주소 입력

User: 

cgunn 

Password: 

my_password  

Port:  

3306  


위의 설정에서 Windows DSN명에서 연결이름은 다른 연결이름과 중복되어서는 

안되며… 충분한 자격을 가진 도메인 이름 (당신이 제공한 DNS, 혹은 

어떤 종류의 Resolution을 확실하게 한다.), 혹은 IP Address

3. 시작 - > 프로그램 - > Microsoft SQL Server -> 데이터 가져오기 및 내보내기 

(Import and Export Data) 를 실행하여 DTS 마법사(Wizard)를 실행하면 다음과 같은 

dialog box를 볼 수 있다.

Next(다음)을 선택하여 다음단계로 이동합니다. 

4. 이제 데이티원본(제공자를)를 선택합니다. 데이터 원본은 SYTEM DSN으로 

ODBC데이터 소스는MySQL이어야 한다. 이제 보안자격(security credentials), 

사용자 이름, 비밀번호를 입력한 후 Next(다음)버튼을 클릭합니다. 




5. 아래에 대화상자에 보여지는 것처럼 (목적지)대상에 대한 상세한 

접속정보(Log In정보)를 제공한다. 

그리고 Next(다음)버튼을 클릭한다. 

 

6. Specify Table(지정한 테이블)복사 혹은 Query를 이용한 방법을 선택하는 것을 

허용한다. 이 경우 소스(원본)은 MySQL이어야 한다. 

"원본 데이터베이스에서 테이블 및 뷰 복사"

이 옵션을 선택할 경우 MYSQL이 View를 지원하지 않기 때문에, 이 옵션을 

선택하면 테이블 객채만 복사를 한다. 

작업을 계속하기 위해서 Next를 클릭한다.

 

7. 소스 테이블(Tables)과 뷰(View)를 체크박스를 클릭하여 선택한다. 

다이얼로그 박스에서 소스테이블, 그리고 대상테이블들을 선택(수정)할 수 

있다. 

 

8. 열 매핑 및 변환을 위해서 위의 그림에서 보는 변환(Tranform)의 "…"을 

클릭한다.

이 대화상자에서, 소스 그리고 대상자료 형이 매핑되어 나타난다, 

그리고 null의 유뮤는 선택을 할 수 있다.

자료형과 Null유무를 변경하고 끝날 때 OK를 클릭한다.

* 부가설명: 원본 데이터와 대상데이터의 자료형은 기본적으로 매칭이 

어느 정도 되어 잇다. 이 기종 DB의 경우는 잘 않되는 경우도 있다. 또한 

직접 SQL문을 선택하여 변경을 할 수 있다. 위의 경우에는 

"SQL 편집"을 클릭하면 쿼리를 직접 생성할 수 있다.

 

패키지 저장, 예약 및 패키지 복제는 사용시간이 많지 않은 시간에 데이터를 

복제하거나 DTS 패키지로 저장할 수 있게 한다. 시간 옵션은 즉시 실행이 

가능한 옵션과 나중에 실행할 수 있도록 DTS 패키지를 스케쥴링 할 수 있다.

 

9. DTS 패키지저장 대화상자는 DTS 패키지에 2가지 타입의 비밀번호를 

지원한다. 첫번째 비밀번호는 소유자 암호(owner password)이다. 

소유자 암호를 설정할 경우 패키지 사용자는 패키지를 편집하거나 실행하기 위해 

이 암호를 필요로 한다. 사용자 암호를 설정할 경우 소유자 암호도 설정해야 한다.

사용자 암호에 대한 액세스 권한만 있는 패키지 사용자는 해당 패키지를 

실행할 수 있다. 그러나 소유자 암호에 대한 액세스 권한이 없으면 해당 패키지를 

열 수도 편집할 수도 없다. 다음작업을 위하여 Next를 클릭합니다.

 

10. 마지막으로 DTS 가져오기/내보내기 마법사 완료 대화상자에서 

DTS 마법사내에서 선택되었던 옵션들을 보여 준다.

데이터 변환 서비스를 실행하기 위해서 Finish 버튼을 클릭한다.

 

11. Executing Package 대화상자는 데이터 변환서비스의 각 작업의 실행상태를 

표시한다. 녹색의 체크박스가 체크가되면 각 작업이 성공되었다는 것을 의미한다.

만일 작업이 실패하는 경우에는  에러박스에 에러정보가 표시되게 된다. 

당신은 MySQL에서 MS SQL Server 2000으로 성공적으로 데이터를 전송했습니다.

 


 MySQL을 MSSQL으로 마이그래이션 - (2) 문서의 끝입니다.

 
안정적인 DNS서비스 DNSEver DNS server, DNS service
Posted by 키르히아이스
,

출처 : http://blog.naver.com/allnight123/8973339

 

http://wowhoon.pe.kr 의 박훈님이 제공해 주신 번역문입니다.

좋은글 제공해주신 박훈님께 감사드립니다.


 

MySQL을 Microsoft SQL Server 2000으로 마이그래이션

1. 소개

2. 대상 독자층

3. 개요

4. 마이그래이션 순서 

5. 마이그래이션 준비

6. 자료형, 예약어, 그리고 연산자

7. 데이터 마이그래이션을 위한 MySQL Tool 

8. 마이그래이션을 위한 MS-SQL Tool 

9. DATA변환 서비스의 특징

10. DATA변환 서비스 용어(집)

11. 다이랙트 마이그래이션 

12. Loading중인 데이터를 사용하는 것 

13. 어플리케이션 확장

14. 보안

15. 문재 해결

16. MySQL 에러 메시지

17. 결론

18. 추가 정보

 

개요

이 백서는 마이크로 소프트 SQL SERVER의 마이그래이션 능력과 특성을 설명하고 

MySQL에서  MS-SQL Server로 마이그래이션 희망하는 개발자들을 위하여 만들어

졌다. 

소개

이 문서(예제) MySQL에서 Microsoft® SQL Server™ 2000으로 마이그래이션 하는 

방법을 유틸리티와 Tool을 이용한 예제로 설명하고 있다.

또한 어떻게 MySQL 어플리케이션을 MS-SQL 2000으로 변경하는 가이드 라인을 

제공한다.

만약에 당신이 MySQL에 적용에 투자를 했으면 당신은 Ms-SQL Server 2000의 

더욱 향상된 기능을 그대로 사용할 수 있을 것이다.

만약 당신이 MySQL Applications에 투자한다면 당신은 이 투자를 보류하고 당신의

Application의 구조에 SQL Server 2000의 더 나은 기능들을 추가하기 바란다

 

이 문서를 읽기 전에…

이 백서의 대상독자는 새로운 새로운 MS-SQL 서버를 운용을 할 수 있고

MySQL DBMS의 기초 지식과 일반적인 DATABASE 개념을 알고 있다는 전제하에 한다.

일반적인 DATABASE 관리 지식

* MySQL DBMS 기초에 대한 튼튼한 배경지식

*MySQL언어에 익숙한 사용자

sysadmin 서버 Role 소유자. sysadmin 롤이 서버에 대한 완전한 권한을 가지며 좀더 

많은 정보를 위해서 SQL서버2000 온라인 도움말의 "로그인" 부분을 참조하길 바란다. 

개발환경과 application platform은 Microsoft Windows 2000 O/S와 SQL Server 2000 

이다. MySQL은 MySQL ODBC Driver로 사용되며, platform은 Red Hat Linux 7.1에서 

MySQL 3.23.37을 사용한다.

 

개 요

MySQL은 Open-source Database system(DBMS) 이다. 

MySQL은 클라이언트/서버 구조를 사용하고 멀티스레드, 멀티유저 데이터 베이스 

서버이다. 

MySQL은 빠른 속도를 위해 디자인 되었다(속도에 우선해 설계되었다) 그러므로, 

MySQL은 (관계형 데이터베이스), 하위질의(sub query), 포린키(foreign key), 

스토어드 프로시져(sored procedures), 트리거(triggers), 뷰(view) 같은 

관계형 데이터베이스에서 제공되는 기능을 제공하지 않는다. 추가로, 다수의 

사용자가 동시에 테이블에 데이터를 삽입하는 경우 잠금(Locking mechanism)이 

되지 않는다. 또한 많은 어플리케이션과 Tool 지원되지 않고 있다. 

Ms-SQL Server 2000은 관계형 데이터 베이스 관리 시스템으로서(RDBMS) OLAP, 

데이터 마이닝 기능을 포함하고 있다. Ms-SQL Server 2000은 대형 데이터 처리와 

상업 웹사이트를 위한 대형 데이터의 저장, 처리, 분석의 업무가 가능하며, 

개인 또는 중소기업을 위한 소규모 서비스를 위한 기능도 함께 제공하고 잇다. 

 

Ms-SQL Sever 2000에서는 로우 단위의 잠금(row-level lockling), 진보한 

쿼리 옵티마이져, 데이터 복제, 분산데이터 베이스 관리, 그리고 분석 서비스를 

지원한다. Transact-SQL(T-SQL)은 Ms-SQL Sever 에서 지원하는 구조화 질의어 이다.

이장에선 소개하는 MS-SQL Server 기능은 SQL Sever가 제공하는 기능중에 아주 

적은 부분이다.

SQL Server 2000의 중요한 기능은 북스온라인에 기제되어 있다. 

지금 북스온라인을 실행 해보길 바란다.

 

마이그래이션 과정

이 장은 이동 과정을 MySQL와 마이크로소프트 SQL 서버 2000의 구조 설계에 대해서

소개한다. 이 장은 다음과 같은 내용으로 구성되어 있다.

이번 chapter는 MS-SQL Server 2000을 MySQL로 마이그래이션 하는 

아키택처의 윤곽을 설명한다.

소개하는 내용은 다음과 같다: 

 

마이그래이션 준비

자료형, 예약어(key word), 운영자

마이그래이션을 위한 MySQL 도구들(tools)

마이그래이션을 위한 MS-SQL Sercver 도구들(tools) 

다이렉트 마이그레이션 : Data Transformation Services (DTS)

데이터를 조작 하는 도구 : 쿼리 분석기(Query Analyzer) 

어플리케이션 확장 

문제해결 

 

마이그래이션 준비

적절한 마이그레이션 계획은 성공적인 마이그래이션을 위해서 아주 중요하다. 

마이그래이션을 하기 전에 MySQL 데이터베이스 스키마를 재검토 해주길 바란다. 

또한 MS-SQL Server의 자료형과 MySQL 자료형(Data Types)을 비교해주길 바란다.

그리고는 그 차이들을 메모해 두길 바란다.

"MySQL과 MS-SQL 2000 Server 비교" 

섹션에는 프래임웍과 자료형을 비교한 자료들이 제공된다. 

몇몇 MySQL 오프잭트, 키워드들은 MS-SQL 2000 Server 과 충돌하는 부분이 있다. 

이 키워드들은 다음 섹션에서 포함되어있다.

MySQL 데이터를 DTS로 전송하기 전에 MySQL 데이터베이스를 백업 받아 두길 

바란다.


자료형, 예약어, 연산자

이 섹션은 MS-SQL 2000 Server의 자료형(Data type)을 이야기 하도록 하겠다.

MySQL 자료형(Data type)과 MS-SQL 자료형을 비교한 표는 마이그래이션을 돕기 

위하여 제공된다.

또 MS-SQL의 예약어(keywords)목록 또한 제공합니다. 

이 표는 다음 정보를 포함합니다.

* MS-SQL Server가 제공하는 자료형

* My-SQL과 MS-SQL Server의 비교

* MS-SQL Server 예약어(keywords)


MS-SQL Server 에서 지원되는 자료형

자료 형 해설 

자료

BIGINT

4바이트 정수  -2^63 (-9223372036854775808)부터 
-2^63 (-9223372036854775808)
까지의  

INT

4바이트 정수 -2^31(-2,147,483,648)부터
2^31 - 1 (2,147,483,647)
까지의

SMALLINT

2바이트 정수 2^15 (-32,768)부터 2^15 - 1 (32,767)까지의

TINYINT

1바이트정수 0부터 255까지의

BIT

1비트의 Boolean 0 또는 1

DECIMAL

정밀한 숫자형 -10^38 +1 에서 10^38 –1까지의

NUMERIC

DECIMAL 동일한 기능

MONEY

8바이트 화폐값 -2^63 (-922,337,203,685,477.5808)부터
2^63 – 1 (+922,337,203,685,477.5807)
까지

SMALLMONEY

4바이트의 화폐값 -214,748.3648부터 +214,748.3647까지 

FLOAT

부동 소수점 -1.79E + 308부터 1.79E + 308까지

REAL

부동 소수점 -3.40E + 38부터 3.40E + 38까지

DATETIME

8바이트의 날짜와 시간. 1753 1 1일부터
9999
12 31일까지 (ms)초의 단위까지 표현가능.

SMALLDATETIME

1900 1 1일부터 2079 6 6일까지
1
단위로 표현가능.

CHAR

8,000 이하의 고정길이 문자 ( 유니코드)

VARCHAR

8,000 이하의 가변길이 문자 ( 유니코드) 

TEXT

최대 2^31 - 1 (2,147,483,647)까지 저장 가능한 가변길이 문자
(
유니코드)

NCHAR

4,000 이하의 고정길이 문자 (유니코드)

NVARCHAR

4,000 이하의 가변길이 문자(유니코드)

NTEXT

최대 2^30 - 1 (1,073,741,823)까지 저장 가능한 가변길이 문자
(
유니코드)

BINARY

8,000 바이트의 최대길이를 가진 고정길이 이진 데이터

VARBINARY

8,000 바이트의 최대 길이를 가진 가변길이 이진 데이터

IMAGE

가변길이 값을 저장하기 위한 자료형
최대 2^31 - 1 (2,147,483,647)byte까지 저장가능 (가변형)

CURSOR

커서

SQL_VARIANT

text, ntext, timestamp, sql_variant 제외한 모든 자료형을 저장할 있는 자료형

TABLE

Table 데이터를 처리할 있는 특수한 자료형

TIMESTAMP

A database-wide unique number that gets updated every time a row gets updated. 
로우가 변경될 경우 항상 고유가 값을 가지는 유일한 .

UNIQUEIDENTIFIER

전역 유일 식별자 (GUID).

상세한 자료는 MS-SQL Server 2000 북스온라인을 참고 하길 바란다.

 

MySQL과 MS-SQL Server 2000 비교

다음 표는 MySQL과 MS-SQL Server 2000 사이의 자료유형들의 매핑을 

나타내고 있다.

몇몇 MySQL 자료유형은 MS-SQL Sever 2000의 유사 자료형으로 대체 했습니다.

아래의 표는 다음과 같은 정보를 나타내고 있습니다.

* 숫자 타입

* 데이터, 시간 타입

* 문자열 타입 

 



D:  부동 소수점 타입에 적용하고,소수점 후에 자릿수의 수를 가리킨다.  최대 가능한 가치는 30이지만
M-2
보다 벌써 커서는 된다.

L:  칼럼의 실제 길이

M:  최대 표시 크기를 가리킨다.  최대 표시 크기는 255이다.

 

 

수치 자료형

MySQL Size SQL Server 2000
TINYINT 1 Byte TINYINT
SMALLINT 2 Bytes SMALLINT
MEDIUMINT 3 Bytes  
INT 4 Bytes INT
INTEGER 4 Bytes INT
BIGINT 8 Bytes BIGINT
FLOAT(X<=24) 4 Bytes FLOAT(0)
FLOAT(25<=X<=53) 8 Bytes FLOAT(25)
DOUBLE 8 Bytes FLOAT(25)
DOUBLE PRECISION 8 Bytes FLOAT(53)
REAL 8 Bytes REAL
DECIMAL M Bytes(D+2, if M<D) DECIMAL
NUMERIC M Bytes(D+2, if M<D) NUMERIC

 

날짜 시간 자료형

MySQL Size SQL Server 2000
DATE 3 Bytes SMALLDATETIME
DATETIME 8 Bytes DATETIME
TIMESTAMP 4 Bytes TIMESTAMP
TIME 3 Bytes SMALLDATETIME
YEAR 1 Byte SMALLDATETIME

 

문자열형

MySQL Size SQL Server 2000
CHAR(m) M Bytes, 1<=M<=255 CHAR
VARCHAR(m) L+1 Bytes where L<=M and 1<=M<=255 VARCHAR
TINYBLOB L + 1 Bytes where L<2^8 BINARY
BLOB L + 2 Bytes where L<2^16 VARBINARY
TEXT L + 2 Bytes where L<2^16 TEXT
MEDIUMBLOB L + 3 Bytes where L<2^24 IMAGE
MEDIUMTEXT L + 3 Bytes where L<2^24 TEXT
LONGBLOB L + 4 Bytes where L<2^32 IMAGE
LONGTEXT L + 4 Bytes where L<2^32 TEXT
ENUM (VALUE1, VALUE2, …) 데이터형이 1또는 2바이트를
차지하는지는 그값의 수치로
판단된다.
매칭되는 자료형이 없으나 CHECK 제약을 이용해 구현 가능하다.
SET (VALUE1, VALUE2, …) 1, 2, 3, 4 또는 8 바이트.

Set 멤버들의 최대값에 의존적인 값이다.

 

 

Microsoft SQL Server 2000 예약어

ADD EXCEPT PERCENT
ALL EXEC PLAN
ALTER EXECUTE PRECISION
AND EXISTS PRIMARY
ANY EXIT PRINT
AS FETCH PROC
ASC FILE PROCEDURE
AUTHORIZATION FILLFACTOR PUBLIC
BACKUP FOR RAISERROR
BEGIN FOREIGN READ
BETWEEN FREETEXT READTEXT
BREAK FREETEXTTABLE RECONFIGURE
BROWSE FROM REFERENCES
BULK FULL REPLICATION
BY FUNCTION RESTORE
CASCADE GOTO RESTRICT
CASE GRANT RETURN
CHECK GROUP REVOKE
CHECKPOINT HAVING RIGHT
CLOSE HOLDLOCK ROLLBACK
CLUSTERED IDENTITY ROWCOUNT
COALESCE IDENTITY_INSERT ROWGUIDCOL
COLLATE IDENTITYCOL RULE
COLUMN IF SAVE
COMMIT IN SCHEMA
COMPUTE INDEX SELECT
CONSTRAINT INNER SESSION_USER
CONTAINS INSERT SET
CONTAINSTABLE INTERSECT SETUSER
CONTINUE INTO SHUTDOWN
CONVERT IS SOME
CREATE JOIN STATISTICS
CROSS KEY SYSTEM_USER
CURRENT KILL TABLE
CURRENT_DATE LEFT TEXTSIZE
CURRENT_TIME LIKE THEN
CURRENT_TIMESTAMP LINENO TO
CURRENT_USER LOAD TOP
CURSOR NATIONAL TRAN
DATABASE NOCHECK TRANSACTION
DBCC NONCLUSTERED TRIGGER
DEALLOCATE NOT TRUNCATE
DECLARE NULL TSEQUAL
DEFAULT NULLIF UNION
DELETE OF UNIQUE
DENY OFF UPDATE
DESC OFFSETS UPDATETEXT
DISK ON USE
DISTINCT OPEN USER
DISTRIBUTED OPENDATASOURCE VALUES
DOUBLE OPENQUERY VARYING
DROP OPENROWSET VIEW
DUMMY OPENXML WAITFOR
DUMP OPTION WHEN
ELSE OR WHERE
END ORDER WHILE
ERRLVL OUTER WITH
ESCAPE OVER WRITETEXT

 

 


 MySQL을 MSSQL으로 마이그래이션 - (1) 문서의 끝입니다.

 
안정적인 DNS서비스 DNSEver DNS server, DNS service
Posted by 키르히아이스
,

MSX 서버에서 온 작업이나 그단계 또는 일정을 추가 업데이트 삭제할 수 없습니다

해결

 

/*srvid = 0 srvname='LEETEST'*/
use master
select * from sysservers

/*originating_server='WEBTEST' 를 'LEETEST'로 수정해서 해결함.' */
use msdb
select * from sysjobs

 

EXEC sp_configure 'allow updates', 1

Update sysjobs
set originating_server = 'LEETEST'

EXEC sp_configure 'allow updates', 0

 

 

이러한 메시지가 뜰 것입니다.
"MSX 서버에서 온 작업이나 그단계 또는 일정을 추가 업데이트 삭제할 수 없습니다."
"DEVPIA에서 찾은 QNA를 발췌하겠습니다.

========================================================
이 문제는 SQL2000의 특성으로 인해 발생하는 문제입니다.

모든 scheduling job들은 ‘msdb..sysjobs’ 시스템 테이블에 저장됩니다.
sysjobs 테이블에는 ‘originating_server’ 칼럼이 존재하고 이 칼럼에는 job이 생성된 server의 이름이 저장됩니다.
SQL7.0에서는 ‘originating_server’ 칼럼에 항상 ‘(local)’ 값이 저장되기 때문에 Server의 이름을 변경해도 영향을 받지 않습니다. 하지만, SQL2000에서는 Multiple Instance가 지원되기 때문에 ‘originating_server’ 칼럼에 실제 SQL Server의 instance명이 저장되게 됩니다.
만일, Server의 이름이 변경되면 현재의 Server명과 msdb..sysjobs’ 테이블에 저장된 ‘originating_server’의 값이 다르기 때문에 job 변경/삭제시 14274에러가 발생하게 됩니다.

 

다음의 쿼리를 실행하여 jon 변경/삭제시 발생하는 에러를 없앨 수 있습니다.


update msdb..sysjobs set originating_server = ‘<new server>’
where originating_server = ‘<old server>’


만일, Named Instance를 사용하는 job이라면 다음의 쿼리를 실행합니다.

update msdb..sysjobs set originating_server = ‘<new server>\<instance>’
where originating_server = ‘<old server>\<instance>’


참고적으로 ‘select * from msdb..sysjobs’ 쿼리를 실행한 다음 originating_server 칼럼을 확인하여 모든 job들에 대해 설정되어 있는 SQL Server명을 확인할 수 있습니다.
========================================================

이렇게 수행하셔도 되고
EM을 열고 직접 msdb 가셔서 모든 행 반환해서 수정하셔도 같은 결과가 나올겁니다.

안정적인 DNS서비스 DNSEver DNS server, DNS service
Posted by 키르히아이스
,