{"version":"1.1","schema_version":"1.1.0","plugin_version":"1.1.2","url":"https://tutos-gameserver.fr/2019/05/02/comment-deplacer-des-fichiers-de-base-de-donnees-sql-server-vers-un-nouvel-emplacement-mlakartechtalk-bien-choisir-son-serveur-d-impression/","llm_html_url":"https://tutos-gameserver.fr/2019/05/02/comment-deplacer-des-fichiers-de-base-de-donnees-sql-server-vers-un-nouvel-emplacement-mlakartechtalk-bien-choisir-son-serveur-d-impression/llm","llm_json_url":"https://tutos-gameserver.fr/2019/05/02/comment-deplacer-des-fichiers-de-base-de-donnees-sql-server-vers-un-nouvel-emplacement-mlakartechtalk-bien-choisir-son-serveur-d-impression/llm.json","manifest_url":"https://tutos-gameserver.fr/llm-endpoints-manifest.json","language":"fr-FR","locale":"fr_FR","title":"Comment déplacer des fichiers de base de données SQL Server vers un nouvel emplacement &#8211; MlakarTechTalk\n\n &#8211; Bien choisir son serveur d impression","site":{"name":"Tutos GameServer","url":"https://tutos-gameserver.fr/"},"author":{"id":1,"name":"Titanfall","url":"https://tutos-gameserver.fr/author/titanfall/"},"published_at":"2019-05-02T21:25:29+00:00","modified_at":"2019-05-02T21:25:29+00:00","word_count":4616,"reading_time_seconds":1385,"summary":"Avez-vous déjà eu à déplacer des bases de données et leurs fichiers? Une migration de base de données implique des temps d&#39;arrêt et les erreurs commises peuvent certainement gâcher votre journée. Vous ne voulez pas être en pleine migration et ne pas savoir quoi faire. Poursuivez votre lecture pour apprendre à déplacer des fichiers de [&hellip;]","summary_points":["Avez-vous déjà eu à déplacer des bases de données et leurs fichiers?","Une migration de base de données implique des temps d&#39;arrêt et les erreurs commises peuvent certainement gâcher votre journée.","Vous ne voulez pas être en pleine migration et ne pas savoir quoi faire.","Poursuivez votre lecture pour apprendre à déplacer des fichiers de base de données SQL Server et à visionner des démos."],"topics":["Serveur d'impression"],"entities":[],"entities_metadata":[{"id":10,"name":"Serveur d'impression","slug":"serveur-dimpression","taxonomy":"category","count":3907,"url":"https://tutos-gameserver.fr/category/serveur-dimpression/"}],"tags":["Serveur d'impression"],"content_hash":"9ae180af9dbdaad4fdb6eec1122d3edd","plain_text":"Avez-vous déjà eu à déplacer des bases de données et leurs fichiers? Une migration de base de données implique des temps d&#39;arrêt et les erreurs commises peuvent certainement gâcher votre journée. Vous ne voulez pas être en pleine migration et ne pas savoir quoi faire.\nPoursuivez votre lecture pour apprendre à déplacer des fichiers de base de données SQL Server et à visionner des démos.\nPourquoi aurions-nous besoin / envie de déplacer des fichiers de base de données? Il existe certains scénarios dans lesquels une migration est effectuée.\n\nLe disque est à court d&#39;espace\n\nParfois, lorsqu&#39;un administrateur dort au travail, les disques pleins passent inaperçus jusqu&#39;à ce qu&#39;il soit trop tard.\nDans ces cas, certaines bases de données peuvent être déplacées vers un autre disque, volume, point de montage, etc.\n\n\nDéménagement dans un nouvel entrepôt\n\nUn nouvel espace de stockage pour la base de données arrive et nous devons déplacer certaines (ou toutes les) bases de données doivent être déplacées.\n\n\nSéparer les fichiers de base de données\n\nSuivre les meilleures pratiques pour séparer les fichiers de base de données &#8211; fichier de données (mdf), journal des transactions (ldf), tempdb, sauvegardes, fichiers de trace, etc.\nJ&#39;ai écrit à ce sujet ici et plus précisément ici dans la section intitulée «Configuration du disque».\n\n\n\nLa base de données sera indisponible pendant cette opération, nous devons donc en informer nos utilisateurs finaux. Prenez en compte les ramifications si une application utilise la base de données. Nous voudrons peut-être arrêter les services d&#39;application ou entreprendre une autre action personnalisée lors du déplacement.\nPlanifiez à l&#39;avance avant de commencer le travail. Sachez ce que vous allez faire avant de le faire. Si vous pouvez tester votre méthode sur une base de données de laboratoire ou de développement, cela vous aidera également.\n\nUne fois que nous avons le plan de match, nous pouvons commencer à le mettre en œuvre. Regardons quelques détails.\nMigration &#8211; Manières générales de déplacer des fichiers de base de données\nIl existe quelques méthodes que nous pouvons employer pour faire ce travail:\n\nDétacher la base de données / Déplacer les fichiers / Attacher la base de données\nDéfinir la base de données hors connexion / Déplacer les fichiers / Modifier la base de données Modifier le fichier / Définir en ligne\nSauvegarde / restauration ailleurs\n\nVoici quelques bases de connaissances Microsoft pour vous aider tout au long du processus.\n\nJoindre une base de données &#8211; explique CREATE DATABASE FOR ATTACH\nsp_attach_db &#8211; obsolète! Veuillez utiliser la méthode ci-dessus pour attacher\nCréer une base de données &#8211; plus d&#39;informations sur la clause FOR ATTACH\nDéplacer les bases de données utilisateur &#8211; met en évidence ALTER DATABASE MODIFY FILE\nsp_detach_db &#8211; mises en garde concernant le détachement\n\nRegardons en profondeur dans chaque sens.\nMéthode 1: détacher la base de données / déplacer des fichiers / créer une base de données pour l&#39;attachement\nNous créons quelques bases de données pour le tester.\n\n\n\nUTILISER le maître;\nALLER\n/ ***************************************\n       Créer des exemples de bases de données\n**************************************** /\n&#8211;DB1\nCREATE DATABASE [DB1] SUR PRIMAIRE\n(NOM = N&#39;DB1 &#39;, NOMFICHIER = N&#39;C:  Program Files  Serveur SQL Microsoft  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1.mdf&#39;, TAILLE = 8192 Ko, FILEGROWTH = 65536 Ko)\n SE CONNECTER\n(NAME = N&#39;DB1_log &#39;, FILENAME = N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1_log.ldf&#39;, SIZE = 8192 Ko, FILEGROWTH = 65536 Ko)\nALLER\n&#8211;DB2\nCREATE DATABASE [DB2] SUR PRIMAIRE\n(NOM = N&#39;DB2 &#39;, NOMFICHIER = N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2.mdf&#39;, SIZE = 8192 Ko, FILEGROWTH = 65536 Ko)\n SE CONNECTER\n(NAME = N&#39;DB2_log &#39;, FILENAME = N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2_log.ldf&#39;, SIZE = 8192 Ko, FILEGROWTH = 65536 Ko)\nALLER\n&#8211;DB3\nCREATE DATABASE [DB3] SUR PRIMAIRE\n(NOM = N&#39;DB3 &#39;, NOMFICHIER = N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3.mdf&#39;, TAILLE = 8192 Ko, FILEGROWTH = 65536 Ko)\n SE CONNECTER\n(NOM = N&#39;DB3_log &#39;, NOMFICHIER = N&#39;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3_log.ldf&#39;, SIZE = 8192 Ko, FILEGROWTH = 65536 Ko)\nALLER\n\n\n\n\n\n1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n\n\n\n\nUTILISATION maîtriser;\nALLER\n\n/ ***************************************\n              Créer des exemples de bases de données\n**************************************** /\n&#8211;DB1\nCRÉER BASE DE DONNÉES [[[[DB1] SUR PRIMAIRE \n( PRÉNOM = N&#39;DB1&#39;, NOM DE FICHIER = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1.mdf&#39; , TAILLE = 8192 Ko , FILEGROWTH = 65536KB )\n BÛCHE SUR \n( PRÉNOM = N&#39;DB1_log&#39;, NOM DE FICHIER = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1_log.ldf&#39; , TAILLE = 8192 Ko , FILEGROWTH = 65536KB )\nALLER\n\n&#8211;DB2\nCRÉER BASE DE DONNÉES [[[[DB2] SUR PRIMAIRE \n( PRÉNOM = N&#39;DB2&#39;, NOM DE FICHIER = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2.mdf&#39; , TAILLE = 8192 Ko , FILEGROWTH = 65536KB )\n BÛCHE SUR \n( PRÉNOM = N&#39;DB2_log&#39;, NOM DE FICHIER = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2_log.ldf&#39; , TAILLE = 8192 Ko , FILEGROWTH = 65536KB )\nALLER\n\n&#8211;DB3 \nCRÉER BASE DE DONNÉES [[[[DB3] SUR PRIMAIRE \n( PRÉNOM = N&#39;DB3&#39;, NOM DE FICHIER = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3.mdf&#39; , TAILLE = 8192 Ko , FILEGROWTH = 65536KB )\n BÛCHE SUR \n( PRÉNOM = N&#39;DB3_log&#39;, NOM DE FICHIER = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3_log.ldf&#39; , TAILLE = 8192 Ko , FILEGROWTH = 65536KB )\nALLER\n\n\n\n\n\n\nVérifier les informations du fichier de base de données.\n\n\n\n&#8211;Vérifier les informations du fichier DB\nsélectionnez * parmi DB1.sys.database_files;\nselect * from DB2.sys.database_files;\nselect * from DB3.sys.database_files;\n\n\n\n\n\n\n\n&#8211;Vérifier les informations du fichier DB\nsélectionner * de DB1.sys.fichiers_base_de_données;\nsélectionner * de DB2.sys.fichiers_base_de_données;\nsélectionner * de DB3.sys.fichiers_base_de_données;\n\n\n\n\n\n\nIl ressemblera à ceci:\n\nMaintenant, nous faisons certaines choses préliminaires avant de déplacer des fichiers. Nous devons spécifier les bases de données que nous voulons déplacer. C&#39;est une façon très simpliste de le faire &#8211; codé en dur dans une table temporaire.\n\n\n\n/ ***************************************\n       Pré étapes\n**************************************** /\n&#8211;voir les bases de données que vous voulez déplacer\nSELECT * FROM sys.databases WHERE [name] IN (&#39;DB1&#39;, &#39;DB2&#39;, &#39;DB3&#39;);\n&#8211;définit les bases de données à détacher / attacher\nSÉLECTIONNER [name] INTO #DBsToMove FROM sys.databases WHERE [name] IN (&#39;DB1&#39;, &#39;DB2&#39;, &#39;DB3&#39;);\n&#8211;doit rassembler les informations sur le fichier AVANT de détacher la base de données\nSELECT database_id, [type_desc], [name], nom physique\nINTO #DBfiles\nFROM sys.master_files\nWHERE database_id IN (DB_ID (&#39;DB1&#39;), DB_ID (&#39;DB2&#39;), DB_ID (&#39;DB3&#39;));\n&#8211;check file configuration &#8211; pourrait vouloir copier ceci ailleurs pour garder des traces de notre travail\nSELECT * FROM #DBfiles;\n\n\n\n\n\n1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n\n\n\n\n/ ***************************************\n              Pré étapes\n**************************************** /\n\n&#8211;Voir les bases de données que vous souhaitez déplacer\nSÉLECTIONNER * DE sys.bases de données OÙ [[[[prénom] DANS(&#39;DB1&#39;,&#39;DB2&#39;,&#39;DB3&#39;);\n\n&#8211;définit les bases de données à détacher / attacher\nSÉLECTIONNER [[[[prénom] DANS #DBsToMove DE sys.bases de données OÙ [[[[prénom] DANS(&#39;DB1&#39;,&#39;DB2&#39;,&#39;DB3&#39;);\n\n&#8211;doit rassembler les informations sur le fichier AVANT de détacher la base de données\nSÉLECTIONNER base_de_données, [[[[type_desc], [[[[prénom], nom_périphérique\nDANS #DBfiles\nDE sys.master_files\nOÙ base_de_données DANS(DB_ID(&#39;DB1&#39;),DB_ID(&#39;DB2&#39;),DB_ID(&#39;DB3&#39;));\n\n&#8211;check file configuration &#8211; pourrait vouloir copier ceci ailleurs pour garder des traces de notre travail\nSÉLECTIONNER * DE #DBfiles;\n\n\n\n\n\n\n\n\nMaintenant que nous avons ce dont nous avons besoin, nous pouvons commencer à détacher les bases de données.\n\n\n\n/ ************************************************ *****************************************\nMéthode 1: détacher la base de données / déplacer des fichiers / créer une base de données pour l&#39;attachement\n************************************************* ***************************************** /\n&#8211;Détachez les bases de données\nDECLARE @DBName varchar (500);\nDÉCLARE @sql NVARCHAR (MAX);\nDECLARE curDetachDBs CURSOR FAST_FORWARD READ_ONLY POUR\n       SÉLECTIONNER [name] DE #DBsToMove\nOUVRIR curDetachDBs\nFETCH NEXT DE curDetachDBs DANS @DBName\nWHILE @@ FETCH_STATUS = 0\nCOMMENCER\n       CARTE D&#39;IMPRESSION (13) + CHAR (10)\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#39;\n       PRINT &#39;-&#39; + @DBName\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#39;\n       SET @sql = &#39;ALTER DATABASE [&lsquo; + @DBName + &lsquo;] SET SINGLE_USER AVEC ROLLBACK IMMEDIATE; &#39;\n       IMPRIMER @sql\n       EXEC sys.sp_executesql @sql\n       SET @sql = &#39;EXEC sp_detach_db&#39; + @DBName + &#39;,&#39; &#39;true&#39; &#39;;&#39;\n       IMPRIMER @sql\n       EXEC sys.sp_executesql @sql\n    FETCH NEXT DE curDetachDBs DANS @DBName\nFIN\nFERMER curDetachDBs\nDEALLOCATE curDetachDBs\n\n\n\n\n\n1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n\n\n\n\n/ ************************************************ *****************************************\n\t\t\t\tMéthode 1: détacher la base de données / déplacer des fichiers / créer une base de données pour l&#39;attachement\n************************************************* ***************************************** /\n\n&#8211;Détachez les bases de données\nDÉCLARER @DBName varchar(500);\nDÉCLARER @sql NVARCHAR(MAX);\nDÉCLARER curDetachDBs LE CURSEUR AVANCE RAPIDE LECTURE SEULEMENT POUR\n       SÉLECTIONNER [[[[prénom] DE #DBsToMove\nOUVRIR curDetachDBs\nFETCH SUIVANT DE curDetachDBs DANS @DBName\nTANDIS QUE @@FETCH_STATUS = 0\nCOMMENCER\n       IMPRESSION CARBONISER(13) + CARBONISER(dix)\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#39;\n       IMPRESSION &#39;-&#39; + @DBName\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#39;\n       ENSEMBLE @sql = &#39;ALTER DATABASE[&#39;[&#39;[&lsquo;[&lsquo; + @DBName + &#39;]SET SINGLE_USER AVEC ROLLBACK IMMEDIATE; &#39;\n       IMPRESSION @sql\n       EXEC sys.sp_executesql @sql\n       ENSEMBLE @sql = &#39;EXEC sp_detach_db&#39; + @DBName + &#39;,&#39;&#39;vrai&#39;&#39;;&#39;\n       IMPRESSION @sql\n       EXEC sys.sp_executesql @sql\n    FETCH SUIVANT DE curDetachDBs DANS @DBName\nFIN\nFERMER curDetachDBs\nDÉALLOCATE curDetachDBs\n\n\n\n\n\n\nVérifiez les modifications. Notez que les DB sont totalement partis. Vous ne les trouverez pas dans l&#39;explorateur d&#39;objets dans SSMS ou dans les tables système.\n\n\n\n&#8211;verify changements\nSELECT * FROM sys.databases WHERE nom IN (&#39;DB1&#39;, &#39;DB2&#39;, &#39;DB3&#39;);\n&#8211; Les BD sont partis maintenant! c&#39;est ce que détache fait et comment il est différent de la mise hors ligne\n\n\n\n\n\n\n\n&#8211;verify changements\nSÉLECTIONNER * DE sys.bases de données OÙ prénom DANS(&#39;DB1&#39;,&#39;DB2&#39;,&#39;DB3&#39;);\n&#8211; Les BD sont partis maintenant! c&#39;est ce que détache fait et comment il est différent de la mise hors ligne\n\n\n\n\n\n\nVient maintenant le moment de déplacer les fichiers de base de données. Vous pouvez utiliser votre technique préférée pour déplacer des fichiers. J&#39;aime utiliser robocopy dans un fichier .bat, mais il en existe beaucoup d&#39;autres, tels que PowerShell, XCopy ou un clic droit pour couper / coller.\nVoici quelques actions de robocopy:\n\n\n\nrobocopy &quot;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DONNÉES&quot; &quot;G:  MSSQL  Data&quot; &quot;DB1.mdf&quot; / L\nrobocopy &quot;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DONNÉES&quot; &quot;G:  MSSQL  Data&quot; &quot;DB1_log.ldf&quot; / L\nrobocopy &quot;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DONNÉES&quot; &quot;G:  MSSQL  Data&quot; &quot;DB2.mdf&quot; / L\nrobocopy &quot;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DONNÉES&quot; &quot;G:  MSSQL  Data&quot; &quot;DB2_log.ldf&quot; / L\nrobocopy &quot;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DONNÉES&quot; &quot;G:  MSSQL  Data&quot; &quot;DB3.mdf&quot; / L\nrobocopy &quot;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DONNÉES&quot; &quot;G:  MSSQL  Data&quot; &quot;DB3_log.ldf&quot; / L\n\n\n\n\n\n\n\nrobocopier &quot;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA&quot; &quot;G:  MSSQL  Data&quot; &quot;DB1.mdf&quot; /L\nrobocopier &quot;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA&quot; &quot;G:  MSSQL  Data&quot; &quot;DB1_log.ldf&quot; /L\nrobocopier &quot;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA&quot; &quot;G:  MSSQL  Data&quot; &quot;DB2.mdf&quot; /L\nrobocopier &quot;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA&quot; &quot;G:  MSSQL  Data&quot; &quot;DB2_log.ldf&quot; /L\nrobocopier &quot;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA&quot; &quot;G:  MSSQL  Data&quot; &quot;DB3.mdf&quot; /L\nrobocopier &quot;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA&quot; &quot;G:  MSSQL  Data&quot; &quot;DB3_log.ldf&quot; /L\n\n\n\n\n\n\nLe drapeau “/ L” est la première façon dont je gère les choses. En réalité, il ne copie rien, mais listera les fichiers. C&#39;est une bonne pré-vérification avant d&#39;exécuter un lot. Supprimez simplement le drapeau “/ L” et exécutez-le une fois vérifié.\nVoici la première partie de la sortie de l’exécution d’un fichier .bat avec des instructions robocopy:\n\nUne fois que les fichiers sont physiquement déplacés vers le nouvel emplacement, nous pouvons continuer.\n\n\n\n&#8211; attacher les bases de données\nDECLARE @targetMDF NVARCHAR (128);\nDECLARE @targetLDF NVARCHAR (128);\nDECLARE @DBName varchar (500);\nDÉCLARE @sql NVARCHAR (MAX);\nDECLARE @rowFile NVARCHAR (128);\nDECLARE @logFile NVARCHAR (128);\nDECLARE curAttachDBs CURSOR FAST_FORWARD READ_ONLY POUR\n       SELECT nom FROM #DBsToMove\nOUVRIR curAttachDBs\nFETCH NEXT FROM curAttachDBs INTO @DBName\nWHILE @@ FETCH_STATUS = 0\nCOMMENCER\n       SET @targetMDF = &#39;G:  MSSQL  Data&#39;;\n       SET @targetLDF = &#39;G:  MSSQL  Data&#39;;\n       CARTE D&#39;IMPRESSION (13) + CHAR (10)\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#39;\n       PRINT &#39;-&#39; + @DBName\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#39;\n       SELECT @targetMDF + = &#39;&#39; + [name] + &#39;.mdf&#39; DE #DBfiles WHERE REMPLACE ([name], &#39;_ log&#39;, &#39;&#39;) = @DBName AND [type_desc] = &#39;ROWS&#39;;\n       SELECT @targetLDf + = &#39;&#39; + [name] + &#39;.ldf&#39; DE #DBfiles WHERE REMPLACE ([name], &#39;_ log&#39;, &#39;&#39;) = @DBName AND [type_desc] = &#39;LOG&#39;;\n       \n&#8211;attache la base de données\n       SELECT @sql = &#39;CREATE DATABASE [&lsquo; + @DBName + &lsquo;] SUR\n              (FILENAME = &#39;&#39; &#39;\n                      + @targetMDF + &#39;&#39; &#39;),\n              (FILENAME = &#39;&#39; &#39;+ @targetLDF +&#39; &#39;&#39;)\n              POUR ATTACHER &#39;\n       FROM #DBfiles;\n       PRINT @sql;\n       EXEC sys.sp_executesql @sql;\n       SET @targetMDF = &#39;&#39;;\n       SET @targetLDF = &#39;&#39;;\n    FETCH NEXT FROM curAttachDBs INTO @DBName\nFIN\nCLOSE curAttachDBs\nDEALLOCATE curAttachDBs\n\n\n\n\n\n1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37\n\n\n\n\n&#8211; attacher les bases de données\nDÉCLARER @targetMDF NVARCHAR(128);\nDÉCLARER @targetLDF NVARCHAR(128);\nDÉCLARER @DBName varchar(500);\nDÉCLARER @sql NVARCHAR(MAX);\nDÉCLARER @rowFile NVARCHAR(128);\nDÉCLARER @fichier journal NVARCHAR(128);\nDÉCLARER curAttachDBs LE CURSEUR AVANCE RAPIDE LECTURE SEULEMENT POUR\n       SÉLECTIONNER prénom DE #DBsToMove\nOUVRIR curAttachDBs\nFETCH SUIVANT DE curAttachDBs DANS @DBName\nTANDIS QUE @@FETCH_STATUS = 0\nCOMMENCER\n       ENSEMBLE @targetMDF = &#39;G:  MSSQL  Data&#39;;\n       ENSEMBLE @targetLDF = &#39;G:  MSSQL  Data&#39;;\n       IMPRESSION CARBONISER(13) + CARBONISER(dix)\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#39;\n       IMPRESSION &#39;-&#39; + @DBName\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#39;\n       SÉLECTIONNER @targetMDF + = &#39;&#39; + [name] + &#39;.mdf&#39;FROM #DBfiles O REMPLACER ([name]&#39;_bûche&#39;,&#39;&#39;) = @DBNAME AND [type_desc] = &#39;ROWS&#39;;\n              SELECT @targetLDf + = &#39;&#39; + [[[[prénom] + &#39;.ldf&#39; DE #DBfiles OÙ REMPLACER([[[[prénom],&#39;_bûche&#39;,&#39;&#39;) = @DBName ET [[[[type_desc] = &#39;BÛCHE&#39;;\n       \n\t\t   &#8211;attache la base de données\n       SÉLECTIONNER @sql = &#39;CREATE DATABASE[&#39;[&#39;[&lsquo;[&lsquo; + @DBName + &#39;]SUR\n                            (FILENAME = &#39;&#39;&#39;\n                      + @targetMDF + &#39;&#39;&#39;),\n                            (FILENAME = &#39;&#39;&#39; + @targetLDF + &#39;&#39;&#39;)\n                            POUR ATTACHER &#39;\n       DE #DBfiles;\n       IMPRESSION @sql;\n       EXEC sys.sp_executesql @sql;\n       ENSEMBLE @targetMDF = &#39;&#39;;\n       ENSEMBLE @targetLDF = &#39;&#39;;\n    FETCH SUIVANT DE curAttachDBs DANS @DBName\nFIN\nFERMER curAttachDBs\nDÉALLOCATE curAttachDBs\n\n\n\n\n\n\nVérifiez les nouveaux emplacements de fichiers.\n\n\n\n&#8211;Vérifier les informations du fichier DB\nsélectionnez * parmi DB1.sys.database_files;\nselect * from DB2.sys.database_files;\nselect * from DB3.sys.database_files;\n\n\n\n\n\n\n\n&#8211;Vérifier les informations du fichier DB\nsélectionner * de DB1.sys.fichiers_base_de_données;\nsélectionner * de DB2.sys.fichiers_base_de_données;\nsélectionner * de DB3.sys.fichiers_base_de_données;\n\n\n\n\n\n\n\nAuparavant, nos fichiers pointaient vers C: mais sont maintenant sur G: &#8211; la migration est terminée.\nMéthode 2: Définir la base de données hors connexion / déplacer des fichiers / modifier la base de données / définir en ligne\nContinuons dans ce sens, déplaçons les 3 exemples de bases de données que nous avons créées et que nous venons de revenir des disques G: à C:. Ici, nous commençons par définir nos bases de données et en définissant un nouveau chemin.\n\n\n\nUTILISER le maître;\nALLER\n/ ***************************************\n       Pré étapes\n**************************************** /\n&#8211;voir les bases de données que vous voulez déplacer\nSELECT * FROM sys.databases WHERE [name] IN (&#39;DB1&#39;, &#39;DB2&#39;, &#39;DB3&#39;);\n&#8211;définit les bases de données à détacher / attacher\nSÉLECTIONNER [name] INTO #DBsToMove FROM sys.databases WHERE [name] IN (&#39;DB1&#39;, &#39;DB2&#39;, &#39;DB3&#39;);\n&#8211;doit rassembler les informations sur le fichier AVANT de détacher la base de données\nSELECT database_id, [type_desc], [name], nom physique\nINTO #DBfiles\nFROM sys.master_files\nWHERE database_id IN (DB_ID (&#39;DB1&#39;), DB_ID (&#39;DB2&#39;), DB_ID (&#39;DB3&#39;));\nalter table #DBfiles add NewPath varchar (500);\n&#8211; charger de nouveaux chemins\nDECLARE @targetMDF NVARCHAR (128);\nDECLARE @targetLDF NVARCHAR (128);\nSET @targetMDF = &#39;C:  Fichiers de programme  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA &#39;;\nSET @targetLDF = &#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA &#39;;\n&#8211;SET @targetMDF = &#39;G:  MSSQL  Data &#39;;\n&#8211;SET @targetLDF = &#39;G:  MSSQL  Data &#39;;\nmettre à jour les fichiers\ndéfinir NewPath = case quand [type_desc] = &#39;ROWS&#39; puis @targetMDF + [name] + &#39;.mdf&#39;\nquand [type_desc] = &#39;LOG&#39; puis @targetLDF + [name] + &#39;.ldf&#39;\nfin\nà partir des fichiers #DBfiles;\n&#8211;check file configuration &#8211; pourrait vouloir copier ceci ailleurs pour garder des traces de notre travail\nSELECT * FROM #DBfiles;\n\n\n\n\n\n1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37\n\n\n\n\nUTILISATION maîtriser;\nALLER\n\n/ ***************************************\n              Pré étapes\n**************************************** /\n\n&#8211;voir les bases de données que vous voulez déplacer\nSÉLECTIONNER * DE sys.bases de données OÙ [[[[prénom] DANS(&#39;DB1&#39;,&#39;DB2&#39;,&#39;DB3&#39;);\n\n&#8211;définit les bases de données à détacher / attacher\nSÉLECTIONNER [[[[prénom] DANS #DBsToMove DE sys.bases de données OÙ [[[[prénom] DANS(&#39;DB1&#39;,&#39;DB2&#39;,&#39;DB3&#39;);\n\n&#8211;doit rassembler les informations sur le fichier AVANT de détacher la base de données\nSÉLECTIONNER base_de_données, [[[[type_desc], [[[[prénom], nom_périphérique\nDANS #DBfiles\nDE sys.master_files\nOÙ base_de_données DANS(DB_ID(&#39;DB1&#39;),DB_ID(&#39;DB2&#39;),DB_ID(&#39;DB3&#39;));\n\nmodifier table #DBfiles ajouter Nouveau chemin varchar(500);\n\n&#8211; charger de nouveaux chemins \nDÉCLARER @targetMDF NVARCHAR(128);\nDÉCLARER @targetLDF NVARCHAR(128);\nENSEMBLE @targetMDF = &#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA &#39;;\nSET @targetLDF = &#39;C:Programme Des dossiersMicrosoft SQL ServeurMSSQL13.MSSQLSERVERMSSQLLES DONNÉES&#39;;\n&#8211;SET @targetMDF = &#39;G:  MSSQL  Data &#39;;\n&#8211;SET @targetLDF = &#39;G:  MSSQL  Data &#39;;\n\nmettre à jour des dossiers\nensemble Nouveau chemin = Cas quand [[[[type_desc] = &#39;ROWS&#39; puis @targetMDF + [[[[prénom] + &#39;.mdf&#39;\n\t\t\t\t\t\t\t\t   quand [[[[type_desc] = &#39;BÛCHE&#39; puis @targetLDF + [[[[prénom] + &#39;.ldf&#39; \n\t\t\t\t\t\t\t\t   fin \nde #DBfiles des dossiers;\n\n&#8211;check file configuration &#8211; pourrait vouloir copier ceci ailleurs pour garder des traces de notre travail\nSÉLECTIONNER * DE #DBfiles;\n\n\n\n\n\n\nVoici le résultat de #DBFiles:\n\nMaintenant, au lieu de vous détacher comme dans l&#39;exemple précédent, plaçons simplement les bases de données hors ligne.\n\n\n\n/ ************************************************ *****************************************\nMéthode 2: Définir la base de données hors connexion / déplacer des fichiers / modifier la base de données / définir en ligne\n************************************************* ***************************************** /\n&#8211;set DBs hors ligne\nDECLARE @DBName varchar (500);\nDÉCLARE @sql NVARCHAR (MAX);\nDECLARE curDetachDBs CURSOR FAST_FORWARD READ_ONLY POUR\n       SÉLECTIONNER [name] DE #DBsToMove\nOUVRIR curDetachDBs\nFETCH NEXT DE curDetachDBs DANS @DBName\nWHILE @@ FETCH_STATUS = 0\nCOMMENCER\n       CARTE D&#39;IMPRESSION (13) + CHAR (10)\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#39;\n       PRINT &#39;-&#39; + @DBName\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#39;\n       SET @sql = &#39;ALTER DATABASE [&lsquo; + @DBName + &lsquo;] SET OFFLINE; &#39;\n       IMPRIMER @sql\n       EXEC sys.sp_executesql @sql\n    FETCH NEXT DE curDetachDBs DANS @DBName\nFIN\nFERMER curDetachDBs\nDEALLOCATE curDetachDBs\n&#8211;verify changements\nSELECT * FROM sys.databases WHERE nom IN (&#39;DB1&#39;, &#39;DB2&#39;, &#39;DB3&#39;);\n&#8211; Les BD sont toujours présentes &#8211; contrairement à détachement\n\n\n\n\n\n1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n\n\n\n\n/ ************************************************ *****************************************\n\t\t\t\tMéthode 2: Définir la base de données hors connexion / déplacer des fichiers / modifier la base de données / définir en ligne\n************************************************* ***************************************** /\n\n&#8211;set DBs hors ligne\nDÉCLARER @DBName varchar(500);\nDÉCLARER @sql NVARCHAR(MAX);\nDÉCLARER curDetachDBs LE CURSEUR AVANCE RAPIDE LECTURE SEULEMENT POUR\n       SÉLECTIONNER [[[[prénom] DE #DBsToMove\nOUVRIR curDetachDBs\nFETCH SUIVANT DE curDetachDBs DANS @DBName\nTANDIS QUE @@FETCH_STATUS = 0\nCOMMENCER\n       IMPRESSION CARBONISER(13) + CARBONISER(dix)\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#39;\n       IMPRESSION &#39;-&#39; + @DBName\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#39;\n       ENSEMBLE @sql = &#39;ALTER DATABASE[&#39;[&#39;[&lsquo;[&lsquo; + @DBName + &#39;]SET OFFLINE; &#39;\n       IMPRESSION @sql\n       EXEC sys.sp_executesql @sql\n    FETCH SUIVANT DE curDetachDBs DANS @DBName\nFIN\nFERMER curDetachDBs\nDÉALLOCATE curDetachDBs\n\n&#8211;verify changements\nSÉLECTIONNER * DE sys.bases de données OÙ prénom DANS(&#39;DB1&#39;,&#39;DB2&#39;,&#39;DB3&#39;);\n&#8211; Les BD sont toujours présentes &#8211; contrairement à détachement\n\n\n\n\n\n\nLes bases de données sont toujours présentes mais sont hors ligne. Ils ne peuvent pas être lus ou écrits.\n\nAprès avoir défini les bases de données hors ligne, déplacez les fichiers de données vers leur nouvel emplacement.\nEnfin, nous modifions les bases de données pour modifier leurs fichiers, nous les pointons vers le nouvel emplacement, puis nous remettons les bases de données en ligne.\n\n\n\n&#8211;Alter DB pour modifier les fichiers puis les mettre en ligne\nDECLARE @DBName varchar (500);\nDÉCLARE @sql NVARCHAR (MAX);\nDECLARE @rowFile NVARCHAR (128);\nDECLARE @logFile NVARCHAR (128);\nDECLARE @fileType varchar (4);\nDÉCLARE @DBID int;\nDECLARE @NewPath varchar (500);\nDECLARE @fileName varchar (128);\nDECLARE curAttachDBs CURSOR FAST_FORWARD READ_ONLY POUR\n       SELECT database_id, [type_desc], [name], NewPath DE #DBfiles\nOUVRIR curAttachDBs\nFETCH NEXT FROM curAttachDBs IN @DBID, @fileType, @fileName, @NewPath\nWHILE @@ FETCH_STATUS = 0\nCOMMENCER\nSELECT @DBName = DB_NAME (@DBID);\nCARTE D&#39;IMPRESSION (13) + CHAR (10)\nIMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#39;\nPRINT &#39;-&#39; + @DBName\nIMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#39;\nsélectionnez @DBID, @fileType, @fileName, @NewPath\n&#8211;changez les emplacements de fichiers\nSELECT @sql = &#39;ALTER DATABASE [&lsquo; + @DBName + &lsquo;] MODIFIER LE FICHIER (\nNAME = &#39;&#39; &#39;+ @fileName +&#39; &#39;&#39;,\nFILENAME = &#39;&#39; &#39;+ @NewPath +&#39; &#39;&#39; &#39;&#39;\nFROM #DBfiles;\nPRINT @sql;\nEXEC sys.sp_executesql @sql;\n&#8211;set DB en ligne\nSELECT @sql = &#39;ALTER DATABASE&#39; + @DBName + &#39;SET ONLINE&#39;;\nprint @sql;\nEXEC sys.sp_executesql @sql;\nFETCH NEXT FROM curAttachDBs IN @DBID, @fileType, @fileName, @NewPath\nFIN\nCLOSE curAttachDBs\nDEALLOCATE curAttachDBs\n&#8211;Vérifier les informations du fichier DB\nsélectionnez database_id, DB_NAME (database_id) comme &quot;DBName&quot;, [type_desc], [name], nom_ physiques, code_état\nde sys.master_files\noù DB_NAME (id_bdd) dans (&#39;DB1&#39;, &#39;DB2&#39;, &#39;DB3&#39;);\n\n\n\n\n\n1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37\n38\n39\n40\n41\n42\n43\n44\n45\n\n\n\n\n&#8211;Alter DB pour modifier les fichiers puis les mettre en ligne\nDÉCLARER @DBName varchar(500);\nDÉCLARER @sql NVARCHAR(MAX);\nDÉCLARER @rowFile NVARCHAR(128);\nDÉCLARER @fichier journal NVARCHAR(128);\nDÉCLARER @Type de fichier varchar(4);\nDÉCLARER @DBID int;\nDÉCLARER @Nouveau chemin varchar(500);\nDÉCLARER @nom de fichier varchar(128);\nDÉCLARER curAttachDBs LE CURSEUR AVANCE RAPIDE LECTURE SEULEMENT POUR\n       SÉLECTIONNER base_de_données, [[[[type_desc], [[[[prénom], Nouveau chemin DE #DBfiles\nOUVRIR curAttachDBs\nFETCH SUIVANT DE curAttachDBs DANS @DBID, @Type de fichier, @nom de fichier, @Nouveau chemin\nTANDIS QUE @@FETCH_STATUS = 0\nCOMMENCER\n\tSÉLECTIONNER @DBName = DB_NAME(@DBID);\n\n\tIMPRESSION CARBONISER(13) + CARBONISER(dix)\n\tIMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#39;\n\tIMPRESSION &#39;-&#39; + @DBName\n\tIMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#39;\n\tsélectionner @DBID, @Type de fichier, @nom de fichier, @Nouveau chemin\n\t&#8211;changez les emplacements de fichiers\n\tSÉLECTIONNER @sql = &#39;ALTER DATABASE[&#39;[&#39;[&lsquo;[&lsquo; + @DBName + &#39;]MODIFIER LE FICHIER (\n\t\t\t\t\t\t\t\t\t\t\t\tNOM = &#39;&#39;&#39; + @nom de fichier + &#39;&#39;&#39;,\n\t\t\t\t\t\t\t\t\t\t\t\tFILENAME = &#39;&#39;&#39; + @Nouveau chemin + &#39;&#39;&#39;)&#39;\n\tDE #DBfiles;\n\tIMPRESSION @sql;\n\tEXEC sys.sp_executesql @sql;\n\n\t&#8211;set DB en ligne\n\tSÉLECTIONNER @sql = &#39;ALTER DATABASE&#39; + @DBName + &#39;SET ONLINE&#39;;\n\timpression @sql;\n\tEXEC sys.sp_executesql @sql;\n\n\tFETCH SUIVANT DE curAttachDBs DANS @DBID, @Type de fichier, @nom de fichier, @Nouveau chemin\nFIN\nFERMER curAttachDBs\nDÉALLOCATE curAttachDBs\n\n&#8211;Vérifier les informations du fichier DB\nsélectionner base_de_données, DB_NAME(base_de_données) comme &#39;DBName&#39;, [[[[type_desc], [[[[prénom], nom_périphérique, state_desc\nde sys.master_files \noù DB_NAME(base_de_données) dans(&#39;DB1&#39;,&#39;DB2&#39;,&#39;DB3&#39;);\n\n\n\n\n\n\nVoici le résultat de la vérification ci-dessus. Il montre les fichiers de base de données dans un nouvel emplacement et en ligne.\n\nMéthode 3: Sauvegarder / détacher et supprimer / restaurer ailleurs\nLa sauvegarde sera comme toutes les autres.\n\n\n\nUTILISER le maître;\nALLER\n&#8211;Base de sauvegarde\nBASE DE DONNEES DE SAUVEGARDE [DB1] TO DISK = N&#39;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB1.bak &#39;;\nALLER\nBASE DE DONNEES DE SAUVEGARDE [DB2] TO DISK = N&#39;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB2.bak &#39;;\nALLER\nBASE DE DONNEES DE SAUVEGARDE [DB3] TO DISK = N&#39;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB3.bak &#39;;\nALLER\n\n\n\n\n\n\n\nUTILISATION maîtriser;\nALLER\n\n&#8211;Base de sauvegarde\nSAUVEGARDE BASE DE DONNÉES [[[[DB1] À  DISQUE = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB1.bak&#39;;\nALLER\n\nSAUVEGARDE BASE DE DONNÉES [[[[DB2] À  DISQUE = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB2.bak&#39;;\nALLER\n\nSAUVEGARDE BASE DE DONNÉES [[[[DB3] À  DISQUE = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB3.bak&#39;;\nALLER\n\n\n\n\n\n\n\nÀ ce stade, nous sommes libres de détacher les bases de données et de disposer des fichiers de base de données. Il serait peut-être bon de conserver les fichiers jusqu&#39;à ce que nous ayons vérifié que la restauration a fonctionné. Comme il s’agit d’un exemple artificiel, passons à la restauration.\n\n\n\n&#8211; Restaurer des bases de données\nRESTORE DATABASE [DB1] FROM DISK = N&#39;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB1.bak &#39;\nWITH REPLACE, FILE = 1, DÉPLACEZ N&#39;DB1 &#39;À N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1.mdf&#39;,\nDÉPLACER N&#39;DB1_log &#39;À N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1_log.ldf&#39;, NOUNLOAD, STATS = 5\nALLER\nRESTORE DATABASE [DB2] FROM DISK = N&#39;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB2.bak &#39;\nWITH REPLACE, FILE = 1, DÉPLACEZ N&#39;DB2 &#39;À N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2.mdf&#39;,\nDÉPLACER N&#39;DB2_log &#39;À N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2_log.ldf&#39;, NOUNLOAD, STATS = 5\nALLER\nRESTORE DATABASE [DB3] FROM DISK = N&#39;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB3.bak &#39;\nWITH REPLACE, FILE = 1, DÉPLACEZ N&#39;DB3 &#39;À N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3.mdf&#39;,\nDÉPLACER N&#39;DB3_log &#39;À N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3_log.ldf&#39;, NOUNLOAD, STATS = 5\nALLER\n\n\n\n\n\n\n\n&#8211; Restaurer des bases de données\nRESTAURER BASE DE DONNÉES [[[[DB1] DE  DISQUE = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB1.bak&#39; \nAVEC REMPLACER, FICHIER = 1,  BOUGE TOI N&#39;DB1&#39; À N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1.mdf&#39;, \nBOUGE TOI N&#39;DB1_log&#39; À N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1_log.ldf&#39;,  NOUNLOAD,  STATISTIQUES = 5\nALLER\n\nRESTAURER BASE DE DONNÉES [[[[DB2] DE  DISQUE = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB2.bak&#39; \nAVEC REMPLACER, FICHIER = 1,  BOUGE TOI N&#39;DB2&#39; À N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2.mdf&#39;, \nBOUGE TOI N&#39;DB2_log&#39; À N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2_log.ldf&#39;,  NOUNLOAD,  STATISTIQUES = 5\nALLER\n\nRESTAURER BASE DE DONNÉES [[[[DB3] DE  DISQUE = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB3.bak&#39; \nAVEC REMPLACER, FICHIER = 1,  BOUGE TOI N&#39;DB3&#39; À N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3.mdf&#39;, \nBOUGE TOI N&#39;DB3_log&#39; À N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3_log.ldf&#39;,  NOUNLOAD,  STATISTIQUES = 5\nALLER\n\n\n\n\n\n\nBranchez le nouveau chemin de la clause MOVE TO et la restauration y placera les fichiers.\nAprès avoir migré certaines bases de données, nous voulons être certains que tout va bien et que le système est opérationnel. Quelques contrôles simples permettent de mettre vos parties prenantes à l&#39;aise.\nAprès la migration des fichiers de base de données, il est bon de procéder comme suit:\n\nVérifiez sys.database_files pour vous assurer qu&#39;ils sont dirigés au bon endroit\nExécuter DBCC CHECKDB sur les bases de données déplacées\n\nLe déplacement des fichiers de base de données peut créer des problèmes qu&#39;une vérification de cohérence rapide peut atténuer.\n\n\n\nChacune des méthodes présentées ci-dessus présente des avantages et des inconvénients pour déplacer des fichiers de base de données. Assurez-vous que, quelle que soit la technique que vous choisissez d&#39;utiliser, vous la testez d&#39;abord sur un serveur hors production. Ce n&#39;est pas le point que vous voulez rencontrer des surprises inconnues.\nLa méthode la plus sûre est probablement # 2 &#8211; mettre en mode hors connexion, déplacer des fichiers, modifier le fichier, le mettre en ligne. Le détachement risque de permettre la suppression des fichiers, mais si c&#39;est ce que vous voulez, détachez comme il convient. La méthode de sauvegarde est probablement mieux conservée pour la veille chaud / froid, mais pourrait fonctionner en fonction de l&#39;utilisation du système et des contraintes.\n\n\n\nComme ça:\nComme Chargement&#8230;\n\n\n\nClick to rate this post!\r\n                                   \r\n                               [Total: 0  Average: 0]","paragraphs":["Avez-vous déjà eu à déplacer des bases de données et leurs fichiers? Une migration de base de données implique des temps d&#39;arrêt et les erreurs commises peuvent certainement gâcher votre journée. Vous ne voulez pas être en pleine migration et ne pas savoir quoi faire.\nPoursuivez votre lecture pour apprendre à déplacer des fichiers de base de données SQL Server et à visionner des démos.\nPourquoi aurions-nous besoin / envie de déplacer des fichiers de base de données? Il existe certains scénarios dans lesquels une migration est effectuée.","Le disque est à court d&#39;espace","Parfois, lorsqu&#39;un administrateur dort au travail, les disques pleins passent inaperçus jusqu&#39;à ce qu&#39;il soit trop tard.\nDans ces cas, certaines bases de données peuvent être déplacées vers un autre disque, volume, point de montage, etc.","Déménagement dans un nouvel entrepôt","Un nouvel espace de stockage pour la base de données arrive et nous devons déplacer certaines (ou toutes les) bases de données doivent être déplacées.","Séparer les fichiers de base de données","Suivre les meilleures pratiques pour séparer les fichiers de base de données &#8211; fichier de données (mdf), journal des transactions (ldf), tempdb, sauvegardes, fichiers de trace, etc.\nJ&#39;ai écrit à ce sujet ici et plus précisément ici dans la section intitulée «Configuration du disque».","La base de données sera indisponible pendant cette opération, nous devons donc en informer nos utilisateurs finaux. Prenez en compte les ramifications si une application utilise la base de données. Nous voudrons peut-être arrêter les services d&#39;application ou entreprendre une autre action personnalisée lors du déplacement.\nPlanifiez à l&#39;avance avant de commencer le travail. Sachez ce que vous allez faire avant de le faire. Si vous pouvez tester votre méthode sur une base de données de laboratoire ou de développement, cela vous aidera également.","Une fois que nous avons le plan de match, nous pouvons commencer à le mettre en œuvre. Regardons quelques détails.\nMigration &#8211; Manières générales de déplacer des fichiers de base de données\nIl existe quelques méthodes que nous pouvons employer pour faire ce travail:","Détacher la base de données / Déplacer les fichiers / Attacher la base de données\nDéfinir la base de données hors connexion / Déplacer les fichiers / Modifier la base de données Modifier le fichier / Définir en ligne\nSauvegarde / restauration ailleurs","Voici quelques bases de connaissances Microsoft pour vous aider tout au long du processus.","Joindre une base de données &#8211; explique CREATE DATABASE FOR ATTACH\nsp_attach_db &#8211; obsolète! Veuillez utiliser la méthode ci-dessus pour attacher\nCréer une base de données &#8211; plus d&#39;informations sur la clause FOR ATTACH\nDéplacer les bases de données utilisateur &#8211; met en évidence ALTER DATABASE MODIFY FILE\nsp_detach_db &#8211; mises en garde concernant le détachement","Regardons en profondeur dans chaque sens.\nMéthode 1: détacher la base de données / déplacer des fichiers / créer une base de données pour l&#39;attachement\nNous créons quelques bases de données pour le tester.","UTILISER le maître;\nALLER\n/ ***************************************\n       Créer des exemples de bases de données\n**************************************** /\n&#8211;DB1\nCREATE DATABASE [DB1] SUR PRIMAIRE\n(NOM = N&#39;DB1 &#39;, NOMFICHIER = N&#39;C:  Program Files  Serveur SQL Microsoft  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1.mdf&#39;, TAILLE = 8192 Ko, FILEGROWTH = 65536 Ko)\n SE CONNECTER\n(NAME = N&#39;DB1_log &#39;, FILENAME = N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1_log.ldf&#39;, SIZE = 8192 Ko, FILEGROWTH = 65536 Ko)\nALLER\n&#8211;DB2\nCREATE DATABASE [DB2] SUR PRIMAIRE\n(NOM = N&#39;DB2 &#39;, NOMFICHIER = N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2.mdf&#39;, SIZE = 8192 Ko, FILEGROWTH = 65536 Ko)\n SE CONNECTER\n(NAME = N&#39;DB2_log &#39;, FILENAME = N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2_log.ldf&#39;, SIZE = 8192 Ko, FILEGROWTH = 65536 Ko)\nALLER\n&#8211;DB3\nCREATE DATABASE [DB3] SUR PRIMAIRE\n(NOM = N&#39;DB3 &#39;, NOMFICHIER = N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3.mdf&#39;, TAILLE = 8192 Ko, FILEGROWTH = 65536 Ko)\n SE CONNECTER\n(NOM = N&#39;DB3_log &#39;, NOMFICHIER = N&#39;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3_log.ldf&#39;, SIZE = 8192 Ko, FILEGROWTH = 65536 Ko)\nALLER","1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26","UTILISATION maîtriser;\nALLER","/ ***************************************\n              Créer des exemples de bases de données\n**************************************** /\n&#8211;DB1\nCRÉER BASE DE DONNÉES [[[[DB1] SUR PRIMAIRE \n( PRÉNOM = N&#39;DB1&#39;, NOM DE FICHIER = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1.mdf&#39; , TAILLE = 8192 Ko , FILEGROWTH = 65536KB )\n BÛCHE SUR \n( PRÉNOM = N&#39;DB1_log&#39;, NOM DE FICHIER = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1_log.ldf&#39; , TAILLE = 8192 Ko , FILEGROWTH = 65536KB )\nALLER","&#8211;DB2\nCRÉER BASE DE DONNÉES [[[[DB2] SUR PRIMAIRE \n( PRÉNOM = N&#39;DB2&#39;, NOM DE FICHIER = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2.mdf&#39; , TAILLE = 8192 Ko , FILEGROWTH = 65536KB )\n BÛCHE SUR \n( PRÉNOM = N&#39;DB2_log&#39;, NOM DE FICHIER = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2_log.ldf&#39; , TAILLE = 8192 Ko , FILEGROWTH = 65536KB )\nALLER","&#8211;DB3 \nCRÉER BASE DE DONNÉES [[[[DB3] SUR PRIMAIRE \n( PRÉNOM = N&#39;DB3&#39;, NOM DE FICHIER = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3.mdf&#39; , TAILLE = 8192 Ko , FILEGROWTH = 65536KB )\n BÛCHE SUR \n( PRÉNOM = N&#39;DB3_log&#39;, NOM DE FICHIER = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3_log.ldf&#39; , TAILLE = 8192 Ko , FILEGROWTH = 65536KB )\nALLER","Vérifier les informations du fichier de base de données.","&#8211;Vérifier les informations du fichier DB\nsélectionnez * parmi DB1.sys.database_files;\nselect * from DB2.sys.database_files;\nselect * from DB3.sys.database_files;","&#8211;Vérifier les informations du fichier DB\nsélectionner * de DB1.sys.fichiers_base_de_données;\nsélectionner * de DB2.sys.fichiers_base_de_données;\nsélectionner * de DB3.sys.fichiers_base_de_données;","Il ressemblera à ceci:","Maintenant, nous faisons certaines choses préliminaires avant de déplacer des fichiers. Nous devons spécifier les bases de données que nous voulons déplacer. C&#39;est une façon très simpliste de le faire &#8211; codé en dur dans une table temporaire.","/ ***************************************\n       Pré étapes\n**************************************** /\n&#8211;voir les bases de données que vous voulez déplacer\nSELECT * FROM sys.databases WHERE [name] IN (&#39;DB1&#39;, &#39;DB2&#39;, &#39;DB3&#39;);\n&#8211;définit les bases de données à détacher / attacher\nSÉLECTIONNER [name] INTO #DBsToMove FROM sys.databases WHERE [name] IN (&#39;DB1&#39;, &#39;DB2&#39;, &#39;DB3&#39;);\n&#8211;doit rassembler les informations sur le fichier AVANT de détacher la base de données\nSELECT database_id, [type_desc], [name], nom physique\nINTO #DBfiles\nFROM sys.master_files\nWHERE database_id IN (DB_ID (&#39;DB1&#39;), DB_ID (&#39;DB2&#39;), DB_ID (&#39;DB3&#39;));\n&#8211;check file configuration &#8211; pourrait vouloir copier ceci ailleurs pour garder des traces de notre travail\nSELECT * FROM #DBfiles;","1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18","/ ***************************************\n              Pré étapes\n**************************************** /","&#8211;Voir les bases de données que vous souhaitez déplacer\nSÉLECTIONNER * DE sys.bases de données OÙ [[[[prénom] DANS(&#39;DB1&#39;,&#39;DB2&#39;,&#39;DB3&#39;);","&#8211;définit les bases de données à détacher / attacher\nSÉLECTIONNER [[[[prénom] DANS #DBsToMove DE sys.bases de données OÙ [[[[prénom] DANS(&#39;DB1&#39;,&#39;DB2&#39;,&#39;DB3&#39;);","&#8211;doit rassembler les informations sur le fichier AVANT de détacher la base de données\nSÉLECTIONNER base_de_données, [[[[type_desc], [[[[prénom], nom_périphérique\nDANS #DBfiles\nDE sys.master_files\nOÙ base_de_données DANS(DB_ID(&#39;DB1&#39;),DB_ID(&#39;DB2&#39;),DB_ID(&#39;DB3&#39;));","&#8211;check file configuration &#8211; pourrait vouloir copier ceci ailleurs pour garder des traces de notre travail\nSÉLECTIONNER * DE #DBfiles;","Maintenant que nous avons ce dont nous avons besoin, nous pouvons commencer à détacher les bases de données.","/ ************************************************ *****************************************\nMéthode 1: détacher la base de données / déplacer des fichiers / créer une base de données pour l&#39;attachement\n************************************************* ***************************************** /\n&#8211;Détachez les bases de données\nDECLARE @DBName varchar (500);\nDÉCLARE @sql NVARCHAR (MAX);\nDECLARE curDetachDBs CURSOR FAST_FORWARD READ_ONLY POUR\n       SÉLECTIONNER [name] DE #DBsToMove\nOUVRIR curDetachDBs\nFETCH NEXT DE curDetachDBs DANS @DBName\nWHILE @@ FETCH_STATUS = 0\nCOMMENCER\n       CARTE D&#39;IMPRESSION (13) + CHAR (10)\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#39;\n       PRINT &#39;-&#39; + @DBName\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#39;\n       SET @sql = &#39;ALTER DATABASE [&lsquo; + @DBName + &lsquo;] SET SINGLE_USER AVEC ROLLBACK IMMEDIATE; &#39;\n       IMPRIMER @sql\n       EXEC sys.sp_executesql @sql\n       SET @sql = &#39;EXEC sp_detach_db&#39; + @DBName + &#39;,&#39; &#39;true&#39; &#39;;&#39;\n       IMPRIMER @sql\n       EXEC sys.sp_executesql @sql\n    FETCH NEXT DE curDetachDBs DANS @DBName\nFIN\nFERMER curDetachDBs\nDEALLOCATE curDetachDBs","1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27","/ ************************************************ *****************************************\n\t\t\t\tMéthode 1: détacher la base de données / déplacer des fichiers / créer une base de données pour l&#39;attachement\n************************************************* ***************************************** /","&#8211;Détachez les bases de données\nDÉCLARER @DBName varchar(500);\nDÉCLARER @sql NVARCHAR(MAX);\nDÉCLARER curDetachDBs LE CURSEUR AVANCE RAPIDE LECTURE SEULEMENT POUR\n       SÉLECTIONNER [[[[prénom] DE #DBsToMove\nOUVRIR curDetachDBs\nFETCH SUIVANT DE curDetachDBs DANS @DBName\nTANDIS QUE @@FETCH_STATUS = 0\nCOMMENCER\n       IMPRESSION CARBONISER(13) + CARBONISER(dix)\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#39;\n       IMPRESSION &#39;-&#39; + @DBName\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#39;\n       ENSEMBLE @sql = &#39;ALTER DATABASE[&#39;[&#39;[&lsquo;[&lsquo; + @DBName + &#39;]SET SINGLE_USER AVEC ROLLBACK IMMEDIATE; &#39;\n       IMPRESSION @sql\n       EXEC sys.sp_executesql @sql\n       ENSEMBLE @sql = &#39;EXEC sp_detach_db&#39; + @DBName + &#39;,&#39;&#39;vrai&#39;&#39;;&#39;\n       IMPRESSION @sql\n       EXEC sys.sp_executesql @sql\n    FETCH SUIVANT DE curDetachDBs DANS @DBName\nFIN\nFERMER curDetachDBs\nDÉALLOCATE curDetachDBs","Vérifiez les modifications. Notez que les DB sont totalement partis. Vous ne les trouverez pas dans l&#39;explorateur d&#39;objets dans SSMS ou dans les tables système.","&#8211;verify changements\nSELECT * FROM sys.databases WHERE nom IN (&#39;DB1&#39;, &#39;DB2&#39;, &#39;DB3&#39;);\n&#8211; Les BD sont partis maintenant! c&#39;est ce que détache fait et comment il est différent de la mise hors ligne","&#8211;verify changements\nSÉLECTIONNER * DE sys.bases de données OÙ prénom DANS(&#39;DB1&#39;,&#39;DB2&#39;,&#39;DB3&#39;);\n&#8211; Les BD sont partis maintenant! c&#39;est ce que détache fait et comment il est différent de la mise hors ligne","Vient maintenant le moment de déplacer les fichiers de base de données. Vous pouvez utiliser votre technique préférée pour déplacer des fichiers. J&#39;aime utiliser robocopy dans un fichier .bat, mais il en existe beaucoup d&#39;autres, tels que PowerShell, XCopy ou un clic droit pour couper / coller.\nVoici quelques actions de robocopy:","robocopy &quot;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DONNÉES&quot; &quot;G:  MSSQL  Data&quot; &quot;DB1.mdf&quot; / L\nrobocopy &quot;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DONNÉES&quot; &quot;G:  MSSQL  Data&quot; &quot;DB1_log.ldf&quot; / L\nrobocopy &quot;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DONNÉES&quot; &quot;G:  MSSQL  Data&quot; &quot;DB2.mdf&quot; / L\nrobocopy &quot;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DONNÉES&quot; &quot;G:  MSSQL  Data&quot; &quot;DB2_log.ldf&quot; / L\nrobocopy &quot;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DONNÉES&quot; &quot;G:  MSSQL  Data&quot; &quot;DB3.mdf&quot; / L\nrobocopy &quot;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DONNÉES&quot; &quot;G:  MSSQL  Data&quot; &quot;DB3_log.ldf&quot; / L","robocopier &quot;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA&quot; &quot;G:  MSSQL  Data&quot; &quot;DB1.mdf&quot; /L\nrobocopier &quot;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA&quot; &quot;G:  MSSQL  Data&quot; &quot;DB1_log.ldf&quot; /L\nrobocopier &quot;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA&quot; &quot;G:  MSSQL  Data&quot; &quot;DB2.mdf&quot; /L\nrobocopier &quot;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA&quot; &quot;G:  MSSQL  Data&quot; &quot;DB2_log.ldf&quot; /L\nrobocopier &quot;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA&quot; &quot;G:  MSSQL  Data&quot; &quot;DB3.mdf&quot; /L\nrobocopier &quot;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA&quot; &quot;G:  MSSQL  Data&quot; &quot;DB3_log.ldf&quot; /L","Le drapeau “/ L” est la première façon dont je gère les choses. En réalité, il ne copie rien, mais listera les fichiers. C&#39;est une bonne pré-vérification avant d&#39;exécuter un lot. Supprimez simplement le drapeau “/ L” et exécutez-le une fois vérifié.\nVoici la première partie de la sortie de l’exécution d’un fichier .bat avec des instructions robocopy:","Une fois que les fichiers sont physiquement déplacés vers le nouvel emplacement, nous pouvons continuer.","&#8211; attacher les bases de données\nDECLARE @targetMDF NVARCHAR (128);\nDECLARE @targetLDF NVARCHAR (128);\nDECLARE @DBName varchar (500);\nDÉCLARE @sql NVARCHAR (MAX);\nDECLARE @rowFile NVARCHAR (128);\nDECLARE @logFile NVARCHAR (128);\nDECLARE curAttachDBs CURSOR FAST_FORWARD READ_ONLY POUR\n       SELECT nom FROM #DBsToMove\nOUVRIR curAttachDBs\nFETCH NEXT FROM curAttachDBs INTO @DBName\nWHILE @@ FETCH_STATUS = 0\nCOMMENCER\n       SET @targetMDF = &#39;G:  MSSQL  Data&#39;;\n       SET @targetLDF = &#39;G:  MSSQL  Data&#39;;\n       CARTE D&#39;IMPRESSION (13) + CHAR (10)\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#39;\n       PRINT &#39;-&#39; + @DBName\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#39;\n       SELECT @targetMDF + = &#39;&#39; + [name] + &#39;.mdf&#39; DE #DBfiles WHERE REMPLACE ([name], &#39;_ log&#39;, &#39;&#39;) = @DBName AND [type_desc] = &#39;ROWS&#39;;\n       SELECT @targetLDf + = &#39;&#39; + [name] + &#39;.ldf&#39; DE #DBfiles WHERE REMPLACE ([name], &#39;_ log&#39;, &#39;&#39;) = @DBName AND [type_desc] = &#39;LOG&#39;;\n       \n&#8211;attache la base de données\n       SELECT @sql = &#39;CREATE DATABASE [&lsquo; + @DBName + &lsquo;] SUR\n              (FILENAME = &#39;&#39; &#39;\n                      + @targetMDF + &#39;&#39; &#39;),\n              (FILENAME = &#39;&#39; &#39;+ @targetLDF +&#39; &#39;&#39;)\n              POUR ATTACHER &#39;\n       FROM #DBfiles;\n       PRINT @sql;\n       EXEC sys.sp_executesql @sql;\n       SET @targetMDF = &#39;&#39;;\n       SET @targetLDF = &#39;&#39;;\n    FETCH NEXT FROM curAttachDBs INTO @DBName\nFIN\nCLOSE curAttachDBs\nDEALLOCATE curAttachDBs","1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37","&#8211; attacher les bases de données\nDÉCLARER @targetMDF NVARCHAR(128);\nDÉCLARER @targetLDF NVARCHAR(128);\nDÉCLARER @DBName varchar(500);\nDÉCLARER @sql NVARCHAR(MAX);\nDÉCLARER @rowFile NVARCHAR(128);\nDÉCLARER @fichier journal NVARCHAR(128);\nDÉCLARER curAttachDBs LE CURSEUR AVANCE RAPIDE LECTURE SEULEMENT POUR\n       SÉLECTIONNER prénom DE #DBsToMove\nOUVRIR curAttachDBs\nFETCH SUIVANT DE curAttachDBs DANS @DBName\nTANDIS QUE @@FETCH_STATUS = 0\nCOMMENCER\n       ENSEMBLE @targetMDF = &#39;G:  MSSQL  Data&#39;;\n       ENSEMBLE @targetLDF = &#39;G:  MSSQL  Data&#39;;\n       IMPRESSION CARBONISER(13) + CARBONISER(dix)\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#39;\n       IMPRESSION &#39;-&#39; + @DBName\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#39;\n       SÉLECTIONNER @targetMDF + = &#39;&#39; + [name] + &#39;.mdf&#39;FROM #DBfiles O REMPLACER ([name]&#39;_bûche&#39;,&#39;&#39;) = @DBNAME AND [type_desc] = &#39;ROWS&#39;;\n              SELECT @targetLDf + = &#39;&#39; + [[[[prénom] + &#39;.ldf&#39; DE #DBfiles OÙ REMPLACER([[[[prénom],&#39;_bûche&#39;,&#39;&#39;) = @DBName ET [[[[type_desc] = &#39;BÛCHE&#39;;\n       \n\t\t   &#8211;attache la base de données\n       SÉLECTIONNER @sql = &#39;CREATE DATABASE[&#39;[&#39;[&lsquo;[&lsquo; + @DBName + &#39;]SUR\n                            (FILENAME = &#39;&#39;&#39;\n                      + @targetMDF + &#39;&#39;&#39;),\n                            (FILENAME = &#39;&#39;&#39; + @targetLDF + &#39;&#39;&#39;)\n                            POUR ATTACHER &#39;\n       DE #DBfiles;\n       IMPRESSION @sql;\n       EXEC sys.sp_executesql @sql;\n       ENSEMBLE @targetMDF = &#39;&#39;;\n       ENSEMBLE @targetLDF = &#39;&#39;;\n    FETCH SUIVANT DE curAttachDBs DANS @DBName\nFIN\nFERMER curAttachDBs\nDÉALLOCATE curAttachDBs","Vérifiez les nouveaux emplacements de fichiers.","&#8211;Vérifier les informations du fichier DB\nsélectionnez * parmi DB1.sys.database_files;\nselect * from DB2.sys.database_files;\nselect * from DB3.sys.database_files;","&#8211;Vérifier les informations du fichier DB\nsélectionner * de DB1.sys.fichiers_base_de_données;\nsélectionner * de DB2.sys.fichiers_base_de_données;\nsélectionner * de DB3.sys.fichiers_base_de_données;","Auparavant, nos fichiers pointaient vers C: mais sont maintenant sur G: &#8211; la migration est terminée.\nMéthode 2: Définir la base de données hors connexion / déplacer des fichiers / modifier la base de données / définir en ligne\nContinuons dans ce sens, déplaçons les 3 exemples de bases de données que nous avons créées et que nous venons de revenir des disques G: à C:. Ici, nous commençons par définir nos bases de données et en définissant un nouveau chemin.","UTILISER le maître;\nALLER\n/ ***************************************\n       Pré étapes\n**************************************** /\n&#8211;voir les bases de données que vous voulez déplacer\nSELECT * FROM sys.databases WHERE [name] IN (&#39;DB1&#39;, &#39;DB2&#39;, &#39;DB3&#39;);\n&#8211;définit les bases de données à détacher / attacher\nSÉLECTIONNER [name] INTO #DBsToMove FROM sys.databases WHERE [name] IN (&#39;DB1&#39;, &#39;DB2&#39;, &#39;DB3&#39;);\n&#8211;doit rassembler les informations sur le fichier AVANT de détacher la base de données\nSELECT database_id, [type_desc], [name], nom physique\nINTO #DBfiles\nFROM sys.master_files\nWHERE database_id IN (DB_ID (&#39;DB1&#39;), DB_ID (&#39;DB2&#39;), DB_ID (&#39;DB3&#39;));\nalter table #DBfiles add NewPath varchar (500);\n&#8211; charger de nouveaux chemins\nDECLARE @targetMDF NVARCHAR (128);\nDECLARE @targetLDF NVARCHAR (128);\nSET @targetMDF = &#39;C:  Fichiers de programme  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA &#39;;\nSET @targetLDF = &#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA &#39;;\n&#8211;SET @targetMDF = &#39;G:  MSSQL  Data &#39;;\n&#8211;SET @targetLDF = &#39;G:  MSSQL  Data &#39;;\nmettre à jour les fichiers\ndéfinir NewPath = case quand [type_desc] = &#39;ROWS&#39; puis @targetMDF + [name] + &#39;.mdf&#39;\nquand [type_desc] = &#39;LOG&#39; puis @targetLDF + [name] + &#39;.ldf&#39;\nfin\nà partir des fichiers #DBfiles;\n&#8211;check file configuration &#8211; pourrait vouloir copier ceci ailleurs pour garder des traces de notre travail\nSELECT * FROM #DBfiles;","1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37","UTILISATION maîtriser;\nALLER","/ ***************************************\n              Pré étapes\n**************************************** /","&#8211;voir les bases de données que vous voulez déplacer\nSÉLECTIONNER * DE sys.bases de données OÙ [[[[prénom] DANS(&#39;DB1&#39;,&#39;DB2&#39;,&#39;DB3&#39;);","&#8211;définit les bases de données à détacher / attacher\nSÉLECTIONNER [[[[prénom] DANS #DBsToMove DE sys.bases de données OÙ [[[[prénom] DANS(&#39;DB1&#39;,&#39;DB2&#39;,&#39;DB3&#39;);","&#8211;doit rassembler les informations sur le fichier AVANT de détacher la base de données\nSÉLECTIONNER base_de_données, [[[[type_desc], [[[[prénom], nom_périphérique\nDANS #DBfiles\nDE sys.master_files\nOÙ base_de_données DANS(DB_ID(&#39;DB1&#39;),DB_ID(&#39;DB2&#39;),DB_ID(&#39;DB3&#39;));","modifier table #DBfiles ajouter Nouveau chemin varchar(500);","&#8211; charger de nouveaux chemins \nDÉCLARER @targetMDF NVARCHAR(128);\nDÉCLARER @targetLDF NVARCHAR(128);\nENSEMBLE @targetMDF = &#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA &#39;;\nSET @targetLDF = &#39;C:Programme Des dossiersMicrosoft SQL ServeurMSSQL13.MSSQLSERVERMSSQLLES DONNÉES&#39;;\n&#8211;SET @targetMDF = &#39;G:  MSSQL  Data &#39;;\n&#8211;SET @targetLDF = &#39;G:  MSSQL  Data &#39;;","mettre à jour des dossiers\nensemble Nouveau chemin = Cas quand [[[[type_desc] = &#39;ROWS&#39; puis @targetMDF + [[[[prénom] + &#39;.mdf&#39;\n\t\t\t\t\t\t\t\t   quand [[[[type_desc] = &#39;BÛCHE&#39; puis @targetLDF + [[[[prénom] + &#39;.ldf&#39; \n\t\t\t\t\t\t\t\t   fin \nde #DBfiles des dossiers;","&#8211;check file configuration &#8211; pourrait vouloir copier ceci ailleurs pour garder des traces de notre travail\nSÉLECTIONNER * DE #DBfiles;","Voici le résultat de #DBFiles:","Maintenant, au lieu de vous détacher comme dans l&#39;exemple précédent, plaçons simplement les bases de données hors ligne.","/ ************************************************ *****************************************\nMéthode 2: Définir la base de données hors connexion / déplacer des fichiers / modifier la base de données / définir en ligne\n************************************************* ***************************************** /\n&#8211;set DBs hors ligne\nDECLARE @DBName varchar (500);\nDÉCLARE @sql NVARCHAR (MAX);\nDECLARE curDetachDBs CURSOR FAST_FORWARD READ_ONLY POUR\n       SÉLECTIONNER [name] DE #DBsToMove\nOUVRIR curDetachDBs\nFETCH NEXT DE curDetachDBs DANS @DBName\nWHILE @@ FETCH_STATUS = 0\nCOMMENCER\n       CARTE D&#39;IMPRESSION (13) + CHAR (10)\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#39;\n       PRINT &#39;-&#39; + @DBName\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#39;\n       SET @sql = &#39;ALTER DATABASE [&lsquo; + @DBName + &lsquo;] SET OFFLINE; &#39;\n       IMPRIMER @sql\n       EXEC sys.sp_executesql @sql\n    FETCH NEXT DE curDetachDBs DANS @DBName\nFIN\nFERMER curDetachDBs\nDEALLOCATE curDetachDBs\n&#8211;verify changements\nSELECT * FROM sys.databases WHERE nom IN (&#39;DB1&#39;, &#39;DB2&#39;, &#39;DB3&#39;);\n&#8211; Les BD sont toujours présentes &#8211; contrairement à détachement","1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28","/ ************************************************ *****************************************\n\t\t\t\tMéthode 2: Définir la base de données hors connexion / déplacer des fichiers / modifier la base de données / définir en ligne\n************************************************* ***************************************** /","&#8211;set DBs hors ligne\nDÉCLARER @DBName varchar(500);\nDÉCLARER @sql NVARCHAR(MAX);\nDÉCLARER curDetachDBs LE CURSEUR AVANCE RAPIDE LECTURE SEULEMENT POUR\n       SÉLECTIONNER [[[[prénom] DE #DBsToMove\nOUVRIR curDetachDBs\nFETCH SUIVANT DE curDetachDBs DANS @DBName\nTANDIS QUE @@FETCH_STATUS = 0\nCOMMENCER\n       IMPRESSION CARBONISER(13) + CARBONISER(dix)\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#39;\n       IMPRESSION &#39;-&#39; + @DBName\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#39;\n       ENSEMBLE @sql = &#39;ALTER DATABASE[&#39;[&#39;[&lsquo;[&lsquo; + @DBName + &#39;]SET OFFLINE; &#39;\n       IMPRESSION @sql\n       EXEC sys.sp_executesql @sql\n    FETCH SUIVANT DE curDetachDBs DANS @DBName\nFIN\nFERMER curDetachDBs\nDÉALLOCATE curDetachDBs","&#8211;verify changements\nSÉLECTIONNER * DE sys.bases de données OÙ prénom DANS(&#39;DB1&#39;,&#39;DB2&#39;,&#39;DB3&#39;);\n&#8211; Les BD sont toujours présentes &#8211; contrairement à détachement","Les bases de données sont toujours présentes mais sont hors ligne. Ils ne peuvent pas être lus ou écrits.","Après avoir défini les bases de données hors ligne, déplacez les fichiers de données vers leur nouvel emplacement.\nEnfin, nous modifions les bases de données pour modifier leurs fichiers, nous les pointons vers le nouvel emplacement, puis nous remettons les bases de données en ligne.","&#8211;Alter DB pour modifier les fichiers puis les mettre en ligne\nDECLARE @DBName varchar (500);\nDÉCLARE @sql NVARCHAR (MAX);\nDECLARE @rowFile NVARCHAR (128);\nDECLARE @logFile NVARCHAR (128);\nDECLARE @fileType varchar (4);\nDÉCLARE @DBID int;\nDECLARE @NewPath varchar (500);\nDECLARE @fileName varchar (128);\nDECLARE curAttachDBs CURSOR FAST_FORWARD READ_ONLY POUR\n       SELECT database_id, [type_desc], [name], NewPath DE #DBfiles\nOUVRIR curAttachDBs\nFETCH NEXT FROM curAttachDBs IN @DBID, @fileType, @fileName, @NewPath\nWHILE @@ FETCH_STATUS = 0\nCOMMENCER\nSELECT @DBName = DB_NAME (@DBID);\nCARTE D&#39;IMPRESSION (13) + CHAR (10)\nIMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#39;\nPRINT &#39;-&#39; + @DBName\nIMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#39;\nsélectionnez @DBID, @fileType, @fileName, @NewPath\n&#8211;changez les emplacements de fichiers\nSELECT @sql = &#39;ALTER DATABASE [&lsquo; + @DBName + &lsquo;] MODIFIER LE FICHIER (\nNAME = &#39;&#39; &#39;+ @fileName +&#39; &#39;&#39;,\nFILENAME = &#39;&#39; &#39;+ @NewPath +&#39; &#39;&#39; &#39;&#39;\nFROM #DBfiles;\nPRINT @sql;\nEXEC sys.sp_executesql @sql;\n&#8211;set DB en ligne\nSELECT @sql = &#39;ALTER DATABASE&#39; + @DBName + &#39;SET ONLINE&#39;;\nprint @sql;\nEXEC sys.sp_executesql @sql;\nFETCH NEXT FROM curAttachDBs IN @DBID, @fileType, @fileName, @NewPath\nFIN\nCLOSE curAttachDBs\nDEALLOCATE curAttachDBs\n&#8211;Vérifier les informations du fichier DB\nsélectionnez database_id, DB_NAME (database_id) comme &quot;DBName&quot;, [type_desc], [name], nom_ physiques, code_état\nde sys.master_files\noù DB_NAME (id_bdd) dans (&#39;DB1&#39;, &#39;DB2&#39;, &#39;DB3&#39;);","1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37\n38\n39\n40\n41\n42\n43\n44\n45","&#8211;Alter DB pour modifier les fichiers puis les mettre en ligne\nDÉCLARER @DBName varchar(500);\nDÉCLARER @sql NVARCHAR(MAX);\nDÉCLARER @rowFile NVARCHAR(128);\nDÉCLARER @fichier journal NVARCHAR(128);\nDÉCLARER @Type de fichier varchar(4);\nDÉCLARER @DBID int;\nDÉCLARER @Nouveau chemin varchar(500);\nDÉCLARER @nom de fichier varchar(128);\nDÉCLARER curAttachDBs LE CURSEUR AVANCE RAPIDE LECTURE SEULEMENT POUR\n       SÉLECTIONNER base_de_données, [[[[type_desc], [[[[prénom], Nouveau chemin DE #DBfiles\nOUVRIR curAttachDBs\nFETCH SUIVANT DE curAttachDBs DANS @DBID, @Type de fichier, @nom de fichier, @Nouveau chemin\nTANDIS QUE @@FETCH_STATUS = 0\nCOMMENCER\n\tSÉLECTIONNER @DBName = DB_NAME(@DBID);","IMPRESSION CARBONISER(13) + CARBONISER(dix)\n\tIMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#39;\n\tIMPRESSION &#39;-&#39; + @DBName\n\tIMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#39;\n\tsélectionner @DBID, @Type de fichier, @nom de fichier, @Nouveau chemin\n\t&#8211;changez les emplacements de fichiers\n\tSÉLECTIONNER @sql = &#39;ALTER DATABASE[&#39;[&#39;[&lsquo;[&lsquo; + @DBName + &#39;]MODIFIER LE FICHIER (\n\t\t\t\t\t\t\t\t\t\t\t\tNOM = &#39;&#39;&#39; + @nom de fichier + &#39;&#39;&#39;,\n\t\t\t\t\t\t\t\t\t\t\t\tFILENAME = &#39;&#39;&#39; + @Nouveau chemin + &#39;&#39;&#39;)&#39;\n\tDE #DBfiles;\n\tIMPRESSION @sql;\n\tEXEC sys.sp_executesql @sql;","&#8211;set DB en ligne\n\tSÉLECTIONNER @sql = &#39;ALTER DATABASE&#39; + @DBName + &#39;SET ONLINE&#39;;\n\timpression @sql;\n\tEXEC sys.sp_executesql @sql;","FETCH SUIVANT DE curAttachDBs DANS @DBID, @Type de fichier, @nom de fichier, @Nouveau chemin\nFIN\nFERMER curAttachDBs\nDÉALLOCATE curAttachDBs","&#8211;Vérifier les informations du fichier DB\nsélectionner base_de_données, DB_NAME(base_de_données) comme &#39;DBName&#39;, [[[[type_desc], [[[[prénom], nom_périphérique, state_desc\nde sys.master_files \noù DB_NAME(base_de_données) dans(&#39;DB1&#39;,&#39;DB2&#39;,&#39;DB3&#39;);","Voici le résultat de la vérification ci-dessus. Il montre les fichiers de base de données dans un nouvel emplacement et en ligne.","Méthode 3: Sauvegarder / détacher et supprimer / restaurer ailleurs\nLa sauvegarde sera comme toutes les autres.","UTILISER le maître;\nALLER\n&#8211;Base de sauvegarde\nBASE DE DONNEES DE SAUVEGARDE [DB1] TO DISK = N&#39;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB1.bak &#39;;\nALLER\nBASE DE DONNEES DE SAUVEGARDE [DB2] TO DISK = N&#39;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB2.bak &#39;;\nALLER\nBASE DE DONNEES DE SAUVEGARDE [DB3] TO DISK = N&#39;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB3.bak &#39;;\nALLER","UTILISATION maîtriser;\nALLER","&#8211;Base de sauvegarde\nSAUVEGARDE BASE DE DONNÉES [[[[DB1] À  DISQUE = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB1.bak&#39;;\nALLER","SAUVEGARDE BASE DE DONNÉES [[[[DB2] À  DISQUE = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB2.bak&#39;;\nALLER","SAUVEGARDE BASE DE DONNÉES [[[[DB3] À  DISQUE = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB3.bak&#39;;\nALLER","À ce stade, nous sommes libres de détacher les bases de données et de disposer des fichiers de base de données. Il serait peut-être bon de conserver les fichiers jusqu&#39;à ce que nous ayons vérifié que la restauration a fonctionné. Comme il s’agit d’un exemple artificiel, passons à la restauration.","&#8211; Restaurer des bases de données\nRESTORE DATABASE [DB1] FROM DISK = N&#39;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB1.bak &#39;\nWITH REPLACE, FILE = 1, DÉPLACEZ N&#39;DB1 &#39;À N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1.mdf&#39;,\nDÉPLACER N&#39;DB1_log &#39;À N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1_log.ldf&#39;, NOUNLOAD, STATS = 5\nALLER\nRESTORE DATABASE [DB2] FROM DISK = N&#39;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB2.bak &#39;\nWITH REPLACE, FILE = 1, DÉPLACEZ N&#39;DB2 &#39;À N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2.mdf&#39;,\nDÉPLACER N&#39;DB2_log &#39;À N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2_log.ldf&#39;, NOUNLOAD, STATS = 5\nALLER\nRESTORE DATABASE [DB3] FROM DISK = N&#39;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB3.bak &#39;\nWITH REPLACE, FILE = 1, DÉPLACEZ N&#39;DB3 &#39;À N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3.mdf&#39;,\nDÉPLACER N&#39;DB3_log &#39;À N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3_log.ldf&#39;, NOUNLOAD, STATS = 5\nALLER","&#8211; Restaurer des bases de données\nRESTAURER BASE DE DONNÉES [[[[DB1] DE  DISQUE = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB1.bak&#39; \nAVEC REMPLACER, FICHIER = 1,  BOUGE TOI N&#39;DB1&#39; À N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1.mdf&#39;, \nBOUGE TOI N&#39;DB1_log&#39; À N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1_log.ldf&#39;,  NOUNLOAD,  STATISTIQUES = 5\nALLER","RESTAURER BASE DE DONNÉES [[[[DB2] DE  DISQUE = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB2.bak&#39; \nAVEC REMPLACER, FICHIER = 1,  BOUGE TOI N&#39;DB2&#39; À N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2.mdf&#39;, \nBOUGE TOI N&#39;DB2_log&#39; À N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2_log.ldf&#39;,  NOUNLOAD,  STATISTIQUES = 5\nALLER","RESTAURER BASE DE DONNÉES [[[[DB3] DE  DISQUE = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB3.bak&#39; \nAVEC REMPLACER, FICHIER = 1,  BOUGE TOI N&#39;DB3&#39; À N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3.mdf&#39;, \nBOUGE TOI N&#39;DB3_log&#39; À N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3_log.ldf&#39;,  NOUNLOAD,  STATISTIQUES = 5\nALLER","Branchez le nouveau chemin de la clause MOVE TO et la restauration y placera les fichiers.\nAprès avoir migré certaines bases de données, nous voulons être certains que tout va bien et que le système est opérationnel. Quelques contrôles simples permettent de mettre vos parties prenantes à l&#39;aise.\nAprès la migration des fichiers de base de données, il est bon de procéder comme suit:","Vérifiez sys.database_files pour vous assurer qu&#39;ils sont dirigés au bon endroit\nExécuter DBCC CHECKDB sur les bases de données déplacées","Le déplacement des fichiers de base de données peut créer des problèmes qu&#39;une vérification de cohérence rapide peut atténuer.","Chacune des méthodes présentées ci-dessus présente des avantages et des inconvénients pour déplacer des fichiers de base de données. Assurez-vous que, quelle que soit la technique que vous choisissez d&#39;utiliser, vous la testez d&#39;abord sur un serveur hors production. Ce n&#39;est pas le point que vous voulez rencontrer des surprises inconnues.\nLa méthode la plus sûre est probablement # 2 &#8211; mettre en mode hors connexion, déplacer des fichiers, modifier le fichier, le mettre en ligne. Le détachement risque de permettre la suppression des fichiers, mais si c&#39;est ce que vous voulez, détachez comme il convient. La méthode de sauvegarde est probablement mieux conservée pour la veille chaud / froid, mais pourrait fonctionner en fonction de l&#39;utilisation du système et des contraintes.","Comme ça:\nComme Chargement&#8230;","Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"],"content_blocks":[{"id":"text-1","type":"text","heading":"","plain_text":"Avez-vous déjà eu à déplacer des bases de données et leurs fichiers? Une migration de base de données implique des temps d&#39;arrêt et les erreurs commises peuvent certainement gâcher votre journée. Vous ne voulez pas être en pleine migration et ne pas savoir quoi faire.\nPoursuivez votre lecture pour apprendre à déplacer des fichiers de base de données SQL Server et à visionner des démos.\nPourquoi aurions-nous besoin / envie de déplacer des fichiers de base de données? Il existe certains scénarios dans lesquels une migration est effectuée.","html":"<p>Avez-vous déjà eu à déplacer des bases de données et leurs fichiers? Une migration de base de données implique des temps d&#039;arrêt et les erreurs commises peuvent certainement gâcher votre journée. Vous ne voulez pas être en pleine migration et ne pas savoir quoi faire.\nPoursuivez votre lecture pour apprendre à déplacer des fichiers de base de données SQL Server et à visionner des démos.\nPourquoi aurions-nous besoin / envie de déplacer des fichiers de base de données? Il existe certains scénarios dans lesquels une migration est effectuée.</p>"},{"id":"text-2","type":"text","heading":"","plain_text":"Le disque est à court d&#39;espace","html":"<p>Le disque est à court d&#039;espace</p>"},{"id":"text-3","type":"text","heading":"","plain_text":"Parfois, lorsqu&#39;un administrateur dort au travail, les disques pleins passent inaperçus jusqu&#39;à ce qu&#39;il soit trop tard.\nDans ces cas, certaines bases de données peuvent être déplacées vers un autre disque, volume, point de montage, etc.","html":"<p>Parfois, lorsqu&#039;un administrateur dort au travail, les disques pleins passent inaperçus jusqu&#039;à ce qu&#039;il soit trop tard.\nDans ces cas, certaines bases de données peuvent être déplacées vers un autre disque, volume, point de montage, etc.</p>"},{"id":"text-4","type":"text","heading":"","plain_text":"Déménagement dans un nouvel entrepôt","html":"<p>Déménagement dans un nouvel entrepôt</p>"},{"id":"text-5","type":"text","heading":"","plain_text":"Un nouvel espace de stockage pour la base de données arrive et nous devons déplacer certaines (ou toutes les) bases de données doivent être déplacées.","html":"<p>Un nouvel espace de stockage pour la base de données arrive et nous devons déplacer certaines (ou toutes les) bases de données doivent être déplacées.</p>"},{"id":"text-6","type":"text","heading":"","plain_text":"Séparer les fichiers de base de données","html":"<p>Séparer les fichiers de base de données</p>"},{"id":"text-7","type":"text","heading":"","plain_text":"Suivre les meilleures pratiques pour séparer les fichiers de base de données &#8211; fichier de données (mdf), journal des transactions (ldf), tempdb, sauvegardes, fichiers de trace, etc.\nJ&#39;ai écrit à ce sujet ici et plus précisément ici dans la section intitulée «Configuration du disque».","html":"<p>Suivre les meilleures pratiques pour séparer les fichiers de base de données &#8211; fichier de données (mdf), journal des transactions (ldf), tempdb, sauvegardes, fichiers de trace, etc.\nJ&#039;ai écrit à ce sujet ici et plus précisément ici dans la section intitulée «Configuration du disque».</p>"},{"id":"text-8","type":"text","heading":"","plain_text":"La base de données sera indisponible pendant cette opération, nous devons donc en informer nos utilisateurs finaux. Prenez en compte les ramifications si une application utilise la base de données. Nous voudrons peut-être arrêter les services d&#39;application ou entreprendre une autre action personnalisée lors du déplacement.\nPlanifiez à l&#39;avance avant de commencer le travail. Sachez ce que vous allez faire avant de le faire. Si vous pouvez tester votre méthode sur une base de données de laboratoire ou de développement, cela vous aidera également.","html":"<p>La base de données sera indisponible pendant cette opération, nous devons donc en informer nos utilisateurs finaux. Prenez en compte les ramifications si une application utilise la base de données. Nous voudrons peut-être arrêter les services d&#039;application ou entreprendre une autre action personnalisée lors du déplacement.\nPlanifiez à l&#039;avance avant de commencer le travail. Sachez ce que vous allez faire avant de le faire. Si vous pouvez tester votre méthode sur une base de données de laboratoire ou de développement, cela vous aidera également.</p>"},{"id":"text-9","type":"text","heading":"","plain_text":"Une fois que nous avons le plan de match, nous pouvons commencer à le mettre en œuvre. Regardons quelques détails.\nMigration &#8211; Manières générales de déplacer des fichiers de base de données\nIl existe quelques méthodes que nous pouvons employer pour faire ce travail:","html":"<p>Une fois que nous avons le plan de match, nous pouvons commencer à le mettre en œuvre. Regardons quelques détails.\nMigration &#8211; Manières générales de déplacer des fichiers de base de données\nIl existe quelques méthodes que nous pouvons employer pour faire ce travail:</p>"},{"id":"text-10","type":"text","heading":"","plain_text":"Détacher la base de données / Déplacer les fichiers / Attacher la base de données\nDéfinir la base de données hors connexion / Déplacer les fichiers / Modifier la base de données Modifier le fichier / Définir en ligne\nSauvegarde / restauration ailleurs","html":"<p>Détacher la base de données / Déplacer les fichiers / Attacher la base de données\nDéfinir la base de données hors connexion / Déplacer les fichiers / Modifier la base de données Modifier le fichier / Définir en ligne\nSauvegarde / restauration ailleurs</p>"},{"id":"text-11","type":"text","heading":"","plain_text":"Voici quelques bases de connaissances Microsoft pour vous aider tout au long du processus.","html":"<p>Voici quelques bases de connaissances Microsoft pour vous aider tout au long du processus.</p>"},{"id":"text-12","type":"text","heading":"","plain_text":"Joindre une base de données &#8211; explique CREATE DATABASE FOR ATTACH\nsp_attach_db &#8211; obsolète! Veuillez utiliser la méthode ci-dessus pour attacher\nCréer une base de données &#8211; plus d&#39;informations sur la clause FOR ATTACH\nDéplacer les bases de données utilisateur &#8211; met en évidence ALTER DATABASE MODIFY FILE\nsp_detach_db &#8211; mises en garde concernant le détachement","html":"<p>Joindre une base de données &#8211; explique CREATE DATABASE FOR ATTACH\nsp_attach_db &#8211; obsolète! Veuillez utiliser la méthode ci-dessus pour attacher\nCréer une base de données &#8211; plus d&#039;informations sur la clause FOR ATTACH\nDéplacer les bases de données utilisateur &#8211; met en évidence ALTER DATABASE MODIFY FILE\nsp_detach_db &#8211; mises en garde concernant le détachement</p>"},{"id":"text-13","type":"text","heading":"","plain_text":"Regardons en profondeur dans chaque sens.\nMéthode 1: détacher la base de données / déplacer des fichiers / créer une base de données pour l&#39;attachement\nNous créons quelques bases de données pour le tester.","html":"<p>Regardons en profondeur dans chaque sens.\nMéthode 1: détacher la base de données / déplacer des fichiers / créer une base de données pour l&#039;attachement\nNous créons quelques bases de données pour le tester.</p>"},{"id":"text-14","type":"text","heading":"","plain_text":"UTILISER le maître;\nALLER\n/ ***************************************\n       Créer des exemples de bases de données\n**************************************** /\n&#8211;DB1\nCREATE DATABASE [DB1] SUR PRIMAIRE\n(NOM = N&#39;DB1 &#39;, NOMFICHIER = N&#39;C:  Program Files  Serveur SQL Microsoft  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1.mdf&#39;, TAILLE = 8192 Ko, FILEGROWTH = 65536 Ko)\n SE CONNECTER\n(NAME = N&#39;DB1_log &#39;, FILENAME = N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1_log.ldf&#39;, SIZE = 8192 Ko, FILEGROWTH = 65536 Ko)\nALLER\n&#8211;DB2\nCREATE DATABASE [DB2] SUR PRIMAIRE\n(NOM = N&#39;DB2 &#39;, NOMFICHIER = N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2.mdf&#39;, SIZE = 8192 Ko, FILEGROWTH = 65536 Ko)\n SE CONNECTER\n(NAME = N&#39;DB2_log &#39;, FILENAME = N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2_log.ldf&#39;, SIZE = 8192 Ko, FILEGROWTH = 65536 Ko)\nALLER\n&#8211;DB3\nCREATE DATABASE [DB3] SUR PRIMAIRE\n(NOM = N&#39;DB3 &#39;, NOMFICHIER = N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3.mdf&#39;, TAILLE = 8192 Ko, FILEGROWTH = 65536 Ko)\n SE CONNECTER\n(NOM = N&#39;DB3_log &#39;, NOMFICHIER = N&#39;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3_log.ldf&#39;, SIZE = 8192 Ko, FILEGROWTH = 65536 Ko)\nALLER","html":"<p>UTILISER le maître;\nALLER\n/ ***************************************\n       Créer des exemples de bases de données\n**************************************** /\n&#8211;DB1\nCREATE DATABASE [DB1] SUR PRIMAIRE\n(NOM = N&#039;DB1 &#039;, NOMFICHIER = N&#039;C:  Program Files  Serveur SQL Microsoft  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1.mdf&#039;, TAILLE = 8192 Ko, FILEGROWTH = 65536 Ko)\n SE CONNECTER\n(NAME = N&#039;DB1_log &#039;, FILENAME = N&#039;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1_log.ldf&#039;, SIZE = 8192 Ko, FILEGROWTH = 65536 Ko)\nALLER\n&#8211;DB2\nCREATE DATABASE [DB2] SUR PRIMAIRE\n(NOM = N&#039;DB2 &#039;, NOMFICHIER = N&#039;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2.mdf&#039;, SIZE = 8192 Ko, FILEGROWTH = 65536 Ko)\n SE CONNECTER\n(NAME = N&#039;DB2_log &#039;, FILENAME = N&#039;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2_log.ldf&#039;, SIZE = 8192 Ko, FILEGROWTH = 65536 Ko)\nALLER\n&#8211;DB3\nCREATE DATABASE [DB3] SUR PRIMAIRE\n(NOM = N&#039;DB3 &#039;, NOMFICHIER = N&#039;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3.mdf&#039;, TAILLE = 8192 Ko, FILEGROWTH = 65536 Ko)\n SE CONNECTER\n(NOM = N&#039;DB3_log &#039;, NOMFICHIER = N&#039;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3_log.ldf&#039;, SIZE = 8192 Ko, FILEGROWTH = 65536 Ko)\nALLER</p>"},{"id":"text-15","type":"text","heading":"","plain_text":"1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26","html":"<p>1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26</p>"},{"id":"text-16","type":"text","heading":"","plain_text":"UTILISATION maîtriser;\nALLER","html":"<p>UTILISATION maîtriser;\nALLER</p>"},{"id":"text-17","type":"text","heading":"","plain_text":"/ ***************************************\n              Créer des exemples de bases de données\n**************************************** /\n&#8211;DB1\nCRÉER BASE DE DONNÉES [[[[DB1] SUR PRIMAIRE \n( PRÉNOM = N&#39;DB1&#39;, NOM DE FICHIER = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1.mdf&#39; , TAILLE = 8192 Ko , FILEGROWTH = 65536KB )\n BÛCHE SUR \n( PRÉNOM = N&#39;DB1_log&#39;, NOM DE FICHIER = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1_log.ldf&#39; , TAILLE = 8192 Ko , FILEGROWTH = 65536KB )\nALLER","html":"<p>/ ***************************************\n              Créer des exemples de bases de données\n**************************************** /\n&#8211;DB1\nCRÉER BASE DE DONNÉES [[[[DB1] SUR PRIMAIRE \n( PRÉNOM = N&#039;DB1&#039;, NOM DE FICHIER = N&#039;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1.mdf&#039; , TAILLE = 8192 Ko , FILEGROWTH = 65536KB )\n BÛCHE SUR \n( PRÉNOM = N&#039;DB1_log&#039;, NOM DE FICHIER = N&#039;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1_log.ldf&#039; , TAILLE = 8192 Ko , FILEGROWTH = 65536KB )\nALLER</p>"},{"id":"text-18","type":"text","heading":"","plain_text":"&#8211;DB2\nCRÉER BASE DE DONNÉES [[[[DB2] SUR PRIMAIRE \n( PRÉNOM = N&#39;DB2&#39;, NOM DE FICHIER = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2.mdf&#39; , TAILLE = 8192 Ko , FILEGROWTH = 65536KB )\n BÛCHE SUR \n( PRÉNOM = N&#39;DB2_log&#39;, NOM DE FICHIER = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2_log.ldf&#39; , TAILLE = 8192 Ko , FILEGROWTH = 65536KB )\nALLER","html":"<p>&#8211;DB2\nCRÉER BASE DE DONNÉES [[[[DB2] SUR PRIMAIRE \n( PRÉNOM = N&#039;DB2&#039;, NOM DE FICHIER = N&#039;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2.mdf&#039; , TAILLE = 8192 Ko , FILEGROWTH = 65536KB )\n BÛCHE SUR \n( PRÉNOM = N&#039;DB2_log&#039;, NOM DE FICHIER = N&#039;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2_log.ldf&#039; , TAILLE = 8192 Ko , FILEGROWTH = 65536KB )\nALLER</p>"},{"id":"text-19","type":"text","heading":"","plain_text":"&#8211;DB3 \nCRÉER BASE DE DONNÉES [[[[DB3] SUR PRIMAIRE \n( PRÉNOM = N&#39;DB3&#39;, NOM DE FICHIER = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3.mdf&#39; , TAILLE = 8192 Ko , FILEGROWTH = 65536KB )\n BÛCHE SUR \n( PRÉNOM = N&#39;DB3_log&#39;, NOM DE FICHIER = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3_log.ldf&#39; , TAILLE = 8192 Ko , FILEGROWTH = 65536KB )\nALLER","html":"<p>&#8211;DB3 \nCRÉER BASE DE DONNÉES [[[[DB3] SUR PRIMAIRE \n( PRÉNOM = N&#039;DB3&#039;, NOM DE FICHIER = N&#039;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3.mdf&#039; , TAILLE = 8192 Ko , FILEGROWTH = 65536KB )\n BÛCHE SUR \n( PRÉNOM = N&#039;DB3_log&#039;, NOM DE FICHIER = N&#039;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3_log.ldf&#039; , TAILLE = 8192 Ko , FILEGROWTH = 65536KB )\nALLER</p>"},{"id":"text-20","type":"text","heading":"","plain_text":"Vérifier les informations du fichier de base de données.","html":"<p>Vérifier les informations du fichier de base de données.</p>"},{"id":"text-21","type":"text","heading":"","plain_text":"&#8211;Vérifier les informations du fichier DB\nsélectionnez * parmi DB1.sys.database_files;\nselect * from DB2.sys.database_files;\nselect * from DB3.sys.database_files;","html":"<p>&#8211;Vérifier les informations du fichier DB\nsélectionnez * parmi DB1.sys.database_files;\nselect * from DB2.sys.database_files;\nselect * from DB3.sys.database_files;</p>"},{"id":"text-22","type":"text","heading":"","plain_text":"&#8211;Vérifier les informations du fichier DB\nsélectionner * de DB1.sys.fichiers_base_de_données;\nsélectionner * de DB2.sys.fichiers_base_de_données;\nsélectionner * de DB3.sys.fichiers_base_de_données;","html":"<p>&#8211;Vérifier les informations du fichier DB\nsélectionner * de DB1.sys.fichiers_base_de_données;\nsélectionner * de DB2.sys.fichiers_base_de_données;\nsélectionner * de DB3.sys.fichiers_base_de_données;</p>"},{"id":"text-23","type":"text","heading":"","plain_text":"Il ressemblera à ceci:","html":"<p>Il ressemblera à ceci:</p>"},{"id":"text-24","type":"text","heading":"","plain_text":"Maintenant, nous faisons certaines choses préliminaires avant de déplacer des fichiers. Nous devons spécifier les bases de données que nous voulons déplacer. C&#39;est une façon très simpliste de le faire &#8211; codé en dur dans une table temporaire.","html":"<p>Maintenant, nous faisons certaines choses préliminaires avant de déplacer des fichiers. Nous devons spécifier les bases de données que nous voulons déplacer. C&#039;est une façon très simpliste de le faire &#8211; codé en dur dans une table temporaire.</p>"},{"id":"text-25","type":"text","heading":"","plain_text":"/ ***************************************\n       Pré étapes\n**************************************** /\n&#8211;voir les bases de données que vous voulez déplacer\nSELECT * FROM sys.databases WHERE [name] IN (&#39;DB1&#39;, &#39;DB2&#39;, &#39;DB3&#39;);\n&#8211;définit les bases de données à détacher / attacher\nSÉLECTIONNER [name] INTO #DBsToMove FROM sys.databases WHERE [name] IN (&#39;DB1&#39;, &#39;DB2&#39;, &#39;DB3&#39;);\n&#8211;doit rassembler les informations sur le fichier AVANT de détacher la base de données\nSELECT database_id, [type_desc], [name], nom physique\nINTO #DBfiles\nFROM sys.master_files\nWHERE database_id IN (DB_ID (&#39;DB1&#39;), DB_ID (&#39;DB2&#39;), DB_ID (&#39;DB3&#39;));\n&#8211;check file configuration &#8211; pourrait vouloir copier ceci ailleurs pour garder des traces de notre travail\nSELECT * FROM #DBfiles;","html":"<p>/ ***************************************\n       Pré étapes\n**************************************** /\n&#8211;voir les bases de données que vous voulez déplacer\nSELECT * FROM sys.databases WHERE [name] IN (&#039;DB1&#039;, &#039;DB2&#039;, &#039;DB3&#039;);\n&#8211;définit les bases de données à détacher / attacher\nSÉLECTIONNER [name] INTO #DBsToMove FROM sys.databases WHERE [name] IN (&#039;DB1&#039;, &#039;DB2&#039;, &#039;DB3&#039;);\n&#8211;doit rassembler les informations sur le fichier AVANT de détacher la base de données\nSELECT database_id, [type_desc], [name], nom physique\nINTO #DBfiles\nFROM sys.master_files\nWHERE database_id IN (DB_ID (&#039;DB1&#039;), DB_ID (&#039;DB2&#039;), DB_ID (&#039;DB3&#039;));\n&#8211;check file configuration &#8211; pourrait vouloir copier ceci ailleurs pour garder des traces de notre travail\nSELECT * FROM #DBfiles;</p>"},{"id":"text-26","type":"text","heading":"","plain_text":"1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18","html":"<p>1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18</p>"},{"id":"text-27","type":"text","heading":"","plain_text":"/ ***************************************\n              Pré étapes\n**************************************** /","html":"<p>/ ***************************************\n              Pré étapes\n**************************************** /</p>"},{"id":"text-28","type":"text","heading":"","plain_text":"&#8211;Voir les bases de données que vous souhaitez déplacer\nSÉLECTIONNER * DE sys.bases de données OÙ [[[[prénom] DANS(&#39;DB1&#39;,&#39;DB2&#39;,&#39;DB3&#39;);","html":"<p>&#8211;Voir les bases de données que vous souhaitez déplacer\nSÉLECTIONNER * DE sys.bases de données OÙ [[[[prénom] DANS(&#039;DB1&#039;,&#039;DB2&#039;,&#039;DB3&#039;);</p>"},{"id":"text-29","type":"text","heading":"","plain_text":"&#8211;définit les bases de données à détacher / attacher\nSÉLECTIONNER [[[[prénom] DANS #DBsToMove DE sys.bases de données OÙ [[[[prénom] DANS(&#39;DB1&#39;,&#39;DB2&#39;,&#39;DB3&#39;);","html":"<p>&#8211;définit les bases de données à détacher / attacher\nSÉLECTIONNER [[[[prénom] DANS #DBsToMove DE sys.bases de données OÙ [[[[prénom] DANS(&#039;DB1&#039;,&#039;DB2&#039;,&#039;DB3&#039;);</p>"},{"id":"text-30","type":"text","heading":"","plain_text":"&#8211;doit rassembler les informations sur le fichier AVANT de détacher la base de données\nSÉLECTIONNER base_de_données, [[[[type_desc], [[[[prénom], nom_périphérique\nDANS #DBfiles\nDE sys.master_files\nOÙ base_de_données DANS(DB_ID(&#39;DB1&#39;),DB_ID(&#39;DB2&#39;),DB_ID(&#39;DB3&#39;));","html":"<p>&#8211;doit rassembler les informations sur le fichier AVANT de détacher la base de données\nSÉLECTIONNER base_de_données, [[[[type_desc], [[[[prénom], nom_périphérique\nDANS #DBfiles\nDE sys.master_files\nOÙ base_de_données DANS(DB_ID(&#039;DB1&#039;),DB_ID(&#039;DB2&#039;),DB_ID(&#039;DB3&#039;));</p>"},{"id":"text-31","type":"text","heading":"","plain_text":"&#8211;check file configuration &#8211; pourrait vouloir copier ceci ailleurs pour garder des traces de notre travail\nSÉLECTIONNER * DE #DBfiles;","html":"<p>&#8211;check file configuration &#8211; pourrait vouloir copier ceci ailleurs pour garder des traces de notre travail\nSÉLECTIONNER * DE #DBfiles;</p>"},{"id":"text-32","type":"text","heading":"","plain_text":"Maintenant que nous avons ce dont nous avons besoin, nous pouvons commencer à détacher les bases de données.","html":"<p>Maintenant que nous avons ce dont nous avons besoin, nous pouvons commencer à détacher les bases de données.</p>"},{"id":"text-33","type":"text","heading":"","plain_text":"/ ************************************************ *****************************************\nMéthode 1: détacher la base de données / déplacer des fichiers / créer une base de données pour l&#39;attachement\n************************************************* ***************************************** /\n&#8211;Détachez les bases de données\nDECLARE @DBName varchar (500);\nDÉCLARE @sql NVARCHAR (MAX);\nDECLARE curDetachDBs CURSOR FAST_FORWARD READ_ONLY POUR\n       SÉLECTIONNER [name] DE #DBsToMove\nOUVRIR curDetachDBs\nFETCH NEXT DE curDetachDBs DANS @DBName\nWHILE @@ FETCH_STATUS = 0\nCOMMENCER\n       CARTE D&#39;IMPRESSION (13) + CHAR (10)\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#39;\n       PRINT &#39;-&#39; + @DBName\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#39;\n       SET @sql = &#39;ALTER DATABASE [&lsquo; + @DBName + &lsquo;] SET SINGLE_USER AVEC ROLLBACK IMMEDIATE; &#39;\n       IMPRIMER @sql\n       EXEC sys.sp_executesql @sql\n       SET @sql = &#39;EXEC sp_detach_db&#39; + @DBName + &#39;,&#39; &#39;true&#39; &#39;;&#39;\n       IMPRIMER @sql\n       EXEC sys.sp_executesql @sql\n    FETCH NEXT DE curDetachDBs DANS @DBName\nFIN\nFERMER curDetachDBs\nDEALLOCATE curDetachDBs","html":"<p>/ ************************************************ *****************************************\nMéthode 1: détacher la base de données / déplacer des fichiers / créer une base de données pour l&#039;attachement\n************************************************* ***************************************** /\n&#8211;Détachez les bases de données\nDECLARE @DBName varchar (500);\nDÉCLARE @sql NVARCHAR (MAX);\nDECLARE curDetachDBs CURSOR FAST_FORWARD READ_ONLY POUR\n       SÉLECTIONNER [name] DE #DBsToMove\nOUVRIR curDetachDBs\nFETCH NEXT DE curDetachDBs DANS @DBName\nWHILE @@ FETCH_STATUS = 0\nCOMMENCER\n       CARTE D&#039;IMPRESSION (13) + CHAR (10)\n       IMPRESSION &#039;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#039;\n       PRINT &#039;-&#039; + @DBName\n       IMPRESSION &#039;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#039;\n       SET @sql = &#039;ALTER DATABASE [&lsquo; + @DBName + &lsquo;] SET SINGLE_USER AVEC ROLLBACK IMMEDIATE; &#039;\n       IMPRIMER @sql\n       EXEC sys.sp_executesql @sql\n       SET @sql = &#039;EXEC sp_detach_db&#039; + @DBName + &#039;,&#039; &#039;true&#039; &#039;;&#039;\n       IMPRIMER @sql\n       EXEC sys.sp_executesql @sql\n    FETCH NEXT DE curDetachDBs DANS @DBName\nFIN\nFERMER curDetachDBs\nDEALLOCATE curDetachDBs</p>"},{"id":"text-34","type":"text","heading":"","plain_text":"1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27","html":"<p>1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27</p>"},{"id":"text-35","type":"text","heading":"","plain_text":"/ ************************************************ *****************************************\n\t\t\t\tMéthode 1: détacher la base de données / déplacer des fichiers / créer une base de données pour l&#39;attachement\n************************************************* ***************************************** /","html":"<p>/ ************************************************ *****************************************\n\t\t\t\tMéthode 1: détacher la base de données / déplacer des fichiers / créer une base de données pour l&#039;attachement\n************************************************* ***************************************** /</p>"},{"id":"text-36","type":"text","heading":"","plain_text":"&#8211;Détachez les bases de données\nDÉCLARER @DBName varchar(500);\nDÉCLARER @sql NVARCHAR(MAX);\nDÉCLARER curDetachDBs LE CURSEUR AVANCE RAPIDE LECTURE SEULEMENT POUR\n       SÉLECTIONNER [[[[prénom] DE #DBsToMove\nOUVRIR curDetachDBs\nFETCH SUIVANT DE curDetachDBs DANS @DBName\nTANDIS QUE @@FETCH_STATUS = 0\nCOMMENCER\n       IMPRESSION CARBONISER(13) + CARBONISER(dix)\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#39;\n       IMPRESSION &#39;-&#39; + @DBName\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#39;\n       ENSEMBLE @sql = &#39;ALTER DATABASE[&#39;[&#39;[&lsquo;[&lsquo; + @DBName + &#39;]SET SINGLE_USER AVEC ROLLBACK IMMEDIATE; &#39;\n       IMPRESSION @sql\n       EXEC sys.sp_executesql @sql\n       ENSEMBLE @sql = &#39;EXEC sp_detach_db&#39; + @DBName + &#39;,&#39;&#39;vrai&#39;&#39;;&#39;\n       IMPRESSION @sql\n       EXEC sys.sp_executesql @sql\n    FETCH SUIVANT DE curDetachDBs DANS @DBName\nFIN\nFERMER curDetachDBs\nDÉALLOCATE curDetachDBs","html":"<p>&#8211;Détachez les bases de données\nDÉCLARER @DBName varchar(500);\nDÉCLARER @sql NVARCHAR(MAX);\nDÉCLARER curDetachDBs LE CURSEUR AVANCE RAPIDE LECTURE SEULEMENT POUR\n       SÉLECTIONNER [[[[prénom] DE #DBsToMove\nOUVRIR curDetachDBs\nFETCH SUIVANT DE curDetachDBs DANS @DBName\nTANDIS QUE @@FETCH_STATUS = 0\nCOMMENCER\n       IMPRESSION CARBONISER(13) + CARBONISER(dix)\n       IMPRESSION &#039;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#039;\n       IMPRESSION &#039;-&#039; + @DBName\n       IMPRESSION &#039;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#039;\n       ENSEMBLE @sql = &#039;ALTER DATABASE[&#039;[&#039;[&lsquo;[&lsquo; + @DBName + &#039;]SET SINGLE_USER AVEC ROLLBACK IMMEDIATE; &#039;\n       IMPRESSION @sql\n       EXEC sys.sp_executesql @sql\n       ENSEMBLE @sql = &#039;EXEC sp_detach_db&#039; + @DBName + &#039;,&#039;&#039;vrai&#039;&#039;;&#039;\n       IMPRESSION @sql\n       EXEC sys.sp_executesql @sql\n    FETCH SUIVANT DE curDetachDBs DANS @DBName\nFIN\nFERMER curDetachDBs\nDÉALLOCATE curDetachDBs</p>"},{"id":"text-37","type":"text","heading":"","plain_text":"Vérifiez les modifications. Notez que les DB sont totalement partis. Vous ne les trouverez pas dans l&#39;explorateur d&#39;objets dans SSMS ou dans les tables système.","html":"<p>Vérifiez les modifications. Notez que les DB sont totalement partis. Vous ne les trouverez pas dans l&#039;explorateur d&#039;objets dans SSMS ou dans les tables système.</p>"},{"id":"text-38","type":"text","heading":"","plain_text":"&#8211;verify changements\nSELECT * FROM sys.databases WHERE nom IN (&#39;DB1&#39;, &#39;DB2&#39;, &#39;DB3&#39;);\n&#8211; Les BD sont partis maintenant! c&#39;est ce que détache fait et comment il est différent de la mise hors ligne","html":"<p>&#8211;verify changements\nSELECT * FROM sys.databases WHERE nom IN (&#039;DB1&#039;, &#039;DB2&#039;, &#039;DB3&#039;);\n&#8211; Les BD sont partis maintenant! c&#039;est ce que détache fait et comment il est différent de la mise hors ligne</p>"},{"id":"text-39","type":"text","heading":"","plain_text":"&#8211;verify changements\nSÉLECTIONNER * DE sys.bases de données OÙ prénom DANS(&#39;DB1&#39;,&#39;DB2&#39;,&#39;DB3&#39;);\n&#8211; Les BD sont partis maintenant! c&#39;est ce que détache fait et comment il est différent de la mise hors ligne","html":"<p>&#8211;verify changements\nSÉLECTIONNER * DE sys.bases de données OÙ prénom DANS(&#039;DB1&#039;,&#039;DB2&#039;,&#039;DB3&#039;);\n&#8211; Les BD sont partis maintenant! c&#039;est ce que détache fait et comment il est différent de la mise hors ligne</p>"},{"id":"text-40","type":"text","heading":"","plain_text":"Vient maintenant le moment de déplacer les fichiers de base de données. Vous pouvez utiliser votre technique préférée pour déplacer des fichiers. J&#39;aime utiliser robocopy dans un fichier .bat, mais il en existe beaucoup d&#39;autres, tels que PowerShell, XCopy ou un clic droit pour couper / coller.\nVoici quelques actions de robocopy:","html":"<p>Vient maintenant le moment de déplacer les fichiers de base de données. Vous pouvez utiliser votre technique préférée pour déplacer des fichiers. J&#039;aime utiliser robocopy dans un fichier .bat, mais il en existe beaucoup d&#039;autres, tels que PowerShell, XCopy ou un clic droit pour couper / coller.\nVoici quelques actions de robocopy:</p>"},{"id":"text-41","type":"text","heading":"","plain_text":"robocopy &quot;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DONNÉES&quot; &quot;G:  MSSQL  Data&quot; &quot;DB1.mdf&quot; / L\nrobocopy &quot;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DONNÉES&quot; &quot;G:  MSSQL  Data&quot; &quot;DB1_log.ldf&quot; / L\nrobocopy &quot;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DONNÉES&quot; &quot;G:  MSSQL  Data&quot; &quot;DB2.mdf&quot; / L\nrobocopy &quot;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DONNÉES&quot; &quot;G:  MSSQL  Data&quot; &quot;DB2_log.ldf&quot; / L\nrobocopy &quot;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DONNÉES&quot; &quot;G:  MSSQL  Data&quot; &quot;DB3.mdf&quot; / L\nrobocopy &quot;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DONNÉES&quot; &quot;G:  MSSQL  Data&quot; &quot;DB3_log.ldf&quot; / L","html":"<p>robocopy &quot;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DONNÉES&quot; &quot;G:  MSSQL  Data&quot; &quot;DB1.mdf&quot; / L\nrobocopy &quot;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DONNÉES&quot; &quot;G:  MSSQL  Data&quot; &quot;DB1_log.ldf&quot; / L\nrobocopy &quot;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DONNÉES&quot; &quot;G:  MSSQL  Data&quot; &quot;DB2.mdf&quot; / L\nrobocopy &quot;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DONNÉES&quot; &quot;G:  MSSQL  Data&quot; &quot;DB2_log.ldf&quot; / L\nrobocopy &quot;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DONNÉES&quot; &quot;G:  MSSQL  Data&quot; &quot;DB3.mdf&quot; / L\nrobocopy &quot;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DONNÉES&quot; &quot;G:  MSSQL  Data&quot; &quot;DB3_log.ldf&quot; / L</p>"},{"id":"text-42","type":"text","heading":"","plain_text":"robocopier &quot;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA&quot; &quot;G:  MSSQL  Data&quot; &quot;DB1.mdf&quot; /L\nrobocopier &quot;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA&quot; &quot;G:  MSSQL  Data&quot; &quot;DB1_log.ldf&quot; /L\nrobocopier &quot;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA&quot; &quot;G:  MSSQL  Data&quot; &quot;DB2.mdf&quot; /L\nrobocopier &quot;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA&quot; &quot;G:  MSSQL  Data&quot; &quot;DB2_log.ldf&quot; /L\nrobocopier &quot;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA&quot; &quot;G:  MSSQL  Data&quot; &quot;DB3.mdf&quot; /L\nrobocopier &quot;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA&quot; &quot;G:  MSSQL  Data&quot; &quot;DB3_log.ldf&quot; /L","html":"<p>robocopier &quot;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA&quot; &quot;G:  MSSQL  Data&quot; &quot;DB1.mdf&quot; /L\nrobocopier &quot;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA&quot; &quot;G:  MSSQL  Data&quot; &quot;DB1_log.ldf&quot; /L\nrobocopier &quot;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA&quot; &quot;G:  MSSQL  Data&quot; &quot;DB2.mdf&quot; /L\nrobocopier &quot;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA&quot; &quot;G:  MSSQL  Data&quot; &quot;DB2_log.ldf&quot; /L\nrobocopier &quot;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA&quot; &quot;G:  MSSQL  Data&quot; &quot;DB3.mdf&quot; /L\nrobocopier &quot;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA&quot; &quot;G:  MSSQL  Data&quot; &quot;DB3_log.ldf&quot; /L</p>"},{"id":"text-43","type":"text","heading":"","plain_text":"Le drapeau “/ L” est la première façon dont je gère les choses. En réalité, il ne copie rien, mais listera les fichiers. C&#39;est une bonne pré-vérification avant d&#39;exécuter un lot. Supprimez simplement le drapeau “/ L” et exécutez-le une fois vérifié.\nVoici la première partie de la sortie de l’exécution d’un fichier .bat avec des instructions robocopy:","html":"<p>Le drapeau “/ L” est la première façon dont je gère les choses. En réalité, il ne copie rien, mais listera les fichiers. C&#039;est une bonne pré-vérification avant d&#039;exécuter un lot. Supprimez simplement le drapeau “/ L” et exécutez-le une fois vérifié.\nVoici la première partie de la sortie de l’exécution d’un fichier .bat avec des instructions robocopy:</p>"},{"id":"text-44","type":"text","heading":"","plain_text":"Une fois que les fichiers sont physiquement déplacés vers le nouvel emplacement, nous pouvons continuer.","html":"<p>Une fois que les fichiers sont physiquement déplacés vers le nouvel emplacement, nous pouvons continuer.</p>"},{"id":"text-45","type":"text","heading":"","plain_text":"&#8211; attacher les bases de données\nDECLARE @targetMDF NVARCHAR (128);\nDECLARE @targetLDF NVARCHAR (128);\nDECLARE @DBName varchar (500);\nDÉCLARE @sql NVARCHAR (MAX);\nDECLARE @rowFile NVARCHAR (128);\nDECLARE @logFile NVARCHAR (128);\nDECLARE curAttachDBs CURSOR FAST_FORWARD READ_ONLY POUR\n       SELECT nom FROM #DBsToMove\nOUVRIR curAttachDBs\nFETCH NEXT FROM curAttachDBs INTO @DBName\nWHILE @@ FETCH_STATUS = 0\nCOMMENCER\n       SET @targetMDF = &#39;G:  MSSQL  Data&#39;;\n       SET @targetLDF = &#39;G:  MSSQL  Data&#39;;\n       CARTE D&#39;IMPRESSION (13) + CHAR (10)\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#39;\n       PRINT &#39;-&#39; + @DBName\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#39;\n       SELECT @targetMDF + = &#39;&#39; + [name] + &#39;.mdf&#39; DE #DBfiles WHERE REMPLACE ([name], &#39;_ log&#39;, &#39;&#39;) = @DBName AND [type_desc] = &#39;ROWS&#39;;\n       SELECT @targetLDf + = &#39;&#39; + [name] + &#39;.ldf&#39; DE #DBfiles WHERE REMPLACE ([name], &#39;_ log&#39;, &#39;&#39;) = @DBName AND [type_desc] = &#39;LOG&#39;;\n       \n&#8211;attache la base de données\n       SELECT @sql = &#39;CREATE DATABASE [&lsquo; + @DBName + &lsquo;] SUR\n              (FILENAME = &#39;&#39; &#39;\n                      + @targetMDF + &#39;&#39; &#39;),\n              (FILENAME = &#39;&#39; &#39;+ @targetLDF +&#39; &#39;&#39;)\n              POUR ATTACHER &#39;\n       FROM #DBfiles;\n       PRINT @sql;\n       EXEC sys.sp_executesql @sql;\n       SET @targetMDF = &#39;&#39;;\n       SET @targetLDF = &#39;&#39;;\n    FETCH NEXT FROM curAttachDBs INTO @DBName\nFIN\nCLOSE curAttachDBs\nDEALLOCATE curAttachDBs","html":"<p>&#8211; attacher les bases de données\nDECLARE @targetMDF NVARCHAR (128);\nDECLARE @targetLDF NVARCHAR (128);\nDECLARE @DBName varchar (500);\nDÉCLARE @sql NVARCHAR (MAX);\nDECLARE @rowFile NVARCHAR (128);\nDECLARE @logFile NVARCHAR (128);\nDECLARE curAttachDBs CURSOR FAST_FORWARD READ_ONLY POUR\n       SELECT nom FROM #DBsToMove\nOUVRIR curAttachDBs\nFETCH NEXT FROM curAttachDBs INTO @DBName\nWHILE @@ FETCH_STATUS = 0\nCOMMENCER\n       SET @targetMDF = &#039;G:  MSSQL  Data&#039;;\n       SET @targetLDF = &#039;G:  MSSQL  Data&#039;;\n       CARTE D&#039;IMPRESSION (13) + CHAR (10)\n       IMPRESSION &#039;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#039;\n       PRINT &#039;-&#039; + @DBName\n       IMPRESSION &#039;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#039;\n       SELECT @targetMDF + = &#039;&#039; + [name] + &#039;.mdf&#039; DE #DBfiles WHERE REMPLACE ([name], &#039;_ log&#039;, &#039;&#039;) = @DBName AND [type_desc] = &#039;ROWS&#039;;\n       SELECT @targetLDf + = &#039;&#039; + [name] + &#039;.ldf&#039; DE #DBfiles WHERE REMPLACE ([name], &#039;_ log&#039;, &#039;&#039;) = @DBName AND [type_desc] = &#039;LOG&#039;;\n       \n&#8211;attache la base de données\n       SELECT @sql = &#039;CREATE DATABASE [&lsquo; + @DBName + &lsquo;] SUR\n              (FILENAME = &#039;&#039; &#039;\n                      + @targetMDF + &#039;&#039; &#039;),\n              (FILENAME = &#039;&#039; &#039;+ @targetLDF +&#039; &#039;&#039;)\n              POUR ATTACHER &#039;\n       FROM #DBfiles;\n       PRINT @sql;\n       EXEC sys.sp_executesql @sql;\n       SET @targetMDF = &#039;&#039;;\n       SET @targetLDF = &#039;&#039;;\n    FETCH NEXT FROM curAttachDBs INTO @DBName\nFIN\nCLOSE curAttachDBs\nDEALLOCATE curAttachDBs</p>"},{"id":"text-46","type":"text","heading":"","plain_text":"1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37","html":"<p>1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37</p>"},{"id":"text-47","type":"text","heading":"","plain_text":"&#8211; attacher les bases de données\nDÉCLARER @targetMDF NVARCHAR(128);\nDÉCLARER @targetLDF NVARCHAR(128);\nDÉCLARER @DBName varchar(500);\nDÉCLARER @sql NVARCHAR(MAX);\nDÉCLARER @rowFile NVARCHAR(128);\nDÉCLARER @fichier journal NVARCHAR(128);\nDÉCLARER curAttachDBs LE CURSEUR AVANCE RAPIDE LECTURE SEULEMENT POUR\n       SÉLECTIONNER prénom DE #DBsToMove\nOUVRIR curAttachDBs\nFETCH SUIVANT DE curAttachDBs DANS @DBName\nTANDIS QUE @@FETCH_STATUS = 0\nCOMMENCER\n       ENSEMBLE @targetMDF = &#39;G:  MSSQL  Data&#39;;\n       ENSEMBLE @targetLDF = &#39;G:  MSSQL  Data&#39;;\n       IMPRESSION CARBONISER(13) + CARBONISER(dix)\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#39;\n       IMPRESSION &#39;-&#39; + @DBName\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#39;\n       SÉLECTIONNER @targetMDF + = &#39;&#39; + [name] + &#39;.mdf&#39;FROM #DBfiles O REMPLACER ([name]&#39;_bûche&#39;,&#39;&#39;) = @DBNAME AND [type_desc] = &#39;ROWS&#39;;\n              SELECT @targetLDf + = &#39;&#39; + [[[[prénom] + &#39;.ldf&#39; DE #DBfiles OÙ REMPLACER([[[[prénom],&#39;_bûche&#39;,&#39;&#39;) = @DBName ET [[[[type_desc] = &#39;BÛCHE&#39;;\n       \n\t\t   &#8211;attache la base de données\n       SÉLECTIONNER @sql = &#39;CREATE DATABASE[&#39;[&#39;[&lsquo;[&lsquo; + @DBName + &#39;]SUR\n                            (FILENAME = &#39;&#39;&#39;\n                      + @targetMDF + &#39;&#39;&#39;),\n                            (FILENAME = &#39;&#39;&#39; + @targetLDF + &#39;&#39;&#39;)\n                            POUR ATTACHER &#39;\n       DE #DBfiles;\n       IMPRESSION @sql;\n       EXEC sys.sp_executesql @sql;\n       ENSEMBLE @targetMDF = &#39;&#39;;\n       ENSEMBLE @targetLDF = &#39;&#39;;\n    FETCH SUIVANT DE curAttachDBs DANS @DBName\nFIN\nFERMER curAttachDBs\nDÉALLOCATE curAttachDBs","html":"<p>&#8211; attacher les bases de données\nDÉCLARER @targetMDF NVARCHAR(128);\nDÉCLARER @targetLDF NVARCHAR(128);\nDÉCLARER @DBName varchar(500);\nDÉCLARER @sql NVARCHAR(MAX);\nDÉCLARER @rowFile NVARCHAR(128);\nDÉCLARER @fichier journal NVARCHAR(128);\nDÉCLARER curAttachDBs LE CURSEUR AVANCE RAPIDE LECTURE SEULEMENT POUR\n       SÉLECTIONNER prénom DE #DBsToMove\nOUVRIR curAttachDBs\nFETCH SUIVANT DE curAttachDBs DANS @DBName\nTANDIS QUE @@FETCH_STATUS = 0\nCOMMENCER\n       ENSEMBLE @targetMDF = &#039;G:  MSSQL  Data&#039;;\n       ENSEMBLE @targetLDF = &#039;G:  MSSQL  Data&#039;;\n       IMPRESSION CARBONISER(13) + CARBONISER(dix)\n       IMPRESSION &#039;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#039;\n       IMPRESSION &#039;-&#039; + @DBName\n       IMPRESSION &#039;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#039;\n       SÉLECTIONNER @targetMDF + = &#039;&#039; + [name] + &#039;.mdf&#039;FROM #DBfiles O REMPLACER ([name]&#039;_bûche&#039;,&#039;&#039;) = @DBNAME AND [type_desc] = &#039;ROWS&#039;;\n              SELECT @targetLDf + = &#039;&#039; + [[[[prénom] + &#039;.ldf&#039; DE #DBfiles OÙ REMPLACER([[[[prénom],&#039;_bûche&#039;,&#039;&#039;) = @DBName ET [[[[type_desc] = &#039;BÛCHE&#039;;\n       \n\t\t   &#8211;attache la base de données\n       SÉLECTIONNER @sql = &#039;CREATE DATABASE[&#039;[&#039;[&lsquo;[&lsquo; + @DBName + &#039;]SUR\n                            (FILENAME = &#039;&#039;&#039;\n                      + @targetMDF + &#039;&#039;&#039;),\n                            (FILENAME = &#039;&#039;&#039; + @targetLDF + &#039;&#039;&#039;)\n                            POUR ATTACHER &#039;\n       DE #DBfiles;\n       IMPRESSION @sql;\n       EXEC sys.sp_executesql @sql;\n       ENSEMBLE @targetMDF = &#039;&#039;;\n       ENSEMBLE @targetLDF = &#039;&#039;;\n    FETCH SUIVANT DE curAttachDBs DANS @DBName\nFIN\nFERMER curAttachDBs\nDÉALLOCATE curAttachDBs</p>"},{"id":"text-48","type":"text","heading":"","plain_text":"Vérifiez les nouveaux emplacements de fichiers.","html":"<p>Vérifiez les nouveaux emplacements de fichiers.</p>"},{"id":"text-49","type":"text","heading":"","plain_text":"&#8211;Vérifier les informations du fichier DB\nsélectionnez * parmi DB1.sys.database_files;\nselect * from DB2.sys.database_files;\nselect * from DB3.sys.database_files;","html":"<p>&#8211;Vérifier les informations du fichier DB\nsélectionnez * parmi DB1.sys.database_files;\nselect * from DB2.sys.database_files;\nselect * from DB3.sys.database_files;</p>"},{"id":"text-50","type":"text","heading":"","plain_text":"&#8211;Vérifier les informations du fichier DB\nsélectionner * de DB1.sys.fichiers_base_de_données;\nsélectionner * de DB2.sys.fichiers_base_de_données;\nsélectionner * de DB3.sys.fichiers_base_de_données;","html":"<p>&#8211;Vérifier les informations du fichier DB\nsélectionner * de DB1.sys.fichiers_base_de_données;\nsélectionner * de DB2.sys.fichiers_base_de_données;\nsélectionner * de DB3.sys.fichiers_base_de_données;</p>"},{"id":"text-51","type":"text","heading":"","plain_text":"Auparavant, nos fichiers pointaient vers C: mais sont maintenant sur G: &#8211; la migration est terminée.\nMéthode 2: Définir la base de données hors connexion / déplacer des fichiers / modifier la base de données / définir en ligne\nContinuons dans ce sens, déplaçons les 3 exemples de bases de données que nous avons créées et que nous venons de revenir des disques G: à C:. Ici, nous commençons par définir nos bases de données et en définissant un nouveau chemin.","html":"<p>Auparavant, nos fichiers pointaient vers C: mais sont maintenant sur G: &#8211; la migration est terminée.\nMéthode 2: Définir la base de données hors connexion / déplacer des fichiers / modifier la base de données / définir en ligne\nContinuons dans ce sens, déplaçons les 3 exemples de bases de données que nous avons créées et que nous venons de revenir des disques G: à C:. Ici, nous commençons par définir nos bases de données et en définissant un nouveau chemin.</p>"},{"id":"text-52","type":"text","heading":"","plain_text":"UTILISER le maître;\nALLER\n/ ***************************************\n       Pré étapes\n**************************************** /\n&#8211;voir les bases de données que vous voulez déplacer\nSELECT * FROM sys.databases WHERE [name] IN (&#39;DB1&#39;, &#39;DB2&#39;, &#39;DB3&#39;);\n&#8211;définit les bases de données à détacher / attacher\nSÉLECTIONNER [name] INTO #DBsToMove FROM sys.databases WHERE [name] IN (&#39;DB1&#39;, &#39;DB2&#39;, &#39;DB3&#39;);\n&#8211;doit rassembler les informations sur le fichier AVANT de détacher la base de données\nSELECT database_id, [type_desc], [name], nom physique\nINTO #DBfiles\nFROM sys.master_files\nWHERE database_id IN (DB_ID (&#39;DB1&#39;), DB_ID (&#39;DB2&#39;), DB_ID (&#39;DB3&#39;));\nalter table #DBfiles add NewPath varchar (500);\n&#8211; charger de nouveaux chemins\nDECLARE @targetMDF NVARCHAR (128);\nDECLARE @targetLDF NVARCHAR (128);\nSET @targetMDF = &#39;C:  Fichiers de programme  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA &#39;;\nSET @targetLDF = &#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA &#39;;\n&#8211;SET @targetMDF = &#39;G:  MSSQL  Data &#39;;\n&#8211;SET @targetLDF = &#39;G:  MSSQL  Data &#39;;\nmettre à jour les fichiers\ndéfinir NewPath = case quand [type_desc] = &#39;ROWS&#39; puis @targetMDF + [name] + &#39;.mdf&#39;\nquand [type_desc] = &#39;LOG&#39; puis @targetLDF + [name] + &#39;.ldf&#39;\nfin\nà partir des fichiers #DBfiles;\n&#8211;check file configuration &#8211; pourrait vouloir copier ceci ailleurs pour garder des traces de notre travail\nSELECT * FROM #DBfiles;","html":"<p>UTILISER le maître;\nALLER\n/ ***************************************\n       Pré étapes\n**************************************** /\n&#8211;voir les bases de données que vous voulez déplacer\nSELECT * FROM sys.databases WHERE [name] IN (&#039;DB1&#039;, &#039;DB2&#039;, &#039;DB3&#039;);\n&#8211;définit les bases de données à détacher / attacher\nSÉLECTIONNER [name] INTO #DBsToMove FROM sys.databases WHERE [name] IN (&#039;DB1&#039;, &#039;DB2&#039;, &#039;DB3&#039;);\n&#8211;doit rassembler les informations sur le fichier AVANT de détacher la base de données\nSELECT database_id, [type_desc], [name], nom physique\nINTO #DBfiles\nFROM sys.master_files\nWHERE database_id IN (DB_ID (&#039;DB1&#039;), DB_ID (&#039;DB2&#039;), DB_ID (&#039;DB3&#039;));\nalter table #DBfiles add NewPath varchar (500);\n&#8211; charger de nouveaux chemins\nDECLARE @targetMDF NVARCHAR (128);\nDECLARE @targetLDF NVARCHAR (128);\nSET @targetMDF = &#039;C:  Fichiers de programme  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA &#039;;\nSET @targetLDF = &#039;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA &#039;;\n&#8211;SET @targetMDF = &#039;G:  MSSQL  Data &#039;;\n&#8211;SET @targetLDF = &#039;G:  MSSQL  Data &#039;;\nmettre à jour les fichiers\ndéfinir NewPath = case quand [type_desc] = &#039;ROWS&#039; puis @targetMDF + [name] + &#039;.mdf&#039;\nquand [type_desc] = &#039;LOG&#039; puis @targetLDF + [name] + &#039;.ldf&#039;\nfin\nà partir des fichiers #DBfiles;\n&#8211;check file configuration &#8211; pourrait vouloir copier ceci ailleurs pour garder des traces de notre travail\nSELECT * FROM #DBfiles;</p>"},{"id":"text-53","type":"text","heading":"","plain_text":"1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37","html":"<p>1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37</p>"},{"id":"text-54","type":"text","heading":"","plain_text":"UTILISATION maîtriser;\nALLER","html":"<p>UTILISATION maîtriser;\nALLER</p>"},{"id":"text-55","type":"text","heading":"","plain_text":"/ ***************************************\n              Pré étapes\n**************************************** /","html":"<p>/ ***************************************\n              Pré étapes\n**************************************** /</p>"},{"id":"text-56","type":"text","heading":"","plain_text":"&#8211;voir les bases de données que vous voulez déplacer\nSÉLECTIONNER * DE sys.bases de données OÙ [[[[prénom] DANS(&#39;DB1&#39;,&#39;DB2&#39;,&#39;DB3&#39;);","html":"<p>&#8211;voir les bases de données que vous voulez déplacer\nSÉLECTIONNER * DE sys.bases de données OÙ [[[[prénom] DANS(&#039;DB1&#039;,&#039;DB2&#039;,&#039;DB3&#039;);</p>"},{"id":"text-57","type":"text","heading":"","plain_text":"&#8211;définit les bases de données à détacher / attacher\nSÉLECTIONNER [[[[prénom] DANS #DBsToMove DE sys.bases de données OÙ [[[[prénom] DANS(&#39;DB1&#39;,&#39;DB2&#39;,&#39;DB3&#39;);","html":"<p>&#8211;définit les bases de données à détacher / attacher\nSÉLECTIONNER [[[[prénom] DANS #DBsToMove DE sys.bases de données OÙ [[[[prénom] DANS(&#039;DB1&#039;,&#039;DB2&#039;,&#039;DB3&#039;);</p>"},{"id":"text-58","type":"text","heading":"","plain_text":"&#8211;doit rassembler les informations sur le fichier AVANT de détacher la base de données\nSÉLECTIONNER base_de_données, [[[[type_desc], [[[[prénom], nom_périphérique\nDANS #DBfiles\nDE sys.master_files\nOÙ base_de_données DANS(DB_ID(&#39;DB1&#39;),DB_ID(&#39;DB2&#39;),DB_ID(&#39;DB3&#39;));","html":"<p>&#8211;doit rassembler les informations sur le fichier AVANT de détacher la base de données\nSÉLECTIONNER base_de_données, [[[[type_desc], [[[[prénom], nom_périphérique\nDANS #DBfiles\nDE sys.master_files\nOÙ base_de_données DANS(DB_ID(&#039;DB1&#039;),DB_ID(&#039;DB2&#039;),DB_ID(&#039;DB3&#039;));</p>"},{"id":"text-59","type":"text","heading":"","plain_text":"modifier table #DBfiles ajouter Nouveau chemin varchar(500);","html":"<p>modifier table #DBfiles ajouter Nouveau chemin varchar(500);</p>"},{"id":"text-60","type":"text","heading":"","plain_text":"&#8211; charger de nouveaux chemins \nDÉCLARER @targetMDF NVARCHAR(128);\nDÉCLARER @targetLDF NVARCHAR(128);\nENSEMBLE @targetMDF = &#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA &#39;;\nSET @targetLDF = &#39;C:Programme Des dossiersMicrosoft SQL ServeurMSSQL13.MSSQLSERVERMSSQLLES DONNÉES&#39;;\n&#8211;SET @targetMDF = &#39;G:  MSSQL  Data &#39;;\n&#8211;SET @targetLDF = &#39;G:  MSSQL  Data &#39;;","html":"<p>&#8211; charger de nouveaux chemins \nDÉCLARER @targetMDF NVARCHAR(128);\nDÉCLARER @targetLDF NVARCHAR(128);\nENSEMBLE @targetMDF = &#039;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA &#039;;\nSET @targetLDF = &#039;C:Programme Des dossiersMicrosoft SQL ServeurMSSQL13.MSSQLSERVERMSSQLLES DONNÉES&#039;;\n&#8211;SET @targetMDF = &#039;G:  MSSQL  Data &#039;;\n&#8211;SET @targetLDF = &#039;G:  MSSQL  Data &#039;;</p>"},{"id":"text-61","type":"text","heading":"","plain_text":"mettre à jour des dossiers\nensemble Nouveau chemin = Cas quand [[[[type_desc] = &#39;ROWS&#39; puis @targetMDF + [[[[prénom] + &#39;.mdf&#39;\n\t\t\t\t\t\t\t\t   quand [[[[type_desc] = &#39;BÛCHE&#39; puis @targetLDF + [[[[prénom] + &#39;.ldf&#39; \n\t\t\t\t\t\t\t\t   fin \nde #DBfiles des dossiers;","html":"<p>mettre à jour des dossiers\nensemble Nouveau chemin = Cas quand [[[[type_desc] = &#039;ROWS&#039; puis @targetMDF + [[[[prénom] + &#039;.mdf&#039;\n\t\t\t\t\t\t\t\t   quand [[[[type_desc] = &#039;BÛCHE&#039; puis @targetLDF + [[[[prénom] + &#039;.ldf&#039; \n\t\t\t\t\t\t\t\t   fin \nde #DBfiles des dossiers;</p>"},{"id":"text-62","type":"text","heading":"","plain_text":"&#8211;check file configuration &#8211; pourrait vouloir copier ceci ailleurs pour garder des traces de notre travail\nSÉLECTIONNER * DE #DBfiles;","html":"<p>&#8211;check file configuration &#8211; pourrait vouloir copier ceci ailleurs pour garder des traces de notre travail\nSÉLECTIONNER * DE #DBfiles;</p>"},{"id":"text-63","type":"text","heading":"","plain_text":"Voici le résultat de #DBFiles:","html":"<p>Voici le résultat de #DBFiles:</p>"},{"id":"text-64","type":"text","heading":"","plain_text":"Maintenant, au lieu de vous détacher comme dans l&#39;exemple précédent, plaçons simplement les bases de données hors ligne.","html":"<p>Maintenant, au lieu de vous détacher comme dans l&#039;exemple précédent, plaçons simplement les bases de données hors ligne.</p>"},{"id":"text-65","type":"text","heading":"","plain_text":"/ ************************************************ *****************************************\nMéthode 2: Définir la base de données hors connexion / déplacer des fichiers / modifier la base de données / définir en ligne\n************************************************* ***************************************** /\n&#8211;set DBs hors ligne\nDECLARE @DBName varchar (500);\nDÉCLARE @sql NVARCHAR (MAX);\nDECLARE curDetachDBs CURSOR FAST_FORWARD READ_ONLY POUR\n       SÉLECTIONNER [name] DE #DBsToMove\nOUVRIR curDetachDBs\nFETCH NEXT DE curDetachDBs DANS @DBName\nWHILE @@ FETCH_STATUS = 0\nCOMMENCER\n       CARTE D&#39;IMPRESSION (13) + CHAR (10)\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#39;\n       PRINT &#39;-&#39; + @DBName\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#39;\n       SET @sql = &#39;ALTER DATABASE [&lsquo; + @DBName + &lsquo;] SET OFFLINE; &#39;\n       IMPRIMER @sql\n       EXEC sys.sp_executesql @sql\n    FETCH NEXT DE curDetachDBs DANS @DBName\nFIN\nFERMER curDetachDBs\nDEALLOCATE curDetachDBs\n&#8211;verify changements\nSELECT * FROM sys.databases WHERE nom IN (&#39;DB1&#39;, &#39;DB2&#39;, &#39;DB3&#39;);\n&#8211; Les BD sont toujours présentes &#8211; contrairement à détachement","html":"<p>/ ************************************************ *****************************************\nMéthode 2: Définir la base de données hors connexion / déplacer des fichiers / modifier la base de données / définir en ligne\n************************************************* ***************************************** /\n&#8211;set DBs hors ligne\nDECLARE @DBName varchar (500);\nDÉCLARE @sql NVARCHAR (MAX);\nDECLARE curDetachDBs CURSOR FAST_FORWARD READ_ONLY POUR\n       SÉLECTIONNER [name] DE #DBsToMove\nOUVRIR curDetachDBs\nFETCH NEXT DE curDetachDBs DANS @DBName\nWHILE @@ FETCH_STATUS = 0\nCOMMENCER\n       CARTE D&#039;IMPRESSION (13) + CHAR (10)\n       IMPRESSION &#039;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#039;\n       PRINT &#039;-&#039; + @DBName\n       IMPRESSION &#039;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#039;\n       SET @sql = &#039;ALTER DATABASE [&lsquo; + @DBName + &lsquo;] SET OFFLINE; &#039;\n       IMPRIMER @sql\n       EXEC sys.sp_executesql @sql\n    FETCH NEXT DE curDetachDBs DANS @DBName\nFIN\nFERMER curDetachDBs\nDEALLOCATE curDetachDBs\n&#8211;verify changements\nSELECT * FROM sys.databases WHERE nom IN (&#039;DB1&#039;, &#039;DB2&#039;, &#039;DB3&#039;);\n&#8211; Les BD sont toujours présentes &#8211; contrairement à détachement</p>"},{"id":"text-66","type":"text","heading":"","plain_text":"1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28","html":"<p>1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28</p>"},{"id":"text-67","type":"text","heading":"","plain_text":"/ ************************************************ *****************************************\n\t\t\t\tMéthode 2: Définir la base de données hors connexion / déplacer des fichiers / modifier la base de données / définir en ligne\n************************************************* ***************************************** /","html":"<p>/ ************************************************ *****************************************\n\t\t\t\tMéthode 2: Définir la base de données hors connexion / déplacer des fichiers / modifier la base de données / définir en ligne\n************************************************* ***************************************** /</p>"},{"id":"text-68","type":"text","heading":"","plain_text":"&#8211;set DBs hors ligne\nDÉCLARER @DBName varchar(500);\nDÉCLARER @sql NVARCHAR(MAX);\nDÉCLARER curDetachDBs LE CURSEUR AVANCE RAPIDE LECTURE SEULEMENT POUR\n       SÉLECTIONNER [[[[prénom] DE #DBsToMove\nOUVRIR curDetachDBs\nFETCH SUIVANT DE curDetachDBs DANS @DBName\nTANDIS QUE @@FETCH_STATUS = 0\nCOMMENCER\n       IMPRESSION CARBONISER(13) + CARBONISER(dix)\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#39;\n       IMPRESSION &#39;-&#39; + @DBName\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#39;\n       ENSEMBLE @sql = &#39;ALTER DATABASE[&#39;[&#39;[&lsquo;[&lsquo; + @DBName + &#39;]SET OFFLINE; &#39;\n       IMPRESSION @sql\n       EXEC sys.sp_executesql @sql\n    FETCH SUIVANT DE curDetachDBs DANS @DBName\nFIN\nFERMER curDetachDBs\nDÉALLOCATE curDetachDBs","html":"<p>&#8211;set DBs hors ligne\nDÉCLARER @DBName varchar(500);\nDÉCLARER @sql NVARCHAR(MAX);\nDÉCLARER curDetachDBs LE CURSEUR AVANCE RAPIDE LECTURE SEULEMENT POUR\n       SÉLECTIONNER [[[[prénom] DE #DBsToMove\nOUVRIR curDetachDBs\nFETCH SUIVANT DE curDetachDBs DANS @DBName\nTANDIS QUE @@FETCH_STATUS = 0\nCOMMENCER\n       IMPRESSION CARBONISER(13) + CARBONISER(dix)\n       IMPRESSION &#039;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#039;\n       IMPRESSION &#039;-&#039; + @DBName\n       IMPRESSION &#039;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#039;\n       ENSEMBLE @sql = &#039;ALTER DATABASE[&#039;[&#039;[&lsquo;[&lsquo; + @DBName + &#039;]SET OFFLINE; &#039;\n       IMPRESSION @sql\n       EXEC sys.sp_executesql @sql\n    FETCH SUIVANT DE curDetachDBs DANS @DBName\nFIN\nFERMER curDetachDBs\nDÉALLOCATE curDetachDBs</p>"},{"id":"text-69","type":"text","heading":"","plain_text":"&#8211;verify changements\nSÉLECTIONNER * DE sys.bases de données OÙ prénom DANS(&#39;DB1&#39;,&#39;DB2&#39;,&#39;DB3&#39;);\n&#8211; Les BD sont toujours présentes &#8211; contrairement à détachement","html":"<p>&#8211;verify changements\nSÉLECTIONNER * DE sys.bases de données OÙ prénom DANS(&#039;DB1&#039;,&#039;DB2&#039;,&#039;DB3&#039;);\n&#8211; Les BD sont toujours présentes &#8211; contrairement à détachement</p>"},{"id":"text-70","type":"text","heading":"","plain_text":"Les bases de données sont toujours présentes mais sont hors ligne. Ils ne peuvent pas être lus ou écrits.","html":"<p>Les bases de données sont toujours présentes mais sont hors ligne. Ils ne peuvent pas être lus ou écrits.</p>"},{"id":"text-71","type":"text","heading":"","plain_text":"Après avoir défini les bases de données hors ligne, déplacez les fichiers de données vers leur nouvel emplacement.\nEnfin, nous modifions les bases de données pour modifier leurs fichiers, nous les pointons vers le nouvel emplacement, puis nous remettons les bases de données en ligne.","html":"<p>Après avoir défini les bases de données hors ligne, déplacez les fichiers de données vers leur nouvel emplacement.\nEnfin, nous modifions les bases de données pour modifier leurs fichiers, nous les pointons vers le nouvel emplacement, puis nous remettons les bases de données en ligne.</p>"},{"id":"text-72","type":"text","heading":"","plain_text":"&#8211;Alter DB pour modifier les fichiers puis les mettre en ligne\nDECLARE @DBName varchar (500);\nDÉCLARE @sql NVARCHAR (MAX);\nDECLARE @rowFile NVARCHAR (128);\nDECLARE @logFile NVARCHAR (128);\nDECLARE @fileType varchar (4);\nDÉCLARE @DBID int;\nDECLARE @NewPath varchar (500);\nDECLARE @fileName varchar (128);\nDECLARE curAttachDBs CURSOR FAST_FORWARD READ_ONLY POUR\n       SELECT database_id, [type_desc], [name], NewPath DE #DBfiles\nOUVRIR curAttachDBs\nFETCH NEXT FROM curAttachDBs IN @DBID, @fileType, @fileName, @NewPath\nWHILE @@ FETCH_STATUS = 0\nCOMMENCER\nSELECT @DBName = DB_NAME (@DBID);\nCARTE D&#39;IMPRESSION (13) + CHAR (10)\nIMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#39;\nPRINT &#39;-&#39; + @DBName\nIMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#39;\nsélectionnez @DBID, @fileType, @fileName, @NewPath\n&#8211;changez les emplacements de fichiers\nSELECT @sql = &#39;ALTER DATABASE [&lsquo; + @DBName + &lsquo;] MODIFIER LE FICHIER (\nNAME = &#39;&#39; &#39;+ @fileName +&#39; &#39;&#39;,\nFILENAME = &#39;&#39; &#39;+ @NewPath +&#39; &#39;&#39; &#39;&#39;\nFROM #DBfiles;\nPRINT @sql;\nEXEC sys.sp_executesql @sql;\n&#8211;set DB en ligne\nSELECT @sql = &#39;ALTER DATABASE&#39; + @DBName + &#39;SET ONLINE&#39;;\nprint @sql;\nEXEC sys.sp_executesql @sql;\nFETCH NEXT FROM curAttachDBs IN @DBID, @fileType, @fileName, @NewPath\nFIN\nCLOSE curAttachDBs\nDEALLOCATE curAttachDBs\n&#8211;Vérifier les informations du fichier DB\nsélectionnez database_id, DB_NAME (database_id) comme &quot;DBName&quot;, [type_desc], [name], nom_ physiques, code_état\nde sys.master_files\noù DB_NAME (id_bdd) dans (&#39;DB1&#39;, &#39;DB2&#39;, &#39;DB3&#39;);","html":"<p>&#8211;Alter DB pour modifier les fichiers puis les mettre en ligne\nDECLARE @DBName varchar (500);\nDÉCLARE @sql NVARCHAR (MAX);\nDECLARE @rowFile NVARCHAR (128);\nDECLARE @logFile NVARCHAR (128);\nDECLARE @fileType varchar (4);\nDÉCLARE @DBID int;\nDECLARE @NewPath varchar (500);\nDECLARE @fileName varchar (128);\nDECLARE curAttachDBs CURSOR FAST_FORWARD READ_ONLY POUR\n       SELECT database_id, [type_desc], [name], NewPath DE #DBfiles\nOUVRIR curAttachDBs\nFETCH NEXT FROM curAttachDBs IN @DBID, @fileType, @fileName, @NewPath\nWHILE @@ FETCH_STATUS = 0\nCOMMENCER\nSELECT @DBName = DB_NAME (@DBID);\nCARTE D&#039;IMPRESSION (13) + CHAR (10)\nIMPRESSION &#039;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#039;\nPRINT &#039;-&#039; + @DBName\nIMPRESSION &#039;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#039;\nsélectionnez @DBID, @fileType, @fileName, @NewPath\n&#8211;changez les emplacements de fichiers\nSELECT @sql = &#039;ALTER DATABASE [&lsquo; + @DBName + &lsquo;] MODIFIER LE FICHIER (\nNAME = &#039;&#039; &#039;+ @fileName +&#039; &#039;&#039;,\nFILENAME = &#039;&#039; &#039;+ @NewPath +&#039; &#039;&#039; &#039;&#039;\nFROM #DBfiles;\nPRINT @sql;\nEXEC sys.sp_executesql @sql;\n&#8211;set DB en ligne\nSELECT @sql = &#039;ALTER DATABASE&#039; + @DBName + &#039;SET ONLINE&#039;;\nprint @sql;\nEXEC sys.sp_executesql @sql;\nFETCH NEXT FROM curAttachDBs IN @DBID, @fileType, @fileName, @NewPath\nFIN\nCLOSE curAttachDBs\nDEALLOCATE curAttachDBs\n&#8211;Vérifier les informations du fichier DB\nsélectionnez database_id, DB_NAME (database_id) comme &quot;DBName&quot;, [type_desc], [name], nom_ physiques, code_état\nde sys.master_files\noù DB_NAME (id_bdd) dans (&#039;DB1&#039;, &#039;DB2&#039;, &#039;DB3&#039;);</p>"},{"id":"text-73","type":"text","heading":"","plain_text":"1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37\n38\n39\n40\n41\n42\n43\n44\n45","html":"<p>1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37\n38\n39\n40\n41\n42\n43\n44\n45</p>"},{"id":"text-74","type":"text","heading":"","plain_text":"&#8211;Alter DB pour modifier les fichiers puis les mettre en ligne\nDÉCLARER @DBName varchar(500);\nDÉCLARER @sql NVARCHAR(MAX);\nDÉCLARER @rowFile NVARCHAR(128);\nDÉCLARER @fichier journal NVARCHAR(128);\nDÉCLARER @Type de fichier varchar(4);\nDÉCLARER @DBID int;\nDÉCLARER @Nouveau chemin varchar(500);\nDÉCLARER @nom de fichier varchar(128);\nDÉCLARER curAttachDBs LE CURSEUR AVANCE RAPIDE LECTURE SEULEMENT POUR\n       SÉLECTIONNER base_de_données, [[[[type_desc], [[[[prénom], Nouveau chemin DE #DBfiles\nOUVRIR curAttachDBs\nFETCH SUIVANT DE curAttachDBs DANS @DBID, @Type de fichier, @nom de fichier, @Nouveau chemin\nTANDIS QUE @@FETCH_STATUS = 0\nCOMMENCER\n\tSÉLECTIONNER @DBName = DB_NAME(@DBID);","html":"<p>&#8211;Alter DB pour modifier les fichiers puis les mettre en ligne\nDÉCLARER @DBName varchar(500);\nDÉCLARER @sql NVARCHAR(MAX);\nDÉCLARER @rowFile NVARCHAR(128);\nDÉCLARER @fichier journal NVARCHAR(128);\nDÉCLARER @Type de fichier varchar(4);\nDÉCLARER @DBID int;\nDÉCLARER @Nouveau chemin varchar(500);\nDÉCLARER @nom de fichier varchar(128);\nDÉCLARER curAttachDBs LE CURSEUR AVANCE RAPIDE LECTURE SEULEMENT POUR\n       SÉLECTIONNER base_de_données, [[[[type_desc], [[[[prénom], Nouveau chemin DE #DBfiles\nOUVRIR curAttachDBs\nFETCH SUIVANT DE curAttachDBs DANS @DBID, @Type de fichier, @nom de fichier, @Nouveau chemin\nTANDIS QUE @@FETCH_STATUS = 0\nCOMMENCER\n\tSÉLECTIONNER @DBName = DB_NAME(@DBID);</p>"},{"id":"text-75","type":"text","heading":"","plain_text":"IMPRESSION CARBONISER(13) + CARBONISER(dix)\n\tIMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#39;\n\tIMPRESSION &#39;-&#39; + @DBName\n\tIMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#39;\n\tsélectionner @DBID, @Type de fichier, @nom de fichier, @Nouveau chemin\n\t&#8211;changez les emplacements de fichiers\n\tSÉLECTIONNER @sql = &#39;ALTER DATABASE[&#39;[&#39;[&lsquo;[&lsquo; + @DBName + &#39;]MODIFIER LE FICHIER (\n\t\t\t\t\t\t\t\t\t\t\t\tNOM = &#39;&#39;&#39; + @nom de fichier + &#39;&#39;&#39;,\n\t\t\t\t\t\t\t\t\t\t\t\tFILENAME = &#39;&#39;&#39; + @Nouveau chemin + &#39;&#39;&#39;)&#39;\n\tDE #DBfiles;\n\tIMPRESSION @sql;\n\tEXEC sys.sp_executesql @sql;","html":"<p>IMPRESSION CARBONISER(13) + CARBONISER(dix)\n\tIMPRESSION &#039;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#039;\n\tIMPRESSION &#039;-&#039; + @DBName\n\tIMPRESSION &#039;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#039;\n\tsélectionner @DBID, @Type de fichier, @nom de fichier, @Nouveau chemin\n\t&#8211;changez les emplacements de fichiers\n\tSÉLECTIONNER @sql = &#039;ALTER DATABASE[&#039;[&#039;[&lsquo;[&lsquo; + @DBName + &#039;]MODIFIER LE FICHIER (\n\t\t\t\t\t\t\t\t\t\t\t\tNOM = &#039;&#039;&#039; + @nom de fichier + &#039;&#039;&#039;,\n\t\t\t\t\t\t\t\t\t\t\t\tFILENAME = &#039;&#039;&#039; + @Nouveau chemin + &#039;&#039;&#039;)&#039;\n\tDE #DBfiles;\n\tIMPRESSION @sql;\n\tEXEC sys.sp_executesql @sql;</p>"},{"id":"text-76","type":"text","heading":"","plain_text":"&#8211;set DB en ligne\n\tSÉLECTIONNER @sql = &#39;ALTER DATABASE&#39; + @DBName + &#39;SET ONLINE&#39;;\n\timpression @sql;\n\tEXEC sys.sp_executesql @sql;","html":"<p>&#8211;set DB en ligne\n\tSÉLECTIONNER @sql = &#039;ALTER DATABASE&#039; + @DBName + &#039;SET ONLINE&#039;;\n\timpression @sql;\n\tEXEC sys.sp_executesql @sql;</p>"},{"id":"text-77","type":"text","heading":"","plain_text":"FETCH SUIVANT DE curAttachDBs DANS @DBID, @Type de fichier, @nom de fichier, @Nouveau chemin\nFIN\nFERMER curAttachDBs\nDÉALLOCATE curAttachDBs","html":"<p>FETCH SUIVANT DE curAttachDBs DANS @DBID, @Type de fichier, @nom de fichier, @Nouveau chemin\nFIN\nFERMER curAttachDBs\nDÉALLOCATE curAttachDBs</p>"},{"id":"text-78","type":"text","heading":"","plain_text":"&#8211;Vérifier les informations du fichier DB\nsélectionner base_de_données, DB_NAME(base_de_données) comme &#39;DBName&#39;, [[[[type_desc], [[[[prénom], nom_périphérique, state_desc\nde sys.master_files \noù DB_NAME(base_de_données) dans(&#39;DB1&#39;,&#39;DB2&#39;,&#39;DB3&#39;);","html":"<p>&#8211;Vérifier les informations du fichier DB\nsélectionner base_de_données, DB_NAME(base_de_données) comme &#039;DBName&#039;, [[[[type_desc], [[[[prénom], nom_périphérique, state_desc\nde sys.master_files \noù DB_NAME(base_de_données) dans(&#039;DB1&#039;,&#039;DB2&#039;,&#039;DB3&#039;);</p>"},{"id":"text-79","type":"text","heading":"","plain_text":"Voici le résultat de la vérification ci-dessus. Il montre les fichiers de base de données dans un nouvel emplacement et en ligne.","html":"<p>Voici le résultat de la vérification ci-dessus. Il montre les fichiers de base de données dans un nouvel emplacement et en ligne.</p>"},{"id":"text-80","type":"text","heading":"","plain_text":"Méthode 3: Sauvegarder / détacher et supprimer / restaurer ailleurs\nLa sauvegarde sera comme toutes les autres.","html":"<p>Méthode 3: Sauvegarder / détacher et supprimer / restaurer ailleurs\nLa sauvegarde sera comme toutes les autres.</p>"},{"id":"text-81","type":"text","heading":"","plain_text":"UTILISER le maître;\nALLER\n&#8211;Base de sauvegarde\nBASE DE DONNEES DE SAUVEGARDE [DB1] TO DISK = N&#39;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB1.bak &#39;;\nALLER\nBASE DE DONNEES DE SAUVEGARDE [DB2] TO DISK = N&#39;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB2.bak &#39;;\nALLER\nBASE DE DONNEES DE SAUVEGARDE [DB3] TO DISK = N&#39;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB3.bak &#39;;\nALLER","html":"<p>UTILISER le maître;\nALLER\n&#8211;Base de sauvegarde\nBASE DE DONNEES DE SAUVEGARDE [DB1] TO DISK = N&#039;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB1.bak &#039;;\nALLER\nBASE DE DONNEES DE SAUVEGARDE [DB2] TO DISK = N&#039;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB2.bak &#039;;\nALLER\nBASE DE DONNEES DE SAUVEGARDE [DB3] TO DISK = N&#039;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB3.bak &#039;;\nALLER</p>"},{"id":"text-82","type":"text","heading":"","plain_text":"UTILISATION maîtriser;\nALLER","html":"<p>UTILISATION maîtriser;\nALLER</p>"},{"id":"text-83","type":"text","heading":"","plain_text":"&#8211;Base de sauvegarde\nSAUVEGARDE BASE DE DONNÉES [[[[DB1] À  DISQUE = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB1.bak&#39;;\nALLER","html":"<p>&#8211;Base de sauvegarde\nSAUVEGARDE BASE DE DONNÉES [[[[DB1] À  DISQUE = N&#039;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB1.bak&#039;;\nALLER</p>"},{"id":"text-84","type":"text","heading":"","plain_text":"SAUVEGARDE BASE DE DONNÉES [[[[DB2] À  DISQUE = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB2.bak&#39;;\nALLER","html":"<p>SAUVEGARDE BASE DE DONNÉES [[[[DB2] À  DISQUE = N&#039;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB2.bak&#039;;\nALLER</p>"},{"id":"text-85","type":"text","heading":"","plain_text":"SAUVEGARDE BASE DE DONNÉES [[[[DB3] À  DISQUE = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB3.bak&#39;;\nALLER","html":"<p>SAUVEGARDE BASE DE DONNÉES [[[[DB3] À  DISQUE = N&#039;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB3.bak&#039;;\nALLER</p>"},{"id":"text-86","type":"text","heading":"","plain_text":"À ce stade, nous sommes libres de détacher les bases de données et de disposer des fichiers de base de données. Il serait peut-être bon de conserver les fichiers jusqu&#39;à ce que nous ayons vérifié que la restauration a fonctionné. Comme il s’agit d’un exemple artificiel, passons à la restauration.","html":"<p>À ce stade, nous sommes libres de détacher les bases de données et de disposer des fichiers de base de données. Il serait peut-être bon de conserver les fichiers jusqu&#039;à ce que nous ayons vérifié que la restauration a fonctionné. Comme il s’agit d’un exemple artificiel, passons à la restauration.</p>"},{"id":"text-87","type":"text","heading":"","plain_text":"&#8211; Restaurer des bases de données\nRESTORE DATABASE [DB1] FROM DISK = N&#39;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB1.bak &#39;\nWITH REPLACE, FILE = 1, DÉPLACEZ N&#39;DB1 &#39;À N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1.mdf&#39;,\nDÉPLACER N&#39;DB1_log &#39;À N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1_log.ldf&#39;, NOUNLOAD, STATS = 5\nALLER\nRESTORE DATABASE [DB2] FROM DISK = N&#39;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB2.bak &#39;\nWITH REPLACE, FILE = 1, DÉPLACEZ N&#39;DB2 &#39;À N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2.mdf&#39;,\nDÉPLACER N&#39;DB2_log &#39;À N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2_log.ldf&#39;, NOUNLOAD, STATS = 5\nALLER\nRESTORE DATABASE [DB3] FROM DISK = N&#39;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB3.bak &#39;\nWITH REPLACE, FILE = 1, DÉPLACEZ N&#39;DB3 &#39;À N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3.mdf&#39;,\nDÉPLACER N&#39;DB3_log &#39;À N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3_log.ldf&#39;, NOUNLOAD, STATS = 5\nALLER","html":"<p>&#8211; Restaurer des bases de données\nRESTORE DATABASE [DB1] FROM DISK = N&#039;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB1.bak &#039;\nWITH REPLACE, FILE = 1, DÉPLACEZ N&#039;DB1 &#039;À N&#039;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1.mdf&#039;,\nDÉPLACER N&#039;DB1_log &#039;À N&#039;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1_log.ldf&#039;, NOUNLOAD, STATS = 5\nALLER\nRESTORE DATABASE [DB2] FROM DISK = N&#039;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB2.bak &#039;\nWITH REPLACE, FILE = 1, DÉPLACEZ N&#039;DB2 &#039;À N&#039;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2.mdf&#039;,\nDÉPLACER N&#039;DB2_log &#039;À N&#039;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2_log.ldf&#039;, NOUNLOAD, STATS = 5\nALLER\nRESTORE DATABASE [DB3] FROM DISK = N&#039;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB3.bak &#039;\nWITH REPLACE, FILE = 1, DÉPLACEZ N&#039;DB3 &#039;À N&#039;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3.mdf&#039;,\nDÉPLACER N&#039;DB3_log &#039;À N&#039;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3_log.ldf&#039;, NOUNLOAD, STATS = 5\nALLER</p>"},{"id":"text-88","type":"text","heading":"","plain_text":"&#8211; Restaurer des bases de données\nRESTAURER BASE DE DONNÉES [[[[DB1] DE  DISQUE = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB1.bak&#39; \nAVEC REMPLACER, FICHIER = 1,  BOUGE TOI N&#39;DB1&#39; À N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1.mdf&#39;, \nBOUGE TOI N&#39;DB1_log&#39; À N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1_log.ldf&#39;,  NOUNLOAD,  STATISTIQUES = 5\nALLER","html":"<p>&#8211; Restaurer des bases de données\nRESTAURER BASE DE DONNÉES [[[[DB1] DE  DISQUE = N&#039;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB1.bak&#039; \nAVEC REMPLACER, FICHIER = 1,  BOUGE TOI N&#039;DB1&#039; À N&#039;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1.mdf&#039;, \nBOUGE TOI N&#039;DB1_log&#039; À N&#039;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1_log.ldf&#039;,  NOUNLOAD,  STATISTIQUES = 5\nALLER</p>"},{"id":"text-89","type":"text","heading":"","plain_text":"RESTAURER BASE DE DONNÉES [[[[DB2] DE  DISQUE = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB2.bak&#39; \nAVEC REMPLACER, FICHIER = 1,  BOUGE TOI N&#39;DB2&#39; À N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2.mdf&#39;, \nBOUGE TOI N&#39;DB2_log&#39; À N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2_log.ldf&#39;,  NOUNLOAD,  STATISTIQUES = 5\nALLER","html":"<p>RESTAURER BASE DE DONNÉES [[[[DB2] DE  DISQUE = N&#039;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB2.bak&#039; \nAVEC REMPLACER, FICHIER = 1,  BOUGE TOI N&#039;DB2&#039; À N&#039;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2.mdf&#039;, \nBOUGE TOI N&#039;DB2_log&#039; À N&#039;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2_log.ldf&#039;,  NOUNLOAD,  STATISTIQUES = 5\nALLER</p>"},{"id":"text-90","type":"text","heading":"","plain_text":"RESTAURER BASE DE DONNÉES [[[[DB3] DE  DISQUE = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB3.bak&#39; \nAVEC REMPLACER, FICHIER = 1,  BOUGE TOI N&#39;DB3&#39; À N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3.mdf&#39;, \nBOUGE TOI N&#39;DB3_log&#39; À N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3_log.ldf&#39;,  NOUNLOAD,  STATISTIQUES = 5\nALLER","html":"<p>RESTAURER BASE DE DONNÉES [[[[DB3] DE  DISQUE = N&#039;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB3.bak&#039; \nAVEC REMPLACER, FICHIER = 1,  BOUGE TOI N&#039;DB3&#039; À N&#039;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3.mdf&#039;, \nBOUGE TOI N&#039;DB3_log&#039; À N&#039;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3_log.ldf&#039;,  NOUNLOAD,  STATISTIQUES = 5\nALLER</p>"},{"id":"text-91","type":"text","heading":"","plain_text":"Branchez le nouveau chemin de la clause MOVE TO et la restauration y placera les fichiers.\nAprès avoir migré certaines bases de données, nous voulons être certains que tout va bien et que le système est opérationnel. Quelques contrôles simples permettent de mettre vos parties prenantes à l&#39;aise.\nAprès la migration des fichiers de base de données, il est bon de procéder comme suit:","html":"<p>Branchez le nouveau chemin de la clause MOVE TO et la restauration y placera les fichiers.\nAprès avoir migré certaines bases de données, nous voulons être certains que tout va bien et que le système est opérationnel. Quelques contrôles simples permettent de mettre vos parties prenantes à l&#039;aise.\nAprès la migration des fichiers de base de données, il est bon de procéder comme suit:</p>"},{"id":"text-92","type":"text","heading":"","plain_text":"Vérifiez sys.database_files pour vous assurer qu&#39;ils sont dirigés au bon endroit\nExécuter DBCC CHECKDB sur les bases de données déplacées","html":"<p>Vérifiez sys.database_files pour vous assurer qu&#039;ils sont dirigés au bon endroit\nExécuter DBCC CHECKDB sur les bases de données déplacées</p>"},{"id":"text-93","type":"text","heading":"","plain_text":"Le déplacement des fichiers de base de données peut créer des problèmes qu&#39;une vérification de cohérence rapide peut atténuer.","html":"<p>Le déplacement des fichiers de base de données peut créer des problèmes qu&#039;une vérification de cohérence rapide peut atténuer.</p>"},{"id":"text-94","type":"text","heading":"","plain_text":"Chacune des méthodes présentées ci-dessus présente des avantages et des inconvénients pour déplacer des fichiers de base de données. Assurez-vous que, quelle que soit la technique que vous choisissez d&#39;utiliser, vous la testez d&#39;abord sur un serveur hors production. Ce n&#39;est pas le point que vous voulez rencontrer des surprises inconnues.\nLa méthode la plus sûre est probablement # 2 &#8211; mettre en mode hors connexion, déplacer des fichiers, modifier le fichier, le mettre en ligne. Le détachement risque de permettre la suppression des fichiers, mais si c&#39;est ce que vous voulez, détachez comme il convient. La méthode de sauvegarde est probablement mieux conservée pour la veille chaud / froid, mais pourrait fonctionner en fonction de l&#39;utilisation du système et des contraintes.","html":"<p>Chacune des méthodes présentées ci-dessus présente des avantages et des inconvénients pour déplacer des fichiers de base de données. Assurez-vous que, quelle que soit la technique que vous choisissez d&#039;utiliser, vous la testez d&#039;abord sur un serveur hors production. Ce n&#039;est pas le point que vous voulez rencontrer des surprises inconnues.\nLa méthode la plus sûre est probablement # 2 &#8211; mettre en mode hors connexion, déplacer des fichiers, modifier le fichier, le mettre en ligne. Le détachement risque de permettre la suppression des fichiers, mais si c&#039;est ce que vous voulez, détachez comme il convient. La méthode de sauvegarde est probablement mieux conservée pour la veille chaud / froid, mais pourrait fonctionner en fonction de l&#039;utilisation du système et des contraintes.</p>"},{"id":"text-95","type":"text","heading":"","plain_text":"Comme ça:\nComme Chargement&#8230;","html":"<p>Comme ça:\nComme Chargement&#8230;</p>"},{"id":"text-96","type":"text","heading":"","plain_text":"Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]","html":"<p>Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]</p>"}],"sections":[{"id":"text-1","heading":"Text","content":"Avez-vous déjà eu à déplacer des bases de données et leurs fichiers? Une migration de base de données implique des temps d&#39;arrêt et les erreurs commises peuvent certainement gâcher votre journée. Vous ne voulez pas être en pleine migration et ne pas savoir quoi faire.\nPoursuivez votre lecture pour apprendre à déplacer des fichiers de base de données SQL Server et à visionner des démos.\nPourquoi aurions-nous besoin / envie de déplacer des fichiers de base de données? Il existe certains scénarios dans lesquels une migration est effectuée."},{"id":"text-2","heading":"Text","content":"Le disque est à court d&#39;espace"},{"id":"text-3","heading":"Text","content":"Parfois, lorsqu&#39;un administrateur dort au travail, les disques pleins passent inaperçus jusqu&#39;à ce qu&#39;il soit trop tard.\nDans ces cas, certaines bases de données peuvent être déplacées vers un autre disque, volume, point de montage, etc."},{"id":"text-4","heading":"Text","content":"Déménagement dans un nouvel entrepôt"},{"id":"text-5","heading":"Text","content":"Un nouvel espace de stockage pour la base de données arrive et nous devons déplacer certaines (ou toutes les) bases de données doivent être déplacées."},{"id":"text-6","heading":"Text","content":"Séparer les fichiers de base de données"},{"id":"text-7","heading":"Text","content":"Suivre les meilleures pratiques pour séparer les fichiers de base de données &#8211; fichier de données (mdf), journal des transactions (ldf), tempdb, sauvegardes, fichiers de trace, etc.\nJ&#39;ai écrit à ce sujet ici et plus précisément ici dans la section intitulée «Configuration du disque»."},{"id":"text-8","heading":"Text","content":"La base de données sera indisponible pendant cette opération, nous devons donc en informer nos utilisateurs finaux. Prenez en compte les ramifications si une application utilise la base de données. Nous voudrons peut-être arrêter les services d&#39;application ou entreprendre une autre action personnalisée lors du déplacement.\nPlanifiez à l&#39;avance avant de commencer le travail. Sachez ce que vous allez faire avant de le faire. Si vous pouvez tester votre méthode sur une base de données de laboratoire ou de développement, cela vous aidera également."},{"id":"text-9","heading":"Text","content":"Une fois que nous avons le plan de match, nous pouvons commencer à le mettre en œuvre. Regardons quelques détails.\nMigration &#8211; Manières générales de déplacer des fichiers de base de données\nIl existe quelques méthodes que nous pouvons employer pour faire ce travail:"},{"id":"text-10","heading":"Text","content":"Détacher la base de données / Déplacer les fichiers / Attacher la base de données\nDéfinir la base de données hors connexion / Déplacer les fichiers / Modifier la base de données Modifier le fichier / Définir en ligne\nSauvegarde / restauration ailleurs"},{"id":"text-11","heading":"Text","content":"Voici quelques bases de connaissances Microsoft pour vous aider tout au long du processus."},{"id":"text-12","heading":"Text","content":"Joindre une base de données &#8211; explique CREATE DATABASE FOR ATTACH\nsp_attach_db &#8211; obsolète! Veuillez utiliser la méthode ci-dessus pour attacher\nCréer une base de données &#8211; plus d&#39;informations sur la clause FOR ATTACH\nDéplacer les bases de données utilisateur &#8211; met en évidence ALTER DATABASE MODIFY FILE\nsp_detach_db &#8211; mises en garde concernant le détachement"},{"id":"text-13","heading":"Text","content":"Regardons en profondeur dans chaque sens.\nMéthode 1: détacher la base de données / déplacer des fichiers / créer une base de données pour l&#39;attachement\nNous créons quelques bases de données pour le tester."},{"id":"text-14","heading":"Text","content":"UTILISER le maître;\nALLER\n/ ***************************************\n       Créer des exemples de bases de données\n**************************************** /\n&#8211;DB1\nCREATE DATABASE [DB1] SUR PRIMAIRE\n(NOM = N&#39;DB1 &#39;, NOMFICHIER = N&#39;C:  Program Files  Serveur SQL Microsoft  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1.mdf&#39;, TAILLE = 8192 Ko, FILEGROWTH = 65536 Ko)\n SE CONNECTER\n(NAME = N&#39;DB1_log &#39;, FILENAME = N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1_log.ldf&#39;, SIZE = 8192 Ko, FILEGROWTH = 65536 Ko)\nALLER\n&#8211;DB2\nCREATE DATABASE [DB2] SUR PRIMAIRE\n(NOM = N&#39;DB2 &#39;, NOMFICHIER = N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2.mdf&#39;, SIZE = 8192 Ko, FILEGROWTH = 65536 Ko)\n SE CONNECTER\n(NAME = N&#39;DB2_log &#39;, FILENAME = N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2_log.ldf&#39;, SIZE = 8192 Ko, FILEGROWTH = 65536 Ko)\nALLER\n&#8211;DB3\nCREATE DATABASE [DB3] SUR PRIMAIRE\n(NOM = N&#39;DB3 &#39;, NOMFICHIER = N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3.mdf&#39;, TAILLE = 8192 Ko, FILEGROWTH = 65536 Ko)\n SE CONNECTER\n(NOM = N&#39;DB3_log &#39;, NOMFICHIER = N&#39;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3_log.ldf&#39;, SIZE = 8192 Ko, FILEGROWTH = 65536 Ko)\nALLER"},{"id":"text-15","heading":"Text","content":"1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26"},{"id":"text-16","heading":"Text","content":"UTILISATION maîtriser;\nALLER"},{"id":"text-17","heading":"Text","content":"/ ***************************************\n              Créer des exemples de bases de données\n**************************************** /\n&#8211;DB1\nCRÉER BASE DE DONNÉES [[[[DB1] SUR PRIMAIRE \n( PRÉNOM = N&#39;DB1&#39;, NOM DE FICHIER = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1.mdf&#39; , TAILLE = 8192 Ko , FILEGROWTH = 65536KB )\n BÛCHE SUR \n( PRÉNOM = N&#39;DB1_log&#39;, NOM DE FICHIER = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1_log.ldf&#39; , TAILLE = 8192 Ko , FILEGROWTH = 65536KB )\nALLER"},{"id":"text-18","heading":"Text","content":"&#8211;DB2\nCRÉER BASE DE DONNÉES [[[[DB2] SUR PRIMAIRE \n( PRÉNOM = N&#39;DB2&#39;, NOM DE FICHIER = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2.mdf&#39; , TAILLE = 8192 Ko , FILEGROWTH = 65536KB )\n BÛCHE SUR \n( PRÉNOM = N&#39;DB2_log&#39;, NOM DE FICHIER = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2_log.ldf&#39; , TAILLE = 8192 Ko , FILEGROWTH = 65536KB )\nALLER"},{"id":"text-19","heading":"Text","content":"&#8211;DB3 \nCRÉER BASE DE DONNÉES [[[[DB3] SUR PRIMAIRE \n( PRÉNOM = N&#39;DB3&#39;, NOM DE FICHIER = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3.mdf&#39; , TAILLE = 8192 Ko , FILEGROWTH = 65536KB )\n BÛCHE SUR \n( PRÉNOM = N&#39;DB3_log&#39;, NOM DE FICHIER = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3_log.ldf&#39; , TAILLE = 8192 Ko , FILEGROWTH = 65536KB )\nALLER"},{"id":"text-20","heading":"Text","content":"Vérifier les informations du fichier de base de données."},{"id":"text-21","heading":"Text","content":"&#8211;Vérifier les informations du fichier DB\nsélectionnez * parmi DB1.sys.database_files;\nselect * from DB2.sys.database_files;\nselect * from DB3.sys.database_files;"},{"id":"text-22","heading":"Text","content":"&#8211;Vérifier les informations du fichier DB\nsélectionner * de DB1.sys.fichiers_base_de_données;\nsélectionner * de DB2.sys.fichiers_base_de_données;\nsélectionner * de DB3.sys.fichiers_base_de_données;"},{"id":"text-23","heading":"Text","content":"Il ressemblera à ceci:"},{"id":"text-24","heading":"Text","content":"Maintenant, nous faisons certaines choses préliminaires avant de déplacer des fichiers. Nous devons spécifier les bases de données que nous voulons déplacer. C&#39;est une façon très simpliste de le faire &#8211; codé en dur dans une table temporaire."},{"id":"text-25","heading":"Text","content":"/ ***************************************\n       Pré étapes\n**************************************** /\n&#8211;voir les bases de données que vous voulez déplacer\nSELECT * FROM sys.databases WHERE [name] IN (&#39;DB1&#39;, &#39;DB2&#39;, &#39;DB3&#39;);\n&#8211;définit les bases de données à détacher / attacher\nSÉLECTIONNER [name] INTO #DBsToMove FROM sys.databases WHERE [name] IN (&#39;DB1&#39;, &#39;DB2&#39;, &#39;DB3&#39;);\n&#8211;doit rassembler les informations sur le fichier AVANT de détacher la base de données\nSELECT database_id, [type_desc], [name], nom physique\nINTO #DBfiles\nFROM sys.master_files\nWHERE database_id IN (DB_ID (&#39;DB1&#39;), DB_ID (&#39;DB2&#39;), DB_ID (&#39;DB3&#39;));\n&#8211;check file configuration &#8211; pourrait vouloir copier ceci ailleurs pour garder des traces de notre travail\nSELECT * FROM #DBfiles;"},{"id":"text-26","heading":"Text","content":"1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18"},{"id":"text-27","heading":"Text","content":"/ ***************************************\n              Pré étapes\n**************************************** /"},{"id":"text-28","heading":"Text","content":"&#8211;Voir les bases de données que vous souhaitez déplacer\nSÉLECTIONNER * DE sys.bases de données OÙ [[[[prénom] DANS(&#39;DB1&#39;,&#39;DB2&#39;,&#39;DB3&#39;);"},{"id":"text-29","heading":"Text","content":"&#8211;définit les bases de données à détacher / attacher\nSÉLECTIONNER [[[[prénom] DANS #DBsToMove DE sys.bases de données OÙ [[[[prénom] DANS(&#39;DB1&#39;,&#39;DB2&#39;,&#39;DB3&#39;);"},{"id":"text-30","heading":"Text","content":"&#8211;doit rassembler les informations sur le fichier AVANT de détacher la base de données\nSÉLECTIONNER base_de_données, [[[[type_desc], [[[[prénom], nom_périphérique\nDANS #DBfiles\nDE sys.master_files\nOÙ base_de_données DANS(DB_ID(&#39;DB1&#39;),DB_ID(&#39;DB2&#39;),DB_ID(&#39;DB3&#39;));"},{"id":"text-31","heading":"Text","content":"&#8211;check file configuration &#8211; pourrait vouloir copier ceci ailleurs pour garder des traces de notre travail\nSÉLECTIONNER * DE #DBfiles;"},{"id":"text-32","heading":"Text","content":"Maintenant que nous avons ce dont nous avons besoin, nous pouvons commencer à détacher les bases de données."},{"id":"text-33","heading":"Text","content":"/ ************************************************ *****************************************\nMéthode 1: détacher la base de données / déplacer des fichiers / créer une base de données pour l&#39;attachement\n************************************************* ***************************************** /\n&#8211;Détachez les bases de données\nDECLARE @DBName varchar (500);\nDÉCLARE @sql NVARCHAR (MAX);\nDECLARE curDetachDBs CURSOR FAST_FORWARD READ_ONLY POUR\n       SÉLECTIONNER [name] DE #DBsToMove\nOUVRIR curDetachDBs\nFETCH NEXT DE curDetachDBs DANS @DBName\nWHILE @@ FETCH_STATUS = 0\nCOMMENCER\n       CARTE D&#39;IMPRESSION (13) + CHAR (10)\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#39;\n       PRINT &#39;-&#39; + @DBName\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#39;\n       SET @sql = &#39;ALTER DATABASE [&lsquo; + @DBName + &lsquo;] SET SINGLE_USER AVEC ROLLBACK IMMEDIATE; &#39;\n       IMPRIMER @sql\n       EXEC sys.sp_executesql @sql\n       SET @sql = &#39;EXEC sp_detach_db&#39; + @DBName + &#39;,&#39; &#39;true&#39; &#39;;&#39;\n       IMPRIMER @sql\n       EXEC sys.sp_executesql @sql\n    FETCH NEXT DE curDetachDBs DANS @DBName\nFIN\nFERMER curDetachDBs\nDEALLOCATE curDetachDBs"},{"id":"text-34","heading":"Text","content":"1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27"},{"id":"text-35","heading":"Text","content":"/ ************************************************ *****************************************\n\t\t\t\tMéthode 1: détacher la base de données / déplacer des fichiers / créer une base de données pour l&#39;attachement\n************************************************* ***************************************** /"},{"id":"text-36","heading":"Text","content":"&#8211;Détachez les bases de données\nDÉCLARER @DBName varchar(500);\nDÉCLARER @sql NVARCHAR(MAX);\nDÉCLARER curDetachDBs LE CURSEUR AVANCE RAPIDE LECTURE SEULEMENT POUR\n       SÉLECTIONNER [[[[prénom] DE #DBsToMove\nOUVRIR curDetachDBs\nFETCH SUIVANT DE curDetachDBs DANS @DBName\nTANDIS QUE @@FETCH_STATUS = 0\nCOMMENCER\n       IMPRESSION CARBONISER(13) + CARBONISER(dix)\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#39;\n       IMPRESSION &#39;-&#39; + @DBName\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#39;\n       ENSEMBLE @sql = &#39;ALTER DATABASE[&#39;[&#39;[&lsquo;[&lsquo; + @DBName + &#39;]SET SINGLE_USER AVEC ROLLBACK IMMEDIATE; &#39;\n       IMPRESSION @sql\n       EXEC sys.sp_executesql @sql\n       ENSEMBLE @sql = &#39;EXEC sp_detach_db&#39; + @DBName + &#39;,&#39;&#39;vrai&#39;&#39;;&#39;\n       IMPRESSION @sql\n       EXEC sys.sp_executesql @sql\n    FETCH SUIVANT DE curDetachDBs DANS @DBName\nFIN\nFERMER curDetachDBs\nDÉALLOCATE curDetachDBs"},{"id":"text-37","heading":"Text","content":"Vérifiez les modifications. Notez que les DB sont totalement partis. Vous ne les trouverez pas dans l&#39;explorateur d&#39;objets dans SSMS ou dans les tables système."},{"id":"text-38","heading":"Text","content":"&#8211;verify changements\nSELECT * FROM sys.databases WHERE nom IN (&#39;DB1&#39;, &#39;DB2&#39;, &#39;DB3&#39;);\n&#8211; Les BD sont partis maintenant! c&#39;est ce que détache fait et comment il est différent de la mise hors ligne"},{"id":"text-39","heading":"Text","content":"&#8211;verify changements\nSÉLECTIONNER * DE sys.bases de données OÙ prénom DANS(&#39;DB1&#39;,&#39;DB2&#39;,&#39;DB3&#39;);\n&#8211; Les BD sont partis maintenant! c&#39;est ce que détache fait et comment il est différent de la mise hors ligne"},{"id":"text-40","heading":"Text","content":"Vient maintenant le moment de déplacer les fichiers de base de données. Vous pouvez utiliser votre technique préférée pour déplacer des fichiers. J&#39;aime utiliser robocopy dans un fichier .bat, mais il en existe beaucoup d&#39;autres, tels que PowerShell, XCopy ou un clic droit pour couper / coller.\nVoici quelques actions de robocopy:"},{"id":"text-41","heading":"Text","content":"robocopy &quot;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DONNÉES&quot; &quot;G:  MSSQL  Data&quot; &quot;DB1.mdf&quot; / L\nrobocopy &quot;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DONNÉES&quot; &quot;G:  MSSQL  Data&quot; &quot;DB1_log.ldf&quot; / L\nrobocopy &quot;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DONNÉES&quot; &quot;G:  MSSQL  Data&quot; &quot;DB2.mdf&quot; / L\nrobocopy &quot;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DONNÉES&quot; &quot;G:  MSSQL  Data&quot; &quot;DB2_log.ldf&quot; / L\nrobocopy &quot;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DONNÉES&quot; &quot;G:  MSSQL  Data&quot; &quot;DB3.mdf&quot; / L\nrobocopy &quot;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DONNÉES&quot; &quot;G:  MSSQL  Data&quot; &quot;DB3_log.ldf&quot; / L"},{"id":"text-42","heading":"Text","content":"robocopier &quot;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA&quot; &quot;G:  MSSQL  Data&quot; &quot;DB1.mdf&quot; /L\nrobocopier &quot;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA&quot; &quot;G:  MSSQL  Data&quot; &quot;DB1_log.ldf&quot; /L\nrobocopier &quot;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA&quot; &quot;G:  MSSQL  Data&quot; &quot;DB2.mdf&quot; /L\nrobocopier &quot;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA&quot; &quot;G:  MSSQL  Data&quot; &quot;DB2_log.ldf&quot; /L\nrobocopier &quot;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA&quot; &quot;G:  MSSQL  Data&quot; &quot;DB3.mdf&quot; /L\nrobocopier &quot;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA&quot; &quot;G:  MSSQL  Data&quot; &quot;DB3_log.ldf&quot; /L"},{"id":"text-43","heading":"Text","content":"Le drapeau “/ L” est la première façon dont je gère les choses. En réalité, il ne copie rien, mais listera les fichiers. C&#39;est une bonne pré-vérification avant d&#39;exécuter un lot. Supprimez simplement le drapeau “/ L” et exécutez-le une fois vérifié.\nVoici la première partie de la sortie de l’exécution d’un fichier .bat avec des instructions robocopy:"},{"id":"text-44","heading":"Text","content":"Une fois que les fichiers sont physiquement déplacés vers le nouvel emplacement, nous pouvons continuer."},{"id":"text-45","heading":"Text","content":"&#8211; attacher les bases de données\nDECLARE @targetMDF NVARCHAR (128);\nDECLARE @targetLDF NVARCHAR (128);\nDECLARE @DBName varchar (500);\nDÉCLARE @sql NVARCHAR (MAX);\nDECLARE @rowFile NVARCHAR (128);\nDECLARE @logFile NVARCHAR (128);\nDECLARE curAttachDBs CURSOR FAST_FORWARD READ_ONLY POUR\n       SELECT nom FROM #DBsToMove\nOUVRIR curAttachDBs\nFETCH NEXT FROM curAttachDBs INTO @DBName\nWHILE @@ FETCH_STATUS = 0\nCOMMENCER\n       SET @targetMDF = &#39;G:  MSSQL  Data&#39;;\n       SET @targetLDF = &#39;G:  MSSQL  Data&#39;;\n       CARTE D&#39;IMPRESSION (13) + CHAR (10)\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#39;\n       PRINT &#39;-&#39; + @DBName\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#39;\n       SELECT @targetMDF + = &#39;&#39; + [name] + &#39;.mdf&#39; DE #DBfiles WHERE REMPLACE ([name], &#39;_ log&#39;, &#39;&#39;) = @DBName AND [type_desc] = &#39;ROWS&#39;;\n       SELECT @targetLDf + = &#39;&#39; + [name] + &#39;.ldf&#39; DE #DBfiles WHERE REMPLACE ([name], &#39;_ log&#39;, &#39;&#39;) = @DBName AND [type_desc] = &#39;LOG&#39;;\n       \n&#8211;attache la base de données\n       SELECT @sql = &#39;CREATE DATABASE [&lsquo; + @DBName + &lsquo;] SUR\n              (FILENAME = &#39;&#39; &#39;\n                      + @targetMDF + &#39;&#39; &#39;),\n              (FILENAME = &#39;&#39; &#39;+ @targetLDF +&#39; &#39;&#39;)\n              POUR ATTACHER &#39;\n       FROM #DBfiles;\n       PRINT @sql;\n       EXEC sys.sp_executesql @sql;\n       SET @targetMDF = &#39;&#39;;\n       SET @targetLDF = &#39;&#39;;\n    FETCH NEXT FROM curAttachDBs INTO @DBName\nFIN\nCLOSE curAttachDBs\nDEALLOCATE curAttachDBs"},{"id":"text-46","heading":"Text","content":"1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37"},{"id":"text-47","heading":"Text","content":"&#8211; attacher les bases de données\nDÉCLARER @targetMDF NVARCHAR(128);\nDÉCLARER @targetLDF NVARCHAR(128);\nDÉCLARER @DBName varchar(500);\nDÉCLARER @sql NVARCHAR(MAX);\nDÉCLARER @rowFile NVARCHAR(128);\nDÉCLARER @fichier journal NVARCHAR(128);\nDÉCLARER curAttachDBs LE CURSEUR AVANCE RAPIDE LECTURE SEULEMENT POUR\n       SÉLECTIONNER prénom DE #DBsToMove\nOUVRIR curAttachDBs\nFETCH SUIVANT DE curAttachDBs DANS @DBName\nTANDIS QUE @@FETCH_STATUS = 0\nCOMMENCER\n       ENSEMBLE @targetMDF = &#39;G:  MSSQL  Data&#39;;\n       ENSEMBLE @targetLDF = &#39;G:  MSSQL  Data&#39;;\n       IMPRESSION CARBONISER(13) + CARBONISER(dix)\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#39;\n       IMPRESSION &#39;-&#39; + @DBName\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#39;\n       SÉLECTIONNER @targetMDF + = &#39;&#39; + [name] + &#39;.mdf&#39;FROM #DBfiles O REMPLACER ([name]&#39;_bûche&#39;,&#39;&#39;) = @DBNAME AND [type_desc] = &#39;ROWS&#39;;\n              SELECT @targetLDf + = &#39;&#39; + [[[[prénom] + &#39;.ldf&#39; DE #DBfiles OÙ REMPLACER([[[[prénom],&#39;_bûche&#39;,&#39;&#39;) = @DBName ET [[[[type_desc] = &#39;BÛCHE&#39;;\n       \n\t\t   &#8211;attache la base de données\n       SÉLECTIONNER @sql = &#39;CREATE DATABASE[&#39;[&#39;[&lsquo;[&lsquo; + @DBName + &#39;]SUR\n                            (FILENAME = &#39;&#39;&#39;\n                      + @targetMDF + &#39;&#39;&#39;),\n                            (FILENAME = &#39;&#39;&#39; + @targetLDF + &#39;&#39;&#39;)\n                            POUR ATTACHER &#39;\n       DE #DBfiles;\n       IMPRESSION @sql;\n       EXEC sys.sp_executesql @sql;\n       ENSEMBLE @targetMDF = &#39;&#39;;\n       ENSEMBLE @targetLDF = &#39;&#39;;\n    FETCH SUIVANT DE curAttachDBs DANS @DBName\nFIN\nFERMER curAttachDBs\nDÉALLOCATE curAttachDBs"},{"id":"text-48","heading":"Text","content":"Vérifiez les nouveaux emplacements de fichiers."},{"id":"text-49","heading":"Text","content":"&#8211;Vérifier les informations du fichier DB\nsélectionnez * parmi DB1.sys.database_files;\nselect * from DB2.sys.database_files;\nselect * from DB3.sys.database_files;"},{"id":"text-50","heading":"Text","content":"&#8211;Vérifier les informations du fichier DB\nsélectionner * de DB1.sys.fichiers_base_de_données;\nsélectionner * de DB2.sys.fichiers_base_de_données;\nsélectionner * de DB3.sys.fichiers_base_de_données;"},{"id":"text-51","heading":"Text","content":"Auparavant, nos fichiers pointaient vers C: mais sont maintenant sur G: &#8211; la migration est terminée.\nMéthode 2: Définir la base de données hors connexion / déplacer des fichiers / modifier la base de données / définir en ligne\nContinuons dans ce sens, déplaçons les 3 exemples de bases de données que nous avons créées et que nous venons de revenir des disques G: à C:. Ici, nous commençons par définir nos bases de données et en définissant un nouveau chemin."},{"id":"text-52","heading":"Text","content":"UTILISER le maître;\nALLER\n/ ***************************************\n       Pré étapes\n**************************************** /\n&#8211;voir les bases de données que vous voulez déplacer\nSELECT * FROM sys.databases WHERE [name] IN (&#39;DB1&#39;, &#39;DB2&#39;, &#39;DB3&#39;);\n&#8211;définit les bases de données à détacher / attacher\nSÉLECTIONNER [name] INTO #DBsToMove FROM sys.databases WHERE [name] IN (&#39;DB1&#39;, &#39;DB2&#39;, &#39;DB3&#39;);\n&#8211;doit rassembler les informations sur le fichier AVANT de détacher la base de données\nSELECT database_id, [type_desc], [name], nom physique\nINTO #DBfiles\nFROM sys.master_files\nWHERE database_id IN (DB_ID (&#39;DB1&#39;), DB_ID (&#39;DB2&#39;), DB_ID (&#39;DB3&#39;));\nalter table #DBfiles add NewPath varchar (500);\n&#8211; charger de nouveaux chemins\nDECLARE @targetMDF NVARCHAR (128);\nDECLARE @targetLDF NVARCHAR (128);\nSET @targetMDF = &#39;C:  Fichiers de programme  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA &#39;;\nSET @targetLDF = &#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA &#39;;\n&#8211;SET @targetMDF = &#39;G:  MSSQL  Data &#39;;\n&#8211;SET @targetLDF = &#39;G:  MSSQL  Data &#39;;\nmettre à jour les fichiers\ndéfinir NewPath = case quand [type_desc] = &#39;ROWS&#39; puis @targetMDF + [name] + &#39;.mdf&#39;\nquand [type_desc] = &#39;LOG&#39; puis @targetLDF + [name] + &#39;.ldf&#39;\nfin\nà partir des fichiers #DBfiles;\n&#8211;check file configuration &#8211; pourrait vouloir copier ceci ailleurs pour garder des traces de notre travail\nSELECT * FROM #DBfiles;"},{"id":"text-53","heading":"Text","content":"1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37"},{"id":"text-54","heading":"Text","content":"UTILISATION maîtriser;\nALLER"},{"id":"text-55","heading":"Text","content":"/ ***************************************\n              Pré étapes\n**************************************** /"},{"id":"text-56","heading":"Text","content":"&#8211;voir les bases de données que vous voulez déplacer\nSÉLECTIONNER * DE sys.bases de données OÙ [[[[prénom] DANS(&#39;DB1&#39;,&#39;DB2&#39;,&#39;DB3&#39;);"},{"id":"text-57","heading":"Text","content":"&#8211;définit les bases de données à détacher / attacher\nSÉLECTIONNER [[[[prénom] DANS #DBsToMove DE sys.bases de données OÙ [[[[prénom] DANS(&#39;DB1&#39;,&#39;DB2&#39;,&#39;DB3&#39;);"},{"id":"text-58","heading":"Text","content":"&#8211;doit rassembler les informations sur le fichier AVANT de détacher la base de données\nSÉLECTIONNER base_de_données, [[[[type_desc], [[[[prénom], nom_périphérique\nDANS #DBfiles\nDE sys.master_files\nOÙ base_de_données DANS(DB_ID(&#39;DB1&#39;),DB_ID(&#39;DB2&#39;),DB_ID(&#39;DB3&#39;));"},{"id":"text-59","heading":"Text","content":"modifier table #DBfiles ajouter Nouveau chemin varchar(500);"},{"id":"text-60","heading":"Text","content":"&#8211; charger de nouveaux chemins \nDÉCLARER @targetMDF NVARCHAR(128);\nDÉCLARER @targetLDF NVARCHAR(128);\nENSEMBLE @targetMDF = &#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA &#39;;\nSET @targetLDF = &#39;C:Programme Des dossiersMicrosoft SQL ServeurMSSQL13.MSSQLSERVERMSSQLLES DONNÉES&#39;;\n&#8211;SET @targetMDF = &#39;G:  MSSQL  Data &#39;;\n&#8211;SET @targetLDF = &#39;G:  MSSQL  Data &#39;;"},{"id":"text-61","heading":"Text","content":"mettre à jour des dossiers\nensemble Nouveau chemin = Cas quand [[[[type_desc] = &#39;ROWS&#39; puis @targetMDF + [[[[prénom] + &#39;.mdf&#39;\n\t\t\t\t\t\t\t\t   quand [[[[type_desc] = &#39;BÛCHE&#39; puis @targetLDF + [[[[prénom] + &#39;.ldf&#39; \n\t\t\t\t\t\t\t\t   fin \nde #DBfiles des dossiers;"},{"id":"text-62","heading":"Text","content":"&#8211;check file configuration &#8211; pourrait vouloir copier ceci ailleurs pour garder des traces de notre travail\nSÉLECTIONNER * DE #DBfiles;"},{"id":"text-63","heading":"Text","content":"Voici le résultat de #DBFiles:"},{"id":"text-64","heading":"Text","content":"Maintenant, au lieu de vous détacher comme dans l&#39;exemple précédent, plaçons simplement les bases de données hors ligne."},{"id":"text-65","heading":"Text","content":"/ ************************************************ *****************************************\nMéthode 2: Définir la base de données hors connexion / déplacer des fichiers / modifier la base de données / définir en ligne\n************************************************* ***************************************** /\n&#8211;set DBs hors ligne\nDECLARE @DBName varchar (500);\nDÉCLARE @sql NVARCHAR (MAX);\nDECLARE curDetachDBs CURSOR FAST_FORWARD READ_ONLY POUR\n       SÉLECTIONNER [name] DE #DBsToMove\nOUVRIR curDetachDBs\nFETCH NEXT DE curDetachDBs DANS @DBName\nWHILE @@ FETCH_STATUS = 0\nCOMMENCER\n       CARTE D&#39;IMPRESSION (13) + CHAR (10)\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#39;\n       PRINT &#39;-&#39; + @DBName\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#39;\n       SET @sql = &#39;ALTER DATABASE [&lsquo; + @DBName + &lsquo;] SET OFFLINE; &#39;\n       IMPRIMER @sql\n       EXEC sys.sp_executesql @sql\n    FETCH NEXT DE curDetachDBs DANS @DBName\nFIN\nFERMER curDetachDBs\nDEALLOCATE curDetachDBs\n&#8211;verify changements\nSELECT * FROM sys.databases WHERE nom IN (&#39;DB1&#39;, &#39;DB2&#39;, &#39;DB3&#39;);\n&#8211; Les BD sont toujours présentes &#8211; contrairement à détachement"},{"id":"text-66","heading":"Text","content":"1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28"},{"id":"text-67","heading":"Text","content":"/ ************************************************ *****************************************\n\t\t\t\tMéthode 2: Définir la base de données hors connexion / déplacer des fichiers / modifier la base de données / définir en ligne\n************************************************* ***************************************** /"},{"id":"text-68","heading":"Text","content":"&#8211;set DBs hors ligne\nDÉCLARER @DBName varchar(500);\nDÉCLARER @sql NVARCHAR(MAX);\nDÉCLARER curDetachDBs LE CURSEUR AVANCE RAPIDE LECTURE SEULEMENT POUR\n       SÉLECTIONNER [[[[prénom] DE #DBsToMove\nOUVRIR curDetachDBs\nFETCH SUIVANT DE curDetachDBs DANS @DBName\nTANDIS QUE @@FETCH_STATUS = 0\nCOMMENCER\n       IMPRESSION CARBONISER(13) + CARBONISER(dix)\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#39;\n       IMPRESSION &#39;-&#39; + @DBName\n       IMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#39;\n       ENSEMBLE @sql = &#39;ALTER DATABASE[&#39;[&#39;[&lsquo;[&lsquo; + @DBName + &#39;]SET OFFLINE; &#39;\n       IMPRESSION @sql\n       EXEC sys.sp_executesql @sql\n    FETCH SUIVANT DE curDetachDBs DANS @DBName\nFIN\nFERMER curDetachDBs\nDÉALLOCATE curDetachDBs"},{"id":"text-69","heading":"Text","content":"&#8211;verify changements\nSÉLECTIONNER * DE sys.bases de données OÙ prénom DANS(&#39;DB1&#39;,&#39;DB2&#39;,&#39;DB3&#39;);\n&#8211; Les BD sont toujours présentes &#8211; contrairement à détachement"},{"id":"text-70","heading":"Text","content":"Les bases de données sont toujours présentes mais sont hors ligne. Ils ne peuvent pas être lus ou écrits."},{"id":"text-71","heading":"Text","content":"Après avoir défini les bases de données hors ligne, déplacez les fichiers de données vers leur nouvel emplacement.\nEnfin, nous modifions les bases de données pour modifier leurs fichiers, nous les pointons vers le nouvel emplacement, puis nous remettons les bases de données en ligne."},{"id":"text-72","heading":"Text","content":"&#8211;Alter DB pour modifier les fichiers puis les mettre en ligne\nDECLARE @DBName varchar (500);\nDÉCLARE @sql NVARCHAR (MAX);\nDECLARE @rowFile NVARCHAR (128);\nDECLARE @logFile NVARCHAR (128);\nDECLARE @fileType varchar (4);\nDÉCLARE @DBID int;\nDECLARE @NewPath varchar (500);\nDECLARE @fileName varchar (128);\nDECLARE curAttachDBs CURSOR FAST_FORWARD READ_ONLY POUR\n       SELECT database_id, [type_desc], [name], NewPath DE #DBfiles\nOUVRIR curAttachDBs\nFETCH NEXT FROM curAttachDBs IN @DBID, @fileType, @fileName, @NewPath\nWHILE @@ FETCH_STATUS = 0\nCOMMENCER\nSELECT @DBName = DB_NAME (@DBID);\nCARTE D&#39;IMPRESSION (13) + CHAR (10)\nIMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#39;\nPRINT &#39;-&#39; + @DBName\nIMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212; &#39;\nsélectionnez @DBID, @fileType, @fileName, @NewPath\n&#8211;changez les emplacements de fichiers\nSELECT @sql = &#39;ALTER DATABASE [&lsquo; + @DBName + &lsquo;] MODIFIER LE FICHIER (\nNAME = &#39;&#39; &#39;+ @fileName +&#39; &#39;&#39;,\nFILENAME = &#39;&#39; &#39;+ @NewPath +&#39; &#39;&#39; &#39;&#39;\nFROM #DBfiles;\nPRINT @sql;\nEXEC sys.sp_executesql @sql;\n&#8211;set DB en ligne\nSELECT @sql = &#39;ALTER DATABASE&#39; + @DBName + &#39;SET ONLINE&#39;;\nprint @sql;\nEXEC sys.sp_executesql @sql;\nFETCH NEXT FROM curAttachDBs IN @DBID, @fileType, @fileName, @NewPath\nFIN\nCLOSE curAttachDBs\nDEALLOCATE curAttachDBs\n&#8211;Vérifier les informations du fichier DB\nsélectionnez database_id, DB_NAME (database_id) comme &quot;DBName&quot;, [type_desc], [name], nom_ physiques, code_état\nde sys.master_files\noù DB_NAME (id_bdd) dans (&#39;DB1&#39;, &#39;DB2&#39;, &#39;DB3&#39;);"},{"id":"text-73","heading":"Text","content":"1\n2\n3\n4\n5\n6\n7\n8\n9\ndix\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29\n30\n31\n32\n33\n34\n35\n36\n37\n38\n39\n40\n41\n42\n43\n44\n45"},{"id":"text-74","heading":"Text","content":"&#8211;Alter DB pour modifier les fichiers puis les mettre en ligne\nDÉCLARER @DBName varchar(500);\nDÉCLARER @sql NVARCHAR(MAX);\nDÉCLARER @rowFile NVARCHAR(128);\nDÉCLARER @fichier journal NVARCHAR(128);\nDÉCLARER @Type de fichier varchar(4);\nDÉCLARER @DBID int;\nDÉCLARER @Nouveau chemin varchar(500);\nDÉCLARER @nom de fichier varchar(128);\nDÉCLARER curAttachDBs LE CURSEUR AVANCE RAPIDE LECTURE SEULEMENT POUR\n       SÉLECTIONNER base_de_données, [[[[type_desc], [[[[prénom], Nouveau chemin DE #DBfiles\nOUVRIR curAttachDBs\nFETCH SUIVANT DE curAttachDBs DANS @DBID, @Type de fichier, @nom de fichier, @Nouveau chemin\nTANDIS QUE @@FETCH_STATUS = 0\nCOMMENCER\n\tSÉLECTIONNER @DBName = DB_NAME(@DBID);"},{"id":"text-75","heading":"Text","content":"IMPRESSION CARBONISER(13) + CARBONISER(dix)\n\tIMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#39;\n\tIMPRESSION &#39;-&#39; + @DBName\n\tIMPRESSION &#39;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; &#8212;&#8212;&#8211; &#39;\n\tsélectionner @DBID, @Type de fichier, @nom de fichier, @Nouveau chemin\n\t&#8211;changez les emplacements de fichiers\n\tSÉLECTIONNER @sql = &#39;ALTER DATABASE[&#39;[&#39;[&lsquo;[&lsquo; + @DBName + &#39;]MODIFIER LE FICHIER (\n\t\t\t\t\t\t\t\t\t\t\t\tNOM = &#39;&#39;&#39; + @nom de fichier + &#39;&#39;&#39;,\n\t\t\t\t\t\t\t\t\t\t\t\tFILENAME = &#39;&#39;&#39; + @Nouveau chemin + &#39;&#39;&#39;)&#39;\n\tDE #DBfiles;\n\tIMPRESSION @sql;\n\tEXEC sys.sp_executesql @sql;"},{"id":"text-76","heading":"Text","content":"&#8211;set DB en ligne\n\tSÉLECTIONNER @sql = &#39;ALTER DATABASE&#39; + @DBName + &#39;SET ONLINE&#39;;\n\timpression @sql;\n\tEXEC sys.sp_executesql @sql;"},{"id":"text-77","heading":"Text","content":"FETCH SUIVANT DE curAttachDBs DANS @DBID, @Type de fichier, @nom de fichier, @Nouveau chemin\nFIN\nFERMER curAttachDBs\nDÉALLOCATE curAttachDBs"},{"id":"text-78","heading":"Text","content":"&#8211;Vérifier les informations du fichier DB\nsélectionner base_de_données, DB_NAME(base_de_données) comme &#39;DBName&#39;, [[[[type_desc], [[[[prénom], nom_périphérique, state_desc\nde sys.master_files \noù DB_NAME(base_de_données) dans(&#39;DB1&#39;,&#39;DB2&#39;,&#39;DB3&#39;);"},{"id":"text-79","heading":"Text","content":"Voici le résultat de la vérification ci-dessus. Il montre les fichiers de base de données dans un nouvel emplacement et en ligne."},{"id":"text-80","heading":"Text","content":"Méthode 3: Sauvegarder / détacher et supprimer / restaurer ailleurs\nLa sauvegarde sera comme toutes les autres."},{"id":"text-81","heading":"Text","content":"UTILISER le maître;\nALLER\n&#8211;Base de sauvegarde\nBASE DE DONNEES DE SAUVEGARDE [DB1] TO DISK = N&#39;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB1.bak &#39;;\nALLER\nBASE DE DONNEES DE SAUVEGARDE [DB2] TO DISK = N&#39;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB2.bak &#39;;\nALLER\nBASE DE DONNEES DE SAUVEGARDE [DB3] TO DISK = N&#39;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB3.bak &#39;;\nALLER"},{"id":"text-82","heading":"Text","content":"UTILISATION maîtriser;\nALLER"},{"id":"text-83","heading":"Text","content":"&#8211;Base de sauvegarde\nSAUVEGARDE BASE DE DONNÉES [[[[DB1] À  DISQUE = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB1.bak&#39;;\nALLER"},{"id":"text-84","heading":"Text","content":"SAUVEGARDE BASE DE DONNÉES [[[[DB2] À  DISQUE = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB2.bak&#39;;\nALLER"},{"id":"text-85","heading":"Text","content":"SAUVEGARDE BASE DE DONNÉES [[[[DB3] À  DISQUE = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB3.bak&#39;;\nALLER"},{"id":"text-86","heading":"Text","content":"À ce stade, nous sommes libres de détacher les bases de données et de disposer des fichiers de base de données. Il serait peut-être bon de conserver les fichiers jusqu&#39;à ce que nous ayons vérifié que la restauration a fonctionné. Comme il s’agit d’un exemple artificiel, passons à la restauration."},{"id":"text-87","heading":"Text","content":"&#8211; Restaurer des bases de données\nRESTORE DATABASE [DB1] FROM DISK = N&#39;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB1.bak &#39;\nWITH REPLACE, FILE = 1, DÉPLACEZ N&#39;DB1 &#39;À N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1.mdf&#39;,\nDÉPLACER N&#39;DB1_log &#39;À N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1_log.ldf&#39;, NOUNLOAD, STATS = 5\nALLER\nRESTORE DATABASE [DB2] FROM DISK = N&#39;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB2.bak &#39;\nWITH REPLACE, FILE = 1, DÉPLACEZ N&#39;DB2 &#39;À N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2.mdf&#39;,\nDÉPLACER N&#39;DB2_log &#39;À N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2_log.ldf&#39;, NOUNLOAD, STATS = 5\nALLER\nRESTORE DATABASE [DB3] FROM DISK = N&#39;C:  Program Files  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB3.bak &#39;\nWITH REPLACE, FILE = 1, DÉPLACEZ N&#39;DB3 &#39;À N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3.mdf&#39;,\nDÉPLACER N&#39;DB3_log &#39;À N&#39;C:  Program Files  Microsoft Serveur SQL  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3_log.ldf&#39;, NOUNLOAD, STATS = 5\nALLER"},{"id":"text-88","heading":"Text","content":"&#8211; Restaurer des bases de données\nRESTAURER BASE DE DONNÉES [[[[DB1] DE  DISQUE = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB1.bak&#39; \nAVEC REMPLACER, FICHIER = 1,  BOUGE TOI N&#39;DB1&#39; À N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1.mdf&#39;, \nBOUGE TOI N&#39;DB1_log&#39; À N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB1_log.ldf&#39;,  NOUNLOAD,  STATISTIQUES = 5\nALLER"},{"id":"text-89","heading":"Text","content":"RESTAURER BASE DE DONNÉES [[[[DB2] DE  DISQUE = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB2.bak&#39; \nAVEC REMPLACER, FICHIER = 1,  BOUGE TOI N&#39;DB2&#39; À N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2.mdf&#39;, \nBOUGE TOI N&#39;DB2_log&#39; À N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB2_log.ldf&#39;,  NOUNLOAD,  STATISTIQUES = 5\nALLER"},{"id":"text-90","heading":"Text","content":"RESTAURER BASE DE DONNÉES [[[[DB3] DE  DISQUE = N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  Backup  DB3.bak&#39; \nAVEC REMPLACER, FICHIER = 1,  BOUGE TOI N&#39;DB3&#39; À N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3.mdf&#39;, \nBOUGE TOI N&#39;DB3_log&#39; À N&#39;C:  Programmes  Microsoft SQL Server  MSSQL13.MSSQLSERVER  MSSQL  DATA  DB3_log.ldf&#39;,  NOUNLOAD,  STATISTIQUES = 5\nALLER"},{"id":"text-91","heading":"Text","content":"Branchez le nouveau chemin de la clause MOVE TO et la restauration y placera les fichiers.\nAprès avoir migré certaines bases de données, nous voulons être certains que tout va bien et que le système est opérationnel. Quelques contrôles simples permettent de mettre vos parties prenantes à l&#39;aise.\nAprès la migration des fichiers de base de données, il est bon de procéder comme suit:"},{"id":"text-92","heading":"Text","content":"Vérifiez sys.database_files pour vous assurer qu&#39;ils sont dirigés au bon endroit\nExécuter DBCC CHECKDB sur les bases de données déplacées"},{"id":"text-93","heading":"Text","content":"Le déplacement des fichiers de base de données peut créer des problèmes qu&#39;une vérification de cohérence rapide peut atténuer."},{"id":"text-94","heading":"Text","content":"Chacune des méthodes présentées ci-dessus présente des avantages et des inconvénients pour déplacer des fichiers de base de données. Assurez-vous que, quelle que soit la technique que vous choisissez d&#39;utiliser, vous la testez d&#39;abord sur un serveur hors production. Ce n&#39;est pas le point que vous voulez rencontrer des surprises inconnues.\nLa méthode la plus sûre est probablement # 2 &#8211; mettre en mode hors connexion, déplacer des fichiers, modifier le fichier, le mettre en ligne. Le détachement risque de permettre la suppression des fichiers, mais si c&#39;est ce que vous voulez, détachez comme il convient. La méthode de sauvegarde est probablement mieux conservée pour la veille chaud / froid, mais pourrait fonctionner en fonction de l&#39;utilisation du système et des contraintes."},{"id":"text-95","heading":"Text","content":"Comme ça:\nComme Chargement&#8230;"},{"id":"text-96","heading":"Text","content":"Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"}],"media":{"primary_image":"https://tutos-gameserver.fr/wp-content/uploads/2019/05/StockSnap_PQASJKOCU7-1024x681.jpg"},"relations":[{"rel":"canonical","href":"https://tutos-gameserver.fr/2019/05/02/comment-deplacer-des-fichiers-de-base-de-donnees-sql-server-vers-un-nouvel-emplacement-mlakartechtalk-bien-choisir-son-serveur-d-impression/"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2019/05/02/comment-deplacer-des-fichiers-de-base-de-donnees-sql-server-vers-un-nouvel-emplacement-mlakartechtalk-bien-choisir-son-serveur-d-impression/llm","type":"text/html"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2019/05/02/comment-deplacer-des-fichiers-de-base-de-donnees-sql-server-vers-un-nouvel-emplacement-mlakartechtalk-bien-choisir-son-serveur-d-impression/llm.json","type":"application/json"},{"rel":"llm-manifest","href":"https://tutos-gameserver.fr/llm-endpoints-manifest.json","type":"application/json"}],"http_headers":{"X-LLM-Friendly":"1","X-LLM-Schema":"1.1.0","Content-Security-Policy":"default-src 'none'; img-src * data:; style-src 'unsafe-inline'"},"license":"CC BY-ND 4.0","attribution_required":true,"allow_cors":false}