/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
[MSSQL] Konsistent backup af flere databas~
Fra : Troels Arvin


Dato : 15-08-05 12:00

Hej,

Jeg har en applikation, der (desværre) benytter data i flere forskellige
databaser. Data i de forskellige databaser må ikke "komme ud af sync";
med andre ord skal backup af databaserne ske på konsistent vis.

At få konsistent backup af data i én database er nemt nok. Men hvordan
hulen gør jeg det, når der er flere involverede?

--
Greetings from Troels Arvin, Denmark


 
 
Peter Lykkegaard (17-08-2005)
Kommentar
Fra : Peter Lykkegaard


Dato : 17-08-05 18:28

"Troels Arvin" wrote
>
> Jeg har en applikation, der (desværre) benytter data i flere forskellige
> databaser. Data i de forskellige databaser må ikke "komme ud af sync";
> med andre ord skal backup af databaserne ske på konsistent vis.
>
> At få konsistent backup af data i én database er nemt nok. Men hvordan
> hulen gør jeg det, når der er flere involverede?
>
Det eneste jeg lige kan komme i tanke om er at have insert/update triggers
på alle tabeller der så samler det hele sammen i een database

Ellers, når du lægger en backup ind så kan du restore transactionsloggen til
et bestemt tidspunkt

- Peter




Stig Johansen (18-08-2005)
Kommentar
Fra : Stig Johansen


Dato : 18-08-05 04:40

Peter Lykkegaard wrote:

> "Troels Arvin" wrote
>>
>> Jeg har en applikation, der (desværre) benytter data i flere forskellige
>> databaser. Data i de forskellige databaser må ikke "komme ud af sync";
>> med andre ord skal backup af databaserne ske på konsistent vis.
>>
>> At få konsistent backup af data i én database er nemt nok. Men hvordan
>> hulen gør jeg det, når der er flere involverede?
>>
> Det eneste jeg lige kan komme i tanke om er at have insert/update triggers
> på alle tabeller der så samler det hele sammen i een database
>
> Ellers, når du lægger en backup ind så kan du restore transactionsloggen
> til et bestemt tidspunkt

Jeg har ikke lige en løsning, ud over at stoppe servicen, men en ting, der
undrer mig er, hvordan sikrer man sig konsistensen på applikationslaget?

Man kunne måske på baggrund af den anvendte teknik, lure en metode til at
opnå en eller anden form for konsistens.

--
Med venlig hilsen
Stig Johansen

Troels Arvin (18-08-2005)
Kommentar
Fra : Troels Arvin


Dato : 18-08-05 07:55

On Wed, 17 Aug 2005 19:28:18 +0200, Peter Lykkegaard wrote:
> Det eneste jeg lige kan komme i tanke om er at have insert/update triggers
> på alle tabeller der så samler det hele sammen i een database

Det er ikke en mulighed, idet det ville kræve ændringer i databaserne
(tilføjelse af triggers).

> Ellers, når du lægger en backup ind så kan du restore
> transactionsloggen til et bestemt tidspunkt

God løsning, omend ikke helt fool-proof, hvis nogen glemmer det med
tidspunktet ved restore. Det er nok her, jeg ender, kombineret med nogle
"særlige" backups en gang imellem, hvor jeg lukker DB-frontend (Apache),
sætter MSSQL i pause-tilstand og først back'er op, når netstat melder
om, at alle forbindelser undtagen min egen (til port 1433/tcp) er
afsluttede. (Heldigvis er der tale om et IT-system, der godt kan tåle at
være lukket for brugerne engang imellem.)

--
Greetings from Troels Arvin


Peter Lykkegaard (18-08-2005)
Kommentar
Fra : Peter Lykkegaard


Dato : 18-08-05 11:40


Troels Arvin wrote:

> Det er nok her, jeg ender, kombineret med nogle "særlige" backups
> en gang imellem, hvor jeg lukker DB-frontend (Apache), sætter
> MSSQL i pause-tilstand og først back'er op, når netstat melder
> om, at alle forbindelser undtagen min egen (til port 1433/tcp) er
> afsluttede. (Heldigvis er der tale om et IT-system, der godt kan tåle at
> være lukket for brugerne engang imellem.)
>
Tag databaserne offline og skift til singleuser så er du helt sikker
mens backuppen kører
Du kan også detache databaserne og tage en alm filbackup

MSSQL 2000?

- Peter


Troels Arvin (18-08-2005)
Kommentar
Fra : Troels Arvin


Dato : 18-08-05 14:00

On Thu, 18 Aug 2005 03:39:32 -0700, Peter Lykkegaard wrote:

> Tag databaserne offline og skift til singleuser så er du helt sikker
> mens backuppen kører

Når jeg tager dem offline kan jeg ikke umiddelbart få Enterprise
Manager til at tilbyde mig at back'e op. Eller forveksler jeg offline og
stop? I så fald: Hvad mener du med "offline"?

> Du kan også detache databaserne og tage en alm filbackup

Ja, det var selvfølgelig også en mulighed.

> MSSQL 2000?

Ja.

--
Greetings from Troels Arvin


Peter Lykkegaard (18-08-2005)
Kommentar
Fra : Peter Lykkegaard


Dato : 18-08-05 15:41


Troels Arvin wrote:

> Når jeg tager dem offline kan jeg ikke umiddelbart få Enterprise
> Manager til at tilbyde mig at back'e op. Eller forveksler jeg offline og
> stop? I så fald: Hvad mener du med "offline"?

Njahh jeg huskede forkert
Jeg plejer at tage mine testdatabaser offline når kører en backup ind
(manuelt)
Så er jeg sikker på at der ikke er nogle processor der låser
databasen mens jeg laver restore

Når databasen er offline så kan man ikke skifte til restricted access
eller single user
Det var min ide
Prøv evt med at sætte restricted access på (kun db_owner, dbcreator
og sysadmin har adgang)

Du skal have fat i ALTER DATABASE samt SET OPTION og noget med
RESTRICTED_USER
Prøv at kikke i BOL

Ahh Server FAQ (BOL):
-----------------------------
How can I set the database to single user mode and restrict the access
to dbo use only?

Answer:
-----------------------------
In SQL Server 2000, a database cannot be in single-user mode with dbo
use only. Instead, the following alternative options are available by
using the ALTER DATABASE command:
ALTER DATABASE database SET SINGLE_USER.
This command restricts access to the database to only one user at a
time.

ALTER DATABASE database SET RESTRICTED_USER.
This command restricts access to the database to only members of the
db_owner, dbcreator, or sysadmin roles.

ALTER DATABASE database SET MULTI_USER.
This command returns access to the database to its normal operating
state.

HTH/Peter


Troels Arvin (19-08-2005)
Kommentar
Fra : Troels Arvin


Dato : 19-08-05 11:55

On Thu, 18 Aug 2005 07:41:19 -0700, Peter Lykkegaard wrote:
> ALTER DATABASE database SET RESTRICTED_USER.

Ah, lyder godt. Tak for sparket i den rette retning.

--
Greetings from Troels Arvin


Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste