Paano Ayusin ang Mga Isyu sa Space na Sanhi ng SQL Server

Ipamahagi ngayon:

Maraming beses SQL Server maaaring ang dahilan para sa isyu ng puwang sa mga disk. Sa artikulong ito, makikita natin kung ano ang pangunahing sanhi ng isyung ito at kung paano namin ito maaayos.

Iyong SQL Server nangangailangan ng puwang.

Mga Isyu sa Space na sanhi ng SQLMaraming beses SQL Server kakailanganin ang disk space. Maaaring ito ay dahil sa lumalaking data sa loob ng iyong database o na-unshrunk ang mga file ng log o mga na-undelete na backup na file o na-undelete, hindi ginustong mga file ng database. Anuman ang dahilan ay, sa a SQL Server, puwang sa disk ay napakahalaga para sa mga transaksyon sa database.

Hindi gumagana ang gawain sa paglilinis

Kung gumagamit ka ng mga plano sa pagpapanatili ng katutubong SQL upang mai-backup ang iyong SQL server mga database, maaaring may mga pagkakataong ang module ng paglilinis sa mga plano sa pagpapanatili ay hindi ginagawa ang kanilang gawain. Kapag naubusan ng disk ang disk ay mapagtanto mo na ang mga lumang backup na file ay hindi malinis nang maayos. Isasama mo sana ang module ng paglilinis sa plano ng pagpapanatili. Sa kabila ng lahat ng ito nagtataka ka ba kung bakit hindi ito gumana?

Suriin kung nabanggit mo ang tamang folder upang matanggal ang mga backup na file, suriin kung nabanggit mo ang tamang extension ng file upang tanggalin ang mga backup na file, subukan sa tuldok na "." at walang tuldok sa extension ng file.

Ang mga file ng log ay malaki kaysa sa mga file ng database

SQL Server DatabasePinakakaraniwang sanhi ng problema sa espasyo SQL Server ay ang mga walang nagbabantay na log file at tempdb file. Bagama't ang tempdb ay lumiliit sa orihinal na laki tuwing magre-restart ang SQL Service, mainam na kasanayan na subaybayan ang paglaki ng tempdb at paliitin ito kapag malapit na nitong kainin ang buong espasyo sa disk. Katulad ng tempdb, ang mga log file ay dapat palaging sinusuri. Siguraduhing mayroon kang log backup upang palaging mapanatili ang mga log file sa pinakamaliit na laki.

Hindi nagamit na mga file ng database

Maaaring maraming hindi nagamit at hindi naka-link na mga file ng database na nakaupo sa iyong disk at pag-aaksaya ng puwang. Ipatupad ang script sa iyong SQL Server halimbawa upang makilala ang mga nasabing file kasama ang kanilang landas. Matapos ang isang mabilis na pagtatasa, kung sigurado ka pa rin na ang mga file na iyon ay hindi na kailangan, tanggalin ang mga ito at makatipid ng puwang.

DECLARE @dpth NVARCHAR(512)

EXEC master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE'
    ,N'Software\Microsoft\MSSQLServer\MSSQLServer'
    ,N'DefaultData'
    ,@dpth OUTPUT

DECLARE @lpth NVARCHAR(512)

EXEC master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE'
    ,N'Software\Microsoft\MSSQLServer\MSSQLServer'
    ,N'DefaultLog'
    ,@lpth OUTPUT

DECLARE @bk NVARCHAR(512)

EXEC master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE'
    ,N'Software\Microsoft\MSSQLServer\MSSQLServer'
    ,N'BackupDirectory'
    ,@bk OUTPUT

DECLARE @md NVARCHAR(512)

EXEC master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE'
    ,N'Software\Microsoft\MSSQLServer\MSSQLServer\Parameters'
    ,N'SqlArg0'
    ,@md OUTPUT

SELECT @md = substring(@md, 3, 255)

SELECT @md = substring(@md, 1, len(@md) - charindex('\', reverse(@md)))

DECLARE @ml NVARCHAR(512)

EXEC master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE'
    ,N'Software\Microsoft\MSSQLServer\MSSQLServer\Parameters'
    ,N'SqlArg2'
    ,@ml OUTPUT

SELECT @ml = substring(@ml, 3, 255)

SELECT @ml = substring(@ml, 1, len(@ml) - charindex('\', reverse(@ml)))

SET @dpth = isnull(@dpth, @md)
SET @lpth = isnull(@lpth, @ml)

PRINT @dpth
PRINT @lpth

EXEC sp_configure 'show advanced'
    ,1

RECONFIGURE

EXEC sp_configure 'xp_cmdshell'
    ,1

RECONFIGURE

IF object_id('tempdb.dbo.#table1') IS NOT NULL
    DROP TABLE #table1

CREATE TABLE #table1 (
    [filename] VARCHAR(2000)
    ,depth INT
    ,isFile INT
    )

SET @dpth = 'DIR ' + @dpth + '\*.mdf /b /s'
SET @lpth = 'DIR ' + @lpth + '\*.ldf /b /s'

INSERT INTO #table1
EXEC xp_DirTree @dpth
    ,1
    ,1

INSERT INTO #table1
EXEC xp_DirTree @lpth
    ,1
    ,1

DELETE
FROM #table1
WHERE isFile <> 1

UPDATE #table1
SET filename = rtrim(filename)

CREATE TABLE t_list (
    filepath VARCHAR(2000)
    ,sizeinmb DECIMAL(18, 2)
    )

INSERT INTO t_list (filepath)
SELECT otable.filename AS orphaned_files
FROM #table1 otable
LEFT OUTER JOIN master.dbo.sysaltfiles db ON rtrim(db.filename) = otable.filename
WHERE db.dbid IS NULL
ORDER BY 1

DECLARE @sizeingb AS DECIMAL(18, 2)
DECLARE @filepath AS VARCHAR(2000)

DECLARE db_cursor CURSOR
FOR
SELECT filepath
FROM t_list

OPEN db_cursor

FETCH NEXT
FROM db_cursor
INTO @filepath

WHILE @@FETCH_STATUS = 0
BEGIN
    CREATE TABLE t_temp (c1 VARCHAR(2000))

    DECLARE @cmd AS VARCHAR(3000)

    SET @cmd = 'dir ' + @filepath

    PRINT @cmd

    INSERT INTO t_temp
    EXEC master.dbo.xp_cmdshell @cmd

    DELETE
    FROM t_temp
    WHERE c1 NOT LIKE '%1 File(s)%bytes'

    DECLARE @size AS DECIMAL(18, 2)

    SET @size = (
            SELECT TOP 1 replace(replace(replace(c1, '               1 File(s)    ', ''), ',', ''), ' bytes', '')
            FROM t_temp
            WHERE c1 IS NOT NULL
            )
    SET @size = cast((@size / (1024 * 1024)) AS DECIMAL(18, 2))

    DROP TABLE t_temp

    UPDATE t_list
    SET sizeinmb = @size
    WHERE filepath = @filepath

    FETCH NEXT
    FROM db_cursor
    INTO @filepath
END

CLOSE db_cursor

DEALLOCATE db_cursor

SELECT *
FROM t_list

DROP TABLE t_list

EXEC sp_configure 'show advanced'
    ,1

RECONFIGURE

EXEC sp_configure 'xp_cmdshell'
    ,0

RECONFIGURE

SQL Server Korapsyon sa Database

Bilang karagdagan sa pagsubaybay at pagpapanatili ng iyong disk space, subaybayan din ang kalusugan ng iyong disk. Maaaring masira ng hindi malusog na disk ang iyong SQL Server mga database Kung nangyari ito, mangyaring gamitin ang tool sa pagbawi ng database tulad ng DataNumen SQL Recovery sa ayusin ang sira SQL Server.

Panimula ng May-akda:

Si Neil Varley ay isang dalubhasa sa pagbawi ng data sa DataNumen, Inc., na pinuno ng mundo sa mga teknolohiya sa pagbawi ng data, kasama ang ayusin ang katiwalian sa email ng Outlook at excel mga produkto ng pagbawi ng software. Para sa karagdagang impormasyon pagbisita www.datanumen. Sa

Ipamahagi ngayon:

Mga komento ay sarado.