Operations Manager 2007 R2에서 업그레이드할 경우 업그레이드 후 작업
적용 대상: System Center 2012 R2 Operations Manager, System Center 2012 - Operations Manager, System Center 2012 SP1 - Operations Manager
System Center 2012 - Operations Manager에 대한 업그레이드 프로세스를 완료한 후 몇 가지 업그레이드 후 작업을 수행해야 합니다.
업그레이드 후 작업
다음 표에서는 System Center 2012 - Operations Manager로 업그레이드한 후 완료해야 하는 작업을 보여 줍니다. 또한 작업을 수행해야 하는 시기도 나타냅니다.
작업 |
작업 수행 시기 |
---|---|
알림 구독 다시 사용 |
업그레이드 경로에서 업그레이드 작업을 완료한 후 |
커넥터 서비스 다시 시작 또는 다시 사용 |
업그레이드 경로에서 업그레이드 작업을 완료한 후 그리고 커넥터 서비스가 설치된 경우에만 |
이전 RMS 제거 |
보조 관리 서버에서 관리 그룹을 업그레이드하는 경우에만 |
재정의 업데이트 |
관리 그룹을 업그레이드한 후 |
업그레이드가 제대로 완료되었는지 확인 |
업그레이드 경로에서 업그레이드 작업을 완료한 후 |
각 관리 그룹에서 SQL 쿼리 실행 |
각 관리 그룹에서 SQL 쿼리를 실행하여 Localizedtext 테이블 및 Publishmessage 테이블 정리 |
리소스 풀에 UNIX/Linux 에이전트 할당 |
업그레이드 경로에서 업그레이드 작업을 완료한 후 |
알림 구독 다시 사용
업그레이드가 완료되면 다음 절차에 따라 구독을 사용하도록 다시 설정할 수 있습니다.
구독을 사용하도록 다시 설정하려면
-
Operations Manager 관리 그룹에 대한 System Center 2012 - Operations Manager 관리자 역할의 구성원인 계정을 사용하여 운영 콘솔을 엽니다.
-
운영 콘솔의 탐색 창에서 관리 단추를 클릭합니다.
참고
관리 서버가 아닌 컴퓨터에서 운영 콘솔을 실행하는 경우 서버에 연결 대화 상자가 표시됩니다.서버 이름 입력란에 연결할 System Center 2012 - Operations Manager 관리 서버 이름을 입력합니다.
-
관리 창의 알림에서 구독을 클릭합니다.
-
작업 창에서 나열된 각 구독에 대해 사용을 클릭합니다.
커넥터 서비스 다시 시작 또는 다시 사용
설치된 모든 커넥터에 대한 타사 설명서를 참조하여 커넥터가 System Center 2012 - Operations Manager에 대해 지원되는지 확인하십시오.
커넥터 서비스를 다시 시작하려면
-
작업 표시줄에서 시작, 관리 도구, 서비스를 차례로 클릭합니다.
-
이름 열에서 다시 시작하려는 커넥터를 마우스 오른쪽 단추로 클릭한 후 시작을 클릭합니다.
이전 RMS 제거
RMS가 System Center 2012 - Operations Manager에 대해 지원되는 구성을 충족하지 않아서 보조 관리 서버에서 System Center 2012 - Operations Manager로 업그레이드하는 경우, 업그레이드하는 중에 RMS가 관리 그룹에서 제거됩니다. 그러면 이전 RMS(루트 관리 서버)를 제거할 수 있습니다.
참고
보조 관리 서버에서 업그레이드한 경우 새 관리 서버를 가리키는 구성 설정을 변경하지 않고 이전 RMS와 동일한 Windows 컴퓨터 이름으로 새 관리 서버를 구성할 수 있습니다.
이전 RMS를 제거하려면
-
로컬 관리자 권한이 있는 계정을 사용하여 RMS를 호스트하는 컴퓨터에 로그온합니다.
-
작업 표시줄에서 시작 및 제어판을 차례로 클릭한 후 프로그램 및 기능을 실행합니다.
-
Operations Manager 2007 R2를 마우스 오른쪽 단추로 클릭하고 제거를 클릭합니다.
-
프로그램 및 기능 대화 상자에서 예를 클릭하여 제거할 프로그램을 확인합니다.
재정의 업데이트
Active Directory 통합 규칙에 대해 재정의를 만든 경우 관리 그룹 업그레이드가 완료된 후 재정의를 다시 만들어야 합니다. 이전 재정의를 삭제한 후 Active Directory 할당 리소스 풀을 대상으로 하며 이전 재정의와 일치하는 새 재정의를 만듭니다.
업그레이드가 제대로 완료되었는지 확인
다음 작업을 수행하여 업그레이드가 제대로 완료되었는지 확인할 수 있습니다.
상태 서비스 감시자 상태 보기에서 관리 서버 및 에이전트의 상태를 확인합니다. 운영 콘솔의 관리 작업 영역에서 관리 서버 및 에이전트의 상태가 정상인지 확인합니다.모니터링 작업 영역에서 관리 그룹 상태와 관련된 경고가 있는지 확인합니다.
모든 관리 서버의 이벤트 로그에서 새로운 오류를 검토합니다.
마지막에 수정된 열을 기준으로 경고를 정렬하면 새로운 경고를 확인할 수 있습니다.
데이터베이스 서버에서 CPU 사용률 및 디스크 I/O를 확인하여 정상적으로 기능하는지 확인합니다.
보고 기능이 설치된 경우 보고를 클릭한 후 일반 성능 보고서를 실행하여 보고가 제대로 기능하는지 확인합니다.
업그레이드 프로세스 중에 제거한 에이전트를 다시 배포합니다.
각 관리 그룹에서 SQL 쿼리 실행
각 관리 그룹의 운영 데이터베이스에 대해 다음 SQL 쿼리를 실행하여 Localizedtext 테이블 및 Publishmessage 테이블을 정리할 수 있습니다.
-- Create a temporary table to quickly find a PublisherId when you know the MessageId.
BEGIN TRY
CREATE TABLE #PublisherMessageReverseIndex(MessageStringId UNIQUEIDENTIFIER,
MessageId INT)
CREATE CLUSTERED INDEX #PublisherMessageReverseIndex_CI ON #PublisherMessageReverseIndex(MessageStringId)
INSERT INTO #PublisherMessageReverseIndex (MessageStringId, MessageId)
SELECT MessageStringId, MessageId
FROM dbo.PublisherMessages
-- Create a temporary table of message lengths, message IDs, and message hashes with the
-- MessageStringId to quickly determine whether a message is duplicated. Index the table.
CREATE TABLE #LTHashStrings (MessageStringId UNIQUEIDENTIFIER,
LTValueLen INT,
LTValueHash VARBINARY(32),
MessageId INT NULL)
CREATE CLUSTERED INDEX #LTHashStrings_CI ON #LTHashStrings(MessageStringId)
CREATE NONCLUSTERED INDEX #LTHashStrings_NCI1 ON #LTHashStrings(LTValueLen, MessageId, LTValueHash)
-- Create a temporary table for the orphaned PublisherStrings that you find. Orphaned PublisherStrings
-- are rows in PublisherMessages whose corresponding events have already been groomed. They still
-- have corresponding rows in LocalizedText. Do not add rows for PublisherMessages; they are not
-- for duplicated messages.
CREATE TABLE #OrphanedPublisherStrings (PublisherId UNIQUEIDENTIFIER,
MessageStringId UNIQUEIDENTIFIER)
CREATE CLUSTERED INDEX #OrphanedPublisherStrings_CI ON #OrphanedPublisherStrings(MessageStringId)
-- Create a temporary table so that you can determine whether a PublisherMessages row still
-- has a corresponding event. These events do not have an index on the PublisherId, so do
-- not query the EventAllView. If a PublisherId occurs multiple times in the event tables,
-- it is only needed one time in the temp table; therefore, the unique clustered index
-- must contain IGNORE_DUP_KEY. This keeps the temporary table relatively small and saves
-- time when you want to see the orphaned PublisherMessages.
CREATE TABLE #EventAllPublishers (PublisherId UNIQUEIDENTIFIER)
CREATE UNIQUE CLUSTERED INDEX #EventAllPublishers_CI ON #EventAllPublishers (PublisherId)
WITH (IGNORE_DUP_KEY = ON)
-- Populate the temporary table by scanning EventAllView one time.
INSERT INTO #EventAllPublishers(PublisherId)
SELECT PublisherId
FROM EventAllView
-- Populate the first temporary table to determine which messages are duplicated.
INSERT INTO #LTHashStrings (MessageStringId, LTValueLen, LTValueHash, MessageId)
SELECT LTStringId, len(LTValue), HashBytes('SHA1', LTValue), MessageId
FROM dbo.LocalizedText LT
JOIN #PublisherMessageReverseIndex PM ON PM.MessageStringId = LTStringId
-- Create the second table to determine which messages are duplicated.
CREATE TABLE #LTCountByMessage( LTValueLen INT,
MessageId INT,
LTValueHash VARBINARY(32),
MsgCount INT)
CREATE CLUSTERED INDEX #LTCountByMessage_CI ON #LTCountByMessage(LTValueLen, MessageId, LTValueHash)
-- Populate second message for duplicate message detection by scanning the INDEX of
-- the first one and by doing a grouped count.
INSERT INTO #LTCountByMessage (LTValueLen, MessageId, LTValueHash, MsgCount)
SELECT LTValueLen, MessageId, LTValueHash, COUNT(1)
FROM #LTHashStrings
GROUP BY LTValueLen, MessageId, LTValueHash
-- You are now set up to detect both orphaned PublisherStrings and duplicated messages
-- by joining to our relatively small (and correctly indexed) temporary tables.
-- Determine the OrphanedPublisherStrings that have duplicate messages.
INSERT INTO #OrphanedPublisherStrings (PublisherId, MessageStringId)
SELECT PM.PublisherId, PM.MessageStringId
FROM dbo.PublisherMessages PM
JOIN #LTHashStrings LTS ON (LTS.MessageStringId = PM.MessageStringId AND LTS.MessageId = PM.MessageId)
JOIN #LTCountByMessage LTC ON (LTC.LTValueLen = LTS.LTValueLen AND
LTC.MessageId = LTS.MessageId AND LTC.LTValueHash = LTS.LTValueHash)
WHERE PM.PublisherId NOT IN (SELECT PublisherId FROM #EventAllPublishers) AND
LTC.MsgCount > 1
-- Deleting all the OrphanedPublisherStrings and all the corresponding LocalizedText rows
-- at one time may be too large for the transaction log to handle. Create a numbered
-- or ordered table so that you can delete them in relatively small batches and not
-- overtax the transaction log.
CREATE TABLE #NumberOrphanPublisherStrings(OrphanNum INT IDENTITY,
PublisherId UNIQUEIDENTIFIER,
MessageStringId UNIQUEIDENTIFIER)
CREATE CLUSTERED INDEX #NumberOrphanPublisherStrings_CI on #NumberOrphanPublisherStrings(OrphanNum)
-- Populate the numbered table.
INSERT INTO #NumberOrphanPublisherStrings (PublisherId, MessageStringId)
SELECT PublisherId, MessageStringId FROM #OrphanedPublisherStrings
END TRY
BEGIN CATCH
GOTO Error
END CATCH
-- Set up variables so that you can delete the orphaned rows.
-- If the transaction log fills up, try to reduce the @OrphanIncrement value,
-- which controls the number of rows that are delete at the same time.
DECLARE @OrphanNum INT
DECLARE @OrphanIncrement INT
DECLARE @OrphanLimit INT
SET @OrphanNum = 0
SET @OrphanIncrement = 10000
SELECT @OrphanLimit = MAX(OrphanNum) FROM #NumberOrphanPublisherStrings
BEGIN TRY
WHILE @OrphanNum < @OrphanLimit
BEGIN
DELETE dbo.LocalizedText FROM
#NumberOrphanPublisherStrings OPS JOIN dbo.LocalizedText LT
ON LT.LTStringId = OPS.MessageStringId
WHERE OPS.OrphanNum >= @OrphanNum AND OPS.OrphanNum < @OrphanNum + @OrphanIncrement
DELETE dbo.PublisherMessages FROM
#NumberOrphanPublisherStrings OPS JOIN dbo.PublisherMessages PM
ON PM.PublisherId = OPS.PublisherId
WHERE OPS.OrphanNum >= @OrphanNum AND OPS.OrphanNum < @OrphanNum + @OrphanIncrement
SET @OrphanNum = @OrphanNum + @OrphanIncrement
END
END TRY
BEGIN CATCH
GOTO Error
END CATCH
Error:
IF @@ERROR <> 0
SELECT
ERROR_NUMBER() AS ErrorNumber,
ERROR_MESSAGE() AS ErrorMessage;
-- Try to drop all the temporary tables
BEGIN TRY
IF EXISTS (SELECT 1 FROM tempdb.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '#PublisherMessage%')
DROP TABLE #PublisherMessageReverseIndex
IF EXISTS (SELECT 1 FROM tempdb.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '#OrphanedPublisherStrings%')
DROP TABLE #OrphanedPublisherStrings
IF EXISTS (SELECT 1 FROM tempdb.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '#LTHashStrings%')
DROP TABLE #LTHashStrings
IF EXISTS (SELECT 1 FROM tempdb.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '#EventAllPublishers%')
DROP TABLE #EventAllPublishers
IF EXISTS (SELECT 1 FROM tempdb.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '#LTCountByMessage%')
DROP TABLE #LTCountByMessage
IF EXISTS (SELECT 1 FROM tempdb.INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '#NumberOrphanPublisherStrings%')
DROP TABLE #NumberOrphanPublisherStrings
END TRY
BEGIN CATCH
SELECT
ERROR_NUMBER() AS ErrorNumber,
ERROR_MESSAGE() AS ErrorMessage;
END CATCH
리소스 풀에 UNIX/Linux 에이전트 할당
업그레이드 완료 후 리소스 풀에 UNIX/Linux 에이전트를 할당해야 항상 사용 가능한 모니터링 및 에이전트 관리를 사용할 수 있습니다. 리소스 풀을 생성하는 방법에 대한 자세한 내용은 리소스 풀을 만드는 방법을 참조하십시오.
-
om12short 관리 그룹에 대한 Operations Manager 관리자 역할의 구성원인 계정을 사용하여 운영 콘솔을 엽니다.
-
운영 콘솔의 탐색 창에서 관리 단추를 클릭합니다.
-
관리 창의 장치 관리에서 UNIX/Linux 컴퓨터를 클릭합니다.
-
리소스 풀에 할당할 UNIX/Linux 컴퓨터를 선택하고 작업 창에서 리소스 풀 변경을 클릭합니다.
-
리소스 풀 변경 마법사를 완료하여 선택한 리소스 풀에 컴퓨터를 할당합니다.