Wiki source code of migrate to managed instance

Version 8.14 by Rudi Marais on 2024/03/28 18:29

Hide last authors
Rudi Marais 8.14 1
2
Rudi Marais 2.4 3 * sqlpackage
4 ** [[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]]
5 ** [[https:~~/~~/learn.microsoft.com/en-us/sql/tools/sqlpackage/sqlpackage-download>>https://learn.microsoft.com/en-us/sql/tools/sqlpackage/sqlpackage-download]]
6 ** C:\Program Files\Microsoft SQL Server\160\DAC\bin
Rudi Marais 1.1 7
Rudi Marais 8.14 8
9 1. scale db to accetable performance ie dtus 500
10 1. turn off real time scan (anti virus)
11 1. run bcp extract scripts [everest & docs parallel]
12 11. extract run from smallest to largest table
13 1. run schema extracts [not in parallel!]
14 1. create db
15 1. create schema
16 11. prep scripts first
17 11. document references
18 11. make sure ddl audit triggers are disabled
19 1. run imports [parallel]
20 11. imports runs from smallest to largest table
21
22
Rudi Marais 4.1 23 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 24 11. reason for this is to identify any procedure/triggers/functions that dont compile
25 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
26 11. repeat step 1 and 2 until you get zero objects that can't compile
27 1. check sql code for any reserved varables ie... and fix on DB
28 1. run dacpac export
29 11. make sure nothing is running on source DB
30 11. upgrade source DB to high level for quicker export and set back to what it was once done
31 11. cmd
32 1. run dacpac publish to managed instance
33 1.
34
Rudi Marais 8.1 35 * (((
Rudi Marais 8.2 36 (% class="wikigeneratedid" id="Hhttps:2F2Fgithub.com2Fmicrosoft2Fmssql-scripter" %)
37 [[https:~~/~~/github.com/microsoft/mssql-scripter>>https://github.com/microsoft/mssql-scripter]]
38
39 * C:\Users\alliancetest\.mssqlscripter
Rudi Marais 8.7 40 * 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 41
42
Rudi Marais 8.1 43 )))
Rudi Marais 8.12 44 * ALTER DATABASE Everest_Test SET READ_ONLY WITH NO_WAIT
45
Rudi Marais 1.1 46
Rudi Marais 8.12 47 {{code language="sql"}}
48 -- index
Rudi Marais 8.8 49 select concat('echo ''',SCHEMA_NAME(schema_id), '_', BASE64_ENCODE (cast(name as varbinary)), '.bcp ',SCHEMA_NAME(schema_id), '.', name , ''' >> test.log')
50 from sys.tables
51 where type = 'U'
52 and is_ms_shipped = 0
53
54 --and temporal_type in (0,2);
55
56 -- export
Rudi Marais 8.10 57
Rudi Marais 8.13 58 select '$path = "E:\temp\test\everest_test"' cmd union
59 select '$server = "mytest.database.windows.net"' union
60 select '$username = "sa"' union
61 select '$password = "123456"' union
62 select 'New-Item -ItemType Directory -Force -Path "$path\export_log"' union
63 select 'New-Item -ItemType Directory -Force -Path "$path\data"'
Rudi Marais 8.10 64
65 select export = concat('bcp "', DB_NAME(), '.',
66 SCHEMA_NAME(schema_id), '.', replace(name,'$','`$'),
67 '" out "$path\data\', SCHEMA_NAME(schema_id), '_', BASE64_ENCODE (cast(name as varbinary)), '.bcp" ',
Rudi Marais 8.8 68 ' -e "$path\export_log\', SCHEMA_NAME(schema_id), '_', BASE64_ENCODE (cast(name as varbinary)), '.log" ',
Rudi Marais 8.5 69 ' -S "', '$server','"',
70 ' -N -U "$username" -P "$password"',
71 ' | Out-Null')
Rudi Marais 8.3 72 from sys.tables
73 where type = 'U'
74 and is_ms_shipped = 0
Rudi Marais 8.5 75 --and temporal_type in (0,2);
Rudi Marais 2.8 76
Rudi Marais 8.3 77 -- import
Rudi Marais 8.10 78
Rudi Marais 8.13 79 select '$path = "E:\temp\test\everest_test"' cmd union
80 select '$target_server = "sqlmi-ebs-prod.public.2a5fe6cde9a7.database.windows.net,3342"' union
81 select '$target_db = "TST_Staging_Everest"' union
82 select '$target_username = "import_test"' union
83 select '$target_password = ''123456''' union
84 select 'New-Item -ItemType Directory -Force -Path "$path\import_log"' union
Rudi Marais 8.10 85 select 'New-Item -ItemType Directory -Force -Path "$path\data"'
86
Rudi Marais 8.5 87 select import = concat('bcp "', '$target_db', '.',
Rudi Marais 8.8 88 SCHEMA_NAME(schema_id), '.', replace(name,'$','`$'),
89 '" in "$path\data\', SCHEMA_NAME(schema_id), '_', BASE64_ENCODE (cast(name as varbinary)) , '.bcp" ',
90 ' -e "$path\import_log\', SCHEMA_NAME(schema_id), '_', BASE64_ENCODE (cast(name as varbinary)) , '.log" ',
Rudi Marais 8.5 91 ' -S "', '$target_server','"',
92 ' -N -U "$target_username" -P "$target_password"',
93 ' -b 1000 -E -k -N -q',
94 ' | Out-Null')
Rudi Marais 8.3 95 from sys.tables
96 where type = 'U'
97 and is_ms_shipped = 0
Rudi Marais 8.12 98 --and temporal_type in (0,2);
Rudi Marais 8.13 99
Rudi Marais 8.12 100 {{/code}}
Rudi Marais 8.3 101
102
Rudi Marais 8.4 103 * disable anti-virus real time scan
Rudi Marais 8.11 104 *
Rudi Marais 8.3 105
106 (% class="wikigeneratedid" %)
107 placeholder
108
Rudi Marais 1.1 109 = Exporting =
110
Rudi Marais 1.2 111 * no encrypted objects, they need to be decrypted or removed prior to exporting.
Rudi Marais 1.1 112
Rudi Marais 5.1 113 SQL 2012
114
115
116
117 EXEC sp_configure 'show advanced options', 1;
118 GO
119 RECONFIGURE;
120 GO
121
122 EXEC sp_configure 'xp_cmdshell',1
123 GO
124 RECONFIGURE
125 GO
126
127
128 EXEC XP_CMDSHELL 'net use O: ~\~\zagpebslab.file.core.windows.net\sqlshare /user:"localhost\zagpebslab" "access_key"'
129
130 EXEC XP_CMDSHELL 'Dir O:'
131
132
133 BACKUP DATABASE Everest_TEST
134 TO DISK = N'O:\ENS_Everest_Test_20230721_1806.bak'
Rudi Marais 6.1 135 WITH COMPRESSION,
Rudi Marais 7.1 136 STATS = 10;
Rudi Marais 6.1 137
138
Rudi Marais 5.1 139 GO
140
141
Rudi Marais 6.1 142 SELECT 
143 session_id as SPID, command, a.text AS Query, start_time, percent_complete,
144 dateadd(second,estimated_completion_time/1000, getdate()) as estimated_completion_time
145 FROM sys.dm_exec_requests r 
146 CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) a 
147 WHERE r.command in ('BACKUP DATABASE','RESTORE DATABASE')
148
149 GO
150
151
Rudi Marais 1.1 152 = Importing =
153
154
Rudi Marais 1.3 155 = Modifying and Troubleshooting =
Rudi Marais 2.2 156
Rudi Marais 2.7 157 * Get-FileHash 'C:\temp\lfs\LifeSense_Everest_Test2-2023-5-17-7-37\model.xml'
158 ** place in Origin.xml
Rudi Marais 2.8 159 *** <Checksum Uri="/model.xml">DEADD2734B789135ED627061A385FC2C1096718A7D3398658DF9097196C1F571</Checksum>
Rudi Marais 2.2 160
161 == Recalculate Signature ==
162
163 * incubator/ebsphere.crm/ebs-devops-devops-sql/calc-signature-bacpac.ps1
164 * modify Origin.xml
165 ** Checksum attribute for model.xml

Need help?

If you need help with XWiki you can contact: