[vbscript/asp] Restore database werkt niet, 'in use'

Pagina: 1
Acties:
  • 105 views sinds 30-01-2008
  • Reageer

  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 19-05 21:37
Ik heb een asp bestand aangemaakt, waarmee ik mn zojuist gemaakte backup weer kan terug zetten dmv een restore query:

code:
1
2
3
4
5
6
conn.Open connectiestring


    selectie = "RESTORE DATABASE finaldatabase2SQL FROM DISK
 ='D:\Database\Backup\finaldatabase2SQL.bak'"
    rs.open selectie, conn


Als ik echter het script uitvoer krijg ik de volgende error:

"Exclusive access could not be obtained because the database is in use."

Ik kan verder gewoon alles met de database, alleen als ik drop database of restore database doet krijg ik deze foutmelding. Als ik via een manager doe werkt het gewoon wel (gebruik MSDE manager, MSDE dus als db server).

Verder gebruikt niemand de database op dat moment, hoe moet ik dit oplossen?

  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 18-05 15:53

Jaspertje

Max & Milo.. lief

heb je je database open staan?

offtopic:
Blij om te zien dat het wel gelukt is om het vanuit een script te runnen :D

[ Voor 62% gewijzigd door Jaspertje op 28-06-2004 16:09 ]


  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 19-05 21:37
;)

heb mn database niet geopent of wat dan ook, misschien een geheime verbinding :/ :)

Als ik het via mn manager doe, lukt het gewoon wel normaal, backuppen lukt ook gewoon via script, ik snap het niet helemaal.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 07:58

gorgi_19

Kruimeltjes zijn weer op :9

En als je execute ipv open gebruikt?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:52
code:
1
2
3
USE Master 
ALTER DATABASE MyDB 
SET SINGLE_USER With ROLLBACK IMMEDIATE

https://fgheysels.github.io/


  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 19-05 21:37
Deze eigenschap of methode wordt niet ondersteund door dit object: 'rs.execute'

Of had ik dat anders aan moeten pakken?

  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 19-05 21:37
@whoami, moet ik die code gewoon ff in de manager uitvoeren? en waar dan?
leg uit :)

  • polson
  • Registratie: Januari 2001
  • Laatst online: 23-05 15:05
Als je dat via een asp doet, ben je dan zelf niet met de database connected??

Volgens mij is dat je probleem. 8)

  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 19-05 21:37
polson schreef op 28 juni 2004 @ 16:20:
Als je dat via een asp doet, ben je dan zelf niet met de database connected??

Volgens mij is dat je probleem. 8)
waarom zou het via asp niet kunnen? Als ik het via een manager doe, ben ik toch ook gewoon verbonden

  • polson
  • Registratie: Januari 2001
  • Laatst online: 23-05 15:05
Ja wel met de database server, maar niet met de database.
Ik weet niet wat die conn.Open connectiestring, precies doet, maar waarschijnlijk verwijst die niet aleen naar de datbaseserver, maar ook naar de database.

  • Jaspertje
  • Registratie: September 2001
  • Laatst online: 18-05 15:53

Jaspertje

Max & Milo.. lief

DarkShadow schreef op 28 juni 2004 @ 16:20:
[...]


waarom zou het via asp niet kunnen? Als ik het via een manager doe, ben ik toch ook gewoon verbonden
Ik weet niet of je een vergelijking kan maken tussen de twee soorten van verbinding (ASP en Direct in de DB)

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 07:58

gorgi_19

Kruimeltjes zijn weer op :9

polson schreef op 28 juni 2004 @ 16:23:
Ja wel met de database server, maar niet met de database.
Ik weet niet wat die conn.Open connectiestring, precies doet, maar waarschijnlijk verwijst die niet aleen naar de datbaseserver, maar ook naar de database.
Dat gokte ik ook, vandaar conn.Execute gebruiken (execute was een property van conn, niet van rs :X)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • DarkShadow
  • Registratie: Juli 2000
  • Laatst online: 19-05 21:37
laat maar, whoami is de man 8)

code:
1
2
3
4
5
6
    selectie = "USE Master ALTER DATABASE finaldatabase2SQL SET SINGLE_USER With 
ROLLBACK IMMEDIATE"
    rs.open selectie, conn
    selectie = "RESTORE DATABASE finaldatabase2SQL FROM DISK 
='D:\Database\Backup\finaldatabase2SQL.bak'"
    rs.Open selectie, conn


28-6-2004 16:24:23 Database herstellen voltooid

whoami, moet dat stukje elke keer? Lijkt me niet eigenlijk...

  • polson
  • Registratie: Januari 2001
  • Laatst online: 23-05 15:05
Ja, zo connect je dus naar je master database en maak je geen connectie met de database die je wil restoren. 8)

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:52
Met dat stukje ga je gewoon niet meer connecteren met de DB die je wilt restoren (USE master gaat de master DB de actieve DB maken).
Met het alter statement ga je gewoon jouw DB die je wilt restoren forceren om in single user mode te draaien. Hiermee check je dat er zeker niemand met die DB geconnecteerd is.
Daarna wordt die single mode weer teruggedraaid.

Die USE master (of any other DB) zal je iedere keer moeten doen als je wilt restoren. Op die manier zorg je ervoor dat je dus niet met de te restoren DB geconnected bent.
Het statement om 'm in single_user mode te forceren hoef je niet te doen als je zeker bent dat er niemand anders geconnect is.

[ Voor 33% gewijzigd door whoami op 28-06-2004 16:31 ]

https://fgheysels.github.io/

Pagina: 1