SQL Server'ı MySQL'e geçirmeniz gerekiyor


22

SQL Server 2008'de bir Windows sunucusunda bir veritabanım var ve tüm verileri bir Ubuntu sunucusundaki MySQL veritabanına taşımak istiyorum. SQL Server Alma ve Verme Sihirbazı'nı MySQL ODBC sürücüsü ile kullanmayı denedim ve her iki veritabanına da doğru bir şekilde erişiyor, ancak tür dönüştürme için özellikleri içeren xml dosyaları mevcut değildi ve özellikleri doğru şekilde oluşturmak için çok sınırlıydı. Bu tür bir dosyayı nasıl dönüştüreceğinizi veya bu verileri aktarmak için nasıl daha iyi bir araç alacağınızı bilen var mı?


1
Bu soruyu gördün mü ? Verileri MySQL'den MSSQL'e kopyalamakla ilgili. Belki orada bazı ipuçları bulacaksınız.
Marian

@Marian Bağlantı için teşekkürler. MySQL sunucusunu SQL Server'da bağlantılı bir sunucu olarak kullanmak benim sorunum için bir çözüm gibi görünüyor.
murgatroid99

1
Ne kadar veriden bahsediyoruz? 5mb? 3TB?
AaronJAnderson

Sanırım GB'lar ya da 10'lar GB'lardı, ama gerçekten hatırlamıyorum çünkü bu soru bir buçuk yıl önceydi.
murgatroid99

Yanıtlar:


13

İki önerim var:

1) Ticari ürünler sunmaktan nefret ediyorum ama MSSQL'i MySQL'e geçirmek için 49.00 dolarlık bir araç var.

2) Daha fazla öneri için MySQL'in MSSQL Migration forumlarını deneyin

GÜNCELLEME 2011-06-03 18:03 EDT

EOL’e Ocak 2010’da MySQL Migration Toolkit adı verilen eski bir ürün geldi . Eğer onu ele geçirebilirsen, kullanabilirsin.

GÜNCELLEME 2011-06-03 18:06 EDT

Arşivleri buldum !!! İşte MySQL Migration Toolkit

GÜNCELLEME 2011-06-03 18:11 EDT

İşte MySQL Migration Toolkit'e Genel Bakış

GÜNCELLEME 2011-06-03 19:08 EDT

Başka bir ticari ürün (29 $)

GÜNCELLEME 2011-06-03 19:30 EDT

İşte MSSQL'i MySQL'e geçiren Freeware araçların bir listesi.

GÜNCELLEME 2011-06-15 17:47 EDT

Microsoft SQL Server'ı MySQL'e (Hala Ticari Olarak) Geçme Kılavuzunda Beyaz Tahtayı (PDF) Oracle'dan Alın

GÜNCELLEME 2012-08-21 01:24 EDT

Bu MySQL Web Sayfasına göre , bölüm MySQL Workbench: Database Migration WizardMySQL Workbench'in DB Nesnelerini SQL Server'dan MySQL'e Geçme kapasitesine sahip olduğunu iddia ediyor.


1
Onlardan kaçınabilmem için ticari ürünler kullanmamayı tercih ederim. Migration Toolkit'i kullanmayı denedim, ancak MySQL'in en yeni sürümüyle uyumlu olmadığını düşünüyorum: oluşturulan SQL insert ifadelerinin çok sayıda sözdizimi hatası vardı ve oluşturulan tablolarda sihirbazı çalıştırdıktan sonra hiç satır yoktu. Shareware araçları da MySQL'in eski sürümleriyle çalışmak için yapılmış gibi görünüyor. Denediğin için teşekkürler.
murgatroid99

4

Marian'ın önerisine dayanarak , MySQL sunucusunu MS SQL Server'da bağlantılı bir sunucu olarak ayarlayarak diğer yönde çoğaltma hakkında bu cevabı buldum . Bağlantılı bir sunucu olarak kurulan MySQL ile aynı anda her iki veritabanında da SQL sorguları çalıştırabilirim, bu da bu sorunu çözmek için ihtiyacım olan işlevselliği sağlar.


3

Bu görev için SSIS'i kullandınız mı? Bu, SQL Server için ETL aracıdır ve bu görevi gerçekleştirmenize yardımcı olabilecek çok sayıda dönüşüme ve mantığa sahiptir.


Kullandığım bahsettiğim İthalat / İhracat Sihirbazı aslında SSIS paketleri yaratıyor. Sahip olduğum sorun, SSIS'in farklı veritabanı yönetim sistemlerinde türler arasında nasıl dönüştürüleceğine ilişkin verileri depolamak için XML dosyaları kullanması ve bu dosyaların MySQL için mevcut olmamasıydı.
murgatroid99


2

SQL Server'dan MySQL'e aktarmak için Migration toolkit'i denedim . Ancak SQLyog Import dış verilerini iyi buldu. İçe aktarma işlemini zamanlayabilir ve mevcut bir tabloya almak için gerekli eşlemeleri yapabilirim. Buradan indirin .

görüntü tanımını buraya girin


SQLyog harika bir araçtır, ancak "harici verileri içe aktar" özelliği son derece yavaştır. Birkaç büyüklükte olduğu gibi, MySQL Workbench'ten daha yavaş. SQLyog geliştiricilerinin sorunu çözmesini diliyorum, çünkü arayüz Workbench'ten daha sezgiseldir. Ancak, yalnızca yüzlerce satır içe aktarmıyorsanız, içe aktarma işleminin tamamlanması için saatlerce veya günlerce beklemek üzere hazırlandığınızdan emin olun.
nextgentech

2

Geçenlerde bu görevi yerine getirmek için elalşi yayınladım . 4 satır Python ile 2 SQL veritabanı arasında geçiş yapmayı sağlayan açık kaynaklı bir çözümdür . Desteklenen RDBMS'ler MySQL, PostgreSQL, Oracle, SQLite ve SQL Server'ı içerir.

Bu, bir SQL satıcısının sütun türlerini bir başkasınınkiyle eşleştirmek için göz korkutucu görevi üstlenir. Sadece şemayı transfer edip çevirmekle kalmayacak, aynı zamanda tüm verileri, indeksleri ve kısıtlamaları veritabanları arasında geçirecektir .

Yüklemek:

$ pip install etlalchemy

El Capitan'da :pip install --ignore-installed etlalchemy

Koşmak:

from etlalchemy import ETLAlchemySource, ETLAlchemyTarget

mssql_db_source = ETLAlchemySource("mssql+pyodbc://username:password@DSN")

mysql_db_target = ETLAlchemyTarget("mysql://username:password@hostname/db_name", drop_database=True)
mysql_db_target.addSource(mssql_db_source)

Projenin kökenleri hakkında daha fazla bilgi edinmek için bu yazıya göz atın. Aracı çalıştırırken herhangi bir hatayla karşılaşırsanız, github deposunda bir sorun açın; ben bir haftadan daha kısa bir süre içinde onu düzelteceğim !


0

MySQL Workbench Migration aracı bu görevi yapmanıza yardımcı olabilir

1) Geçiş işlemini başlatmak için, MySQL Workbench ana ekranında, Veritabanı-> Geçiş Sihirbazı'na gidin.

2) Göreve devam edip edemeyeceğimizi doğrulamak için ön koşulları kontrol etmeliyiz. Her şey yolunda görünüyorsa, Göç Başlat düğmesine basabiliriz.

3) Bu adımda, kaynak veritabanı hakkında bilgi vermemiz gerekiyor, bu durumda, SQL Server.

Kaynak parametremizi yapılandıracağız:

Veritabanı Sistemi: Microsoft SQL Server

Bağlantı Yöntemi: ODBC (Yerel)

Sürücü: SQL Server

Sunucu: localhost

Kullanıcı adı: sa

4) Şimdi, Bağlantıyı Test Et düğmesini kullanarak kontrol edebiliriz.

5) Ardından, hedef parametreleri eklememiz gerekir:

Bağlantı Yöntemi: Standart (TCP / IP)

Ana Bilgisayar Adı: Your_host_name

Liman: 3306

Kullanıcı adı: taşıma

6) Eklenen bilgileri onaylamak için Test Connection'a basın.

7) Bir sonraki adımda, MySQL Workbench, katalogların ve şemaların bir listesini almak için SQL Server'ımıza bağlanacaktır.

8) Şimdi, listeden Your_database_name veritabanını seçeceğiz.

Tersine mühendislik şemalarının ve nesnenin nasıl eşleştirilmesi gerektiğini seçebiliriz. Catalog.Schema.Table -> Catalog.Table seçeneğini kullanacağız, bu yüzden MySQL'imizde SQL Server veritabanımızda bulunan mevcut tabloları ve mevcut tabloları seçmiş olacağız.

9) Her şey yolunda giderse, taşınacak nesnelerin bir listesi olacak.

10) Bu durumda Tablo Nesneleri, Nesneleri Görüntüle ve Rutin Nesnelerimiz bulunmaktadır. Yalnızca Tablo Nesneleri'ni seçeceğiz çünkü nesnenin geri kalanında ilgili MySQL eşdeğer kodunu manuel olarak kontrol etmeliyiz.

11) Bu adımda, kaynaktan gelen nesneler MySQL uyumlu nesnelere dönüştürülür.

12) Her şey yolunda giderse, hedefte geçirilmiş şemayı nasıl oluşturmak istediğimizi seçerek devam edebiliriz. Varsayılan “Hedef RDBMS'de şema oluştur” seçeneğini kullanacağız.

13) Şimdi, şema oluşturma sürecini kontrol edelim.

14) Bir sonraki adımda, her bir kod yürütme sonucunu kontrol edebilir ve MySQL Sunucumuzda oluşturulan yeni veritabanını kontrol edebiliriz.

15) Bu noktada, veritabanı yapısına sahip olacağız, ancak henüz veriye sahip değiliz. Şimdi, MySQL Sunucusundaki verileri nasıl kopyalamak istediğimizi seçeceğiz. “RDBMS'yi hedeflemek için çevrimiçi tablo verilerinin kopyalanması” seçeneğini kullanacağız.

16) Son adımda, göç raporunu kontrol edebilir ve görevi bitirebiliriz.

MS SQL DB'yi MySQL'e dönüştürmenin bir başka kolay yöntemi, doğrudan belirli bir veritabanındaki veritabanı dosyasını seçebilen ve dönüştürülebilir tabloların önizlemesini sağlayabilen ve dönüştürüldükten sonra verileri doğrudan belirtilen veritabanına kaydedecek Stellar'ın Veritabanı İçin Stellar Dönüştürücüsü adlı DIY aracını kullanmaktır. sisteminizde yüklü. Bu durumda MS SQL veritabanı dosyası sağlamanız gerekecek ve dönüşümden sonra sistemde kurulu MySQL veritabanında saklanacaktır. Bu yazılımın ücretsiz sürümünü Stellar'ın Resmi Web Sitesi'nden edinebilirsiniz .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.