Last modified by Rudi Marais on 2024/03/28 18:51

<
From version < 7.1 >
edited by Rudi Marais
on 2023/07/21 20:50
To version < 8.26 >
edited by Rudi Marais
on 2024/03/28 18:49
>
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,15 +1,63 @@
1 -* compressed file
2 -* contains ddl and dml data
3 -* doesnt support encrypted objects
4 -* cant have any stored procs with string that contain $( character sequence reserved sequence
5 -** break up sequence ie 'test$(test' become 'test$' + '(test'
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]]
1 +
2 +
7 7  * sqlpackage
8 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 9  ** [[https:~~/~~/learn.microsoft.com/en-us/sql/tools/sqlpackage/sqlpackage-download>>https://learn.microsoft.com/en-us/sql/tools/sqlpackage/sqlpackage-download]]
10 10  ** C:\Program Files\Microsoft SQL Server\160\DAC\bin
11 -* turn off real time scan (anti virus)
12 12  
8 +
9 +1. put db in readonly mode
10 +11. stop all applicable services
11 +11. ALTER DATABASE Everest_Test SET READ_ONLY WITH NO_WAIT
12 +
13 +1. scale db to accetable performance ie dtus 500
14 +
15 +1. turn off real time scan (anti virus)
16 +
17 +1. run bcp extract scripts
18 +11. everest & docs parallel
19 +11. extract run from smallest to largest table
20 +
21 +1. run schema extracts
22 +11. not in parallel!
23 +11. [[https:~~/~~/github.com/microsoft/mssql-scripter>>https://github.com/microsoft/mssql-scripter]]
24 +11. C:\Users\alliancetest\.mssqlscripter
25 +11. 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
26 +
27 +1. create db
28 +
29 +1. create schemas
30 +11. prep scripts first remove non applicable scripting
31 +11. document references
32 +11. make sure ddl audit triggers are disabled
33 +
34 +1. enable compresssion on applicable tables
35 +11. tblAudit etc
36 +
37 +1. disable all indexes except clustered
38 +
39 +1. run imports [parallel]
40 +11. imports runs from smallest to largest table
41 +
42 +1. verify record counts from pre and post
43 +
44 +1. enable indexes
45 +
46 +1. deploy new ddl audit triggers
47 +​​​​​​​
48 +1. enable ddl trigger
49 +
50 +1. run db security scripts
51 +11. creates db groups and ad groups
52 +
53 +1. update all settings to new environment
54 +​​​​​​​
55 +1. do audit table test
56 +
57 +1. scale db down to minimum
58 +
59 +
60 +
13 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
14 14  11. reason for this is to identify any procedure/triggers/functions that dont compile
15 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
... ... @@ -22,10 +22,75 @@
22 22  1. run dacpac publish to managed instance
23 23  1.
24 24  
25 -= =
73 +* (((
74 +(% class="wikigeneratedid" id="Hhttps:2F2Fgithub.com2Fmicrosoft2Fmssql-scripter" %)
75 +[[https:~~/~~/github.com/microsoft/mssql-scripter>>https://github.com/microsoft/mssql-scripter]]
26 26  
77 +
78 +)))
27 27  
80 +{{code language="sql"}}
81 +-- index
82 +select concat('echo ''',SCHEMA_NAME(schema_id), '_', BASE64_ENCODE (cast(name as varbinary)), '.bcp ',SCHEMA_NAME(schema_id), '.', name , ''' >> test.log')
83 +from sys.tables
84 +where type = 'U'
85 +and is_ms_shipped = 0
28 28  
87 +--and temporal_type in (0,2);
88 +
89 +-- export
90 +
91 +select '$path = "E:\temp\test\everest_test"' cmd union
92 +select '$server = "mytest.database.windows.net"' union
93 +select '$username = "sa"' union
94 +select '$password = "123456"' union
95 +select 'New-Item -ItemType Directory -Force -Path "$path\export_log"' union
96 +select 'New-Item -ItemType Directory -Force -Path "$path\data"'
97 +
98 +select export = concat('bcp "', DB_NAME(), '.',
99 + SCHEMA_NAME(schema_id), '.', replace(name,'$','`$'),
100 + '" out "$path\data\', SCHEMA_NAME(schema_id), '_', BASE64_ENCODE (cast(name as varbinary)), '.bcp" ',
101 + ' -e "$path\export_log\', SCHEMA_NAME(schema_id), '_', BASE64_ENCODE (cast(name as varbinary)), '.log" ',
102 + ' -S "', '$server','"',
103 + ' -N -U "$username" -P "$password"',
104 + ' | Out-Null')
105 +from sys.tables
106 +where type = 'U'
107 +and is_ms_shipped = 0
108 +--and temporal_type in (0,2);
109 +
110 +-- import
111 +
112 +select '$path = "E:\temp\test\everest_test"' cmd union
113 +select '$target_server = "sqlmi-ebs-prod.public.2a5fe6cde9a7.database.windows.net,3342"' union
114 +select '$target_db = "TST_Staging_Everest"' union
115 +select '$target_username = "import_test"' union
116 +select '$target_password = ''123456''' union
117 +select 'New-Item -ItemType Directory -Force -Path "$path\import_log"' union
118 +select 'New-Item -ItemType Directory -Force -Path "$path\data"'
119 +
120 +select import = concat('bcp "', '$target_db', '.',
121 + SCHEMA_NAME(schema_id), '.', replace(name,'$','`$'),
122 + '" in "$path\data\', SCHEMA_NAME(schema_id), '_', BASE64_ENCODE (cast(name as varbinary)) , '.bcp" ',
123 + ' -e "$path\import_log\', SCHEMA_NAME(schema_id), '_', BASE64_ENCODE (cast(name as varbinary)) , '.log" ',
124 + ' -S "', '$target_server','"',
125 + ' -N -U "$target_username" -P "$target_password"',
126 + ' -b 1000 -E -k -N -q',
127 + ' | Out-Null')
128 +from sys.tables
129 +where type = 'U'
130 +and is_ms_shipped = 0
131 +--and temporal_type in (0,2);
132 +
133 +{{/code}}
134 +
135 +
136 +* disable anti-virus real time scan
137 +*
138 +
139 +(% class="wikigeneratedid" %)
140 +placeholder
141 +
29 29  = Exporting =
30 30  
31 31  * no encrypted objects, they need to be decrypted or removed prior to exporting.
... ... @@ -83,5 +83,3 @@
83 83  * incubator/ebsphere.crm/ebs-devops-devops-sql/calc-signature-bacpac.ps1
84 84  * modify Origin.xml
85 85  ** Checksum attribute for model.xml
86 -
87 -

Need help?

If you need help with XWiki you can contact: