Skip to content

Commit 187ef0e

Browse files
p3rf Teamcopybara-github
authored andcommitted
Added GCE SQL Server 2025 images to PKB
PiperOrigin-RevId: 847010068
1 parent be3af22 commit 187ef0e

File tree

5 files changed

+86
-20
lines changed

5 files changed

+86
-20
lines changed

perfkitbenchmarker/os_types.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,12 @@
7171
WINDOWS2019_SQLSERVER_2019_ENTERPRISE = (
7272
'windows2019_desktop_sqlserver_2019_enterprise'
7373
)
74+
WINDOWS2019_SQLSERVER_2025_STANDARD = (
75+
'windows2019_desktop_sqlserver_2025_standard'
76+
)
77+
WINDOWS2019_SQLSERVER_2025_ENTERPRISE = (
78+
'windows2019_desktop_sqlserver_2025_enterprise'
79+
)
7480
WINDOWS2022_SQLSERVER_2019_STANDARD = (
7581
'windows2022_desktop_sqlserver_2019_standard'
7682
)
@@ -83,6 +89,12 @@
8389
WINDOWS2022_SQLSERVER_2022_ENTERPRISE = (
8490
'windows2022_desktop_sqlserver_2022_enterprise'
8591
)
92+
WINDOWS2022_SQLSERVER_2025_STANDARD = (
93+
'windows2022_desktop_sqlserver_2025_standard'
94+
)
95+
WINDOWS2022_SQLSERVER_2025_ENTERPRISE = (
96+
'windows2022_desktop_sqlserver_2025_enterprise'
97+
)
8698
WINDOWS2025_SQLSERVER_2019_STANDARD = (
8799
'windows2025_desktop_sqlserver_2019_standard'
88100
)
@@ -95,6 +107,12 @@
95107
WINDOWS2025_SQLSERVER_2022_ENTERPRISE = (
96108
'windows2025_desktop_sqlserver_2022_enterprise'
97109
)
110+
WINDOWS2025_SQLSERVER_2025_STANDARD = (
111+
'windows2025_desktop_sqlserver_2025_standard'
112+
)
113+
WINDOWS2025_SQLSERVER_2025_ENTERPRISE = (
114+
'windows2025_desktop_sqlserver_2025_enterprise'
115+
)
98116

99117
# Base-only OS types
100118
DEBIAN = 'debian'
@@ -176,14 +194,20 @@
176194
WINDOWS2019_SQLSERVER_2017_ENTERPRISE,
177195
WINDOWS2019_SQLSERVER_2019_STANDARD,
178196
WINDOWS2019_SQLSERVER_2019_ENTERPRISE,
197+
WINDOWS2019_SQLSERVER_2025_STANDARD,
198+
WINDOWS2019_SQLSERVER_2025_ENTERPRISE,
179199
WINDOWS2022_SQLSERVER_2019_STANDARD,
180200
WINDOWS2022_SQLSERVER_2019_ENTERPRISE,
181201
WINDOWS2022_SQLSERVER_2022_STANDARD,
182202
WINDOWS2022_SQLSERVER_2022_ENTERPRISE,
203+
WINDOWS2022_SQLSERVER_2025_STANDARD,
204+
WINDOWS2022_SQLSERVER_2025_ENTERPRISE,
183205
WINDOWS2025_SQLSERVER_2019_STANDARD,
184206
WINDOWS2025_SQLSERVER_2019_ENTERPRISE,
185207
WINDOWS2025_SQLSERVER_2022_STANDARD,
186208
WINDOWS2025_SQLSERVER_2022_ENTERPRISE,
209+
WINDOWS2025_SQLSERVER_2025_STANDARD,
210+
WINDOWS2025_SQLSERVER_2025_ENTERPRISE,
187211
]
188212

189213
WINDOWS_OS_TYPES = (

perfkitbenchmarker/providers/gcp/gce_windows_virtual_machine.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,14 +246,20 @@ class WindowsGceSqlServerVirtualMachine(WindowsGceVirtualMachine):
246246
os_types.WINDOWS2019_SQLSERVER_2017_ENTERPRISE: 'sql-ent-2017-win-2019',
247247
os_types.WINDOWS2019_SQLSERVER_2019_STANDARD: 'sql-std-2019-win-2019',
248248
os_types.WINDOWS2019_SQLSERVER_2019_ENTERPRISE: 'sql-ent-2019-win-2019',
249+
os_types.WINDOWS2019_SQLSERVER_2025_STANDARD: 'sql-std-2025-win-2019',
250+
os_types.WINDOWS2019_SQLSERVER_2025_ENTERPRISE: 'sql-ent-2025-win-2019',
249251
os_types.WINDOWS2022_SQLSERVER_2019_STANDARD: 'sql-std-2019-win-2022',
250252
os_types.WINDOWS2022_SQLSERVER_2019_ENTERPRISE: 'sql-ent-2019-win-2022',
251253
os_types.WINDOWS2022_SQLSERVER_2022_STANDARD: 'sql-std-2022-win-2022',
252254
os_types.WINDOWS2022_SQLSERVER_2022_ENTERPRISE: 'sql-ent-2022-win-2022',
255+
os_types.WINDOWS2022_SQLSERVER_2025_STANDARD: 'sql-std-2025-win-2022',
256+
os_types.WINDOWS2022_SQLSERVER_2025_ENTERPRISE: 'sql-ent-2025-win-2022',
253257
os_types.WINDOWS2025_SQLSERVER_2019_STANDARD: 'sql-std-2019-win-2025',
254258
os_types.WINDOWS2025_SQLSERVER_2019_ENTERPRISE: 'sql-ent-2019-win-2025',
255259
os_types.WINDOWS2025_SQLSERVER_2022_STANDARD: 'sql-std-2022-win-2025',
256260
os_types.WINDOWS2025_SQLSERVER_2022_ENTERPRISE: 'sql-ent-2022-win-2025',
261+
os_types.WINDOWS2025_SQLSERVER_2025_STANDARD: 'sql-std-2025-win-2025',
262+
os_types.WINDOWS2025_SQLSERVER_2025_ENTERPRISE: 'sql-ent-2025-win-2025',
257263
}
258264

259265
OS_TYPE = os_types.WINDOWS_SQLSERVER_OS_TYPES

perfkitbenchmarker/sqlserver_iaas_relational_db.py

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ def MoveSQLServerTempDb(
141141

142142
if self.TEMPDB_DISK_LETTER in drive_list:
143143
stdout, _ = vm.RemoteCommand(
144-
'sqlcmd -h -1 -Q "SET NOCOUNT '
144+
'sqlcmd -C -h -1 -Q "SET NOCOUNT '
145145
" ON; select f.name + CASE WHEN "
146146
"f.type = 1 THEN '.ldf' "
147147
"ELSE '.mdf' END "
@@ -161,7 +161,7 @@ def MoveSQLServerTempDb(
161161
for tmp_db_file in tmp_db_files_list:
162162
tmp_db_name = tmp_db_file.split(".")[0]
163163
vm.RemoteCommand(
164-
'sqlcmd -Q "ALTER DATABASE tempdb '
164+
'sqlcmd -C -Q "ALTER DATABASE tempdb '
165165
"MODIFY FILE (NAME = [{}], "
166166
"FILENAME = '{}:\\TEMPDB\\{}');\" -U {} -P {}".format(
167167
tmp_db_name, tempdb_disk, tmp_db_file,
@@ -227,7 +227,7 @@ def MoveLogAndTempDbFiles(self):
227227

228228
# Sets the default log database to the new log disk
229229
self.server_vm.RemoteCommand(
230-
f"sqlcmd -U {self.spec.database_username} "
230+
f"sqlcmd -C -U {self.spec.database_username} "
231231
f'-P {self.spec.database_password} -Q "EXEC xp_instance_regwrite'
232232
" N'HKEY_LOCAL_MACHINE',"
233233
" N'Software\\Microsoft\\MSSQLServer\\MSSQLServer', N'DefaultLog',"
@@ -545,7 +545,7 @@ def EnsurePrimaryReplica(self):
545545
"""Move server_vm as primary node in AOAG."""
546546
# Set first server vm as primary if necessary
547547
out, _ = self.server_vm.RemoteCommand(
548-
"""sqlcmd -Q \"
548+
"""sqlcmd -C -Q \"
549549
SELECT
550550
role_desc
551551
FROM
@@ -557,7 +557,7 @@ def EnsurePrimaryReplica(self):
557557
""".format(sql_engine_utils.SQLSERVER_AOAG_NAME))
558558
if "PRIMARY" not in out:
559559
self.server_vm.RemoteCommand(
560-
'sqlcmd -Q "ALTER AVAILABILITY GROUP [{}] FAILOVER"'.format(
560+
'sqlcmd -C -Q "ALTER AVAILABILITY GROUP [{}] FAILOVER"'.format(
561561
sql_engine_utils.SQLSERVER_AOAG_NAME))
562562

563563
def ConfigureSQLServerHaAoag(self):
@@ -644,7 +644,7 @@ def ConfigureSQLServerHaAoag(self):
644644
r"mkdir F:\DATA; mkdir F:\Logs; mkdir F:\Backup")
645645
self.PushAndRunPowershellScript(
646646
server_vm, "check_sql_server_status.ps1")
647-
server_vm.RemoteCommand("""sqlcmd -Q \"
647+
server_vm.RemoteCommand("""sqlcmd -C -Q \"
648648
USE [master]
649649
GO
650650
ALTER LOGIN [sa] ENABLE
@@ -690,7 +690,7 @@ def ConfigureSQLServerHaAoag(self):
690690
# failed to for user 'NT AUTHORITY\ANONYMOUS LOGON double
691691
self.PushAndRunPowershellScript(server_vm, "check_sql_server_status.ps1")
692692
server_vm.RemoteCommand(
693-
"""sqlcmd -Q \"--- YOU MUST EXECUTE THE FOLLOWING SCRIPT IN SQLCMD MODE.
693+
"""sqlcmd -C -Q \"--- YOU MUST EXECUTE THE FOLLOWING SCRIPT IN SQLCMD MODE.
694694
USE [master]
695695
GO
696696
@@ -727,7 +727,7 @@ def ConfigureSQLServerHaAoag(self):
727727
self.PushAndRunPowershellScript(
728728
replica_vms[0], "check_sql_server_status.ps1")
729729
replica_vms[0].RemoteCommand(
730-
"""sqlcmd -Q \"--- YOU MUST EXECUTE THE FOLLOWING SCRIPT IN SQLCMD MODE.
730+
"""sqlcmd -C -Q \"--- YOU MUST EXECUTE THE FOLLOWING SCRIPT IN SQLCMD MODE.
731731
USE [master]
732732
GO
733733
@@ -766,7 +766,7 @@ def ConfigureSQLServerHaAoag(self):
766766
)
767767
self.PushAndRunPowershellScript(server_vm, "check_sql_server_status.ps1")
768768
server_vm.RemoteCommand(
769-
"""sqlcmd -Q \"--- YOU MUST EXECUTE THE FOLLOWING SCRIPT IN SQLCMD MODE.
769+
"""sqlcmd -C -Q \"--- YOU MUST EXECUTE THE FOLLOWING SCRIPT IN SQLCMD MODE.
770770
USE [master]
771771
GO
772772
@@ -788,7 +788,7 @@ def ConfigureSQLServerHaAoag(self):
788788
self.PushAndRunPowershellScript(
789789
replica_vms[0], "check_sql_server_status.ps1")
790790
replica_vms[0].RemoteCommand(
791-
"""sqlcmd -Q \"--- YOU MUST EXECUTE THE FOLLOWING SCRIPT IN SQLCMD MODE.
791+
"""sqlcmd -C -Q \"--- YOU MUST EXECUTE THE FOLLOWING SCRIPT IN SQLCMD MODE.
792792
ALTER AVAILABILITY GROUP [{0}] JOIN;
793793
GO
794794
@@ -809,7 +809,7 @@ def ConfigureSQLServerHaAoag(self):
809809

810810
self.PushAndRunPowershellScript(server_vm, "check_sql_server_status.ps1")
811811
server_vm.RemoteCommand(
812-
"""sqlcmd -Q \"
812+
"""sqlcmd -C -Q \"
813813
ALTER AVAILABILITY GROUP [{1}] REMOVE DATABASE [{0}];
814814
DROP DATABASE [{0}];\"
815815
""".format(sql_engine_utils.SQLSERVER_AOAG_DB_NAME,
@@ -892,28 +892,28 @@ def GetSQLServerVersion(
892892

893893
def ConfigureSQLServer(vm, username: str, password: str):
894894
"""Update the username and password on a SQL Server."""
895-
vm.RemoteCommand(f'sqlcmd -Q "ALTER LOGIN {username} ENABLE;"')
895+
vm.RemoteCommand(f'sqlcmd -C -Q "ALTER LOGIN {username} ENABLE;"')
896896
vm.RemoteCommand(
897-
f"sqlcmd -Q \"ALTER LOGIN sa WITH PASSWORD = '{password}' ;\""
897+
f"sqlcmd -C -Q \"ALTER LOGIN sa WITH PASSWORD = '{password}' ;\""
898898
)
899899
vm.RemoteCommand(
900-
"sqlcmd -Q \"EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', "
900+
"sqlcmd -C -Q \"EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', "
901901
"N'Software\\Microsoft\\MSSQLServer\\MSSQLServer', "
902902
"N'LoginMode', REG_DWORD, 2\""
903903
)
904904
vm.RemoteCommand(
905-
"sqlcmd -Q \"EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', "
905+
"sqlcmd -C -Q \"EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', "
906906
"N'Software\\Microsoft\\MSSQLServer\\MSSQLServer', "
907907
"N'BackupDirectory', REG_SZ, N'C:\\scratch'\""
908908
)
909909

910910
vm.RemoteCommand(
911-
"sqlcmd -Q \"EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', "
911+
"sqlcmd -C -Q \"EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', "
912912
"N'Software\\Microsoft\\MSSQLServer\\MSSQLServer', "
913913
f"N'DefaultData', REG_SZ, N'{vm.assigned_disk_letter}:\\'\""
914914
)
915915
vm.RemoteCommand(
916-
"sqlcmd -Q \"EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', "
916+
"sqlcmd -C -Q \"EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', "
917917
"N'Software\\Microsoft\\MSSQLServer\\MSSQLServer', "
918918
f"N'DefaultLog', REG_SZ, N'{vm.assigned_disk_letter}:\\'\""
919919
)

perfkitbenchmarker/windows_virtual_machine.py

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -792,6 +792,18 @@ class Windows2019SQLServer2019Enterprise(BaseWindowsMixin):
792792
OS_TYPE = os_types.WINDOWS2019_SQLSERVER_2019_ENTERPRISE
793793

794794

795+
class Windows2019SQLServer2025Standard(BaseWindowsMixin):
796+
"""Class holding Windows Server 2019 with Desktop Experience VM specifics."""
797+
798+
OS_TYPE = os_types.WINDOWS2019_SQLSERVER_2025_STANDARD
799+
800+
801+
class Windows2019SQLServer2025Enterprise(BaseWindowsMixin):
802+
"""Class holding Windows Server 2019 with Desktop Experience VM specifics."""
803+
804+
OS_TYPE = os_types.WINDOWS2019_SQLSERVER_2025_ENTERPRISE
805+
806+
795807
class Windows2022SQLServer2019Standard(BaseWindowsMixin):
796808
"""Class holding Windows Server 2022 with Desktop Experience VM specifics."""
797809

@@ -816,13 +828,37 @@ class Windows2022SQLServer2022Enterprise(BaseWindowsMixin):
816828
OS_TYPE = os_types.WINDOWS2022_SQLSERVER_2022_ENTERPRISE
817829

818830

819-
class Windows2025SQLServer2022Standard(BaseWindowsMixin):
831+
class Windows2022SQLServer2025Standard(BaseWindowsMixin):
820832
"""Class holding Windows Server 2022 with Desktop Experience VM specifics."""
821833

834+
OS_TYPE = os_types.WINDOWS2022_SQLSERVER_2025_STANDARD
835+
836+
837+
class Windows2022SQLServer2025Enterprise(BaseWindowsMixin):
838+
"""Class holding Windows Server 2022 with Desktop Experience VM specifics."""
839+
840+
OS_TYPE = os_types.WINDOWS2022_SQLSERVER_2025_ENTERPRISE
841+
842+
843+
class Windows2025SQLServer2022Standard(BaseWindowsMixin):
844+
"""Class holding Windows Server 2025 with Desktop Experience VM specifics."""
845+
822846
OS_TYPE = os_types.WINDOWS2025_SQLSERVER_2022_STANDARD
823847

824848

825849
class Windows2025SQLServer2022Enterprise(BaseWindowsMixin):
826-
"""Class holding Windows Server 2022 with Desktop Experience VM specifics."""
850+
"""Class holding Windows Server 2025 with Desktop Experience VM specifics."""
827851

828852
OS_TYPE = os_types.WINDOWS2025_SQLSERVER_2022_ENTERPRISE
853+
854+
855+
class Windows2025SQLServer2025Standard(BaseWindowsMixin):
856+
"""Class holding Windows Server 2025 with Desktop Experience VM specifics."""
857+
858+
OS_TYPE = os_types.WINDOWS2025_SQLSERVER_2025_STANDARD
859+
860+
861+
class Windows2025SQLServer2025Enterprise(BaseWindowsMixin):
862+
"""Class holding Windows Server 2025 with Desktop Experience VM specifics."""
863+
864+
OS_TYPE = os_types.WINDOWS2025_SQLSERVER_2025_ENTERPRISE

tests/iaas_relational_db_test.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -438,7 +438,7 @@ def testMoveLogAndTempDbFiles(self):
438438
'{ New-Item -Path $Path -ItemType Directory }'
439439
),
440440
mock.call(
441-
"sqlcmd -U sa -P password -Q \"EXEC xp_instance_regwrite"
441+
"sqlcmd -C -U sa -P password -Q \"EXEC xp_instance_regwrite"
442442
" N'HKEY_LOCAL_MACHINE', "
443443
"N'Software\\Microsoft\\MSSQLServer\\MSSQLServer', N'DefaultLog',"
444444
" REG_SZ, N'Y:\\MSSQL\\LOGDB'\""

0 commit comments

Comments
 (0)