Avatar billede axkris Nybegynder
08. februar 2005 - 16:33 Der er 24 kommentarer og
1 løsning

Finde åbne db-connection

Hej alle

Jeg har aldrig været så god til at huske at lukke forbindelsen til databasen, når jeg har anvendt den. Så nu har jeg sikkert nogle scripts, som ikke lukker efter sig. Jeg kan jo køre alle asp-filerne igennem og checke, men sikker et arbejde.

Så findes der ikke en smart måde, hvorpå man kan se, hvor synderne er? En oversigt over hvilke sider den glemmer at lukke db-conn? Eller et script, som man indbygger som sladrer om, at db-conn stadig er åben?

Gode ideer .. kom gerne :)
Avatar billede arne_v Ekspert
08. februar 2005 - 18:02 #1
Prøv:

sp_who
Avatar billede axkris Nybegynder
08. februar 2005 - 18:10 #2
Men hvad skal jeg bruge det til? :)

        AWAITING COMMAND
    53      0 sleeping
        minhjemmediedk


        SC-0293


        MinHjemmeside-classic

(21 rows affected)

Jeg vil gerne se hvilke filer, der synder ;-)
Avatar billede arne_v Ekspert
08. februar 2005 - 19:02 #3
Databasen kender kun til connections, den aner intet om sider.

Men du kan jo fyre den af efter hver side du får vist mens du browser rundt og når
der bliver en hængende så HAPS !
Avatar billede axkris Nybegynder
08. februar 2005 - 19:04 #4
Ok, på den måde.

Hvad betyder "(21 rows affected)" ?
Avatar billede arne_v Ekspert
08. februar 2005 - 20:12 #5
Det er vel fordi der er 21 processer ??
Avatar billede axkris Nybegynder
08. februar 2005 - 20:53 #6
Ok - tryk svar hvis du vil have points :-)
Avatar billede arne_v Ekspert
08. februar 2005 - 20:56 #7
OK

er du på sporet af synderen ?
Avatar billede axkris Nybegynder
08. februar 2005 - 21:03 #8
Nej, ikke rigtigt. Det er jo fuldstændigt umuligt med 3000 daglige brugere. Så skal jeg isolere koden, men sikkert et arbejde. Håbede blot på, at der fandtes en nemmere måde.

Men anyway så kører min MSDE opsætning fint. Jeg føler ikke, at de max. 5 samtidige brugere gør sig gældende. Faktisk kører den meget hurtigere end da hjemmesiden lå på en shared sql-server. En markant forbedring.

Jeg har dog fået et tip om, at jeg skal sørge for at slette log-filerne (ellers fylder de harddisken i løbet kort tid), men jeg ved faktisk ikke, hvordan man gør. Gør du?
Avatar billede arne_v Ekspert
08. februar 2005 - 22:37 #9
Det er 5 samtidige database connections. Det kan nemt være både 25, 50 eller 100
samtidige brugere da brugerne jo næppe konstant bruger en database connection.
Avatar billede arne_v Ekspert
08. februar 2005 - 22:39 #10
I SQLServer 7.0 er der:

Enterprise Manager
server
database
properties
options
truncate log on checkpoint
Avatar billede axkris Nybegynder
08. februar 2005 - 22:39 #11
Takker :-)
Avatar billede axkris Nybegynder
08. februar 2005 - 22:40 #12
Enig med de 5 samtidige db-connections, fik blot udtrykt mig uklart.
Avatar billede arne_v Ekspert
08. februar 2005 - 22:50 #13
Command line:

sp_dboption 'dindatabase', 'TRUNCATE LOG ON CHECKPOINT', 'TRUE'
Avatar billede arne_v Ekspert
08. februar 2005 - 22:50 #14
I SQLServer 2000 hedder det vistnok "simple recovery model"
Avatar billede axkris Nybegynder
08. februar 2005 - 22:53 #15
Jeg bruger EM 8.0 og der står den allerede på: "Recovery: Simpel", så jeg regner med, at den selv sletter sine log-filer og ikke fylder min hd op med dem.
Avatar billede arne_v Ekspert
08. februar 2005 - 23:00 #16
Jep.
Avatar billede arne_v Ekspert
08. februar 2005 - 23:00 #17
Til gengæld kan du jo så ikke recovere fra backup+log !
Avatar billede axkris Nybegynder
08. februar 2005 - 23:05 #18
Ok, det vil så sige, at den automatisk laver en løbende backup via omtalte recovery-funktion....... samt at den også kan foretage backup som en planlagt opgave f.eks. om natten.

Hele to måder at lave backup på. Korrekt?
Avatar billede axkris Nybegynder
08. februar 2005 - 23:06 #19
Jeg fik bare at vide, at jeg skulle sætte den til at slette log-filerne, fordi de meget hurtigt ville fylde harddisken. Måkse lige sætter mig lidt mere ind i programmet.
Avatar billede arne_v Ekspert
08. februar 2005 - 23:14 #20
Log fil er ikke en erstatning for backup men et supplement.

Du laver en backup hver nat kl. 0300-0400.

Din database går i smadder kl. 1647.

Så kan du tage din backup fra om natten og processe loggen fra 0400-1647 og
være 100% uptodate.
Avatar billede arne_v Ekspert
08. februar 2005 - 23:17 #21
Hvis du gemmer tilmeldingen til jule frokosten for det serie 7 fodbold hold
du spiller på, så gør det nok ikke så meget hvis du trunkerer log ved checkpoint -
worst case så mister du en dags tilmeldinger.

Hvis du er en bank og har alle dine konto oplysninger i databasen, så er det ikke
en option at miste dagens transaktioner.

Det afhænger af hvad databasen bruges til.
Avatar billede axkris Nybegynder
08. februar 2005 - 23:55 #22
Ah, godt sagt :-)

På "recovery" kan jeg vælge "Simpel", "Bulk-logged" og "Full". Jeg regner med, at banken kører med "Full" ;-) Det vil jeg så også sætte den til.

Men kunne det ikke tænkes, at log-filerne kunne slettes automatisk hver aften, efter at man har taget en fuld backup?
Avatar billede arne_v Ekspert
09. februar 2005 - 00:06 #23
Når du tager backup af log filerne så frigives pladsen automatisk til genbrug.

Vigtigt: brug SQLServers BACKUP til at dumpe til disk og så derfra på tape - ikke
Windows BACKUP / ARCServe / Legato / whatever til at kopiere database og
log filer til tape med.
Avatar billede axkris Nybegynder
09. februar 2005 - 00:11 #24
>Når du tager backup af log filerne så frigives pladsen automatisk til genbrug.
Du taler om full recovery her?
Avatar billede arne_v Ekspert
09. februar 2005 - 08:47 #25
BACKUP gør det altid medmindre man bruger en option som forhindrer det.

Men der er ikke meget pointe i at lave backup af log, hvis der kun er de sidste 10 minutter.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester