Steuern der TransaktionsdauerhaftigkeitControl Transaction Durability

GILT FÜR: jaSQL ServerjaAzure SQL-DatenbankneinAzure SQL Data Warehouse neinParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

SQL ServerSQL Server -Transaktionscommits können entweder vollständig dauerhaft sein, was in SQL ServerSQL Server der Standardeinstellung entspricht, oder sie können verzögert dauerhaft sein (auch bekannt als verzögerter Commit).transaction commits can be either fully durable, the SQL ServerSQL Server default, or delayed durable (also known as lazy commit).

Vollständig dauerhafte Transaktionscommits sind synchron, melden, dass ein COMMIT erfolgreich ausgeführt wurde, und geben die Steuerung erst an den Client zurück, nachdem die Protokolldatensätze für die Transaktion auf den Datenträger geschrieben wurden.Fully durable transaction commits are synchronous and report a commit as successful and return control to the client only after the log records for the transaction are written to disk. Verzögert dauerhafte Transaktionscommits sind asynchron und melden, dass ein COMMIT erfolgreich ausgeführt wurde, bevor die Protokolldatensätze für die Transaktion auf den Datenträger geschrieben wurden.Delayed durable transaction commits are asynchronous and report a commit as successful before the log records for the transaction are written to disk. Damit eine Transaktion dauerhaft ist, müssen die Transaktionsprotokolleinträge auf dem Datenträger festgeschrieben werden.Writing the transaction log entries to disk is required for a transaction to be durable. Verzögert dauerhafte Transaktionen werden dauerhaft, nachdem die Transaktionsprotokolleinträge auf den Datenträger geleert wurden.Delayed durable transactions become durable when the transaction log entries are flushed to disk.

In diesem Thema werden verzögert dauerhafte Transaktionen ausführlich beschrieben.This topic details delayed durable transactions.

Vollständige oder verzögerte TransaktionsdauerhaftigkeitFull vs. Delayed Transaction Durability

Sowohl die vollständige als auch die verzögerte Transaktionsdauerhaftigkeit bietet Vor- und Nachteile.Both full and delayed transaction durability have their advantages and disadvantages. Eine Anwendung kann eine Mischung aus vollständig dauerhaften und verzögert dauerhaften Transaktionen aufweisen.An application can have a mix of fully and delayed durable transactions. Sie sollten sorgfältig abwägen, welche der beiden Transaktionsarten besser für Ihre Geschäftsanforderungen geeignet ist.You should carefully consider your business needs and how each fits into those needs.

Vollständige TransaktionsdauerhaftigkeitFull transaction durability

Bei vollständig dauerhaften Transaktionen wird das Transaktionsprotokoll auf dem Datenträger festgeschrieben, bevor die Steuerung an den Client zurückgegeben wird.Fully durable transactions write the transaction log to disk before returning control to the client. Vollständig dauerhafte Transaktionen sollten in folgenden Fällen verwendet werden:You should use fully durable transactions whenever:

  • Das System toleriert keine Datenverluste.Your system cannot tolerate any data loss.
    Informationen zu möglichen Datenverlusten finden Sie im Abschnitt Wann können Daten verloren gehen? .See the section When can I lose data? for information on when you can lose some of your data.

  • Der Engpass ist nicht auf Latenzen beim Schreiben des Transaktionsprotokolls zurückzuführen.The bottleneck is not due to transaction log write latency.

Bei verzögerter Transaktionsdauerhaftigkeit verringert sich die Latenz aufgrund der E/A-Protokollvorgänge, weil die Transaktionsprotokoll-Datensätze im Arbeitsspeicher vorgehalten und batchweise in das Transaktionsprotokoll geschrieben werden und infolgedessen weniger E/A-Vorgänge erfordern.Delayed transaction durability reduces the latency due to log I/O by keeping the transaction log records in memory and writing to the transaction log in batches, thus requiring fewer I/O operations. Verzögerte Transaktionsdauerhaftigkeit kann Konflikte bei Protokoll-E/A-Vorgängen verringern und so Wartezeiten im System reduzieren.Delayed transaction durability potentially reduces log I/O contention, thus reducing waits in the system.

Zusicherungen bei vollständiger TransaktionsdauerhaftigkeitFull Transaction Durability Guarantees

  • Sobald ein Transaktionscommit erfolgreich war, sind die durch die Transaktion ausgeführten Änderungen für die anderen Transaktionen im System sichtbar.Once transaction commit succeeds, the changes made by the transaction are visible to the other transactions in the system. Weitere Informationen zu Isolationsstufen von Transaktionen, finden Sie unter SET TRANSACTION ISOLATION LEVEL (Transact-SQL) oder Transactions with Memory-Optimized Tables (Transaktionen mit speicheroptimierten Tabellen).For more information about transaction isolation levels, see SET TRANSACTION ISOLATION LEVEL (Transact-SQL) or Transactions with Memory-Optimized Tables.

  • Die Dauerhaftigkeit ist beim Commit gewährleistet.Durability is guaranteed on commit. Die entsprechenden Protokolldatensätze werden dauerhaft auf dem Datenträger gespeichert, bevor das Transaktionscommit erfolgreich ausgeführt und die Steuerung an den Client zurückgegeben wird.Corresponding log records are persisted to disk before the transaction commit succeeds and returns control to the client.

Verzögerte TransaktionsdauerhaftigkeitDelayed transaction durability

Die verzögerte Transaktionsdauerhaftigkeit wird durch das asynchrone Schreiben von Protokolleinträgen auf den Datenträger erreicht.Delayed transaction durability is accomplished using asynchronous log writes to disk. Transaktionsprotokoll-Datensätze werden in einem Puffer vorgehalten und auf dem Datenträger festgeschrieben, sobald sich der Puffer füllt oder das Leeren des Puffers durch ein Ereignis ausgelöst wird.Transaction log records are kept in a buffer and written to disk when the buffer fills or a buffer flushing event takes place. Die verzögerte Transaktionsdauerhaftigkeit reduziert sowohl Latenzen als auch Konflikte innerhalb des Systems aus folgenden Gründen:Delayed transaction durability reduces both latency and contention within the system because:

  • Die Transaktionscommitverarbeitung wartet nicht, bis E/A-Protokollvorgänge abgeschlossen sind und die Steuerung an den Client zurückgegeben wurde.The transaction commit processing does not wait for log IO to finish and return control to the client.

  • Bei gleichzeitigen Transaktionen sinkt die Konfliktwahrscheinlichkeit bei E/A-Protokollvorgängen. Stattdessen kann der Protokollpuffer in größeren Blöcken auf den Datenträger geleert werden, wodurch Konflikte verringert und der Durchsatz erhöht werden.Concurrent transactions are less likely to contend for log IO; instead, the log buffer can be flushed to disk in larger chunks, reducing contention, and increasing throughput.

    Hinweis

    Bei einem hohen Grad an Parallelität können weiterhin Konflikte bei E/A-Protokollvorgängen auftreten, insbesondere, wenn der Protokollpuffer schneller gefüllt als geleert wird.You may still have log I/O contention if there is a high degree of concurrency, particularly if you fill up the log buffer faster than you flush it.

Anwendungsbereiche für die verzögerte TransaktionsdauerhaftigkeitWhen to use delayed transaction durability

In folgenden Situationen ist die verzögerte Transaktionsdauerhaftigkeit u. U. von Vorteil:Some of the cases in which you could benefit from using delayed transaction durability are:

Datenverluste sind in gewissem Umfang vertretbar. You can tolerate some data loss.
Sofern Datenverluste vertretbar sind, also einzelne Datensätze z. B. nicht ins Gewicht fallen, solange der Großteil der Daten erhalten bleibt, könnten verzögert dauerhafte Transaktionen für Sie in Betracht kommen.If you can tolerate some data loss, for example, where individual records are not critical as long as you have most of the data, then delayed durability may be worth considering. Falls kein Datenverlust hinnehmbar ist, sollten Sie auf die verzögerte Transaktionsdauerhaftigkeit verzichten.If you cannot tolerate any data loss, do not use delayed transaction durability.

Bei Schreibvorgängen in das Transaktionsprotokoll treten Engpässe auf. You are experiencing a bottleneck on transaction log writes.
Wenn die Leistungsprobleme auf Latenzen beim Schreiben in das Transaktionsprotokoll zurückzuführen sind, wird Ihre Anwendung u. U. von der Verwendung verzögerter Transaktionsdauerhaftigkeit profitieren.If your performance issues are due to latency in transaction log writes, your application will likely benefit from using delayed transaction durability.

Arbeitsauslastungen weisen eine hohe Konfliktrate auf. Your workloads have a high contention rate.
Wenn Ihr System Arbeitsauslastungen mit einer hohen Konfliktrate aufweist, wird viel Zeit mit dem Warten auf die Freigabe von Sperren vergeudet.If your system has workloads with a high contention level much time is lost waiting for locks to be released. Da die Commitzeit durch die verzögerte Transaktionsdauerhaftigkeit verkürzt wird, können Sperren schneller freigegeben und der Durchsatz erhöht werden.Delayed transaction durability reduces commit time and thus releases locks faster which results in higher throughput.

Zusicherungen bei verzögerter TransaktionsdauerhaftigkeitDelayed Transaction Durability Guarantees

  • Sobald ein Transaktionscommit erfolgreich war, sind die durch die Transaktion ausgeführten Änderungen für die anderen Transaktionen im System sichtbar.Once transaction commit succeeds, the changes made by the transaction are visible to the other transactions in the system.

  • Die Transaktionsdauerhaftigkeit ist erst gewährleistet, nachdem das In-Memory-Transaktionsprotokoll auf den Datenträger geleert wurde.Transaction durability is guaranteed only following a flush of the in-memory transaction log to disk. Das In-Memory-Transaktionsprotokoll wird in folgenden Fällen auf den Datenträger geleert:The in-memory transaction log is flushed to disk when:

    • Durch eine vollständig dauerhafte Transaktion in derselben Datenbank werden eine Änderung in der Datenbank vorgenommen und erfolgreich ein Commit ausgeführt.A fully durable transaction in the same database makes a change in the database and successfully commits.

    • Der Benutzer führt erfolgreich die gespeicherte Systemprozedur sp_flush_log aus.The user executes the system stored procedure sp_flush_log successfully.

      Nachdem für eine vollständig dauerhafte Transaktion oder sp_flush_log erfolgreich ein Commit ausgeführt wurde, wurden alle verzögert dauerhaften Transaktionen, für die zuvor ein Commit ausgeführt wurde, garantiert zu dauerhaften Transaktionen.If a fully durable transaction or sp_flush_log successfully commits, all previously committed delayed durability transactions are guaranteed to have been made durable.

    • SQL ServerSQL Server versucht, das Protokoll auf Datenträger zu leeren, sowohl auf Basis von Protokollgenerierung als auch von Zeitangaben, selbst wenn alle Transaktionen dauerhaft verzögert werden.does attempt to flush the log to disk both based on log generation and on timing, even if all the transactions are delayed durable. Dies ist in der Regel erfolgreich, wenn das E/A-Gerät Schritt halten kann.This usually succeeds if the IO device is keeping up. SQL ServerSQL Server gibt jedoch keine Garantie der Dauerhaftigkeit außer bei dauerhaften Transaktionen und „sp_flush_log“.However, SQL ServerSQL Server does not provide any hard durability guarantees other than durable transactions and sp_flush_log.

Steuern der TransaktionsdauerhaftigkeitHow to control transaction durability

Steuerung auf DatenbankebeneDatabase level control

Der Datenbankadministrator kann mithilfe der folgenden Anweisung steuern, ob Benutzer die verzögerte Transaktionsdauerhaftigkeit in einer Datenbank nutzen können.You, the DBA, can control whether users can use delayed transaction durability on a database with the following statement. Sie müssen die Einstellung für verzögerte Dauerhaftigkeit mit ALTER DATABASE festlegen.You must set the delayed durability setting with ALTER DATABASE.

ALTER DATABASE ... SET DELAYED_DURABILITY = { DISABLED | ALLOWED | FORCED }    

DISABLED DISABLED
[Standard] Mit dieser Einstellung sind alle Transaktionen, für die in der Datenbank ein Commit ausgeführt wurde, unabhängig von der Einstellung der Commitebene (DELAYED_DURABILITY=[ON | OFF]) vollständig dauerhaft.[default] With this setting, all transactions that commit on the database are fully durable, regardless of the commit level setting (DELAYED_DURABILITY=[ON | OFF]). Gespeicherte Prozeduren müssen weder geändert noch neu kompiliert werden.There is no need for stored procedure change and recompilation. Auf diese Weise können Sie verhindern, dass Daten aufgrund verzögerter Dauerhaftigkeit gefährdet werden.This allows you to ensure that no data is ever put at risk by delayed durability.

ZULÄSSIG ALLOWED
Mit dieser Einstellung wird die Dauerhaftigkeit jeder Transaktion auf der Transaktionsebene bestimmt: DELAYED_DURABILITY = { OFF | ON }.With this setting, each transaction's durability is determined at the transaction level - DELAYED_DURABILITY = { OFF | ON }. Weitere Informationen finden Sie unter Steuerung auf Atomic-Blockebene: nativ kompilierte gespeicherte Prozeduren und Steuerung auf COMMIT-Ebene: Transact-SQL.See Atomic block level control - Natively Compiled Stored Procedures and COMMIT level control -Transact-SQL for more information.

FORCED FORCED
Mit dieser Einstellung wird jede Transaktion, für die in der Datenbank ein Commit ausgeführt wird, zu einer verzögert dauerhaften Transaktion.With this setting, every transaction that commits on the database is delayed durable. Unabhängig davon, ob für die Transaktion vollständige Dauerhaftigkeit (DELAYED_DURABILITY = OFF) oder keine Einstellung angegeben wird, wird sie zu einer verzögert dauerhaften Transaktion.Whether the transaction specifies fully durable (DELAYED_DURABILITY = OFF) or makes no specification, the transaction is delayed durable. Diese Einstellung ist hilfreich, wenn die verzögerte Transaktionsdauerhaftigkeit für eine Datenbank von Nutzen ist und Sie keinen Anwendungscode ändern möchten.This setting is useful when delayed transaction durability is useful for a database and you do not want to change any application code.

Steuerung auf Atomic-Blockebene: nativ kompilierte gespeicherte ProzedurenAtomic block level control - Natively Compiled Stored Procedures

Folgender Code wird in den Atomic-Block eingefügt.The following code goes inside the atomic block.

DELAYED_DURABILITY = { OFF | ON }    

OFF OFF
[Standard] Die Transaktion ist vollständig dauerhaft, es sei denn, die Datenbankoption DELAYED_DURABLITY = FORCED ist aktiviert, wodurch das COMMIT asynchron und daher verzögert dauerhaft ist.[default] The transaction is fully durable, unless the database option DELAYED_DURABLITY = FORCED is in effect, in which case the commit is asynchronous and thus delayed durable. Weitere Informationen finden Sie unter Database level control .See Database level control for more information.

ON ON
Die Transaktion ist verzögert dauerhaft, es sei denn, die Datenbankoption DELAYED_DURABLITY = DISABLED ist aktiviert, wodurch das COMMIT synchron und daher vollständig dauerhaft ist.The transaction is delayed durable, unless the database option DELAYED_DURABLITY = DISABLED is in effect, in which case the commit is synchronous and thus fully durable. Weitere Informationen finden Sie unter Database level control .See Database level control for more information.

Beispielcode:Example Code:

CREATE PROCEDURE <procedureName> ...    
WITH NATIVE_COMPILATION, SCHEMABINDING, EXECUTE AS OWNER    
AS BEGIN ATOMIC WITH     
(    
    DELAYED_DURABILITY = ON,    
    TRANSACTION ISOLATION LEVEL = SNAPSHOT,    
    LANGUAGE = N'English'    
    ...    
)    
END    

Tabelle 1: Dauerhaftigkeit in Atomic-BlöckenTable 1: Durability in Atomic Blocks

Dauerhaftigkeitsoption für Atomic-BlockAtomic block durability option Keine Transaktion vorhandenNo existing transaction Transaktion wird ausgeführt (vollständig oder verzögert dauerhaft)Transaction in process (fully or delayed durable)
DELAYED_DURABILITY = OFFDELAYED_DURABILITY = OFF Atomic-Block startet eine neue vollständig dauerhafte Transaktion.Atomic block starts a new fully durable transaction. Atomic-Block erstellt einen Sicherungspunkt in der vorhandenen Transaktion und startet dann die neue Transaktion.Atomic block creates a save point in the existing transaction, then begins the new transaction.
DELAYED_DURABILITY = ONDELAYED_DURABILITY = ON Atomic-Block startet eine neue verzögert dauerhafte Transaktion.Atomic block starts a new delayed durable transaction. Atomic-Block erstellt einen Sicherungspunkt in der vorhandenen Transaktion und startet dann die neue Transaktion.Atomic block creates a save point in the existing transaction, then begins the new transaction.

Steuerung auf COMMIT-Ebene: Transact-SQLTransact-SQLCOMMIT level control -Transact-SQLTransact-SQL

Da die COMMIT-Syntax erweitert ist, kann die verzögerte Transaktionsdauerhaftigkeit erzwungen werden.The COMMIT syntax is extended so you can force delayed transaction durability. Wenn für DELAYED_DURABILITY auf Datenbankebene DISABLED oder FORCED festgelegt wird (siehe oben), wird diese COMMIT-Option ignoriert.If DELAYED_DURABILITY is DISABLED or FORCED at the database level (see above) this COMMIT option is ignored.

COMMIT [ { TRAN | TRANSACTION } ] [ transaction_name | @tran_name_variable ] ] [ WITH ( DELAYED_DURABILITY = { OFF | ON } ) ]    
    

OFF OFF
[Standard] Das COMMIT der Transaktion ist vollständig dauerhaft, es sei denn, die Datenbankoption DELAYED_DURABLITY = FORCED ist aktiviert, wodurch das COMMIT asynchron und daher verzögert dauerhaft ist.[default] The transaction COMMIT is fully durable, unless the database option DELAYED_DURABLITY = FORCED is in effect, in which case the COMMIT is asynchronous and thus delayed durable. Weitere Informationen finden Sie unter Database level control .See Database level control for more information.

ON ON
Das COMMIT der Transaktion ist verzögert dauerhaft, es sei denn, die Datenbankoption DELAYED_DURABLITY = DISABLED ist aktiviert, wodurch das COMMIT synchron und daher vollständig dauerhaft ist.The transaction COMMIT is delayed durable, unless the database option DELAYED_DURABLITY = DISABLED is in effect, in which case the COMMIT is synchronous and thus fully durable. Weitere Informationen finden Sie unter Database level control .See Database level control for more information.

Zusammenfassung der Optionen und jeweiligen InteraktionenSummary of options and their interactions

In der folgenden Tabelle wird erläutert, auf welche Weise Einstellungen für verzögerte Dauerhaftigkeit auf Datenbankebene und Commitebene interagieren.This table summarizes the interactions between database level delayed durability settings and commit level settings. Einstellungen auf Datenbankebene haben immer Vorrang vor Einstellungen auf Commitebene.Database level settings always take precedence over commit level settings.

COMMIT-Einstellung/DatenbankeinstellungCOMMIT setting/Database setting DELAYED_DURABILITY = DISABLEDDELAYED_DURABILITY = DISABLED DELAYED_DURABILITY = ALLOWEDDELAYED_DURABILITY = ALLOWED DELAYED_DURABILITY = FORCEDDELAYED_DURABILITY = FORCED
DELAYED_DURABILITY = OFF Transaktionen auf Datenbankebene.DELAYED_DURABILITY = OFF Database level transactions. Transaktion ist vollständig dauerhaft.Transaction is fully durable. Transaktion ist vollständig dauerhaft.Transaction is fully durable. Transaktion ist verzögert dauerhaft.Transaction is delayed durable.
DELAYED_DURABILITY = ON Transaktionen auf Datenbankebene.DELAYED_DURABILITY = ON Database level transactions. Transaktion ist vollständig dauerhaft.Transaction is fully durable. Transaktion ist verzögert dauerhaft.Transaction is delayed durable. Transaktion ist verzögert dauerhaft.Transaction is delayed durable.
DELAYED_DURABILITY = OFF Datenbankübergreifende Transaktion oder verteilte Transaktion.DELAYED_DURABILITY = OFF Cross database or distributed transaction. Transaktion ist vollständig dauerhaft.Transaction is fully durable. Transaktion ist vollständig dauerhaft.Transaction is fully durable. Transaktion ist vollständig dauerhaft.Transaction is fully durable.
DELAYED_DURABILITY = ON Datenbankübergreifende Transaktion oder verteilte Transaktion.DELAYED_DURABILITY = ON Cross database or distributed transaction. Transaktion ist vollständig dauerhaft.Transaction is fully durable. Transaktion ist vollständig dauerhaft.Transaction is fully durable. Transaktion ist vollständig dauerhaft.Transaction is fully durable.

Erzwungenes Leeren des TransaktionsprotokollsHow to force a transaction log flush

Sie können auf zwei Weisen erzwingen, dass das Transaktionsprotokoll auf den Datenträger geleert wird.There are two means to force flush the transaction log to disk.

  • Durch Ausführen einer beliebigen vollständig dauerhaften Transaktion, die dieselbe Datenbank ändert.Execute any fully durable transaction that alters the same database. Dadurch wird erzwungen, dass die Protokolldatensätze aller vorherigen verzögert dauerhaften Transaktionen, für die ein Commit ausgeführt wurde, auf den Datenträger geleert werden.This forces a flush of the log records of all preceding committed delayed durability transactions to disk.

  • Durch Ausführen der gespeicherten Systemprozedur sp_flush_log.Execute the system stored procedure sp_flush_log. Durch diese Prozedur wird erzwungen, dass die Protokolldatensätze aller vorherigen verzögert dauerhaften Transaktionen, für die ein Commit ausgeführt wurde, auf den Datenträger geleert werden.This procedure forces a flush of the log records of all preceding committed delayed durable transactions to disk. Weitere Informationen finden Sie unter sys.sp_flush_log (Transact-SQL).For more information see sys.sp_flush_log (Transact-SQL).

Verzögerte Dauerhaftigkeit und andere SQL ServerSQL Server-FunktionenDelayed durability and other SQL ServerSQL Server features

Änderungsnachverfolgung und Change Data Capture Change tracking and change data capture
Alle Transaktionen mit Änderungsnachverfolgung sind vollständig dauerhaft.All transactions with change tracking are fully durable. Eine Transaktion verfügt über die Eigenschaft für das Nachverfolgen von Änderungen, wenn sie Schreibvorgänge in Tabellen ausführt, für die die Änderungsnachverfolgung aktiviert ist.A transaction has the change tracking property if it does any write operations to tables that are enabled for change tracking. Die Verwendung der verzögerten Dauerhaftigkeit wird für Datenbanken, die Change Data Capture (CDC) verwenden, nicht unterstützt.The use of delayed durability is not supported for databases which use change data capture (CDC).

Wiederherstellung nach einem Systemabsturz Crash recovery
Zwar ist Konsistenz gewährleistet, allerdings können einige Änderungen durch verzögert dauerhafte Transaktionen, für die ein Commit ausgeführt wurde, verloren gehen.Consistency is guaranteed, but some changes from delayed durable transactions that have committed may be lost.

Datenbankübergreifende Transaktionen und DTC Cross-database and DTC
Ist eine Transaktion datenbankübergreifend oder verteilt, ist sie unabhängig von einer Datenbank- oder Transaktionscommiteinstellung vollständig dauerhaft.If a transaction is cross-database or distributed, it is fully durable, regardless of any database or transaction commit setting.

Always On-Verfügbarkeitsgruppen und Spiegelung Always On Availability Groups and Mirroring
Verzögert dauerhafte Transaktionen gewährleisten weder auf dem primären noch auf den sekundären Replikaten Dauerhaftigkeit.Delayed durable transactions do not guarantee any durability on either the primary or any of the secondaries. Darüber hinaus sind keine zuverlässigen Informationen zur Transaktion auf dem sekundären Replikat verfügbar.In addition, they do not guarantee any knowledge about the transaction at the secondary. Nach dem COMMIT wird die Steuerung an den Client zurückgegeben, bevor eine Bestätigung von einem synchronen sekundären Replikat empfangen wird.After commit, control is returned to the client before any acknowledgement is received from any synchronous secondary. Die Replikation zu sekundären Replikaten erfolgt weiterhin durch Leerung auf den Datenträger des primären Replikats.Replication to secondary replicas does continue to happen as flush to disk on the primary happens.

Failoverclustering Failover clustering
Einige Schreibvorgänge verzögert dauerhafter Transaktionen können verloren gehen.Some delayed durable transaction writes might be lost.

Transaktionsreplikation Transaction Replication
Verzögerte dauerhafte Transaktionen werden bei der Transaktionsreplikation nicht unterstützt.Delayed durable transactions is not supported with Transactional Replication.

Protokollversand Log shipping
In das gesendete Protokoll werden nur Transaktionen aufgenommen, die in dauerhafte Transaktionen konvertiert wurden.Only transactions that have been made durable are included in the log that is shipped.

Protokollsicherung Log Backup
In die Sicherung werden nur Transaktionen aufgenommen, die in dauerhafte Transaktionen konvertiert wurden.Only transactions that have been made durable are included in the backup.

Wann können Daten verloren gehen?When can I lose data?

Wenn Sie verzögerte Dauerhaftigkeit in einer der Tabellen implementieren, sollten Sie beachten, dass es unter bestimmten Umständen zu Datenverlust kommen kann.If you implement delayed durability on any of your tables, you should understand that certain circumstances can lead to data loss. Falls kein Datenverlust hinnehmbar ist, sollten Sie auf die verzögerte Dauerhaftigkeit in Tabellen verzichten.If you cannot tolerate any data loss, you should not use delayed durability on your tables.

NotfälleCatastrophic events

Bei Notfällen wie beispielsweise einem Serverabsturz gehen die Daten für alle Transaktionen, für die ein Commit ausgeführt wurde, aber die noch nicht auf dem Datenträger gespeichert wurden, verloren.In the case of a catastrophic event, like a server crash, you will lose the data for all committed transactions that have not been saved to disk. Verzögert dauerhafte Transaktionen werden auf dem Datenträger gespeichert, sobald eine vollständig dauerhafte Transaktion für eine Tabelle in der Datenbank ausgeführt wird (dauerhaft speicheroptimiert oder datenträgerbasiert), oder wenn sp_flush_log aufgerufen wird.Delayed durable transactions are saved to disk whenever a fully durable transaction is executed against any table (durable memory-optimized or disk-based) in the database, or sp_flush_log is called. Bei Verwendung von verzögert dauerhaften Transaktionen sollten Sie eine kleine Tabelle in der Datenbank erstellen, die Sie regelmäßig aktualisieren, oder Sie rufen regelmäßig sp_flush_log auf, um alle ausstehenden Transaktionen, für die ein Commit ausgeführt wurde, zu speichern.If you are using delayed durable transactions, you may want to create a small table in the database that you can periodically update or periodically call sp_flush_log to save all outstanding committed transactions. Das Transaktionsprotokoll wird ebenfalls geleert, sobald es voll ist, aber dies ist schwer vorherzusagen und kaum zu steuern.The transaction log also flushes whenever it becomes full, but that is hard to predict and impossible to control.

SQL ServerSQL Server Herunterfahren und Neustartshutdown and restart

Für die verzögerte Dauerhaftigkeit macht es keinen Unterschied, ob das Herunterfahren unerwartet erfolgt oder das Herunterfahren/Neustarten von SQL ServerSQL Servergeplant ist.For delayed durability, there is no difference between an unexpected shutdown and an expected shutdown/restart of SQL ServerSQL Server. Wie bei Notfällen sollten Sie mit Datenverlusten rechnen.Like catastrophic events, you should plan for data loss. Beim geplanten Herunterfahren/Neustarten werden möglicherweise einige Transaktionen, die noch nicht auf dem Datenträger festgeschrieben wurden, zuerst auf dem Datenträger gespeichert, aber dies lässt sich nicht planen.In a planned shutdown/restart some transactions that have not been written to disk may first be saved to disk, but you should not plan on it. Planen Sie so, als ob beim Herunterfahren/Neustarten (ob geplant oder ungeplant) die Daten genauso wie bei unvorhersehbaren Notfällen verloren gehen.Plan as though a shutdown/restart, whether planned or unplanned, loses the data the same as a catastrophic event.

Weitere InformationenSee Also

Transaktionen mit speicheroptimierten TabellenTransactions with Memory-Optimized Tables