Bir MySQL veritabanı içeriğini bir MS SQL Server 2008 veritabanına çoğaltmak istiyorum.
Mümkün mü? Bunu başarmak için gerekli adımları herkes belirleyebilir mi?
Teşekkürler.
Bir MySQL veritabanı içeriğini bir MS SQL Server 2008 veritabanına çoğaltmak istiyorum.
Mümkün mü? Bunu başarmak için gerekli adımları herkes belirleyebilir mi?
Teşekkürler.
Yanıtlar:
Şahsen MS SQL yöntemi vs MySQL yöntemi itme içine çekmek istiyorum. Neden? Peki Windows 32bit ve 64bit MySQL ODBC sürücüleri hazır ve bağlantılı bir sunucu kurmak önemsiz. MS SQL bağlı birçok MySQL sunucuları var. Ayrıca, linux / unix'ten MS SQL'e bağlanmak her zaman harika değildir ve genellikle tüm özellikleri kullanamazsınız. FreeTDS'nin sınırları vardır; daha sonra değil, daha erken vurabilirsiniz, neden sadece atlamıyorsunuz? Tüm bunlar MySQL'i * nix üzerinde çalıştırdığınızı varsayar. Değilse, 50/50 biraz daha yakın olur ama yine de "canlı" veritabanı gibi geliyor gibi MS SQL çekerek seçerek böylece herhangi bir ETL veya işlem için yük koyarak daha idealdir. GoldenGate çözümü kulağa ilginç geliyor, ama eminim ücretsiz değil.
MS SQL'e çoğaltılan MySQL ve Oracle veritabanlarıyla bu tür bir senaryo kurduğum düşünüldüğünde, benim için en iyi şekilde çalışan bazı ipuçları sağlayacağım:
Umarım ipuçları yardımcı olur!
Aynı soru burada StackOverflow üzerinde ele alındı: MySQL MSSQL çoğaltma .
Bazı geçici çözümler var gibi görünüyor, ama çok kolay bir çözüm değil.
MySQL DB'den MSSQL DB'ye gerekli verileri almak için bir SSIS paketi oluşturmayı denemeniz gerektiğine inanıyorum. SSIS kişinin çeşitli kaynaklardan veri almasına izin verir. Daha sonra paketi Windows görev zamanlayıcısı veya sql işlerini kullanarak zamanlayabilmeniz gerekir.
Eğer çoğaltma ile log nakliye veya bunun gibi bir şey demek şanssız olduğunu düşünüyorum. Bununla birlikte, bağlı bir sunucu olarak bir MySQL veritabanı kurabilir ve kendi çoğaltma düzeninizi yuvarlayabilirsiniz. En basit olanı, truncate ve insert deyimlerini kullanarak tüm tabloların periyodik anlık görüntülerini yapmaktır. Gereksinimlerinizin gerektirdiği gibi karmaşıklık ekleyin.
Bunu yapmak için MySQL için GoldenGate ve MS SQL kullanabilirsiniz. GoldenGate ürününü her iki tarafa da kurarsınız, ardından homojen bir kopyalamaya devam edersiniz.
Sadece iki veri kaynaklarına bağlanmak için Alternatif olarak, bir "anlık" replikasyon için, (kullanarak bir Python (veya benzeri) komut kullanabilir unixODBC ve FreeTDS yapıyor tabloları döngü MS SQL bağlanmak için) SELECT
her satır için, bir tarafta INSERT
diğer taraftan, başka bir açıdan. MSSQL'in işlemleri olduğu ve hedefiniz olduğu için, bir işlemi başlatabilir DELETE
, tüm tablolardan her şeyi kopyalayabilir ve sonra COMMIT
hedefe bağlı kullanıcılar söz konusu olduğunda anında görünecektir (tutarsızlıklar yoksa tabii ki kaynak).