데이터베이스가 읽기 전용이면 sys.databases 또는 SSMS에서 상태를 쉽게 식별 할 수 있습니다. 잘 알려진 사실은 읽기 전용 데이터베이스의 데이터를 업데이트 할 수 없다는 것입니다. 이 기사에서는이 문제를 해결하고 해결하는 방법을 알아 봅니다.
두 가지 옵션
우리는 사용할 수 있습니다 SQL Server Management Studio 즉, SSMS 또는 T-SQL 스크립트를 사용하여 읽기 전용 데이터베이스를 읽기-쓰기 데이터베이스로 변환합니다. 이러한 옵션을 더 잘 이해하려면
- 데이터베이스 만들기
- 그 안에 테이블 만들기
- 테이블에 레코드 추가
- 데이터베이스를 읽기 전용으로 설정
- 동일한 테이블에 레코드를 추가해보십시오.
- 오류 메시지 검토
- 데이터베이스를 다시 읽기-쓰기 모드로 변환
데이터베이스 준비
너의 SQL Server 관리 스튜디오, 연결 SQL server, "데이터베이스"노드를 마우스 오른쪽 단추로 클릭 한 다음 "새 데이터베이스"옵션을 선택합니다. 데이터베이스 이름을 입력 한 후 확인을 누릅니다. 아래 예와 같이 T-SQL 스크립트를 사용할 수도 있습니다.
CREATE DATABASE [DataNumen] CONTAINMENT = NONE ON PRIMARY ( NAME = N'DataNumen', FILENAME = N'E:\Program Files\MSSQL12.MSSQLSERVER\MSSQL\DATA\DataNumen.mdf' , SIZE = 3072KB , FILEGROWTH = 1024KB ) LOG ON ( NAME = N'DataNumen_log', FILENAME = N'E:\Program Files\MSSQL12.MSSQLSERVER\MSSQL\DATA\DataNumen_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%) GO
데이터베이스를 선택하여 SSMS에서 테이블을 만들고 "테이블"노드를 마우스 오른쪽 단추로 클릭 한 다음 "새로 만들기"를 가리키고 "테이블…"옵션을 클릭합니다. 열 이름과 데이터 유형을 입력 한 다음 테이블 이름으로 저장합니다. 아래 쿼리를 사용하여 테이블을 만들 수 있습니다.
USE [DataNumen] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Table1]( [Col1] [nchar](10) NULL ) ON [PRIMARY] GO
다음 쿼리를 사용하여 테이블에 레코드를 추가합니다.
Insert into [dbo].[Table1] values ('Testvalue')
The result window of SSMS will show the following message: (1 row(s) affected)
사용 SQL Server Management Studio에서 데이터베이스를 마우스 오른쪽 단추로 클릭 한 다음 "속성"옵션을 선택합니다. 데이터베이스 속성 페이지의 "옵션"에서 "데이터베이스 읽기 전용"옵션을 "True"에서 "False"로 설정합니다. 아래와 같이 TSQL 스크립트를 사용하여 데이터베이스를 읽기 전용으로 전환 할 수도 있습니다.
USE [master] GO ALTER DATABASE [DataNumen] SET READ_ONLY WITH NO_WAIT GO
이제 SSMS가 데이터베이스 이름 근처에 "읽기 전용"상태를 표시하는 것을 볼 수 있습니다.
이제 테이블에 새 레코드를 삽입 해 보겠습니다.
Insert into [dbo].[Table1] values ('Testvalue2')
결과 창에 다음과 같은 오류 메시지가 나타납니다.
Msg 3906, Level 16, State 1, Line 12 Failed to update database "DataNumen" because the database is read-only.
데이터베이스 속성 페이지를 사용하여 데이터베이스 상태를 읽기-쓰기로 되돌리고 "데이터베이스 읽기 전용"옵션을 "False"에서 "True"로 설정하거나 다음 스크립트를 실행합니다.
USE [master] GO ALTER DATABASE [DataNumen] SET READ_WRITE WITH NO_WAIT GO
이제 레코드를 추가하려고하면 "데이터베이스를 업데이트하지 못했습니다"라는 오류 메시지가 나타납니다.DataNumen"데이터베이스가 읽기 전용이므로"가 사라집니다. 우리 모두는 데이터베이스 백업이 고정 된 SQL Server 데이터베이스. 그러나 읽기 전용 데이터베이스의 백업은 읽기-쓰기 모드가 아닌 읽기 전용 모드로 데이터베이스를 복원합니다.
저자 소개 :
Neil Varley는 데이터 복구 전문가입니다. DataNumen, Inc.는 다음과 같은 데이터 복구 기술 분야의 세계적 리더입니다. Outlook 복구 그리고 엑셀 복구 소프트웨어 제품. 자세한 내용은 WWW.datanumen.COM