Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A következőkre vonatkozik:SQL Server
Ez a cikk azt ismerteti, hogyan csatolhat adatbázist az SQL Serverhez az SQL Server Management Studióval vagy a Transact-SQL-sel. Ezzel a funkcióval SQL Server-adatbázist másolhat, helyezhet át vagy frissíthet.
Korlátozások és korlátozások
A korlátozások és korlátozások listáját az Adatbázis leválasztása és csatolása (SQL Server)című témakörben találja.
Előfeltételek
A folytatás előtt tekintse át az alábbi előfeltételeket:
Abban az esetben, ha adatbázist helyez át egyik példányról a másikra, az adatbázist először le kell választani bármelyik meglévő SQL-példányról. Ha olyan adatbázist próbál csatolni, amely nem lett leválasztva, hibát ad vissza. További információért lásd a Adatbázis leválasztásarészt.
Adatbázis csatolásakor az adatbázis összes adatfájljának elérhetőnek kell lennie. Ezek a fájlok gyakran rendelkeznek .mdf vagy .ndf kiterjesztéssel (adatfájlokhoz) és .ldf -sel (tranzakciónapló-fájlokhoz). Emellett a FILESTREAM-adatokhoz tartozó összes fájlcsoportnak jelen kell lennie és elérhetőnek kell lennie. A FILESTREAM-kompatibilis adatbázisok csatolásáról további információt FILESTREAM-Enabled Adatbázis áthelyezésecímű témakörben talál.
Ha bármely adatfájl elérési útja eltér az adatbázis első létrehozásakor vagy utolsó csatolásakor, meg kell adnia a fájl aktuális elérési útját.
Az adatbázismotor szolgáltatásfiókjának engedélyekkel kell rendelkeznie ahhoz, hogy beolvassa a fájlokat az új helyükön.
Ha az MDF- és LDF-fájlok különböző könyvtárakban találhatók, és az egyik elérési út tartalmazza a
\\?\GlobalRoot, az adatbázis csatolásakor a művelet sikertelen lesz.
A csatolás a legjobb választás?
Javasoljuk, hogy az adatbázisokat egy példányon belül helyezze át a ALTER DATABASE tervezett áthelyezési eljárással a leválasztás és csatolás helyett, amikor az adatbázisfájlokat ugyanabban a példányban helyezi át. További információ: Felhasználói adatbázisok áthelyezése.
A biztonsági mentéshez és helyreállításhoz nem ajánlott leválasztást és csatolást használni. Nincsenek elérhető tranzakciónapló-mentések vagy időponthoz kötött helyreállítás, amikor a külső biztonsági mentéshez az SQL Server fájljait leválasztják.
Biztonság
A fájlhozzáférési engedélyek számos adatbázisművelet során be vannak állítva, beleértve az adatbázis leválasztásakor és csatolásakor is. Az adatbázis leválasztásakor vagy csatolásakor az adatbázismotor megpróbálja megszemélyesíteni a kapcsolatot végrehajtó Windows-fiókot, hogy a fiók hozzáférhessen az adatbázishoz és a naplófájlokhoz. Sql Server-bejelentkezéseket használó vegyes biztonsági fiókok esetén a megszemélyesítés sikertelen lehet.
Az alábbi táblázat az adatbázisra és a naplófájlokra vonatkozó engedélyeket mutatja be egy csatolási vagy leválasztási művelet befejezése után, valamint azt, hogy a csatlakozó fiókot megszemélyesítheti-e az adatbázismotor.
| Művelet | A csatlakozási fiók megszemélyesíthető | Engedélyek megadása a fájlokhoz |
|---|---|---|
| Elválaszt | Igen | Csak a műveletet végrehajtó fiók. Az operációsrendszer-rendszergazda további fiókokat is hozzáadhat, ha az adatbázis leválasztása után szükség van rájuk. |
| Elválaszt | Nem | Az SQL Server (MSSQLSERVER) szolgáltatásfiókja és a helyi Windows-rendszergazdák csoport tagjai. |
| Mellékel | Igen | Az SQL Server (MSSQLSERVER) szolgáltatásfiókja és a helyi Windows-rendszergazdák csoport tagjai. |
| Mellékel | Nem | Az SQL Server (MSSQLSERVER) szolgáltatásfiókja. |
Az SQL Server-szolgáltatás szolgáltatásonkénti SID-inek nyújtott fájlrendszerengedélyekről további információt Az adatbázismotor hozzáférésifájlrendszerengedélyeinek konfigurálása című témakörben talál.
Figyelem
Javasoljuk, hogy ne csatolja vagy állítsa vissza az adatbázisokat ismeretlen vagy nem megbízható forrásokból. Az ilyen adatbázisok rosszindulatú kódot tartalmazhatnak, amelyek nem szándékos Transact-SQL kódot hajthatnak végre, vagy hibákat okozhatnak a séma vagy a fizikai adatbázis szerkezetének módosításával. Mielőtt ismeretlen vagy nem megbízható forrásból származó adatbázist használna, futtassa DBCC CHECKDB az adatbázison egy nem gyártási kiszolgálón, és vizsgálja meg a kódot, például a tárolt eljárásokat vagy más felhasználó által definiált kódot az adatbázisban. Az adatbázisok csatolásáról és az adatbázis csatolásakor a metaadatokon végrehajtott módosításokról további információt az Adatbázis leválasztása és csatolása (SQL Server)című témakörben talál.
Engedélyek
CREATE DATABASE, CREATE ANY DATABASEvagy ALTER ANY DATABASE engedélyt igényel.
SQL Server Management Studio (SSMS) használata
Adatbázis áthelyezése előtt
Ha áthelyez egy adatbázist, mielőtt leválasztja azt a meglévő SQL Server-példányról, az Adatbázis tulajdonságai lapon tekintse át az adatbázishoz és az aktuális helyükhöz társított fájlokat.
Az SQL Server Management Studio Object Explorerben csatlakozzon az SQL Server adatbázismotor példányához, majd bontsa ki a példányt.
Bontsa ki Adatbázisokelemet, és válassza ki a leválasztani kívánt felhasználói adatbázis nevét.
Kattintson a jobb gombbal az adatbázis nevére, és válassza a Tulajdonságoklehetőséget. Jelölje ki a Fájlok lapot, és tekintse át a Adatbázisfájlok: tábla bejegyzéseit.
A leválasztás, áthelyezés és csatolás előtt mindenképpen figyelembe kell vennie az adatbázishoz társított összes fájlt. Ezután folytassa a leválasztással, a fájlmásolással és az adatbázis-lépések csatolásával a következő szakaszban. További információért lásd a Adatbázis leválasztásarészt.
Adatbázis csatolása
Az SQL Server Management Studio Objektumkezelő-ben csatlakozzon egy SQL Server-adatbázismotor példányhoz, majd válassza az adott példány nézetének kibontását az SSMS-ben.
Kattintson a jobb gombbal Adatbázisok elemre, és válassza a Csatoláslehetőséget.
Az Adatbázis csatolása párbeszédpanelen a csatolandó adatbázis megjelöléséhez válassza a Hozzáadáslehetőséget. Az Adatbázisfájlok keresése párbeszédpanelen válassza ki az adatbázis helyét, és bontsa ki a könyvtárfát az adatbázis .mdf fájljának megkereséséhez és kiválasztásához; például:
C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\AdventureWorks2022_Data.mdfFontos
Ha egy már csatolt adatbázist próbál kijelölni, hibaüzenet jelenik meg.
csatolandó adatbázisok
A kijelölt adatbázisokkal kapcsolatos információkat jeleníti meg.<nincs oszlopfejléc>
A csatolási művelet állapotát jelző ikont jelenít meg. A lehetséges ikonokat az Állapot leírásában ismertetjük.MDF-fájl helye
Megjeleníti a kijelölt MDF-fájl elérési útját és fájlnevét.adatbázisnév
Megjeleníti az adatbázis nevét.Csatolás
Opcionálisan egy másik nevet ad meg a csatolandó adatbázisnak.Tulajdonos
Legördülő listát biztosít a lehetséges adatbázis-tulajdonosokról, amelyek közül választható ki egy másik tulajdonos.Állapot
Az adatbázis állapotát az alábbi táblázat szerint jeleníti meg:Ikon Állapotszöveg Leírás (Nincs ikon) (Nincs szöveg) A csatolási művelet nem indult el, vagy lehet, hogy függőben van ehhez az objektumhoz. A párbeszédpanel megnyitásakor ez az alapértelmezett beállítás. Zöld, jobbra mutató háromszög Folyamatban A csatolási művelet elindult, de még nem fejeződött be. Zöld pipa Siker Az objektum csatolása sikeresen megtörtént. Fehér keresztet tartalmazó piros kör Hiba A csatolási művelet hibát észlelt, és nem fejeződött be. Két fekete kvadránst (bal és jobb oldalon) és két fehér kvadránst (felül és alul) tartalmazó kör Megállt A csatolási művelet nem fejeződött be sikeresen, mert leállította a műveletet. Az óramutató járásával ellentétes irányba mutató ívelt nyíl Visszaállítva A csatolási művelet sikeres volt, de egy másik objektum csatolása során fellépő hiba miatt vissza lett állítva. üzenet
Üres üzenetet vagy "Fájl nem található" hivatkozást jelenít meg.hozzáad
Keresse meg a szükséges fő adatbázisfájlokat. Amikor kiválaszt egy .mdf fájlt, a -adatbázisok megfelelő mezői automatikusan kitöltik a vonatkozó információkat, hogy rácsot csatoljanak.Távolítsd el
Eltávolítja a kijelölt fájlt a -adatbázisokból rács csatolásához."<database_name>" adatbázis adatai
Megjeleníti a csatolandó fájlok nevét. Egy fájl elérési útnevének ellenőrzéséhez vagy módosításához válassza a Tallózás gombot (...).Jegyzet
Ha egy fájl nem létezik, az Üzenet oszlopban a "Nem található" szöveg jelenik meg. Ha nem található naplófájl, az egy másik könyvtárban található vagy törölve lett. Frissítenie kell a fájl elérési útvonalát a adatbázis részleteinek rácsában, hogy pontosan a megfelelő helyre mutasson, vagy el kell távolítania a naplófájlt a rácsról. Ha nem található .ndf adatfájl, frissítenie kell a rács elérési útját, hogy a megfelelő helyre mutasson.
eredeti fájlnév
Megjeleníti az adatbázishoz tartozó csatolt fájl nevét.fájltípus
Jelzi a fájl típusát: Adat vagy Napló.aktuális fájl elérési útja
Megjeleníti a kijelölt adatbázisfájl elérési útját. Az elérési út manuálisan szerkeszthető.üzenet
Üres üzenetet vagy "fájl nem található" hivatkozást jelenít meg.
Transact-SQL használata
Adatbázis áthelyezése előtt
Ha áthelyez egy adatbázist, mielőtt leválasztanák a meglévő SQL Server-példányról, használja a sys.database_files rendszerkatalógus nézetet az adatbázishoz és az aktuális helyükhöz társított fájlok áttekintéséhez. További információ: sys.database_files (Transact-SQL).
Az SQL Server Management Studióban válassza Új lekérdezés lehetőséget a Lekérdezésszerkesztő megnyitásához.
Másolja a következő Transact-SQL szkriptet a Lekérdezésszerkesztőbe, majd válassza a Végrehajtáslehetőséget. Ez a szkript megjeleníti a fizikai adatbázisfájlok helyét. Ügyeljen arra, hogy az adatbázis leválasztása/csatolása során minden fájlt vegyen figyelembe.
USE [database_name] GO SELECT type_desc, name, physical_name from sys.database_files;
A leválasztás, áthelyezés és csatolás előtt mindenképpen figyelembe kell vennie az adatbázishoz társított összes fájlt. Ezután folytassa a leválasztással, a fájlmásolással és az adatbázis-lépések csatolásával a következő szakaszban. További információért lásd a Adatbázis leválasztásarészt.
Adatbázis csatolása
Csatlakozzon az adatbázismotorhoz.
A Standard sávon válassza Új lekérdezéslehetőséget.
Használja a CREATE DATABASE utasítást a
FOR ATTACHzáradékkal.Másolja és illessze be a következő példát a lekérdezési ablakba, és válassza a Végrehajtáslehetőséget. Ez a példa csatolja az AdventureWorks2025 adatbázis összes fájlját, és átnevezi az adatbázist
MyAdventureWorks.CREATE DATABASE MyAdventureWorks ON (FILENAME = 'C:\MySQLServer\AdventureWorks_Data.mdf'), (FILENAME = 'C:\MySQLServer\AdventureWorks_Log.ldf') FOR ATTACH;Előfordulhat, hogy az adatbázis további adatfájlokkal (általában .mdf vagy .ndf) rendelkezik, és további fájlokat igényel a
CREATE DATABASE ... FOR ATTACHutasításban. Emellett a FILESTREAM-adatokhoz tartozó fájlcsoportokat is bele kell foglalni az utasításba. A FILESTREAM-kompatibilis adatbázisok csatolásáról további információt FILESTREAM-Enabled-adatbázis áthelyezésecímű témakörben talál.Jegyzet
Másik lehetőségként használhatja a sp_attach_db vagy sp_attach_single_file_db tárolt eljárást. Ezek az eljárások azonban a Microsoft SQL Server egy későbbi verziójában törlődnek. Ne használja ezt a funkciót az új fejlesztési munkában, és tervezze meg a funkciót jelenleg használó alkalmazások módosítását. Javasoljuk, hogy inkább
CREATE DATABASE ... FOR ATTACHhasználjon.
SQL Server-adatbázis frissítése után
Adatbázis-kompatibilitási szint
Miután frissített egy adatbázist a csatolási módszerrel, az adatbázis elérhetővé válik. Az adatbázis automatikusan frissül az új példány belső verziójának szintjére. Ha az adatbázis teljes szöveges indexekkel rendelkezik, a frissítési folyamat importálja, alaphelyzetbe állítja vagy újraépíti őket a Full-Text Frissítési lehetőség kiszolgálótulajdonság beállításától függően. Ha a frissítési beállítás importálás vagy újraépítés, a teljes szövegű indexek nem érhetők el a frissítés során. Az indexelt adatok mennyiségétől függően az importálás több órát is igénybe vehet, az újraépítés pedig akár tízszer hosszabb időt is igénybe vehet. Vegye figyelembe azt is, hogy ha a frissítési beállítás Importálásértékre van állítva, ha egy teljes szöveges katalógus nem érhető el, a társított teljes szöveges indexek újraépülnek.
A frissítés után az adatbázis kompatibilitási szintje a frissítés előtti kompatibilitási szinten marad, kivéve, ha az új verzió nem támogatja az előző kompatibilitási szintet. Ebben az esetben a frissített adatbázis kompatibilitási szintje a legalacsonyabb támogatott kompatibilitási szintre van állítva. Ha például egy 90-es kompatibilitási szintű adatbázist csatol az SQL Server 2019 egy példányához (15.x), a frissítés után a kompatibilitási szint 100-ra van állítva, ami az SQL Server 2019 legalacsonyabb támogatott kompatibilitási szintje (15.x). További információ: ALTER DATABASE kompatibilitási szintje (Transact-SQL).
Adatváltozás rögzítése (CDC)
Ha olyan SQL Server 2014 (12.x) vagy korábbi példányból csatol adatbázist, amelynél engedélyezve volt a Change Data Capture (CDC) funkció, a következő parancsot kell végrehajtania az adatrögzítés (CDC) metaadatainak frissítéséhez:
USE <database name>
EXEC sys.sp_cdc_vupgrade
További információkért lásd a(z) Hiba, amikor egy CDC-engedélyezett adatbázist csatol egy SQL Server 2016 vagy SQL Server 2017-példányhoz Windowsrendszer alatt.
Lásd még:
- Adatbázis leválasztása és csatolása (SQL Server)
- Adatbázis leválasztása
- CREATE DATABASE (SQL Server Transact-SQL)
- Fájlrendszerengedélyek konfigurálása adatbázismotor-hozzáférési