Wiki source code of migrate to managed instance

Version 8.12 by Rudi Marais on 2024/03/07 15:27

Hide last authors
Rudi Marais 1.1 1 * compressed file
2 * contains ddl and dml data
Rudi Marais 1.2 3 * doesnt support encrypted objects
Rudi Marais 2.5 4 * cant have any stored procs with string that contain $( character sequence reserved sequence
5 ** break up sequence ie 'test$(test' become 'test$' + '(test'
Rudi Marais 2.3 6 * [[https:~~/~~/learn.microsoft.com/en-us/azure/azure-sql/database/database-import>>https://learn.microsoft.com/en-us/azure/azure-sql/database/database-import]]
Rudi Marais 2.4 7 * sqlpackage
8 ** [[https:~~/~~/download.microsoft.com/download/7/c/8/7c877288-a0d9-4d22-b1dc-2086e262d82f/x64/DacFramework.msi>>https://download.microsoft.com/download/7/c/8/7c877288-a0d9-4d22-b1dc-2086e262d82f/x64/DacFramework.msi]]
9 ** [[https:~~/~~/learn.microsoft.com/en-us/sql/tools/sqlpackage/sqlpackage-download>>https://learn.microsoft.com/en-us/sql/tools/sqlpackage/sqlpackage-download]]
10 ** C:\Program Files\Microsoft SQL Server\160\DAC\bin
Rudi Marais 4.5 11 * turn off real time scan (anti virus)
Rudi Marais 1.1 12
Rudi Marais 4.1 13 1. run extract with [[sql-script-db.ps1>>doc:technical-documentation.Source Control.migration.sql.sql-db-export.WebHome]] with validate set to true and raw objects set to true, only need tbl-triggers, functions and sp
Rudi Marais 2.8 14 11. reason for this is to identify any procedure/triggers/functions that dont compile
15 1. once this is done examine results and fix stored procedures on database so that they can compile, ie add missing columns or modify code to not require them
16 11. repeat step 1 and 2 until you get zero objects that can't compile
17 1. check sql code for any reserved varables ie... and fix on DB
18 1. run dacpac export
19 11. make sure nothing is running on source DB
20 11. upgrade source DB to high level for quicker export and set back to what it was once done
21 11. cmd
22 1. run dacpac publish to managed instance
23 1.
24
Rudi Marais 8.1 25 * (((
Rudi Marais 8.2 26 (% class="wikigeneratedid" id="Hhttps:2F2Fgithub.com2Fmicrosoft2Fmssql-scripter" %)
27 [[https:~~/~~/github.com/microsoft/mssql-scripter>>https://github.com/microsoft/mssql-scripter]]
28
29 * C:\Users\alliancetest\.mssqlscripter
Rudi Marais 8.7 30 * mssql-scripter -S "kula.database.windows.net" -d Everest_Test -U ebsadmin -P xxx -r -f E:\temp\khula_test.sql ~-~-display-progress ~-~-enable-toolsservice-logging
Rudi Marais 8.12 31
32
Rudi Marais 8.1 33 )))
Rudi Marais 8.12 34 * ALTER DATABASE Everest_Test SET READ_ONLY WITH NO_WAIT
35
Rudi Marais 1.1 36
Rudi Marais 8.12 37
38 {{code language="sql"}}
39 -- index
Rudi Marais 8.8 40 select concat('echo ''',SCHEMA_NAME(schema_id), '_', BASE64_ENCODE (cast(name as varbinary)), '.bcp ',SCHEMA_NAME(schema_id), '.', name , ''' >> test.log')
41 from sys.tables
42 where type = 'U'
43 and is_ms_shipped = 0
44
45 --and temporal_type in (0,2);
46
47 -- export
Rudi Marais 8.10 48
49 select '$path = "E:\temp\test"'
50 select '$server = "server.name"'
51 select '$username = "user.name"'
52 select '$password = "pass.word"'
53 select 'New-Item -ItemType Directory -Force -Path "$path\export_log"'
54 select 'New-Item -ItemType Directory -Force -Path "$path\data"'
55
56 select export = concat('bcp "', DB_NAME(), '.',
57 SCHEMA_NAME(schema_id), '.', replace(name,'$','`$'),
58 '" out "$path\data\', SCHEMA_NAME(schema_id), '_', BASE64_ENCODE (cast(name as varbinary)), '.bcp" ',
Rudi Marais 8.8 59 ' -e "$path\export_log\', SCHEMA_NAME(schema_id), '_', BASE64_ENCODE (cast(name as varbinary)), '.log" ',
Rudi Marais 8.5 60 ' -S "', '$server','"',
61 ' -N -U "$username" -P "$password"',
62 ' | Out-Null')
Rudi Marais 8.3 63 from sys.tables
64 where type = 'U'
65 and is_ms_shipped = 0
Rudi Marais 8.5 66 --and temporal_type in (0,2);
Rudi Marais 2.8 67
Rudi Marais 8.3 68 -- import
Rudi Marais 8.10 69
70
71 select '$path = "E:\temp\test"'
72 select '$target_server = "server.name"'
73 select '$target_username = "user.name"'
74 select '$target_password = "pass.word"'
75 select 'New-Item -ItemType Directory -Force -Path "$path\import_log"'
76 select 'New-Item -ItemType Directory -Force -Path "$path\data"'
77
Rudi Marais 8.5 78 select import = concat('bcp "', '$target_db', '.',
Rudi Marais 8.8 79 SCHEMA_NAME(schema_id), '.', replace(name,'$','`$'),
80 '" in "$path\data\', SCHEMA_NAME(schema_id), '_', BASE64_ENCODE (cast(name as varbinary)) , '.bcp" ',
81 ' -e "$path\import_log\', SCHEMA_NAME(schema_id), '_', BASE64_ENCODE (cast(name as varbinary)) , '.log" ',
Rudi Marais 8.5 82 ' -S "', '$target_server','"',
83 ' -N -U "$target_username" -P "$target_password"',
84 ' -b 1000 -E -k -N -q',
85 ' | Out-Null')
Rudi Marais 8.3 86 from sys.tables
87 where type = 'U'
88 and is_ms_shipped = 0
Rudi Marais 8.12 89 --and temporal_type in (0,2);
90 {{/code}}
Rudi Marais 8.3 91
92
Rudi Marais 8.4 93 * disable anti-virus real time scan
Rudi Marais 8.11 94 *
Rudi Marais 8.3 95
96 (% class="wikigeneratedid" %)
97 placeholder
98
Rudi Marais 1.1 99 = Exporting =
100
Rudi Marais 1.2 101 * no encrypted objects, they need to be decrypted or removed prior to exporting.
Rudi Marais 1.1 102
Rudi Marais 5.1 103 SQL 2012
104
105
106
107 EXEC sp_configure 'show advanced options', 1;
108 GO
109 RECONFIGURE;
110 GO
111
112 EXEC sp_configure 'xp_cmdshell',1
113 GO
114 RECONFIGURE
115 GO
116
117
118 EXEC XP_CMDSHELL 'net use O: ~\~\zagpebslab.file.core.windows.net\sqlshare /user:"localhost\zagpebslab" "access_key"'
119
120 EXEC XP_CMDSHELL 'Dir O:'
121
122
123 BACKUP DATABASE Everest_TEST
124 TO DISK = N'O:\ENS_Everest_Test_20230721_1806.bak'
Rudi Marais 6.1 125 WITH COMPRESSION,
Rudi Marais 7.1 126 STATS = 10;
Rudi Marais 6.1 127
128
Rudi Marais 5.1 129 GO
130
131
Rudi Marais 6.1 132 SELECT 
133 session_id as SPID, command, a.text AS Query, start_time, percent_complete,
134 dateadd(second,estimated_completion_time/1000, getdate()) as estimated_completion_time
135 FROM sys.dm_exec_requests r 
136 CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) a 
137 WHERE r.command in ('BACKUP DATABASE','RESTORE DATABASE')
138
139 GO
140
141
Rudi Marais 1.1 142 = Importing =
143
144
Rudi Marais 1.3 145 = Modifying and Troubleshooting =
Rudi Marais 2.2 146
Rudi Marais 2.7 147 * Get-FileHash 'C:\temp\lfs\LifeSense_Everest_Test2-2023-5-17-7-37\model.xml'
148 ** place in Origin.xml
Rudi Marais 2.8 149 *** <Checksum Uri="/model.xml">DEADD2734B789135ED627061A385FC2C1096718A7D3398658DF9097196C1F571</Checksum>
Rudi Marais 2.2 150
151 == Recalculate Signature ==
152
153 * incubator/ebsphere.crm/ebs-devops-devops-sql/calc-signature-bacpac.ps1
154 * modify Origin.xml
155 ** Checksum attribute for model.xml

Need help?

If you need help with XWiki you can contact: