Ja datu bāze ir tikai lasāma, statusu var viegli noteikt no sys.databases vai SSMS. Labi zināms fakts ir tāds, ka nevar atjaunināt datus tikai lasāmā datu bāzē. Šajā rakstā mēs uzzināsim, kā to novērst un novērst.
Divas iespējas
Mēs varam vai nu izmantot SQL Server Management Studio, ti, SSMS vai T-SQL skripts, lai pārveidotu tikai lasāmu datu bāzi lasīšanas un rakstīšanas datu bāzē. Lai labāk izprastu šīs iespējas, ļaujiet mums
- Izveidojiet datu bāzi
- Izveidojiet tajā tabulas
- Pievienojiet tabulai ierakstus
- Padarīt datu bāzi par lasāmu
- Mēģiniet pievienot ierakstus tai pašai tabulai
- Pārskatiet kļūdas ziņojumu
- Pārveidojiet datu bāzi atpakaļ lasīšanas un rakstīšanas režīmā
Sagatavot datu bāzi
No jūsu SQL Server vadības studija, izveidojiet savienojumu ar savu SQL server, ar peles labo pogu noklikšķiniet uz mezgla “Database” un pēc tam atlasiet opciju “New Database”. Pēc datubāzes nosaukuma ievadīšanas nospiediet Labi. Varat arī izmantot T-SQL skriptu, kā parādīts zemāk esošajā piemērā:
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
Izveidojiet tabulu no SSMS, atlasot datu bāzi, ar peles labo pogu noklikšķiniet uz mezgla “Galdi”, pēc tam norādiet uz “Jauns” un noklikšķiniet uz opcijas “Tabula…”. Ievadiet kolonnas nosaukumu un datu tipus un pēc tam saglabājiet kopā ar tabulas nosaukumu. Lai izveidotu tabulu, varat izmantot zemāk esošo vaicājumu:
USE [DataNumen] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[Table1]( [Col1] [nchar](10) NULL ) ON [PRIMARY] GO
Pievienojiet tabulai ierakstus, izmantojot šādu vaicājumu:
Insert into [dbo].[Table1] values ('Testvalue')
The result window of SSMS will show the following message: (1 row(s) affected)
Izmantojot SQL Server Management Studio, ar peles labo pogu noklikšķiniet uz datu bāzes un pēc tam atlasiet opciju “Rekvizīti”. Lapas Datu bāzes rekvizīti sadaļā “Opcijas” iestatiet opciju “Tikai datu bāzei tikai” no “Patiesa” uz “Nepatiesa”. Varat arī pārslēgt datu bāzi uz tikai lasāmu, izmantojot TSQL skriptu, kā parādīts zemāk:
USE [master] GO ALTER DATABASE [DataNumen] SET READ_ONLY WITH NO_WAIT GO
Varēja redzēt, ka SSMS tagad datu bāzes nosaukumam rādīs statusu “Tikai lasāms”.
Tagad mēģināsim tabulā ievietot jaunu ierakstu.
Insert into [dbo].[Table1] values ('Testvalue2')
Rezultātu logā parādīsies šāds kļūdas ziņojums.
Msg 3906, Level 16, State 1, Line 12 Failed to update database "DataNumen" because the database is read-only.
Atgrieziet datu bāzes statusu lasīšanai un rakstīšanai, izmantojot datu bāzes rekvizītus, un iestatiet opciju “Tikai datu bāzei” no “Nepatiesa” uz “Patiesa” vai izpildiet šādu skriptu:
USE [master] GO ALTER DATABASE [DataNumen] SET READ_WRITE WITH NO_WAIT GO
Tagad, mēģinot pievienot ierakstu, tiek parādīts kļūdas ziņojums “Neizdevās atjaunināt datu bāzi”DataNumenPazudīs “jo datu bāze ir tikai lasāma”. Mēs visi zinām, ka mums palīdz datu bāzes dublējumi noteikts SQL Server datu bāzes. Tomēr tikai lasāmas datu bāzes dublējums atjaunos datu bāzi tikai lasīšanas režīmā, nevis lasīšanas un rakstīšanas režīmā.
Autora ievads:
Nils Varlijs ir datu atkopšanas eksperts DataNumen, Inc., kas ir pasaules līderis datu atkopšanas tehnoloģiju, tostarp Outlook atkopšana un Excel atkopšanas programmatūras produkti. Lai iegūtu vairāk informācijas, apmeklējiet vietni www.datanumen. Ar