From f64edfd62ba7ebb6d680c5c172a24def0480f1e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Doma=C5=84ski?= Date: Fri, 7 Aug 2026 13:23:38 +0000 Subject: [PATCH] Aug 7, 2026, 3:23 PM --- ...erver Instance and Machine Info Script.odt | Bin 0 -> 64345 bytes .../SQL_Server_Migration_Inventory.sql | 44 ++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 projects/DBETO-4397/SQL Server Instance and Machine Info Script.odt create mode 100644 projects/DBETO-4397/SQL_Server_Migration_Inventory.sql diff --git a/projects/DBETO-4397/SQL Server Instance and Machine Info Script.odt b/projects/DBETO-4397/SQL Server Instance and Machine Info Script.odt new file mode 100644 index 0000000000000000000000000000000000000000..70a2ac3890b31166667bddd38a7eee7edb9fac4b GIT binary patch literal 64345 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¸ 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 literal 0 HcmV?d00001 diff --git a/projects/DBETO-4397/SQL_Server_Migration_Inventory.sql b/projects/DBETO-4397/SQL_Server_Migration_Inventory.sql new file mode 100644 index 0000000..ebbb1db --- /dev/null +++ b/projects/DBETO-4397/SQL_Server_Migration_Inventory.sql @@ -0,0 +1,44 @@ +/* SQL Server Migration Inventory, SQL Server 2016+ */ +SET NOCOUNT ON; SET XACT_ABORT ON; +DECLARE @InventoryDB sysname=N'DBA_MigrationInventory', @IncludeSensitiveLoginScripts bit=0, @sql nvarchar(max); +IF DB_ID(@InventoryDB) IS NULL EXEC(N'CREATE DATABASE '+QUOTENAME(@InventoryDB)); +SET @sql=N'USE '+QUOTENAME(@InventoryDB)+N'; IF SCHEMA_ID(N''inv'') IS NULL EXEC(N''CREATE SCHEMA inv AUTHORIZATION dbo''); +DECLARE @t sysname; DECLARE c CURSOR LOCAL FAST_FORWARD FOR SELECT name FROM sys.tables WHERE schema_id=SCHEMA_ID(N''inv''); OPEN c; FETCH NEXT FROM c INTO @t; +WHILE @@FETCH_STATUS=0 BEGIN EXEC(N''DROP TABLE inv.''+QUOTENAME(@t)); FETCH NEXT FROM c INTO @t; END; CLOSE c; DEALLOCATE c;'; EXEC(@sql); +SET @sql=N'USE '+QUOTENAME(@InventoryDB)+N'; +SELECT SYSDATETIMEOFFSET() CollectedAt,CAST(SERVERPROPERTY(''ServerName'') AS nvarchar(256)) SourceServer,ORIGINAL_LOGIN() CollectedBy INTO inv.CollectionInfo; +SELECT CAST(SERVERPROPERTY(''ServerName'') AS nvarchar(256)) ServerName,CAST(SERVERPROPERTY(''MachineName'') AS nvarchar(256)) MachineName,CAST(SERVERPROPERTY(''InstanceName'') AS nvarchar(256)) InstanceName,CAST(SERVERPROPERTY(''ComputerNamePhysicalNetBIOS'') AS nvarchar(256)) PhysicalHost,CAST(SERVERPROPERTY(''Edition'') AS nvarchar(256)) Edition,CAST(SERVERPROPERTY(''ProductVersion'') AS nvarchar(128)) ProductVersion,CAST(SERVERPROPERTY(''ProductLevel'') AS nvarchar(128)) ProductLevel,CAST(SERVERPROPERTY(''Collation'') AS nvarchar(256)) Collation,CAST(SERVERPROPERTY(''IsClustered'') AS int) IsClustered,CAST(SERVERPROPERTY(''IsHadrEnabled'') AS int) IsHadrEnabled,CAST(SERVERPROPERTY(''IsIntegratedSecurityOnly'') AS int) WindowsAuthOnly,CAST(@@VERSION AS nvarchar(max)) FullVersion INTO inv.InstanceInfo; +SELECT cpu_count,scheduler_count,hyperthread_ratio,socket_count,cores_per_socket,physical_memory_kb/1024 PhysicalMemoryMB,committed_kb/1024 SqlCommittedMB,committed_target_kb/1024 SqlTargetMB,sqlserver_start_time,virtual_machine_type_desc INTO inv.MachineInfo FROM sys.dm_os_sys_info; +SELECT DISTINCT volume_mount_point,logical_volume_name,file_system_type,CAST(total_bytes/1073741824.0 AS decimal(19,2)) TotalGB,CAST(available_bytes/1073741824.0 AS decimal(19,2)) FreeGB,CAST(100.0*available_bytes/NULLIF(total_bytes,0) AS decimal(9,2)) FreePct,supports_compression,is_compressed INTO inv.Volumes FROM sys.master_files f CROSS APPLY sys.dm_os_volume_stats(f.database_id,f.file_id); +SELECT d.database_id,d.name,d.state_desc,d.recovery_model_desc,d.compatibility_level,d.collation_name,d.user_access_desc,d.is_read_only,d.page_verify_option_desc,d.is_broker_enabled,d.is_trustworthy_on,d.containment_desc,d.log_reuse_wait_desc,d.create_date,SUSER_SNAME(d.owner_sid) OwnerName,CAST(SUM(CASE WHEN f.type=0 THEN f.size ELSE 0 END)*8.0/1024 AS decimal(19,2)) DataMB,CAST(SUM(CASE WHEN f.type=1 THEN f.size ELSE 0 END)*8.0/1024 AS decimal(19,2)) LogMB INTO inv.Databases FROM sys.databases d LEFT JOIN sys.master_files f ON d.database_id=f.database_id GROUP BY d.database_id,d.name,d.state_desc,d.recovery_model_desc,d.compatibility_level,d.collation_name,d.user_access_desc,d.is_read_only,d.page_verify_option_desc,d.is_broker_enabled,d.is_trustworthy_on,d.containment_desc,d.log_reuse_wait_desc,d.create_date,d.owner_sid; +SELECT DB_NAME(database_id) DatabaseName,file_id,name LogicalName,type_desc,physical_name,CAST(size*8.0/1024 AS decimal(19,2)) SizeMB,max_size,growth,is_percent_growth INTO inv.DatabaseFiles FROM sys.master_files; +SELECT name,value,value_in_use,minimum,maximum,is_dynamic,is_advanced INTO inv.Configuration FROM sys.configurations; +SELECT servicename,startup_type_desc,status_desc,service_account,filename,is_clustered,cluster_nodename,instant_file_initialization_enabled,last_startup_time INTO inv.Services FROM sys.dm_server_services; +SELECT principal_id,name,type_desc,default_database_name,default_language_name,is_disabled,create_date,modify_date INTO inv.ServerPrincipals FROM sys.server_principals WHERE name NOT LIKE N''##%''; +SELECT r.name ServerRole,m.name MemberName INTO inv.ServerRoleMembers FROM sys.server_role_members x JOIN sys.server_principals r ON r.principal_id=x.role_principal_id JOIN sys.server_principals m ON m.principal_id=x.member_principal_id; +SELECT credential_id,name,credential_identity,create_date,modify_date INTO inv.Credentials FROM sys.credentials; +SELECT server_id,name,product,provider,data_source,location,provider_string,catalog,connect_timeout,query_timeout,is_linked,is_rpc_out_enabled,is_data_access_enabled,collation_name INTO inv.LinkedServers FROM sys.servers; +SELECT s.name LinkedServer,p.name LocalPrincipal,l.uses_self_credential,l.remote_name INTO inv.LinkedServerMappings FROM sys.linked_logins l JOIN sys.servers s ON s.server_id=l.server_id LEFT JOIN sys.server_principals p ON p.principal_id=l.local_principal_id; +SELECT job_id,name,enabled,description,start_step_id,SUSER_SNAME(owner_sid) OwnerName,date_created,date_modified INTO inv.AgentJobs FROM msdb.dbo.sysjobs; +SELECT j.name JobName,s.step_id,s.step_name,s.subsystem,s.command,s.database_name,s.database_user_name,s.retry_attempts,s.retry_interval,s.output_file_name,s.proxy_id INTO inv.AgentJobSteps FROM msdb.dbo.sysjobsteps s JOIN msdb.dbo.sysjobs j ON j.job_id=s.job_id; +SELECT j.name JobName,s.name ScheduleName,s.enabled,s.freq_type,s.freq_interval,s.freq_subday_type,s.freq_subday_interval,s.freq_recurrence_factor,s.active_start_date,s.active_end_date,s.active_start_time,s.active_end_time INTO inv.AgentSchedules FROM msdb.dbo.sysjobs j JOIN msdb.dbo.sysjobschedules x ON x.job_id=j.job_id JOIN msdb.dbo.sysschedules s ON s.schedule_id=x.schedule_id; +SELECT id,name,enabled,email_address,pager_address INTO inv.Operators FROM msdb.dbo.sysoperators; +SELECT id,name,message_id,severity,enabled,database_name,event_description_keyword,job_id INTO inv.Alerts FROM msdb.dbo.sysalerts; +SELECT profile_id,name,description,last_mod_datetime,last_mod_user INTO inv.DatabaseMailProfiles FROM msdb.dbo.sysmail_profile; +SELECT account_id,name,description,email_address,display_name,replyto_address,last_mod_datetime,last_mod_user INTO inv.DatabaseMailAccounts FROM msdb.dbo.sysmail_account; +SELECT endpoint_id,name,protocol_desc,type_desc,state_desc,is_admin_endpoint INTO inv.Endpoints FROM sys.endpoints; +SELECT name,is_disabled,create_date,modify_date,OBJECT_DEFINITION(object_id) Definition INTO inv.ServerTriggers FROM sys.server_triggers; +SELECT audit_id,name,audit_guid,create_date,modify_date,type_desc,on_failure_desc,is_state_enabled,queue_delay,predicate INTO inv.Audits FROM sys.server_audits; +SELECT server_specification_id,name,create_date,modify_date,is_state_enabled,audit_guid INTO inv.AuditSpecifications FROM sys.server_audit_specifications; +SELECT d.name DatabaseName,MAX(CASE WHEN b.type=''D'' THEN b.backup_finish_date END) LastFull,MAX(CASE WHEN b.type=''I'' THEN b.backup_finish_date END) LastDiff,MAX(CASE WHEN b.type=''L'' THEN b.backup_finish_date END) LastLog INTO inv.BackupStatus FROM sys.databases d LEFT JOIN msdb.dbo.backupset b ON b.database_name=d.name GROUP BY d.name; +SELECT DB_NAME(database_id) DatabaseName,encryption_state,percent_complete,key_algorithm,key_length,encryptor_thumbprint INTO inv.TDE FROM sys.dm_database_encryption_keys; +SELECT name,is_published,is_subscribed,is_merge_published,is_distributor,is_cdc_enabled,is_encrypted,temporal_history_retention_enabled INTO inv.DatabaseFeatures FROM sys.databases; +CREATE TABLE inv.UserDatabaseObjects(DatabaseName sysname,FeatureName nvarchar(128),ItemCount bigint); +CREATE TABLE inv.ExternalDependencies(DatabaseName sysname,ReferencingObject nvarchar(776),ReferencedServer sysname,ReferencedDatabase sysname,ReferencedSchema sysname,ReferencedEntity sysname); +CREATE TABLE inv.LoginMigrationScripts(LoginName sysname,IsSensitive bit,CreateScript nvarchar(max)); +CREATE TABLE inv.MigrationChecklist(Category nvarchar(100),Item nvarchar(200),DetectedCount bigint,RequiredAction nvarchar(1000),Status nvarchar(30));'; EXEC(@sql); +BEGIN TRY SET @sql=N'USE '+QUOTENAME(@InventoryDB)+N'; SELECT group_id,name,automated_backup_preference_desc,failure_condition_level,health_check_timeout INTO inv.AvailabilityGroups FROM sys.availability_groups; SELECT replica_id,group_id,replica_server_name,endpoint_url,availability_mode_desc,failover_mode_desc,seeding_mode_desc INTO inv.AvailabilityReplicas FROM sys.availability_replicas; SELECT g.name AvailabilityGroup,d.database_name INTO inv.AGDatabases FROM sys.availability_databases_cluster d JOIN sys.availability_groups g ON g.group_id=d.group_id;'; EXEC(@sql); END TRY BEGIN CATCH PRINT ERROR_MESSAGE(); END CATCH; +DECLARE @db sysname; DECLARE c CURSOR LOCAL FAST_FORWARD FOR SELECT name FROM sys.databases WHERE database_id>4 AND state_desc=N'ONLINE' AND source_database_id IS NULL; OPEN c; FETCH NEXT FROM c INTO @db; +WHILE @@FETCH_STATUS=0 BEGIN BEGIN TRY SET @sql=N'USE '+QUOTENAME(@InventoryDB)+N'; INSERT inv.UserDatabaseObjects SELECT N'''+REPLACE(@db,'''','''''')+N''',N''Users'',COUNT_BIG(*) FROM '+QUOTENAME(@db)+N'.sys.database_principals WHERE principal_id>4 AND type IN(''S'',''U'',''G'',''E'',''X''); INSERT inv.UserDatabaseObjects SELECT N'''+REPLACE(@db,'''','''''')+N''',N''CLR assemblies'',COUNT_BIG(*) FROM '+QUOTENAME(@db)+N'.sys.assemblies WHERE is_user_defined=1; INSERT inv.UserDatabaseObjects SELECT N'''+REPLACE(@db,'''','''''')+N''',N''Synonyms'',COUNT_BIG(*) FROM '+QUOTENAME(@db)+N'.sys.synonyms; INSERT inv.UserDatabaseObjects SELECT N'''+REPLACE(@db,'''','''''')+N''',N''Certificates'',COUNT_BIG(*) FROM '+QUOTENAME(@db)+N'.sys.certificates WHERE name NOT LIKE ''##%''; INSERT inv.ExternalDependencies SELECT DISTINCT N'''+REPLACE(@db,'''','''''')+N''',QUOTENAME(OBJECT_SCHEMA_NAME(referencing_id,DB_ID(N'''+REPLACE(@db,'''','''''')+N''')))+N''.''+QUOTENAME(OBJECT_NAME(referencing_id,DB_ID(N'''+REPLACE(@db,'''','''''')+N'''))),referenced_server_name,referenced_database_name,referenced_schema_name,referenced_entity_name FROM '+QUOTENAME(@db)+N'.sys.sql_expression_dependencies WHERE referenced_server_name IS NOT NULL OR referenced_database_name IS NOT NULL;'; EXEC(@sql); END TRY BEGIN CATCH PRINT N'Skipped '+QUOTENAME(@db)+N': '+ERROR_MESSAGE(); END CATCH; FETCH NEXT FROM c INTO @db; END; CLOSE c; DEALLOCATE c; +IF @IncludeSensitiveLoginScripts=1 BEGIN SET @sql=N'USE '+QUOTENAME(@InventoryDB)+N'; INSERT inv.LoginMigrationScripts SELECT name,1,N''CREATE LOGIN ''+QUOTENAME(name)+N'' WITH PASSWORD = ''+CONVERT(nvarchar(max),password_hash,1)+N'' HASHED, SID = ''+CONVERT(nvarchar(max),sid,1)+N'', DEFAULT_DATABASE = ''+QUOTENAME(COALESCE(default_database_name,N''master''))+N'';'' FROM sys.sql_logins WHERE name NOT LIKE N''##%'';'; EXEC(@sql); END; +SET @sql=N'USE '+QUOTENAME(@InventoryDB)+N'; INSERT inv.MigrationChecklist SELECT N''Databases'',N''User databases'',COUNT_BIG(*),N''Backup/restore; preserve owner, compatibility, files and recovery model'',N''Review'' FROM inv.Databases WHERE database_id>4 UNION ALL SELECT N''Security'',N''Server principals'',COUNT_BIG(*),N''Migrate required logins with SID and server permissions'',N''Review'' FROM inv.ServerPrincipals UNION ALL SELECT N''Integration'',N''Linked servers'',COUNT_BIG(*),N''Recreate providers/options/mappings; re-enter secrets securely'',N''Review'' FROM inv.LinkedServers WHERE server_id<>0 UNION ALL SELECT N''Automation'',N''SQL Agent jobs'',COUNT_BIG(*),N''Script jobs, owners, proxies, steps and schedules'',N''Review'' FROM inv.AgentJobs UNION ALL SELECT N''Security'',N''TDE databases'',COUNT_BIG(*),N''Back up certificate and private key before restore'',N''Critical'' FROM inv.TDE WHERE encryption_state IN(2,3,4,5,6) UNION ALL SELECT N''Dependencies'',N''External references'',COUNT_BIG(*),N''Validate servers, databases, DNS, paths and connectivity'',N''Review'' FROM inv.ExternalDependencies UNION ALL SELECT N''Operations'',N''Audits'',COUNT_BIG(*),N''Recreate audit targets/specifications and validate paths'',N''Review'' FROM inv.Audits; SELECT * FROM inv.MigrationChecklist ORDER BY Category,Item;'; EXEC(@sql);