Jak ponownie zainstalować programu Virtual Machine Manager 2012 R2 z UR8 lub nowszym

Podsumowanie

Jeśli masz zainstalowany program Microsoft System Center 2012 R2 Virtual Machine Manager (VMM 2012 R2), ponowną instalację systemu 8 pakietu zbiorczego aktualizacji VMM lub nowszych aktualizacji kończy się niepowodzeniem. Ponadto zostanie wyświetlony następujący komunikat o błędzie i ponowna instalacja VMM:

czas : InnerException.Type: System.Data.SqlClient.SqlException, InnerException.Message: ograniczenie naruszenia klucza podstawowego 'PK_tbl_WLC_ServiceTemplate'. Nie można wstawić zduplikowany klucz w obiekcie "dbo.tbl_WLC_ServiceTemplate". Zduplikowane wartości kluczy jest < key_value >.

Ponowna instalacja programu Virtual Machine Manager

Wykonaj następujące kroki:

  1. Odinstalowanie programu Virtual Machine Manager. Wybierz opcję Zachowaj bazy danych .

  2. Otwórz SQL Management Studio, a następnie połącz z bazą danych Retained.

  3. Uruchom następującą procedurę przechowywaną: /****** Object: StoredProcedure [dbo].[prc_WLC_GetVNetworkAdapterByNicId] Script Date: 12/16/2015 2:13:12 AM ******/ -- ========================================================= -- Create date: 08/31/2007 -- Description: Get VNetworkAdapter for a given NicId -- ========================================================= ALTER PROCEDURE [dbo].[prc_WLC_GetVNetworkAdapterByNicId] @VNicId uniqueidentifier AS BEGIN DECLARE @error int SET @error = 0 SET NOCOUNT ON; SELECT [Name], [Description], [OwnerIdentifier], [CreationTime], vna.[ModifiedTime], [Accessibility], [ObjectState], [VNicId], [HWProfileId], [ParentType], [VirtualNetwork], [MACAddressType], [MACAddress], [IPv4AddressType], [IPv6AddressType], [PortId], [DeviceId], [NetworkAdapterType], [VMSubnetId], [VMNetworkId], [PortClassificationId], [PortProfileSetId], [VLanEnabled], [VLanId], [VmwAdapterIndex], [VmwPortGroup], [SlotId], [MACSpoofingEnabled], [EnableGuestIPNetworkVirtualizationUpdates], [VMNetworkOptimizationEnabled], [HostId], [LogicalSwitchId], [NetworkKBytesReadTieredPerfCounterID], [NetworkKBytesWriteTieredPerfCounterID], [VMNetworkServiceSetting], [UsesSriov], [IsUsedForHostManagement], [IPv4Addresses], [IPv6Addresses], [DefaultGateways], [DNSServers], [TemplateNicName], compliance.PortClassificationComplianceErrors AS [PortClassificationComplianceErrors], compliance.VMNetworkComplianceErrors AS [VMNetworkComplianceErrors] FROM dbo.tbl_WLC_VNetworkAdapter vna LEFT JOIN dbo.tbl_NetMan_VirtualNetworkAdapterCompliance compliance ON vna.VNicId = compliance.VirtualNetworkAdapterId WHERE VNicId = @VNicId SET @error = @@ERROR SET NOCOUNT OFF RETURN @error END IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[prc_RBS_UserRole_Add]') AND OBJECTPROPERTY(id, N'IsProcedure') = 1) SET NOEXEC OFF ELSE SET NOEXEC ON GO /****** Object: StoredProcedure [dbo].[prc_RBS_UserRole_Add] Script Date: 10/03/2007 12:13:45 ******/ ALTER PROCEDURE [dbo].[prc_RBS_UserRole_Add] ( @RoleID uniqueidentifier, @ProfileType tinyint, @Description nvarchar(2048), @Name nvarchar(256), @OwnerIdentifier nvarchar(256), @ParentUserRole uniqueidentifier, @LastUpdatedTimestamp datetime, @ShowPROTips bit, @VMNetworkMaximum smallint, @VMNetworkMaximumPerUser smallint, @VPNConnectionMaximum smallint, @VPNConnectionMaximumPerUser smallint, @VMNetworkVPNMaximumBandwidthInKbps bigint, @VMNetworkVPNMaximumBandwidthOutKbps bigint, @NATConnectionMaximum smallint = NULL, @NATConnectionMaximumPerUser smallint = NULL ) AS BEGIN TRAN SET NOCOUNT ON DECLARE @error int DECLARE @IsDuplicateName bit DECLARE @IsRoleAlreadyPresent bit SELECT @IsDuplicateName = [dbo].[fn_RBS_UserRole_NameExists](@RoleID, @ParentUserRole, @Name) -- This is especially used in Upgrade scenarios where we are inserting Administrator role SELECT @IsRoleAlreadyPresent = Count(RoleID) FROM [dbo].[tbl_RBS_UserRole] WHERE RoleID = @RoleID IF (@IsDuplicateName = 0 AND @IsRoleAlreadyPresent = 0) BEGIN INSERT INTO [dbo].[tbl_RBS_UserRole] ([RoleID] ,[ProfileType] ,[Description] ,[Name] ,[OwnerIdentifier] ,[ParentUserRole] ,[LastUpdatedTimestamp] ,[ShowPROTips] ,[VMNetworkMaximum] ,[VMNetworkMaximumPerUser] ,[VPNConnectionMaximum] ,[VPNConnectionMaximumPerUser] ,[VMNetworkVPNMaximumBandwidthInKbps] ,[VMNetworkVPNMaximumBandwidthOutKbps] ,[NATConnectionMaximum] ,[NATConnectionMaximumPerUser] ) VALUES ( @RoleID, @ProfileType, @Description, @Name, @OwnerIdentifier, @ParentUserRole, @LastUpdatedTimestamp, @ShowPROTips, @VMNetworkMaximum, @VMNetworkMaximumPerUser, @VPNConnectionMaximum, @VPNConnectionMaximumPerUser, @VMNetworkVPNMaximumBandwidthInKbps, @VMNetworkVPNMaximumBandwidthOutKbps, @NATConnectionMaximum, @NATConnectionMaximumPerUser ) -- Insert flattened tree of the hierarchy for this user role INSERT INTO [dbo].[tbl_RBS_UserRoleHierarchy] SELECT RoleId, ParentRoleId, hl FROM view_RBS_UserRoleParentChildRelation ur where ur.RoleID = @RoleID SELECT @error = @@ERROR END ELSE BEGIN SET @error = 50008 END SET NOCOUNT OFF COMMIT TRAN RETURN @error Go SET NOEXEC OFF -------------------------------------------------------------------------------------------- IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[prc_RBS_UserRole_CommonUpdate]') AND OBJECTPROPERTY(id, N'IsProcedure') = 1) SET NOEXEC OFF ELSE SET NOEXEC ON GO /****** Object: StoredProcedure [dbo].[prc_RBS_UserRole_CommonUpdate] Script Date: 10/03/2007 12:13:45 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[prc_RBS_UserRole_CommonUpdate] ( @RoleID uniqueidentifier, @Description nvarchar(2048), @OwnerIdentifier nvarchar(256), @Name nvarchar(256), @LastUpdatedTimestamp datetime, @ShowPROTips bit, @VMNetworkMaximum smallint, @VMNetworkMaximumPerUser smallint, @VPNConnectionMaximum smallint, @VPNConnectionMaximumPerUser smallint, @VMNetworkVPNMaximumBandwidthInKbps bigint, @VMNetworkVPNMaximumBandwidthOutKbps bigint, @NATConnectionMaximum smallint = NULL, @NATConnectionMaximumPerUser smallint = NULL ) AS SET NOCOUNT ON DECLARE @error int DECLARE @ParentUserRole uniqueidentifier DECLARE @IsDuplicateName bit DECLARE @OldName nvarchar(256) SELECT @ParentUserRole = [ParentUserRole], @OldName = [Name] FROM [dbo].[tbl_RBS_UserRole] WHERE [RoleID] = @RoleID IF (@OldName = @Name) BEGIN -- We are not changing role name. This is necessary if Admin has already an SSU1 and TA created SSU1, we should not error out here SELECT @IsDuplicateName = 0 END ELSE BEGIN SELECT @IsDuplicateName = [dbo].[fn_RBS_UserRole_NameExists](@RoleID, @ParentUserRole, @Name) END IF (@IsDuplicateName = 0) BEGIN UPDATE [dbo].[tbl_RBS_UserRole] SET [Description] = @Description, [OwnerIdentifier] = @OwnerIdentifier, [Name] = @Name, [LastUpdatedTimestamp] = @LastUpdatedTimestamp, [ShowPROTips] = @ShowPROTips, [VMNetworkMaximum] = @VMNetworkMaximum, [VMNetworkMaximumPerUser] = @VMNetworkMaximumPerUser, [VPNConnectionMaximum] = @VPNConnectionMaximum, [VPNConnectionMaximumPerUser] = @VPNConnectionMaximumPerUser, [VMNetworkVPNMaximumBandwidthInKbps] = @VMNetworkVPNMaximumBandwidthInKbps, [VMNetworkVPNMaximumBandwidthOutKbps] = @VMNetworkVPNMaximumBandwidthOutKbps, [NATConnectionMaximum] = @NATConnectionMaximum, [NATConnectionMaximumPerUser] = @NATConnectionMaximumPerUser WHERE [RoleID] = @RoleID SELECT @error = @@ERROR END ELSE BEGIN SET @error = 50008 END SET NOCOUNT OFF RETURN @error GO SET NOEXEC OFF

  4. Zainstaluj program VMM 2012 R2 z oryginalnego nośnika instalacyjnego. W niektórych przypadkach usługa VMM może nie uruchamia się poprawnie. Jednak to zachowanie może być bezpiecznie zignorowana w tym momencie.

  5. Pakietu zbiorczego aktualizacji (na przykład pakiet zbiorczy aktualizacji 7 lub 8) odpowiadający wersji VMM 2012 R2, który zainstalowano wcześniej. Jest to wymagane do poprawnego działania bazy danych. Jeśli aktualizujesz z wersji do UR powyżej UR7 lub UR8, można zaktualizować bezpośrednio do tego UR. Nie trzeba zainstalować UR7 lub UR8. Na przykład można zainstalować wersję uaktualnienia bezpośrednio do UR14 i następnie uruchom drugi skrypt w kroku 6.

  6. Użyj programu SQL Management Studio uruchomić następującą procedurę przechowywaną w bazie danych VMM: /****** Object: StoredProcedure [dbo].[prc_WLC_GetVNetworkAdapterByNicId] Script Date: 12/16/2015 2:13:12 AM ******/ -- ========================================================= -- Create date: 08/31/2007 -- Description: Get VNetworkAdapter for a given NicId -- ========================================================= ALTER PROCEDURE [dbo].[prc_WLC_GetVNetworkAdapterByNicId] @VNicId uniqueidentifier AS BEGIN DECLARE @error int SET @error = 0 SET NOCOUNT ON; SELECT [Name], [Description], [OwnerIdentifier], [CreationTime], vna.[ModifiedTime], [Accessibility], [ObjectState], [VNicId], [HWProfileId], [ParentType], [VirtualNetwork], [MACAddressType], [MACAddress], [IPv4AddressType], [IPv6AddressType], [PortId], [DeviceId], [NetworkAdapterType], [VMSubnetId], [VMNetworkId], [PortClassificationId], [PortProfileSetId], [VLanEnabled], [VLanId], [VmwAdapterIndex], [VmwPortGroup], [SlotId], [MACSpoofingEnabled], [EnableGuestIPNetworkVirtualizationUpdates], [VMNetworkOptimizationEnabled], [HostId], [LogicalSwitchId], [NetworkKBytesReadTieredPerfCounterID], [NetworkKBytesWriteTieredPerfCounterID], [VMNetworkServiceSetting], [UsesSriov], [IsUsedForHostManagement], [IPv4Addresses], [IPv6Addresses], [DefaultGateways], [DNSServers], [TemplateNicName], compliance.PortClassificationComplianceErrors AS [PortClassificationComplianceErrors], compliance.VMNetworkComplianceErrors AS [VMNetworkComplianceErrors], [AccessControlListID], compliance.NetworkAccessControlListComplianceErrors AS [NetworkAccessControlListComplianceErrors] FROM dbo.tbl_WLC_VNetworkAdapter vna LEFT JOIN dbo.tbl_NetMan_VirtualNetworkAdapterCompliance compliance ON vna.VNicId = compliance.VirtualNetworkAdapterId WHERE VNicId = @VNicId SET @error = @@ERROR SET NOCOUNT OFF RETURN @error END GO

  7. Uruchom ponownie serwer VMM 2012 R2 i upewnij się, że usługa VMM została uruchomiona pomyślnie.

Zainstaluj ponownie wysokiej dostępności programu Virtual Machine Manager (HAVMM)

Aby to zrobić, wykonaj następujące czynności:

  1. Odinstalować serwer zarządzania SCVMM. Wybierz opcję Zachowania bazy danych we wszystkich węzłach HAVMM po wykonaniu tej czynności.

  2. Otwórz SQL Management Studio, a następnie połącz z bazą danych zatrzymanych VMM.

  3. Baza danych VMM należy uruchomić skrypt w kroku 3 w sekcji Ponownej instalacji programu Virtual Machine Manager .

  4. Na pierwszym węźle HAVMM wykonaj następujące kroki:

    1. Zainstaluj program VMM 2012 R2 z oryginalnego nośnika instalacyjnego przez wybranie istniejącej bazy danych. Uwaga W niektórych przypadkach usługa VMM może nie uruchamia się poprawnie. Jednakże można bezpiecznie zignorować ten problem w tym momencie.

    2. R zastosować pakiet zbiorczy aktualizacji, który był poprzednio zainstalowany (UR8 lub nowsza wersja), przed odinstalowaniem serwera VMM.

  5. Baza danych programu VMM Uruchom skrypt po instalacji w kroku 6 w sekcji Ponownej instalacji programu Virtual Machine Manager .

  6. Powtórz krok 4 i 5 na pozostałych węzłach HAVMM ponowne instalowanie serwera VMM.

  7. Uaktualnienie do najnowszej UR dostępne lub UR, które jest zatwierdzone w danym środowisku na wszystkich serwerach VMM, a następnie zaktualizuj wszystkie hosty do najnowszej Agent VMM na danym poziomie UR.

Potrzebna dalsza pomoc?

Rozwijaj swoje umiejętności
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów firmy Microsoft

Czy te informacje były pomocne?

Dziękujemy za opinię!

Dziękujemy za opinię! Wygląda na to, że połączenie Cię z jednym z naszych agentów pomocy technicznej pakietu Office może być pomocne.

×