Как я уменьшаю журнал транзакций на базах данных MS SQL 2000?

Вы можете сделать следующее, используя reduce и Map .

Получите карту company-id и factory-name -> Затем выполните цикл по companies и создайте вывод

let factories = [{id:1,name:"Xintang",short:"xin",companies:[0,4,101,198]},{id:2,name:"Ohio Plant",short:"OHP",companies:[22,27]},{id:3,name:"Cincy",short:"Cin",companies:[]}],
    companies = [{id:0,fund:"79588.96",name:"Microsoft"},{id:1,fund:"166727.06",name:"Comcast"},{id:2,fund:"131206.88",name:"Apple"},{id:3,fund:"74095.75",name:"HP"},{id:4,fund:"142556.86",name:"Dell"}]

/*Get the company id: factory name mapping*/
const map = factories.reduce((m, f) => 
  (f.companies.forEach(c => m.set(c, f.name)), m)
, new Map);

const output = companies.map(c => ({...c, factory: map.get(c.id) || ''}));

console.log(output)

5
задан ConcernedOfTunbridgeWells 8 October 2008 в 15:35
поделиться

9 ответов

Это должно сделать задание

use master
go
dump transaction <YourDBName> with no_log
go
use <YourDBName>
go
DBCC SHRINKFILE (<YourDBNameLogFileName>, 100) -- where 100 is the size you may want to shrink it to in MB, change it to your needs
go
-- then you can call to check that all went fine
dbcc checkdb(<YourDBName>)

Слово предупреждения

Вы только действительно использовали бы его на базе данных теста/разработки, где Вам не нужна надлежащая стратегия резервного копирования, поскольку дамп журнала приведет к проигрывающей истории транзакций. В живых системах необходимо использовать решение, предложенное Заправкой для соуса Бочонка

6
ответ дан 18 December 2019 в 12:03
поделиться

Использование анализатора запроса:

USE yourdabatase
SELECT * FROM sysfiles

Необходимо найти что-то подобным:

FileID    …  
1             1             24264    -1            1280      1048578               0             yourdabatase_Data    D:\MSSQL_Services\Data\yourdabatase_Data.MDF
2             0             128         -1            1280      66           0                             yourdabatase_Log      D:\MSSQL_Services\Data\yourdabatase_Log.LDF

Проверьте идентификатор файла файла журнала (его 2 большую часть времени). Выполните 2 или 3 раза команду контрольной точки для записи каждой страницы в жесткий диск.

Checkpoint
GO
Checkpoint
GO

Выполните следующую транзакционную команду для транкинга файла журнала к 1 МБ

DUMP TRAN yourdabatase WITH no_log 
DBCC SHRINKFILE(2,1)  /*(FileID , the new size = 1 Mb)*/
0
ответ дан 18 December 2019 в 12:03
поделиться

Другая вещь, которую можно попробовать, состоит в том, чтобы установить режим восстановления на простой (если они уже не) для базы данных, которая помешает файлам журнала расти как быстро. У нас недавно была эта проблема, где наш журнал транзакций заполнился, и нам больше не разрешали транзакции.

Комбинация файла уменьшения, который находится в нескольких ответах и простом режиме восстановления, удостоверилась, что наш файл журнала остался разумный размер.

0
ответ дан 18 December 2019 в 12:03
поделиться
2
ответ дан 18 December 2019 в 12:03
поделиться

Резервный журнал транзакций и уменьшение это.

Если DB сохраняется регулярно и усеченный на контрольной точке, он не должен выходить из-под контроля, однако при выполнении большого количества (размер) транзакций между теми интервалами это вырастет до следующей контрольной точки.

4
ответ дан 18 December 2019 в 12:03
поделиться

Никто здесь не сказал это, таким образом, я буду: НИКОГДА не уменьшайте журнал транзакций. Это - плохая идея с точки зрения SQL Server.

Сохраните журнал транзакций маленьким путем выполнения ежедневных резервных копий дб и каждый час (или меньше) резервные копирования журнала транзакций. Интервал резервного копирования журнала транзакций зависит от того, насколько занятый Ваш дб.

1
ответ дан 18 December 2019 в 12:03
поделиться

Вот то, что я Использовал

BACKUP LOG <CatalogName> with TRUNCATE_ONLY
DBCC SHRINKDATABASE (<CatalogName>, 1)
use <CatalogName>
go
DBCC SHRINKFILE(<CatalogName_logName>,1)
0
ответ дан 18 December 2019 в 12:03
поделиться

Щелкните правой кнопкой по базе данных в Руководителе предприятия> Все Задачи> База данных Уменьшения.

3
ответ дан 18 December 2019 в 12:03
поделиться

попробуйте sp_force_shrink_log, который можно найти здесь http://www.rectanglered.com/sqlserver.php

-1
ответ дан 18 December 2019 в 12:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: