2 읽기 전용 데이터베이스를 업데이트하기위한 해결 방법 SQL Server

지금 공유 :

데이터베이스가 읽기 전용이면 sys.databases 또는 SSMS에서 상태를 쉽게 식별 할 수 있습니다. 잘 알려진 사실은 읽기 전용 데이터베이스의 데이터를 업데이트 할 수 없다는 것입니다. 이 기사에서는이 문제를 해결하고 해결하는 방법을 알아 봅니다.

두 가지 옵션

읽기 전용 데이터베이스 업데이트 SQL Server우리는 사용할 수 있습니다 SQL Server Management Studio 즉, SSMS 또는 T-SQL 스크립트를 사용하여 읽기 전용 데이터베이스를 읽기-쓰기 데이터베이스로 변환합니다. 이러한 옵션을 더 잘 이해하려면

  1. 데이터베이스 만들기
  2. 그 안에 테이블 만들기
  3. 테이블에 레코드 추가
  4. 데이터베이스를 읽기 전용으로 설정
  5. 동일한 테이블에 레코드를 추가해보십시오.
  6. 오류 메시지 검토
  7. 데이터베이스를 다시 읽기-쓰기 모드로 변환

데이터베이스 준비

너의 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

지금 공유 :

댓글이 닫혀있다.