서버에 연결했지만 데이터베이스에 연결할 수 없습니다.
SQL Server 데이터베이스를 배포한 후 갑자기 데이터베이스 서버의 호스트 이름이 기업의 명명 표준을 따르지 않는 것으로 나타났습니다. 이때, 컴퓨터 이름이 변경될 경우 원본 데이터베이스 인스턴스에 접근 실패가 발생할 수 있습니다. 클라이언트가 이 데이터베이스 인스턴스에 연결하지 못할 수도 있습니다. 이 문제를 해결하는 방법은 데이터베이스를 다시 설치하는 유일한 방법입니까? SQLServer2008에서는 데이터베이스를 다시 설치하지 않고도 시작 중에 데이터베이스가 새로 수정된 데이터베이스 이름을 자동으로 인식하도록 할 수 있습니다. 저자는 이 기사에서 이 주제에 대해 논의할 것입니다.
1. 컴퓨터 이름을 바꾸면 발생할 수 있는 문제.
SQLServer2008에서는 이제 데이터베이스 시스템을 다시 설치하지 않고도 데이터베이스 서버 호스트의 이름을 바꿀 수 있습니다. 하지만 이 방법을 사용하는 데에는 여전히 많은 제한 사항이 있습니다. 이러한 이유로 데이터베이스 관리자는 호스트 이름을 변경하기 전에 먼저 이러한 제한 사항을 이해해야 합니다. 이는 호스트명 변경 이후 관련 서비스의 정상적인 이용에 도움이 됩니다.
데이터베이스에 동시에 배포된 보고서 서버가 있는 경우 동일한 호스트에 배포되거나 다른 호스트에 배포되는지 여부에 관계없이 데이터베이스 서버 호스트의 이름이 변경되면 보고서는 서버에 접속할 수 없습니다. 즉, 보고 서비스는 수정된 컴퓨터 이름을 적극적으로 식별할 수 없습니다. 따라서 호스트 이름을 변경한 후에는 보고서 서버가 수정된 호스트 이름을 인식할 수 있도록 데이터베이스 엔진을 수동으로 조정해야 합니다. 데이터베이스 서버의 엔진을 조정하려면 다음과 같이 해야 합니다. 데이터베이스 서버와 보고서 서버가 동일한 호스트에 배포된 경우, 즉 보고서 서버가 로컬 데이터베이스를 사용하는 경우 로컬 명령을 사용하여 새 서버를 지정할 수 있습니다(호스트 이름을 변경한 후 보고서 서버는 새 서버가 사용됩니다). 데이터베이스 서버와 보고서 서버가 동일한 호스트에 없으면 조정 프로세스가 더 복잡해집니다. 이 시점에서 데이터베이스 관리자는 보고서 서버 구성 도구를 시작하고 이름이 바뀐 서버의 보고서 서버 데이터베이스를 사용하는 보고서 서버에 연결해야 합니다. 공식정보에는 이렇게 나와 있는데, 좀 어색하게 들립니다. 실제로 데이터베이스 관리자가 보고서 서버가 이름이 바뀐 데이터베이스 서버를 새 서버로 처리한다는 것을 알고 있는 한. 이를 위해 새로 명명된 컴퓨터 이름을 사용하여 연결합니다. 연결 후 데이터베이스 설치 페이지를 열고 서버 이름 아래에 데이터베이스 이름을 찾아 연결을 클릭합니다. 연결되면 적용을 누르시면 됩니다. 나중에 보고서 서버가 시작되면 최신 호스트 이름을 사용하여 연결됩니다. 이름을 바꾼 후에는 SQL Server 데이터베이스를 다시 설치할 필요가 없음을 알 수 있습니다. 그러나 데이터베이스와 보고서 서버와의 연결 등 다른 서비스 간의 연결을 다시 설정해야 합니다.
필요한 경우 모든 클라이언트 연결을 업데이트하세요. 클라이언트 연결에서는 IP 주소 또는 호스트 이름으로 연결할 수 있습니다. 클라이언트의 연결 설정이 호스트 이름을 사용하여 연결하는 경우 호스트 이름을 변경한 후 클라이언트의 연결 설정을 하나씩 변경해야 합니다. 클라이언트의 연결 이름을 최신 컴퓨터 이름으로 변경합니다. 분명히 데이터베이스 클라이언트 수가 상대적으로 많으면 작업 부하가 많이 증가합니다. 따라서 때로는 클라이언트 연결이 IP 주소를 통해 연결되도록 설정되어 있으면 더 편리할 수 있습니다. 이렇게 연결한 후에는 데이터베이스가 서버로 변경된 후 각 클라이언트를 조정할 필요가 없기 때문입니다. 또한 기업에서 데이터베이스 미러링도 구성하는 경우 데이터베이스 미러링을 사용하여 컴퓨터 이름을 바꿀 때 먼저 데이터베이스 미러링을 꺼야 하며 그런 다음 미러 호스트의 이름을 변경할 수 있다는 점에 유의해야 합니다. 그리고 보고서 서버와 마찬가지로 데이터베이스 미러를 만들려면 새 이름을 사용해야 합니다. 데이터베이스 미러의 메타데이터는 새 컴퓨터의 이름을 반영하도록 자동으로 업데이트되지 않기 때문입니다.
데이터베이스 서버를 다시 설치할 필요가 없더라도, 데이터베이스 호스트의 이름을 성급하게 변경하면 작업량이 엄청나게 증가한다는 것을 알 수 있습니다. 보고서 서버, 미러 호스트 등 데이터베이스 서버와 관련된 다른 애플리케이션 서버를 재설정해야 데이터베이스 서버와의 연결을 설정할 수 있기 때문입니다. 이러한 이유로 SQLServer2008에서는 이 기능만 제공하며 이는 데이터베이스 서버의 이름을 변경하는 데 모든 사람이 동의한다는 의미는 아닙니다. 반대로, 데이터베이스 관리자는 여전히 일상 업무에서 이러한 일을 피하려고 노력해야 합니다. 데이터베이스 서버를 배포하기 전에 데이터베이스 서버의 호스트 이름이 해당 명명 표준을 준수하는지 확인해야 합니다. 데이터베이스 관리자가 확실하지 않은 경우 기업 네트워크 관리자에게 확인을 요청하세요. 즉, 데이터베이스 서버를 배포한 후에 꼭 필요한 경우가 아니면 데이터베이스 서버의 호스트 이름을 바꾸지 마십시오.
2. 컴퓨터 이름을 변경합니다.
1. 데이터베이스 서버 이름을 바꿉니다.
데이터베이스 서버의 이름을 변경하는 것은 비교적 간단합니다. 몇 가지 시스템 저장 프로시저만 실행하면 됩니다.
데이터베이스 관리자가 데이터베이스 호스트의 이름을 쉽게 변경할 수 있도록 데이터베이스는 여러 저장 프로시저를 제공합니다. sp_dropserver 및 sp_addserver 저장 프로시저와 같은 것입니다. 이 두 저장 프로시저의 기능은 먼저 이전 서버에서 로그오프한 다음 새 서버를 추가하는 것입니다. 이름을 변경한 후에도 여전히 동일한 데이터베이스 서버이지만 시스템에서는 이를 두 개의 다른 서버로 관리합니다. 위의 두 저장 프로시저는 sys.servers에 저장되고 시스템 함수 @@SERVERNAME에 의해 보고되는 시스템 메타데이터를 업데이트합니다. 이를 통해 관련 작업에 컴퓨터 이름 변경 사항을 알릴 수 있습니다. 예를 들어 일부 원격 연결에는 이름이 변경되었다는 사실이 통보될 수 있습니다. 또 한 가지 주의할 점은 현재 데이터베이스에 원격 로그인이 되어 있는 경우 첫 번째 저장 프로시저 실행 시 오류가 발생할 수 있다는 점이다. 이때, 저장 프로시저를 실행하기 전에 데이터베이스 관리자가 원격으로 로그인하여 삭제해야 한다. 이 목적을 위해 데이터베이스 이름을 바꾸는 작업은 데이터베이스를 사용하는 사람이 아무도 없는 한밤중에 설정하는 것이 가장 좋습니다. 이렇게 하면 데이터베이스 서버 이름 변경이 직원의 일반적인 데이터베이스 서버 사용에 영향을 주지 않습니다. 이용자가 데이터베이스를 24시간 이용해야 하는 경우에는 이용자에게 미리 알려 사전 준비를 할 수 있도록 해야 합니다. 예를 들어, 데이터베이스에 액세스하는 사용자가 적은 시간을 지정하고 데이터베이스 서버 네트워크 연결을 끊은 동안 이 작업을 수행할 수 있습니다. 이렇게 하면 다른 사용자의 로그인 요청으로 인해 이름 바꾸기 작업이 실패하는 것을 방지할 수 있습니다.
그러나 자체 연결 구성을 자동으로 업데이트할 수 없는 애플리케이션 서비스가 여전히 많이 있습니다. 예를 들어 위에서 언급한 보고서 서버와 미러 호스트는 이러한 애플리케이션 서버와 데이터베이스 서버 간의 연결을 수동으로 다시 설정해야 합니다. 이러한 이유로 데이터베이스 관리자는 사용자의 정상적인 접근에 부정적인 영향을 미치지 않도록 연결 정보를 인내심을 가지고 업데이트해야 합니다.
2. 보고서 서버의 이름을 변경합니다.
보고서 서버 호스트 이름을 변경하는 것은 데이터베이스 서버 이름을 변경하는 것과 다릅니다. 데이터베이스 관리자가 보고서 서버의 이름을 변경해야 한다고 결정한 경우 아래 단계를 따라야 합니다.
1단계: 구성 파일을 수정합니다. 보고서 서버에서 사용되는 구성 파일은 rsreportserver.config입니다. 보고서 서버와 데이터베이스 서버 간의 연결은 이 구성 파일을 통해 제어됩니다. 따라서 보고서 서버의 이름이 변경되면 그에 맞게 구성 파일도 수정되어야 합니다. 예를 들어 데이터베이스 관리자는 URLROOT 콘텐츠를 찾아야 합니다. 통과 확장 모듈은 보고서 서버에 저장된 항목에 액세스할 때 사용하기 위해 이 매개 변수로 설정된 값을 사용하여 작성됩니다. 따라서 보고서 서버의 이름을 변경할 때 데이터베이스 구독 서비스가 예상대로 계속 전달될 수 있도록 이 매개 변수를 변경해야 합니다. 이를 위해 관리자는 이 매개변수를 찾아 호스트 이름을 새 호스트 이름으로 변경해야 합니다.
2단계: ReportServerUrl 매개변수를 확인합니다. 이 옵션은 일부 보고서 서버 구성 파일에 있을 수 있습니다. 이 옵션이 있는 경우 이 옵션의 값도 변경하고 서버 호스트 이름을 새 서버 호스트 이름으로 변경해야 합니다. 이 매개변수에 값이 없으면 걱정할 필요가 없습니다. Null 값을 최신 컴퓨터 이름으로 한 번에 여러 번 업데이트하지 않도록 주의하십시오. 이는 보고서 서버의 일반적인 사용에 영향을 미치지 않을 수 있지만 그렇게 하면 문제에 또 다른 계층이 추가됩니다. 후속 유지 관리 작업량만 증가할 뿐 다른 가치는 없습니다.
또한, 보고서 서버 이름을 변경한 후에도 일정 기간 동안 원래 이름을 통해 보고서 서비스에 계속 액세스할 수 있다는 점에 유의하시기 바랍니다. 이때 데이터베이스 관리자는 데이터베이스 리포트 서버의 이름을 바꾸는 것이 중요하지 않다고 생각하면 안 된다. 실제로 사용자가 보고서 서버에 액세스할 수 없다고 보고하는 데 몇 분도 걸리지 않습니다. 이는 회사 네트워크에 일부 도메인 이름 확인 서버가 있을 수 있기 때문인 것으로 나타났습니다. 이러한 서버의 호스트 이름과 IP 주소는 일대일로 대응됩니다. 보고서 서버 이름이 변경된 후 도메인 이름 서버에서 제때 업데이트되지 않았을 수 있습니다. 보고서 서버 이름을 변경한 후에도 일부 사용자는 짧은 시간 내에 원래 이름을 통해 보고서 서버에 로그인할 수 있습니다. 그러나 이것은 비교적 짧은 기간 동안만 존재할 것이다.
따라서 데이터베이스 관리자는 위의 방법에 따라 구성 파일을 정직하게 조정해야 합니다.
매우 상세해야 합니다