Mám nějaké velké .bak
soubory z výpisu SQL Server 2005.
Mohu je obnovit bez použití serveru SQL, buď do PostgreSQL, MySQL nebo do plochých textových souborů?
Nejužitečnější by bylo řešení s otevřeným zdrojovým kódem.
Zde je to, co navrhuji:
pokud má VM dostatek místa pro uložení zálohy, ale ne dostatek místa pro jeho obnovení, můžete provést „virtuální obnovení“ pomocí zkušební verze produktu od Red- Brána se stejným názvem (což umožňuje interakci se záložním souborem, jako by byl obnoven). Jinak normální obnovení databáze .
Jakmile je databáze dostupná (prostřednictvím normální obnovy nebo virtuální obnovy), můžete generovat skripty pro schéma a data následujícím způsobem:
Případně můžete zkusit hrát pomocí nástroje nástroj bcp a extrahovat data do souborů CSV nebo podobných, ale budete muset udělat tuto tabulku za stolem nebo použít nějaké chytré skriptování (PowerShell, T-SQL , C #/SMO atd.), Abyste pro vás vygenerovali všechny příkazy bcp. Jakmile je v souborech CSV, mělo by být triviální hromadné načítání dat do Postgresu (ale stále budete mít nějakou práci na generování tabulek).
Jako konečný návrh, pokud soubor .bak není ginormous a data nejsou důvěrná, jsem více než ochoten vyzkoušet a vygenerovat soubory pro vás ve formátu, který potřebujete. Mám spoustu Windows VM s prostorem, výzvou by bylo dostat soubor .BAK na místo, kde ho mohu získat - zejména pokud je větší než většina podporovaných služeb pro sdílení souborů.
Bohužel neexistuje způsob, jak získat přístup k obsahu souboru .bak, aniž byste měli hluboké znalosti vnitřních prvků samotného souboru. Dokážu zde myslet na jednu osobu, která by mohla mít informace o těchto informacích, ale nemůžu mluvit s tím, zda by vám řekla, jak by se to mělo dělat.
Budete tedy muset nainstalovat instanci serveru SQL. Musíte také zajistit, aby tato instance mohla mluvit s vaším serverem Postgres (frigging with pg_hba.conf) Jakmile budete mít, máte pár dobrých cest k migraci dat.
První cestou by bylo nainstalovat Postgres Windows ODBC ovladač a nastavit připojení k pg serveru.) Pak můžete použít SSIS ke skriptu migrace dat. Při instalaci databázového serveru doporučujeme nainstalovat SSIS.
Druhá možnost zahrnuje také připojení ovladače ODBC), ale můžete vytvořit propojený server v SQL Serveru a pomocí SQL Serveru spouštět vložky v instanci pg. Na tuto otázku jsem již dříve odpověděl nemělo by být těžké najít.
UPRAVIT
Chcete-li začlenit Aaronův komentář, jakmile uvedete SQL Server do provozu, můžete také exportovat data do plochých souborů různými způsoby. Pokud zvolíte tuto cestu, dejte mi vědět a já zveřejním několik způsobů, jak to udělat
ÚPRAVA (2):
Proces propojeného serveru nemusí být nejlepším přístupem, pokud nechcete vytvořit struktury předem. Je to můj preferovaný způsob, ale obvykle už mám strukturu na obou stranách.
To ponechává odpověď Aarona Bertranda jako nejlepší odpověď. Vezměte prosím na vědomí, že kromě datových typů (IDENTITY
vs. SEQUENCE
, postgres nezná nic o NVARCHAR
, protože nastavíte kódování na samotné databázi). Postgres neví nic o CREATE CLUSTERED INDEX
( CLUSTER
může pracovat pro vás). Nakonec, protože v komentářích vidím, že budete používat prostorová data, postgresql neví nic o CREATE SPATIAL INDEX
syntaxe. Abyste mohli vytvořit prostorové indexy, musíte nainstalovat postgis a použít klíčové slovo INDEXTYPE
. Nakonec se ujistěte, že se schématy správně pracujete.
Dlouhý příběh krátce: