낮은 버전의 SQL Server 데이터베이스 백업 복원
상위 버전의 SQL Server 데이터베이스 백업 파일을 하위 버전의 SQL Server에 복원하려면 어떻게 해야 합니까?
SQL Server 2008 R2(10.50.1600)를 사용하여 백업파일을 만들고 라이브 서버의 SQL Server 2008(10.00.1600)에 복원합니다.
SQL Server 2008은 SQL Server 2008을 지원합니다. Restore Failed
★★★★
데이터베이스가 버전 10.50.1600을 실행하는 서버에서 백업되었습니다.이 버전은 버전 10.00.1600을 실행하고 있는 이 서버와 호환되지 않습니다.
이 서버의 백업 파일을 복원하려면 어떻게 해야 합니까?
Export Data-Tier Application(데이터 계층 애플리케이션 내보내기)이라는 기능을 사용하여.bacpac
데이터베이스 스키마와 데이터로 구성된 파일입니다.
대상 서버에서 미리 생성된 새 데이터베이스를 생성하고 채우는 데이터 계층 응용 프로그램 가져오기 옵션을 사용할 수 있습니다..bacpac
데이터베이스 스키마만 전송하려는 경우 파일 작성에 데이터 계층 애플리케이션 추출을 사용하고 생성된 데이터베이스 스키마를 배포하기 위해 데이터 계층 애플리케이션 배포를 사용할 수 있습니다.
SQL 2014에서 SQL 2012, SQL 2014에서 SQL 2008R2에 이르기까지 다양한 버전의 SQL Server에서 이 프로세스를 사용해 보았으며 잘 작동했습니다.
데이터베이스를 다운그레이드 할 수 없습니다.10.50.1600은 SQL Server 2008 R2 버전입니다.이 데이터베이스를 복원하거나 복원하려는 SQL Server 2008 인스턴스에 연결할 수 없습니다(10.00.1600은 SQL Server 2008).옵션은 다음과 같습니다.
- 이 인스턴스를 SQL Server 2008 R2로 업그레이드하거나
- SQL Server 2008 R2 인스턴스에 있는 백업을 복원하고 모든 데이터를 내보낸 후 SQL Server 2008 데이터베이스로 가져옵니다.
상위 버전에서 작성된 데이터베이스를 하위 버전으로 복원하거나 연결할 수 없습니다.유일한 방법은 모든 개체에 대한 스크립트를 생성하고 이 스크립트를 사용하여 데이터베이스를 생성하는 것입니다.
"Schema and Data"를 선택합니다. 두 항목을 모두 백업 스크립트 파일로 가져오려면
Schema Only(스키마만)를 선택합니다.
예, 이것으로 데이터베이스의 스키마 및 데이터를 사용하여 스크립트 작성을 완료했습니다.
반드시 동작하는 것은 아니다
백업/복원 - 대상이 이전 MS SQL 버전인 경우 작동하지 않습니다.
데이터베이스 복사 - 대상이 SQL Server Express인 경우 작동하지 않습니다. "대상 서버는 SQL Server 2005 이상의 Express 인스턴스일 수 없습니다."
데이터 가져오기 - 스키마를 복사하지 않습니다.
동작할 것이다
스크립트 생성 - 태스크 -> 스크립트 생성.[스크립팅 옵션 설정(Set Scripting Options)]-> [상세설정(Advanced)]페이지에서 목적의 타겟 SQL Server 버전을 설정합니다.스키마, 데이터 또는 둘 다 복사할지 선택할 수도 있습니다.생성된 스크립트에서는 non-express에서 express로 또는 그 반대로 이동하는 경우 mdf/ldf 파일의 DATA 폴더를 변경해야 할 수 있습니다.
Microsoft SQL Server Database Publishing Services - SQL Server 2005 이후가 포함되어 있다고 생각합니다.여기에서 최신 버전을 다운로드하십시오.전제 조건:
sqlncli.msi
/sqlncli_x64.msi
/sqlncli_ia64.msi
,SQLServer2005_XMO.msi
/SQLServer2005_XMO_x64.msi
/SQLServer2005_XMO_ia64.msi
(여기에 표시).
이 작업을 완료하기 위한 다양한 옵션에 대한 나의 2센트는 다음과 같습니다.
서드파티제 도구: 작업을 완료하기 위한 가장 쉬운 방법은 아마도 낮은 버전에 빈 데이터베이스를 만든 다음 서드파티제 도구를 사용하여 백업을 읽고 새로 생성된 데이터베이스를 백업과 동기화하는 것입니다.
빨간색 게이트는 가장 인기 있는 제품 중 하나이지만 ApexSQL Diff, ApexSQL Data Diff, Adapt SQL, Idera 등의 제품이 많이 있습니다.모두 프리미엄 툴이지만 트라이얼 모드로 작업을 완료할 수 있습니다.
스크립트 생성: 이미 언급한 바와 같이 SSMS를 사용하여 구조 및 데이터를 언제든지 스크립팅할 수 있지만 실행 순서를 고려해야 합니다.기본적으로 개체 스크립트의 순서가 올바르지 않으므로 종속성을 처리해야 합니다.이는 데이터베이스가 크고 개체가 많은 경우 문제가 될 수 있습니다.
가져오기 및 내보내기 마법사:이 솔루션은 모든 개체를 복원하는 것이 아니라 데이터 테이블만 복원하기 때문에 이상적인 솔루션은 아니지만 필요할 때 신속하게 수정하거나 더러움을 해결할 수 있습니다.
또 다른 방법은 "데이터베이스 복사" 기능을 사용하는 것입니다.
소스 데이터베이스> [태스크]> [데이터베이스 복사]를 오른쪽 클릭하여 검색합니다.
데이터베이스를 하위 버전의 SQL Server 인스턴스에 복사할 수 있습니다.이것은 SQL Server 2008 R2 (SP1) - 10.50.2789.0에서 Microsoft SQL Server 2008 (SP2) - 10.0.3798.0으로 동작했습니다.
이거 드셔보세요.
- SQL Server 2008에 데이터베이스를 만듭니다.
- 데이터 가져오기 기능을 사용하여 SQL Server R2(또는 상위 버전)에서 데이터를 가져옵니다.
- "RedGate SQLCommpare"를 사용하여 스크립트를 동기화합니다.
작업 -> 스크립트 생성...으로 이동합니다.
"스크립트용 데이터 유형"의 고급에서"Schema and data"
이 스크립트를 하위 버전에서 실행해 보십시오.
그다지 예쁘지는 않지만 SQL 2008 R2 설치에 이 옵션이 설치되어 있는 것을 인정했습니다.
1) SQL Server 2008 R2 "태스크"에서 데이터베이스를 오른쪽 클릭합니다.마법사에서 "스크립트 생성" 첫 번째 단계에서 전체 데이터베이스와 개체를 선택합니다."Set Scripting Options(스크립팅 옵션 설정)" 단계에서 "Advanced(고급)" 버튼을 선택하고 R2 버전이 아닌 "Script for Server Version(서버 버전 스크립트)" = SQL Server 2008(SQL Server 2008)"을 선택해야 합니다."데이터 가져오기"만으로는 모든 기본 키, 제약 조건 및 저장 프로시저와 같은 다른 개체를 가져올 수 없기 때문에 이는 매우 중요한 단계입니다.
2) 쿼리 창을 사용하여 새 설치 또는 데이터베이스 인스턴스 SQL Express 또는 SQL Server 2008에서 생성된 SQL 스크립트를 실행하거나 저장된 .sql 스크립트를 열고 실행하면 새 데이터베이스가 나타납니다.
3) 새로운 데이터베이스를 오른쪽 클릭하여 [태스크]를 선택합니다."데이터 Import.." R2 데이터베이스로 source를 선택하고 새 데이터베이스로 수신처를 선택합니다."Copy data from one or more tables or views" (하나 이상의 테이블 또는 뷰에서 데이터 복사) 맨 위의 체크박스를 켜고 모든 테이블을 선택한 후 다음 단계로 패키지를 실행하면 이전 버전에 모든 것이 있습니다.이것은 2005년 버전으로 되돌리는 경우에도 유효합니다.이게 도움이 됐으면 좋겠네요.
작은 테이블에는 BCP 입력 및 출력을 사용할 수 있습니다.
BCP OUT 명령어:-
BCP "SELECT * FROM [Dinesh].[dbo].[Invoices]" QUERYOUT C:\av\Invoices1.txt -S MC0XENTC -T -c -r c:\error.csv
BCP IN 명령:- Invoicescopy1에 대한 테이블 구조를 만듭니다.
BCP [Dinesh].[dbo].[Invoicescopy1] IN C:\av\Invoices.txt -S MC0XENTC -T -c
오래된 투고입니다만, Azure Migration Wizard(Codeplex에서 사용할 수 있습니다.현재 Codeplex에서 링크할 수 없습니다)를 사용하면 쉽게 이 작업을 수행할 수 있습니다.
모든 것을 이행하려면 SSMS의 Import/Export 마법사를 사용해야 합니다.
백업/복원 또는 분리/접속을 사용하여 "다운그레이드"를 수행할 수 없습니다.따라서 다음 작업을 수행해야 합니다.
- 새 SSMS/SQL 버전을 실행하는 서버에서 데이터베이스를 백업합니다.
- 생성된 .bak 파일에서 데이터를 가져오려면 대상 데이터베이스를 마우스 오른쪽 버튼으로 누른 후 "태스크" 메뉴를 확장하고 "데이터 가져오기" 옵션을 선택합니다.
작업 메뉴에서 스크립트를 생성할 수 있습니다.
자세한 것은 이쪽
SQL Server 데이터베이스를 이전 버전으로 마이그레이션하는 방법
언급URL : https://stackoverflow.com/questions/6183139/sql-server-database-backup-restore-on-lower-version
'programing' 카테고리의 다른 글
SQL Server에서 ID 열을 업데이트하는 방법 (0) | 2023.04.08 |
---|---|
EPPlus의 자동 열 폭 (0) | 2023.04.08 |
여러 열에 고유한 제약 조건 (0) | 2023.04.08 |
기존 열에 ID 추가 (0) | 2023.04.08 |
SQL Server 복원 오류 - 액세스가 거부되었습니다. (0) | 2023.04.08 |