Как почистить sql server

Как очистить базу данных

18.01.2009, 09:28

Как изменить базу данных по умолчанию или исползовать свою базу данных для администрирование
Привет всем! Создаю новый проект на asp. net но при администрирование проекта visual studio 2012.

Как вообще сделать эту базу данных онлайн. Чтобы я мог отправлять запросы из приложения в базу
Например база где нибудь строит . А приложение на компах пользователей. Пока только делаю.

Как перенаправить в другую базу данных при вызове конкретной строки из таблицы другой базы данных?
Здравствуйте добрые люди! У меня вопрос о базе данных. Есть несколкько баз данных, в каждом из них.

Как создать базу данных?
Добрый день! Доделываю курсовую. И начинаю писать диплом по СУБД. У меня тема «Учет.

18.01.2009, 11:25 2

Или в EnterPrice Manager’е настраиваешь и вешаешь на шедулер.

Удалять данные — напиши простой стрипт и запускай по шедулеру

18.01.2009, 11:57 3

Спасибо!
Но дело в том, что честно говоря я ничего не понял. У меня не большой опыт в части администрирования и поэтому все, что вы написали для меня — темный лес. Если можно разъясните пообширней.

19.01.2009, 11:10 4 19.01.2009, 11:10

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как обновить базу данных?
Использую DataGrid (OLEDB) и ADOBD С помощью запроса изменяю днные в Access-совской таблице, а в.

Как сделать базу данных
Всем доброго времени суток! Мне нужно чтобы данные находящиеся на разных не моих страницах.

Как создавать базу данных?
Имеется нехилый объем данных, который так и просится в СУБД. Из всех прог выбрал Adabas (прошу без.

Источник: http://www. cyberforum. ru/sql-server/thread473197.html

Слишком большой. ldf, сжать/почистить как-нить можно?

19.07.2011, 17:11

Как можно почистить оперативку?
Можно почистить оперативную память или нет? Если да то как?

Как можно почистить барабан картриджа?
Как можно почистить барабан картриджа? После заправки стал немного делать бумагу серой, а буквально.

19.07.2011, 19:06 2 22.07.2011, 13:12 [ТС] 3 23.07.2011, 02:49 4

На этом форуме полно инфы. Укажите в поиске ‘Dump’ или ссылки:
http://www. relib. com/forums/topic. asp? id=779854
http://www. relib. com/forums/topic. asp? id=854129
http://www. relib. com/forums/topic. asp? id=730662
В двух словах:

BACKUP LOG DataBaseName WITH TRUNCATE_ONLY

CHECKPOINT

Checkpoint — указание серваку, что лог за-Back-up-лен и его можно отрезать. Более подробно смотрите в хелпе по моделям восстановления баз данных на SQL Server2000.

23.07.2011, 02:49

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Можно ли (и как) почистить History в Explorer программно?
Можно ли, и если да, то как почистить History в Explorer програмно ?

Какой программой или как можно почистить компьютер?
Уважаемые люди, подскажите пожалуйста какой программой или как можно почистить компьютер, начал.

Как продвинуть каталог ? посоветуйте че-нить. или кого нить..
Добрый день ! Посоветуйте как продвинуть каталог сайтов ? Выслушаю все варианты. Моя аська.

Можно ли припоять как-нить резистор обратно?
Добрый день, может тема была где то но не нашел. На мат плате акустики сгорела микросхема TDA2030A.

Источник: http://www. cyberforum. ru/sql-server/thread497209.html

Как очистить лог файл MS SQL?

Советов очень много, от и до… до написания скрипта из SQL запросов на три страницы. Однако никто или не может или кто-то не хочет делать, а как известно, пока сам не сделаешь — ни кто за тебя делать не будет. Многие читатели спрашивают: Как очистить лог файл MS SQL? Лично я тоже «попался» как алёша на слове SHRINKFILE — и это меня привело не туда. А задача решалась очень просто. Ошибка 1 в строке 2… и всё без толку. В новом MS SQL 2008 Stanrard в обще не работает и ругается. Написана масса отзывов и масса советов. Но ни один не помогает. Все умные стали, а на простом примере никто помочь реально не может. Вот я и решил докопаться до истины: как очистить лог. Открываем: MS SQL Studio 2008. Подсоединяемся. Открываем нужную Базу. Кстати, по-умолчанию обычно стоит, когда вы ставите Базу стоит full бакап. Нажимаем выполнить запрос:

USE master;
ALTER DATABASE Ваша_БД SET RECOVERY SIMPLE;

USE Ваша_БД;
DBCC SHRINKFILE (Ваша_БД_log, 100, TRUNCATEONLY);

И всё просто. Просто вопрос: как? — простой ответ в две строчки! Таким образом база переводится в simple и лог делается по каждые 100 записей с очисткой таблицы логов. Как-то так. Мне лично помогло!

Источник: http://www. helpset. ru/%D0%BA%D0%B0%D0%BA-%D0%BE%D1%87%D0%B8%D1%81%D1%82%D0%B8%D1%82%D1%8C-%D0%BB%D0%BE%D0%B3-%D1%84%D0%B0%D0%B9%D0%BB-ms-sql/

DBCC FREEPROCCACHE (Transact-SQL) DBCC FREEPROCCACHE (Transact-SQL)

Область применения: SQL Server База данных SQL Azure Azure Synapse Analytics (Хранилище данных SQL) Parallel Data Warehouse APPLIES TO: SQL Server Azure SQL Database Azure Synapse Analytics (SQL DW) Parallel Data Warehouse

Удаляет все элементы из кэша планов, удаляет заданный план из кэша планов с помощью указания дескриптора плана или дескриптора SQL либо удаляет все записи кэша, связанные с указанным пулом ресурсов. Removes all elements from the plan cache, removes a specific plan from the plan cache by specifying a plan handle or SQL handle, or removes all cache entries associated with a specified resource pool.

DBCC FREEPROCCACHE не очищает статистику выполнения для хранимых процедур, скомпилированных в собственном коде. DBCC FREEPROCCACHE does not clear the execution statistics for natively compiled stored procedures. Кэш процедур не содержит сведения о хранимых процедурах, скомпилированных в собственном коде. The procedure cache does not contain information about natively compiled stored procedures. Все статистические данные выполнения, полученные при выполнении процедур, появятся в динамических административных представлениях (DMV) статистики выполнения: sys. dm_exec_procedure_stats (Transact-SQL) и sys. dm_exec_query_plan (Transact-SQL). Any execution statistics collected from procedure executions will appear in the execution statistics DMVs: sys. dm_exec_procedure_stats (Transact-SQL) and sys. dm_exec_query_plan (Transact-SQL).

Синтаксис Syntax

Синтаксис для SQL Server: Syntax for SQL Server:

Синтаксис для хранилища данных SQL Azure и Parallel Data Warehouse: Syntax for Azure SQL Data Warehouse and Parallel Data Warehouse:

Аргументы Arguments

( < plan_handle | sql_handle | pool_name > ) ( < plan_handle | sql_handle | pool_name > )
plan_handle уникально идентифицирует план запроса для запущенного пакета, план которого хранится в кэше планов. plan_handle uniquely identifies a query plan for a batch that has executed and whose plan resides in the plan cache. Аргумент plan_handle имеет тип varbinary(64) , и его можно получить из следующих объектов DMO: plan_handle is varbinary(64) and can be obtained from the following dynamic management objects:

sql_handle представляет дескриптор SQL очищаемого пакета. sql_handle is the SQL handle of the batch to be cleared. Аргумент sql_handle имеет тип varbinary(64) , и его можно получить из следующих объектов DMO: sql_handle is varbinary(64) and can be obtained from the following dynamic management objects:

pool_name представляет имя пула ресурсов Resource Governor. pool_name is the name of a Resource Governor resource pool. Аргумент pool_name имеет тип sysname и может быть получен с помощью запроса к динамическому административному представлению sys. dm_resource_governor_resource_pools. pool_name is sysname and can be obtained by querying the sys. dm_resource_governor_resource_pools dynamic management view.
Чтобы связать группу рабочей нагрузки Resource Governor с пулом ресурсов, запросите динамическое административное представление sys. dm_resource_governor_workload_groups. To associate a Resource Governor workload group with a resource pool, query the sys. dm_resource_governor_workload_groups dynamic management view. Чтобы получить сведения о группе рабочей нагрузки для сеанса, запросите динамическое административное представление sys. dm_exec_sessions. For information about the workload group for a session, query the sys. dm_exec_sessions dynamic management view.

WITH NO_INFOMSGS WITH NO_INFOMSGS
Подавляет вывод всех информационных сообщений. Suppresses all informational messages.

COMPUTE COMPUTE
Очистка кэша планов запросов в каждом вычислительном узле. Purge the query plan cache from each Compute node. Это значение по умолчанию. This is the default value.

ALL ALL
Очистка кэша планов запросов в каждом вычислительном узле и в управляющем узле. Purge the query plan cache from each Compute node and from the Control node.

Начиная с версии SQL Server 2016 (13.x); SQL Server 2016 (13.x) , для очистки кэша процедур (планов) для базы данных в области действия служит инструкция ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE . Starting with SQL Server 2016 (13.x); SQL Server 2016 (13.x) , the ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE to clear the procedure (plan) cache for the database in scope.

Remarks Remarks

Инструкция DBCC FREEPROCCACHE используется для аккуратной очистки кэша планов. Use DBCC FREEPROCCACHE to clear the plan cache carefully. Очистка кэша процедур (планов) приводит к исключению всех планов. В результате при выполнении входящих запросов будет компилироваться новый план, а не использоваться существующий план из кэша. Clearing the procedure (plan) cache causes all plans to be evicted, and incoming query executions will compile a new plan, instead of reusing any previously cached plan.

Это может стать причиной внезапного временного снижения производительности обработки запросов из-за увеличения числа компиляций. This can cause a sudden, temporary decrease in query performance as the number of new compilations increases. Для каждого удаленного хранилища кэша в кэше планов журнал ошибок SQL Server SQL Server содержит следующее информационное сообщение: » SQL Server SQL Server обнаружил %d экземпляров, сброшенных на диск хранилищ кэша для хранилища кэша «%s» (части кэша планов) в результате операций DBCC FREEPROCCACHE или DBCC FREESYSTEMCACHE». For each cleared cachestore in the plan cache, the SQL Server SQL Server error log will contain the following informational message: » SQL Server SQL Server has encountered %d occurrence(s) of cachestore flush for the ‘%s’ cachestore (part of plan cache) due to ‘DBCC FREEPROCCACHE’ or ‘DBCC FREESYSTEMCACHE’ operations.» Это сообщение добавляется в журнал каждые пять минут при сбросе кэша в течение этого интервала времени. This message is logged every five minutes as long as the cache is flushed within that time interval.

Следующие операции по перенастройке также очищают кэш процедур: The following reconfigure operations also clear the procedure cache:

  • доступ к счетчику контейнеров проверки кэша access check cache bucket count
  • доступ к квоте кэша проверки access check cache quota
  • clr enabled clr enabled
  • стоимостный порог для параллелизма cost threshold for parallelism
  • cross db ownership chaining cross db ownership chaining
  • память для создания индекса index create memory
  • максимальная степень параллелизма max degree of parallelism
  • max server memory max server memory
  • max text repl size max text repl size
  • максимальное количество рабочих потоков max worker threads
  • min memory per query min memory per query
  • min server memory min server memory
  • ограничение стоимости регулятора запросов query governor cost limit
  • ожидание запроса query wait
  • remote query timeout remote query timeout
  • user options user options

Результирующие наборы Result Sets

Если предложение WITH NO_INFOMSGS не указано, инструкция DBCC FREEPROCCACHE возвращает: «Выполнение DBCC завершено. When the WITH NO_INFOMSGS clause is not specified, DBCC FREEPROCCACHE returns: «DBCC execution completed. Если инструкция DBCC выдает сообщения об ошибках, обратитесь к системному администратору». If DBCC printed error messages, contact your system administrator.»

Разрешения Permissions

Применимо к: SQL Server SQL Server , Параллельное хранилище данных Parallel Data Warehouse Applies to: SQL Server SQL Server , Параллельное хранилище данных Parallel Data Warehouse

  • Требует разрешения ALTER SERVER STATE на сервере. Requires ALTER SERVER STATE permission on the server.

Применимо к: Хранилище данных SQL SQL Data Warehouse Applies to: Хранилище данных SQL SQL Data Warehouse

  • Необходимо членство в предопределенной роли сервера DB_OWNER. Requires membership in the DB_OWNER fixed server role.

Общие замечания касательно Хранилище данных SQL SQL Data Warehouse и Параллельное хранилище данных Parallel Data Warehouse General Remarks for Хранилище данных SQL SQL Data Warehouse and Параллельное хранилище данных Parallel Data Warehouse

Несколько команд DBCC FREEPROCCACHE могут выполняться одновременно. Multiple DBCC FREEPROCCACHE commands can be run concurrently. В Хранилище данных SQL SQL Data Warehouse или Параллельное хранилище данных Parallel Data Warehouse очистка кэша планов может приводить к временному снижению производительности обработки запросов, так как для входящих запросов компилируется новый план, а не используется существующий план из кэша. In Хранилище данных SQL SQL Data Warehouse or Параллельное хранилище данных Parallel Data Warehouse , clearing the plan cache can cause a temporary decrease in query performance as incoming queries compile a new plan, instead of reusing any previously cached plan.

Команда DBCC FREEPROCCACHE (COMPUTE) приводит к перекомпиляции запросов сервером SQL Server SQL Server только в том случае, если они выполняются в вычислительных узлах. DBCC FREEPROCCACHE (COMPUTE) only causes SQL Server SQL Server to recompile queries when they are run on the Compute nodes. Она не приводит к тому, что Хранилище данных SQL SQL Data Warehouse или Параллельное хранилище данных Parallel Data Warehouse перекомпилируют план параллельных запросов, созданный в управляющем узле. It does not cause Хранилище данных SQL SQL Data Warehouse or Параллельное хранилище данных Parallel Data Warehouse to recompile the parallel query plan that is generated on the Control node. Команду DBCC FREEPROCCACHE можно отменить во время выполнения. DBCC FREEPROCCACHE can be cancelled during execution.

Ограничения для Хранилище данных SQL SQL Data Warehouse и Параллельное хранилище данных Parallel Data Warehouse Limitations and Restrictions for Хранилище данных SQL SQL Data Warehouse and Параллельное хранилище данных Parallel Data Warehouse

Команда DBCC FREEPROCCACHE не может выполняться в рамках транзакции. DBCC FREEPROCCACHE can not run within a transaction. Команда DBCC FREEPROCCACHE не поддерживается в инструкции EXPLAIN. DBCC FREEPROCCACHE is not supported in an EXPLAIN statement.

Метаданные для Хранилище данных SQL SQL Data Warehouse и Параллельное хранилище данных Parallel Data Warehouse Metadata for Хранилище данных SQL SQL Data Warehouse and Параллельное хранилище данных Parallel Data Warehouse

При выполнении команды DBCC FREEPROCCACHE в системное представление sys. pdw_exec_requests добавляется новая строка. A new row is added to the sys. pdw_exec_requests system view when DBCC FREEPROCCACHE is run.

Примеры: SQL Server SQL Server Examples: SQL Server SQL Server

A. A. Очистка плана запроса из кэша планов Clearing a query plan from the plan cache

В следующем примере план запроса очищается из кэша планов путем указания дескриптора плана запроса. The following example clears a query plan from the plan cache by specifying the query plan handle. Чтобы обеспечить наличие запроса-образца в кэше планов, сначала выполните следующий запрос. To ensure the example query is in the plan cache, the query is first executed. Динамические административные представления sys. dm_exec_cached_plans и sys. dm_exec_sql_text запрашиваются для возврата дескриптора плана соответствующего запроса. The sys. dm_exec_cached_plans and sys. dm_exec_sql_text dynamic management views are queried to return the plan handle for the query.

Затем значение дескриптора плана из результирующего набора вставляется в инструкцию DBCC FREEPROCACHE для удаления из кэша планов именно этого плана. The plan handle value from the result set is then inserted into the DBCC FREEPROCACHE statement to remove only that plan from the plan cache.

Результирующий набор: Here is the result set.

Б. B. Очистка всех планов из кэша планов Clearing all plans from the plan cache

В следующем примере из кэша планов удаляются все элементы. The following example clears all elements from the plan cache. Предложение WITH NO_INFOMSGS указывается, чтобы избежать отображения информационного сообщения. The WITH NO_INFOMSGS clause is specified to prevent the information message from being displayed.

В. C. Очистка всех записей кэша, связанных с пулом ресурсов Clearing all cache entries associated with a resource pool

В следующем примере очищаются все записи кэша, связанные с указанным пулом ресурсов. The following example clears all cache entries associated with a specified resource pool. Сначала запрашивается представление sys. dm_resource_governor_resource_pools для получения значения аргумента pool_name. The sys. dm_resource_governor_resource_pools view is first queried to obtain the value for pool_name.

Примеры: Хранилище данных SQL SQL Data Warehouse и Параллельное хранилище данных Parallel Data Warehouse Examples: Хранилище данных SQL SQL Data Warehouse and Параллельное хранилище данных Parallel Data Warehouse

Г. D. Примеры базового синтаксиса DBCC FREEPROCCACHE DBCC FREEPROCCACHE Basic Syntax Examples

В приведенном ниже примере в вычислительных узлах удаляются все существующие кэши планов запросов. The following example removes all existing query plan caches from the Compute nodes. Хотя задан контекст UserDbSales, кэши планов запросов в вычислительных узлах будут удалены для всех баз данных. Although the context is set to UserDbSales, the Compute node query plan caches for all databases will be removed. Предложение WITH NO_INFOMSGS блокирует появление информационных сообщений в результатах. The WITH NO_INFOMSGS clause prevents informational messages from appearing in the results.

В следующем примере результаты будут теми же, что и в предыдущем, за исключением того, что в них будут приводиться информационные сообщения. The following example has the same results as the previous example, except that informational messages will show in the results.

Если информационные сообщения запрошены и выполнение завершилось успешно, результаты запроса будут содержать одну строку для каждого вычислительного узла. When informational messages are requested and the execution is successful, the query results will have one line per Compute node.

Д. E. Предоставление разрешения на выполнение DBCC FREEPROCCACHE Granting Permission to run DBCC FREEPROCCACHE

В приведенном ниже примере имени для входа David предоставляется разрешение на выполнение DBCC FREEPROCCACHE. The following example gives the login David permission to run DBCC FREEPROCCACHE.

Источник: http://docs. microsoft. com/ru-ru/sql/t-sql/database-console-commands/dbcc-freeproccache-transact-sql

Журнал транзакций (SQL Server) The Transaction Log (SQL Server)

Область применения: SQL Server База данных SQL Azure Azure Synapse Analytics (Хранилище данных SQL) Parallel Data Warehouse APPLIES TO: SQL Server Azure SQL Database Azure Synapse Analytics (SQL DW) Parallel Data Warehouse

Каждая база данных SQL Server SQL Server имеет журнал транзакций, в котором фиксируются все транзакции и производимые ими в базе изменения. Every SQL Server SQL Server database has a transaction log that records all transactions and the database modifications made by each transaction.

Журнал транзакций — это важная составляющая базы данных. The transaction log is a critical component of the database. Если система даст сбой, этот журнал поможет вам вернуть базу данных в согласованное состояние. If there is a system failure, you will need that log to bring your database back to a consistent state.

Сведения об архитектуре и внутренних компонентах журнала транзакций см. в разделе Руководство по архитектуре журнала транзакций SQL Server и управлению им. For information about the transaction log architecture and internals, see the SQL Server Transaction Log Architecture and Management Guide.

Удаляя или перемещая этот журнал, вы должны понимать все последствия этого действия. Never delete or move this log unless you fully understand the ramifications of doing so.

Известные рабочие точки, от которых следует начинать применение журналов транзакций при восстановлении базы данных, создаются контрольными точками. Known good points from which to begin applying transaction logs during database recovery are created by checkpoints. Дополнительные сведения см. в статье Контрольные точки базы данных (SQL Server). For more information, see Database Checkpoints (SQL Server).

Операции, поддерживаемые журналом транзакций Operations supported by the transaction log

Журнал транзакций поддерживает следующие операции: The transaction log supports the following operations:

  • восстановление отдельных транзакций; Individual transaction recovery.
  • восстановление всех незавершенных транзакций при запуске SQL Server SQL Server ; Recovery of all incomplete transactions when SQL Server SQL Server is started.
  • накат восстановленной базы данных, файла, файловой группы или страницы до момента сбоя; Rolling a restored database, file, filegroup, or page forward to the point of failure.
  • поддержка репликации транзакций; Supporting transactional replication.
  • Поддержка решений высокой уровня доступности и аварийного восстановления: Группы доступности AlwaysOn Always On availability groups , зеркальное отображение базы данных и доставка журналов. Supporting high availability and disaster recovery solutions: Группы доступности AlwaysOn Always On availability groups , database mirroring, and log shipping.

Восстановление отдельных транзакций Individual transaction recovery

Если приложение выдает инструкцию ROLLBACK или Компонент Database Engine Database Engine обнаруживает ошибку, такую как потеря связи с клиентом, записи журнала используются для отката изменений, выполненных в результате незавершенной транзакции. If an application issues a ROLLBACK statement, or if the Компонент Database Engine Database Engine detects an error such as the loss of communication with a client, the log records are used to roll back the modifications made by an incomplete transaction.

Восстановление всех незавершенных транзакций при запуске SQL Server SQL Server Recovery of all incomplete transactions when SQL Server SQL Server is started

Если на сервере происходит сбой, базы данных могут остаться в состоянии, когда часть изменений не переписана из буферного кэша в файлы данных, но в них имеются изменения, совершенные незаконченными транзакциями. If a server fails, the databases may be left in a state where some modifications were never written from the buffer cache to the data files, and there may be some modifications from incomplete transactions in the data files. Когда экземпляр SQL Server SQL Server будет запущен, он выполнит восстановление каждой базы данных. When an instance of SQL Server SQL Server is started, it runs a recovery of each database. Каждое изменение, записанное в журнале, которое, возможно, не было записано в файлы данных, накатывается. Every modification recorded in the log that may not have been written to the data files is rolled forward. Чтобы сохранить целостность базы данных, будет также произведен откат каждой незавершенной транзакции, найденной в журнале транзакций. Every incomplete transaction found in the transaction log is then rolled back to make sure the integrity of the database is preserved. Дополнительные сведения см. в статье Обзор процессов восстановления (SQL Server). For more information, see Restore and Recovery Overview (SQL Server).

Накат восстановленной базы данных, файла, файловой группы или страницы до момента сбоя Rolling a restored database, file, filegroup, or page forward to the point of failure

После потери оборудования или сбоя диска, затрагивающего файлы базы данных, можно восстановить базу данных на момент, предшествующий сбою. After a hardware loss or disk failure affecting the database files, you can restore the database to the point of failure. Сначала восстановите последнюю полную резервную копию и последнюю дифференциальную резервную копию базы данных, затем восстановите последующую серию резервных копий журнала транзакций до момента возникновения сбоя. You first restore the last full database backup and the last differential database backup, and then restore the subsequent sequence of the transaction log backups to the point of failure.

При восстановлении каждой резервной копии журнала, Компонент Database Engine Database Engine повторно применяет все изменения, записанные в журнале, для наката всех транзакций. As you restore each log backup, the Компонент Database Engine Database Engine reapplies all the modifications recorded in the log to roll forward all the transactions. После восстановления последней резервной копии журнала Компонент Database Engine Database Engine затем использует данные журнала для отката всех транзакций, которые не были завершены на момент сбоя. When the last log backup is restored, the Компонент Database Engine Database Engine then uses the log information to roll back all transactions that were not complete at that point. Дополнительные сведения см. в статье Обзор процессов восстановления (SQL Server). For more information, see Restore and Recovery Overview (SQL Server).

Поддержка репликации транзакций Supporting transactional replication

Агент чтения журнала следит за журналами транзакций всех баз данных, которые настроены для репликации транзакций, и копирует отмеченные для репликации транзакции из журнала транзакций в базу данных распространителя. The Log Reader Agent monitors the transaction log of each database configured for transactional replication and copies the transactions marked for replication from the transaction log into the distribution database. Дополнительные сведения о репликации транзакций см. в разделе Как работает репликация транзакций. For more information, see How Transactional Replication Works.

Поддержка решений высокого уровня доступности и аварийного восстановления Supporting high availability and disaster recovery solutions

Решения резервного сервера, Группы доступности AlwaysOn Always On availability groups , зеркальное отображение базы данных и доставка журналов в значительной степени опираются на журнал транзакций. The standby-server solutions, Группы доступности AlwaysOn Always On availability groups , database mirroring, and log shipping, rely heavily on the transaction log.

В сценарии » Группы доступности AlwaysOn Always On availability groups « каждое изменение в базе данных (первичной реплике) немедленно воспроизводится в ее полных автономных копиях (вторичных репликах). In an Группы доступности AlwaysOn Always On availability groups scenario, every update to a database, the primary replica, is immediately reproduced in separate, full copies of the database, the secondary replicas. Первичная реплика немедленно отсылает каждую запись журнала во вторичные реплики, которые применяют входящие записи к базам данных групп доступности, производя непрерывный накат. The primary replica sends each log record immediately to the secondary replicas, that applies the incoming log records to availability group databases, continually rolling it forward. Дополнительные сведения см. в разделе Экземпляры отказоустойчивого кластера AlwaysOn. For more information, see Always On Failover Cluster Instances

В сценарии доставки журналов основной сервер отправляет активный журнал транзакций основной базы данных в определенное назначение или множество назначений. In a log shipping scenario, the primary server sends the active transaction log of the primary database to one or more destinations. Каждый сервер-получатель восстанавливает журнал в свою локальную базу данных-получатель. Each secondary server restores the log to its local secondary database. Дополнительные сведения см. в разделе Сведения о доставке журналов. For more information, see About Log Shipping.

В сценарии зеркального отражения базы данных каждое изменение в базе данных (основной базе данных) немедленно воспроизводится в ее полной автономной копии (зеркальной базе данных). In a database mirroring scenario, every update to a database, the principal database, is immediately reproduced in a separate, full copy of the database, the mirror database. Экземпляр основного сервера немедленно отсылает каждую запись журнала в экземпляр зеркального сервера, который применяет входящие записи к зеркальной базе данных, путем ее непрерывного наката. The principal server instance sends each log record immediately to the mirror server instance, which applies the incoming log records to the mirror database, continually rolling it forward. Дополнительные сведения см. в разделе Зеркальное отображение базы данных. For more information, see Database Mirroring.

Характеристики журнала транзакций Transaction log characteristics

Ниже приведены характеристики журнала транзакций Компонент SQL Server Database Engine SQL Server Database Engine . Characteristics of the Компонент SQL Server Database Engine SQL Server Database Engine transaction log:

Журнал транзакций выполнен как отдельный файл или набор файлов в базе данных. The transaction log is implemented as a separate file or set of files in the database. Кэш журнала управляется отдельно от буферного кэша для страниц данных, что приводит к простому, быстрому и устойчивому коду в пределах компонента Компонент SQL Server Database Engine SQL Server Database Engine . The log cache is managed separately from the buffer cache for data pages, which results in simple, fast, and robust code within the Компонент SQL Server Database Engine SQL Server Database Engine . Дополнительные сведения см. в разделе Физическая архитектура журнала транзакций. For more information, see Transaction Log Physical Architecture.

Формат записей журнала и страниц не обязан следовать формату страниц данных. The format of log records and pages is not constrained to follow the format of data pages.

Журнал транзакций может располагаться в нескольких файлах. The transaction log can be implemented in several files. Вы можете задать для этих файлов автоматическое расширение, установив для журнала значение FILEGROWTH . The files can be defined to expand automatically by setting the FILEGROWTH value for the log. Это снижает вероятность исчерпания пространства журнала транзакций, в то же самое время уменьшая административные издержки. This reduces the potential of running out of space in the transaction log, while at the same time reducing administrative overhead. Дополнительные сведения см. в разделе Параметры инструкции ALTER DATABASE (Transact-SQL) для файлов и файловых групп. For more information, see ALTER DATABASE (Transact-SQL) File and Filegroup Options.

Механизм многократного использования пространства в файлах журналов действует быстро и оказывает минимальное влияние на пропускную способность транзакций. The mechanism to reuse the space within the log files is quick and has minimal effect on transaction throughput.

Сведения об архитектуре и внутренних компонентах журнала транзакций см. в разделе Руководство по архитектуре журнала транзакций SQL Server и управлению им. For information about the transaction log architecture and internals, see the SQL Server Transaction Log Architecture and Management Guide.

Усечение журнала транзакций Transaction log truncation

Процесс усечения журнала освобождает место в файле журнала для повторного использования журналом транзакций. Log truncation frees space in the log file for reuse by the transaction log. Необходимо регулярно усекать журнал транзакций, чтобы предотвратить переполнение выделенного пространства. You must regularly truncate your transaction log to keep it from filling the allotted space. По ряду причин его усечение может быть отложено, поэтому очень важно следить за размером журнала. Several factors can delay log truncation, so monitoring log size matters. Некоторые операции можно выполнять с минимальным протоколированием, чтобы сократить их вклад в размер журнала транзакций. Some operations can be minimally logged to reduce their impact on transaction log size.

Усечение журнала удаляет неактивные виртуальные файлы журнала (VLF) из логического журнала транзакций базы данных SQL Server SQL Server , освобождая в нем место для повторного использования физическим журналом транзакций. Log truncation deletes inactive virtual log files (VLFs) from the logical transaction log of a SQL Server SQL Server database, freeing space in the logical log for reuse by the Physical transaction log. Если усечение журнала транзакций не выполняется, со временем он заполняет все доступное место на диске, отведенное для файлов физического журнала. If a transaction log is never truncated, it will eventually fill all the disk space allocated to physical log files.

В целях предотвращения этой проблемы усечение журнала выполняется автоматически после следующих событий, за исключением тех случаев, когда оно по каким-то причинам задерживается: To avoid running out of space, unless log truncation is delayed for some reason, truncation occurs automatically after the following events:

  • В простой модели восстановления — после достижения контрольной точки. Under the simple recovery model, after a checkpoint.
  • Для моделей полного восстановления и моделей восстановления с неполным протоколированием, если контрольная точка была создана после предыдущего резервного копирования, усечение происходит после резервного копирования журнала (если только это не резервная копия журнала только для копирования). Under the full recovery model or bulk-logged recovery model, if a checkpoint has occurred since the previous backup, truncation occurs after a log backup (unless it is a copy-only log backup).

Дополнительные сведения см. в разделе Факторы, которые могут вызвать задержку усечения журнала далее в этой статье. For more information, see Factors that can delay log truncation, later in this topic.

Усечение журнала не приводит к уменьшению размера физического файла журнала. Log truncation does not reduce the size of the physical log file. Для уменьшения реального размера физического файла журнала необходимо выполнить его сжатие. To reduce the physical size of a physical log file, you must shrink the log file. Сведения о сжатии физического файла журнала см. в разделе Управление размером файла журнала транзакций. For information about shrinking the size of the physical log file, see Manage the Size of the Transaction Log File.
Следует учитывать факторы, которые могут повлиять на задержку усечения журнала. However, keep in mind Factors that can delay log truncation. Если после сжатия журнала снова потребуется дисковое пространство, размер журнала транзакций снова будет увеличиваться, что повлияет на производительность во время операций увеличения. If the storage space is required again after a log shrink, the transaction log will grow again and by doing that, introduce performance overhead during log grow operations.

Factors that can delay log truncation Factors that can delay log truncation

Когда записи журнала остаются активными длительное время, усечение журнала транзакций откладывается и возникает вероятность переполнения журнала транзакций, как описано ранее. When log records remain active for a long time, transaction log truncation is delayed, and the transaction log can fill up, as we mentioned earlier in this long topic.

Дополнительные сведения о том, что нужно делать при переполнении журнала транзакций, см. в разделе Troubleshoot a Full Transaction Log (SQL Server Error 9002). For information about how to respond to a full transaction log, see Troubleshoot a Full Transaction Log (SQL Server Error 9002).

На самом деле усечение журнала может быть задержано из-за множества причин. Really, Log truncation can be delayed by a variety of reasons. Чтобы узнать причину, препятствующую усечению журнала транзакций в конкретном случае, выполните запрос по столбцам log_reuse_wait и log_reuse_wait_desc представления каталога sys. database. Learn what, if anything, is preventing your log truncation by querying the log_reuse_wait and log_reuse_wait_desc columns of the sys. databases catalog view. В следующей таблице описаны значения этих столбцов. The following table describes the values of these columns.

Значение столбца log_reuse_wait log_reuse_wait value Значение столбца log_reuse_wait_desc log_reuse_wait_desc value Description Description
0 0 NOTHING; NOTHING Сейчас есть как минимум один виртуальный файл журнала (VLF), доступный для повторного использования. Currently there are one or more reusable virtual log files (VLFs).
1 1 CHECKPOINT CHECKPOINT С момента последнего усечения журнала новых контрольных точек не было, либо заголовок журнала пока не вышел за пределы виртуального файла журнала (VLF). No checkpoint has occurred since the last log truncation, or the head of the log has not yet moved beyond a virtual log file (VLF). (Все модели восстановления) (All recovery models)

Это широко распространенная причина задержки усечения журнала. This is a routine reason for delaying log truncation. Дополнительные сведения см. в разделе Контрольные точки базы данных (SQL Server). For more information, see Database Checkpoints (SQL Server).

2 2 LOG_BACKUP LOG_BACKUP Требуется выполнить резервное копирование журналов, поскольку лишь после этого журнал транзакций может быть усечен. A log backup is required before the transaction log can be truncated. (Только для моделей полного восстановления и моделей восстановления с неполным протоколированием) (Full or bulk-logged recovery models only)

После завершения создания следующей резервной копии журнала некоторое пространство журнала может освободиться для повторного использования. When the next log backup is completed, some log space might become reusable.

3 3 ACTIVE_BACKUP_OR_RESTORE ACTIVE_BACKUP_OR_RESTORE Выполняется резервное копирование или восстановление данных (для всех моделей восстановления). A data backup or a restore is in progress (all recovery models).

Если усечению журнала препятствует резервное копирование данных, то проблему может решить отмена операции резервного копирования. If a data backup is preventing log truncation, canceling the backup operation might help the immediate problem.

4 4 ACTIVE_TRANSACTION ACTIVE_TRANSACTION Активна одна из транзакций (для всех моделей восстановления). A transaction is active (all recovery models):

Во время начала создания резервной копии журнала может существовать длительная транзакция. A long-running transaction might exist at the start of the log backup. В этом случае, чтобы освободить пространство, может потребоваться создание другой резервной копии журнала. In this case, freeing the space might require another log backup. Помните, что длительные транзакции препятствуют усечению журнала во всех моделях восстановления, включая простую модель восстановления, в которой журнал транзакций обычно усекается на каждой автоматической контрольной точке. Note that long-running transactions prevent log truncation under all recovery models, including the simple recovery model, under which the transaction log is generally truncated on each automatic checkpoint.

Транзакция отложена. A transaction is deferred. Отложенная транзакция — это активная транзакция, откат которой был заблокирован по причине недоступности какого-либо ресурса. A deferred transaction is effectively an active transaction whose rollback is blocked because of some unavailable resource. Дополнительные сведения о причинах, вызывающих появление отложенных транзакций, и о том, как их можно вывести из такого состояния, см. в статье Отложенные транзакции (SQL Server). For information about the causes of deferred transactions and how to move them out of the deferred state, see Deferred Transactions (SQL Server).

Длительные транзакции также могут переполнить журнал транзакций базы данных tempdb. Long-running transactions might also fill up tempdb’s transaction log. Пользовательские транзакции неявно используют базу данных tempdb для внутренних объектов, например для сортировки рабочих таблиц, хэширования рабочих файлов, перемещения рабочих таблиц и управления версиями строк. Tempdb is used implicitly by user transactions for internal objects such as work tables for sorting, work files for hashing, cursor work tables, and row versioning. Даже если пользовательская транзакция только считывает данные (запросы SELECT ), внутренние объекты могут быть созданы и использованы в пользовательских транзакциях. Even if the user transaction includes only reading data ( SELECT queries), internal objects may be created and used under user transactions. В результате журнал транзакций базы данных tempdb может быть заполнен. Then the tempdb transaction log can be filled.

5 5 DATABASE_MIRRORING DATABASE_MIRRORING Зеркальное отображение базы данных приостановлено или в режиме высокой производительности зеркальная база данных намного отстает от основной. Database mirroring is paused, or under high-performance mode, the mirror database is significantly behind the principal database. (Только для модели полного восстановления) (Full recovery model only)

Дополнительные сведения см. в разделе Зеркальное отображение базы данных (SQL Server). For more information, see Database Mirroring (SQL Server).

6 6 РЕПЛИКАЦИЯ REPLICATION Во время репликации транзакций в базу данных распространителя не доставляются транзакции, имеющие отношение к публикациям. During transactional replications, transactions relevant to the publications are still undelivered to the distribution database. (Только для модели полного восстановления) (Full recovery model only)

Дополнительные сведения о репликации транзакций см. в разделе SQL Server Replication. For information about transactional replication, see SQL Server Replication.

7 7 DATABASE_SNAPSHOT_CREATION DATABASE_SNAPSHOT_CREATION Создается моментальный снимок базы данных. A database snapshot is being created. (Все модели восстановления) (All recovery models)

Это очень распространенная (и обычно кратковременная) причина задержки усечения журнала транзакций. This is a routine, and typically brief, cause of delayed log truncation.

8 8 LOG_SCAN LOG_SCAN Производится просмотр журнала. A log scan is occurring. (Все модели восстановления) (All recovery models)

Это очень распространенная (и обычно кратковременная) причина задержки усечения журнала транзакций. This is a routine, and typically brief, cause of delayed log truncation.

9 9 AVAILABILITY_REPLICA AVAILABILITY_REPLICA Вторичная реплика группы доступности применяет записи журнала транзакций этой базы данных к соответствующей базе данных-получателю. A secondary replica of an availability group is applying transaction log records of this database to a corresponding secondary database. (Модель полного восстановления) (Full recovery model)

Дополнительные сведения см. в статье Обзор групп доступности AlwaysOn (SQL Server). For more information, see Overview of Always On Availability Groups (SQL Server).

10 10 Только для внутреннего применения For internal use only
11 11 Только для внутреннего применения For internal use only
12 12 Только для внутреннего применения For internal use only
13 13 OLDEST_PAGE OLDEST_PAGE Если в базе данных настроено использование косвенных контрольных точек, самая старая страница в базе может быть старше регистрационного номера транзакции в журнале (LSN) для контрольной точки. If a database is configured to use indirect checkpoints, the oldest page on the database might be older than the checkpoint log sequence number (LSN). В этом случае самая старая страница может задержать усечение журнала. In this case, the oldest page can delay log truncation. (Все модели восстановления) (All recovery models)

Сведения о косвенных контрольных точках см. в статье Database Checkpoints (SQL Server). For information about indirect checkpoints, see Database Checkpoints (SQL Server).

14 14 OTHER_TRANSIENT OTHER_TRANSIENT Эта значение сейчас не используется. This value is currently not used.
16 16 XTP_CHECKPOINT XTP_CHECKPOINT Необходимо реализовать контрольную точку выполняющейся в памяти OLTP. Для таблиц, оптимизированных для памяти, автоматическая контрольная точка используется, когда размер файла журнала транзакций превышает 1,5 ГБ с момента последней контрольной точки (включая таблицы на основе дисков и оптимизированные для памяти). An In-Memory OLTP checkpoint needs to be performed. For memory-optimized tables, an automatic checkpoint is taken when transaction log file becomes bigger than 1.5 GB since the last checkpoint (includes both disk-based and memory-optimized tables)
Дополнительные сведения см. в разделе Работа контрольной точки для оптимизированных для памяти таблиц и [Процесс ведения журналов и создания контрольных точек для оптимизированных для памяти таблиц] (https://blogs. msdn. microsoft. com/sqlcat/2016/05/20/logging-and-checkpoint-process-for-memory-optimized-tables-2/) For more information see Checkpoint Operation for Memory-Optimized Tables and [Logging and Checkpoint process for In-Memory Optimized Tables] (https://blogs. msdn. microsoft. com/sqlcat/2016/05/20/logging-and-checkpoint-process-for-memory-optimized-tables-2/)

Операции, допускающие минимальное протоколирование Operations that can be minimally logged

Минимальное протоколирование — это протоколирование только информации, необходимой для восстановления транзакции без поддержки восстановления на момент времени. Minimal logging involves logging only the information that is required to recover the transaction without supporting point-in-time recovery. В этом разделе определяются операции, которые подлежат минимальному протоколированию в модели восстановления с неполным протоколированием (как и в простой модели восстановления, кроме случаев, когда выполняется резервное копирование). This topic identifies the operations that are minimally logged under the bulk-logged recovery model (as well as under the simple recovery model, except when a backup is running).

Минимальное протоколирование не поддерживается для оптимизированных для памяти таблиц. Minimal logging is not supported for memory-optimized tables.

В модели полного восстановлениявсе массовые операции полностью протоколируются. Under the full recovery model, all bulk operations are fully logged. Однако для набора массовых операций можно использовать минимальное протоколирование, временно переключив базу данных на модель восстановления с неполным протоколированием во время массовых операций. However, you can minimize logging for a set of bulk operations by switching the database to the bulk-logged recovery model temporarily for bulk operations. Минимальное протоколирование более эффективно, чем полное, и снижает вероятность того, что во время массовой операции большого объема будет заполнено все доступное пространство журнала транзакций. Minimal logging is more efficient than full logging, and it reduces the possibility of a large-scale bulk operation filling the available transaction log space during a bulk transaction. Однако, если при включенном минимальном протоколировании база данных будет повреждена или потеряна, ее нельзя будет восстановить до точки сбоя. However, if the database is damaged or lost when minimal logging is in effect, you cannot recover the database to the point of failure.

Следующие операции, выполняемые с полным протоколированием в модели полного восстановления, осуществляются с минимальным протоколированием в простой модели восстановления и модели восстановления с неполным протоколированием: The following operations, which are fully logged under the full recovery model, are minimally logged under the simple and bulk-logged recovery model:

  • Операции массового импорта (bcp, BULK INSERTи INSERT. SELECT). Bulk import operations (bcp, BULK INSERT, and INSERT. SELECT). Дополнительные сведения о том, когда массовый импорт в таблицу подлежит минимальному протоколированию, см. в разделе Prerequisites for Minimal Logging in Bulk Import. For more information about when bulk import into a table is minimally logged, see Prerequisites for Minimal Logging in Bulk Import.

Если включена репликация транзакций, операции BULK INSERT протоколируются полностью даже в модели восстановления с неполным протоколированием. When transactional replication is enabled, BULK INSERT operations are fully logged even under the Bulk Logged recovery model.

Если включена репликация транзакций, операции SELECT INTO протоколируются полностью даже в модели восстановления с неполным протоколированием. When transactional replication is enabled, SELECT INTO operations are fully logged even under the Bulk Logged recovery model.

Частичные изменения типов данных с большими значениями с помощью предложения. WRITE инструкции UPDATE при вставке или добавлении новых данных. Partial updates to large value data types, using the. WRITE clause in the UPDATE statement when inserting or appending new data. Обратите внимание, что минимальное протоколирование не используется при обновлении существующих значений. Note that minimal logging is not used when existing values are updated. Дополнительные сведения о больших типах-значениях см. в статье Типы данных (Transact-SQL). For more information about large value data types, see Data Types (Transact-SQL).

ИнструкцииWRITETEXT и UPDATETEXT при вставке или добавлении новых данных в столбцы с типом данных text, ntext, и image . WRITETEXT and UPDATETEXT statements when inserting or appending new data into the text, ntext, and image data type columns. Обратите внимание, что минимальное протоколирование не используется при обновлении существующих значений. Note that minimal logging is not used when existing values are updated.

Инструкции WRITETEXT и UPDATETEXT являются устаревшими, поэтому старайтесь не использовать их в новых приложениях. The WRITETEXT and UPDATETEXT statements are deprecated; avoid using them in new applications.

Если в базе данных используется простая модель восстановления или модель восстановления с неполным протоколированием, некоторые DDL-операции с индексом протоколируются в минимальном объеме при их выполнении как режиме «вне сети», так и в режиме «в сети». If the database is set to the simple or bulk-logged recovery model, some index DDL operations are minimally logged whether the operation is executed offline or online. Минимально протоколируются следующие операции с индексами. The minimally logged index operations are as follows:

ОперацииCREATE INDEX (включая индексированные представления). CREATE INDEX operations (including indexed views).

ОперацииALTER INDEX REBUILD или DBCC DBREINDEX. ALTER INDEX REBUILD or DBCC DBREINDEX operations.

Инструкция DBCC DBREINDEX является устаревшей. Не используйте ее в новых приложениях. The DBCC DBREINDEX statement is deprecated; Do not use it in new applications.

Перестроение новой кучи DROP INDEX (если применимо). DROP INDEX new heap rebuild (if applicable). Освобождение страниц индексов при выполнении операции DROP INDEX всегда протоколируется полностью. Index page deallocation during a DROP INDEX operation is always fully logged.

Related tasks Related tasks

Управление журналом транзакций Managing the transaction log

Резервное копирование журнала транзакций (модель полного восстановления) Backing Up the Transaction Log (Full Recovery Model)

Восстановление журнала транзакций (модель полного восстановления) Restoring the Transaction Log (Full Recovery Model)

Источник: http://docs. microsoft. com/ru-ru/sql/relational-databases/logs/the-transaction-log-sql-server