Tünetek
Feltételezzük, hogy Microsoft SQL Server 2012-t vagy SQL Server 2014-et használ. A távoli blobtároló (RBS) karbantartó futtatásakor az RBS karbantartó eszköz futtatása sikertelen volt, és a következő hibaüzenet jelenik meg:
Megjegyzés
Fenntartói feladatok indítása.
A szemétgyűjtés indítása.
A referenciavizsgálat indítása.
Az adatbázis referenciavizsgálata befejeződött.
113 blobot vizsgáltunk be. Törölt 0 blobot a 0x000000000000000000000000(kizárólagos) és 0x00000000000000b600000002(a végpontokat is beleértve) tartományból.
Ez a tevékenység befejeződött. Feldolgozott 1 munkaegység összesen. 0 A munkamennyiség hiányos volt.
Törlésterjesztés indítása.
Jelenleg nem érhető el munka.
Előfordulhat, hogy más ügyfelek, folyamatok vagy szálak jelenleg más feladatokon dolgoznak.
Az aktuális munkaegység kihagyása hiba miatt. További információért tekintse meg az RBS karbantartó naplóját.
[..]
Ez a tevékenység befejeződött. Feldolgozva: összesen 102 munkaegység. 101 munkaegység hiányos volt. 0 blob törléséhez van szükség. 0 blobot sikerült törölni, 0 blob nem található a blobtárolóban.
Ez a tevékenység befejeződött.
Ez a tevékenység befejeződött.
Amikor a Profiler segítségével végzi a probléma nyomon követését, a következő hibaüzenet jelenik meg:
Megjegyzés
Msg 50000, Level 16, State 0, Procedure rbs_sp_rethrow_error, Line 38
RBS hiba. Eredeti hiba: 535-ös szám, 16-os súlyosság, 0. állapot, rbs_sp_count. eljárás, 52. sor,
Üzenet: A datediff függvény túlcsordulást eredményezett. Túl sok dátumrész választ el egymástól két dátum/idő előfordulást. Próbálja meg kevésbé pontos datediff paranccsal használni a datediff függvényt.
Ok
A problémát az okozza, hogy az utolsó végrehajtás óta eltelt időt ellenőrző lekérdezés túlcsordulhat, amikor egy értéket ezredmásodpercre alakít. Ennek következtében a lekérdezés meghiúsul, és a feladat az adatok feldolgozása nélkül befejeződik.
Megoldás
A probléma javítását a RBS.msi legújabb funkciócsomagjának letöltése tartalmazza. Ha már rendelkezik RBS telepítéssel, javasoljuk, hogy futtassa a "Kerülő megoldás" című szakaszban ismertetett parancsfájlt a probléma ideiglenes megoldásához.
A Microsoft SQL Server 2014 Service Pack 2 (SP2) funkciócsomag letöltése
A Microsoft SQL Server 2012 Service Pack 4 (SP4) funkciócsomag letöltése
Kerülő megoldás
Ha az SQL Server 2012-re vagy SQL Server 2014-re telepített RBS-sel rendelkezik, amelyre még nincs telepítve a javítás, kövesse az alábbi kerülő megoldási lépéseket:
Az SSMS-ben nyissa meg a 3. lépésben létrehozott parancsfájlt, majd csatlakozzon ahhoz az SQL Server-példányhoz, amely azt az RBS-ügyféladatbázist üzemelteti, amelyre alkalmazni szeretné a javítást.
A parancsfájlban cserélje le a "your_RBS_client_database" karakterláncot az RBS ügyféladatbázis tényleges nevére.
Futtassa a parancsprogramot a javítás alkalmazásához.
[your_RBS_client_database] használata
ugrásha object_id(N'mssqlrbs_resources.rbs_sp_count') értéke nem null
DROP eljárás mssqlrbs_resources.rbs_sp_count
ugrásLétrehozási eljárás mssqlrbs_resources.rbs_sp_count (
@operation smallint,
@object smallint = 0,
@value bigint = null,
@start_time datetime = null,
@end_time datetime = null,
@description sysname = N'',
@message nvarchar(max) = null
)
Ahogy
kezddeklarálja @type a tinyint,
@secondsUsed bit,
@seconds lebegtetésdeclare @maxDays int = 10;
Ha nem létezik (
select * from mssqlrbs_resources.rbs_internal_counters
where operation = and @operation object = @object and description = @description
)
raiserror (N'Belső hiba az RBS-ben. Érvénytelen teljesítményszámláló számlálásának kísérlete. Számláló: <%d>.<%d>.<%s>.",
16, 101, @operation, @object, @description)kiválasztás
@type = típus,
@secondsUsed = seconds_used
Készlet:
mssqlrbs_resources.rbs_belső_számlálók
ahol
operation = @operation and
object = @object and
description = @descriptionha @object != 0
kezd
if @value is null
raiserror (N'Belső hiba az RBS-ben. A(z) %d> teljesítményszámlálóhoz <nincs megadva az érték.<%d>.<%s>.",
16, 103, @operation, @object, @description)
végeHa @secondsUsed = 1
kezd
HA (@start_time null)
raiserror (N'Belső hiba az RBS-ben. A(z) %d> teljesítményszámlálóhoz <nincs megadva kezdő időpont.<%d>.<%s>.",
16, 102, @operation, @object, @description)set @end\_time = isnull(@end_time, getutcdate())
HA (@start_time >@end\_time)
raiserror (N'Belső hiba az RBS-ben. A kezdő időpont a befejezési időpont után esik. Számláló: <%d>.<%d>.<%s>.",
16, 104, @operation, @object, @description)HA (DateDiff(nap, @start\_time, = @end\_time)>@maxDays)
kezd
set @seconds = convert(lebegtetés; dátum.diff(második; @start\_time; @end\_time))
vége
máskülönben
kezd
set @seconds = convert(float; datediff(ezredmásodperc, @start\_time, / @end\_time)) 1000)
vége
végeFrissítés mssqlrbs_resources.rbs_internal_counters
beállítás
count = count + 1,
Érték = Érték + , @value
squared_value = squared_value + négyzet(@value),
min_value = case
Ha a min_value Null akkor: @value
Mikor (@value < min_value), majd @value
különben min_value
végére,
max_value = case
Ha max_value Null akkor: @value
Mikor (@value > max_value), majd @value
különben max_value
végére,
last_value = , @value
másodperc = másodperc + , @seconds
squared_seconds = squared_seconds + négyzet(@seconds),
min_seconds = case
Ha a min_seconds Null akkor: @seconds
When (@seconds < min_seconds) Then @seconds
különben min_seconds
végére,
max_seconds = case
Ha max_seconds Null akkor: @seconds
Mikor (@seconds > max_seconds), majd @seconds
máskülönben max_seconds
végére,
last_seconds = , @seconds
last_update_time = getutcdate(),
last_message = @message
ahol
operation = @operation and
object = @object and
description = @descriptionvége
ugrás
Állapot
A Microsoft megerősítette, hogy ez egy olyan probléma a Microsoft-termékekben, amely az „Érintett szolgáltatás“ című szakaszban van felsorolva.