IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Обсуждение программ (http://www.imho.ws/forumdisplay.php?f=3)
-   -   M$ SQL Server: проблемы и решения (http://www.imho.ws/showthread.php?t=14858)

Shark 29.11.2007 14:43

Привет всем!
Возникла необходимость установить базу на SQL-сервер с бэкапа, но есть одно упущение - Лог транзакций в бэкапе огромен (порядка 100 Gb), бэкап полный.
Соответственно вопрос, как поставить базу без лога?
SQL Server 2000 Enterprise Edition

Oleg 29.11.2007 16:50

Цитата:

Сообщение от Shark (Сообщение 1489825)
Соответственно вопрос, как поставить базу без лога?

Создай пустую MS SQL базу, останови MS SQL сервер, подмени .mdf файл пустой базы .mdf файлом рабочей базы.

У меня такой метод работал, правда я не использовал эту базу для записи, а только для чтения.

Shark 29.11.2007 17:11

Цитата:

Сообщение от Oleg+ (Сообщение 1489879)
Создай пустую MS SQL базу, останови MS SQL сервер, подмени .mdf файл пустой базы .mdf файлом рабочей базы.

Бэкап создан средствами SQL-сервера, как из него .mdf файл выдрать?

Cartman 10.12.2007 19:19

Shark, посредством нехитрого поиска было найдено следующее: http://support.microsoft.com/kb/325003/
Тебя интересует раздел "Резервное копирование и восстановление баз данных"

Borland 10.12.2007 20:34

Cartman, не, как бэкапить - это он умеет. ;)
Вопрос ставился по другому: как обнулить T-log сохранив работоспособность базы. Или хотя бы сильно сократить.
Просто сервер уже не в состоянии кинуть полный бэкап на сетевой диск - отваливается на ~80% по нехватке ресурсов.
Есть подозрения, что t-log не так уж необходим и может быть сокращён. Нужна точная инфа и инструкции по урезанию.

Shark 11.12.2007 10:04

Цитата:

Сообщение от Shark (Сообщение 1489825)
Возникла необходимость установить базу на SQL-сервер с бэкапа, но есть одно упущение - Лог транзакций в бэкапе огромен (порядка 100 Gb), бэкап полный.
Соответственно вопрос, как поставить базу без лога?

Цитата:

Сообщение от Cartman (Сообщение 1495252)
Shark, посредством нехитрого поиска было найдено следующее: http://support.microsoft.com/kb/325003/
Тебя интересует раздел "Резервное копирование и восстановление баз данных"

Cartman, спасибо за помощь, но по ссылке нет информации по данной конкретной искомой ситуации.
Видимо, произошло недопонимание, посему опишу ситуацию поподробней:
есть полный бэкап БД, созданный SQL Server 2000 EE.
он содержит лог транзакций на 100 Gb.
надо поднять БД на машине, которая не имеет столько места физически.
Отсюда вопрос - как восстановить БД из бэкапа без лога.

Cartman 11.12.2007 10:52

Цитата:

Сообщение от Borland (Сообщение 1495271)
Есть подозрения, что t-log не так уж необходим и может быть сокращён.

Он может быть и очищен, на самом деле. А вот как не загружать его из бакапа... :idontnow:
Может есть возможность подцепить еще один HDD указать еще один файл журнала транзакций на него, отчистить журнал и удалить этот кусок?

Rob 11.12.2007 15:12

Shark,
I. Уменьшить лог.

Неактивная часть лога транзакций обрезается всякий раз при бэкапе лога (BACKUP LOG).
Затем запустить DBCC SHRINKFILE.

Код:

USE имятвоейбазы
GO
DBCC SHRINKFILE (имятвоейбазы_log,5)
BACKUP LOG имятвоейбазы WITH TRUNCATE_ONLY
DBCC SHRINKFILE (имятвоейбазы_log,5)

где 5 - размер файла лога в мегабайтах.

Здесь нужно иметь в виду, что полностью база не сможет быть восстановлена после опции truncate_only.

II. Убить лог.

Если ты абсолютно уверен в том, что лог транзакций тебе не нужен вообще (!), тогда сделай так:

Код:

a. Detach the database

b. Rename the log file

c. Attach the database without the log file

d. Delete the log file

Для этого:

Выдели базу имятвоейбазы -> Tasks -> Detach..-> OK
Открой папку с файлами базы и лога -> переименуй имятвоейбазы_log.ldf файл в имятвоейбазы_log-aa.ldf,
Выдели Databases -> Attach…-> Нажми Add -> добавь базу имятвоейбазы, выдели лог файл и нажми на кнопку ‘Remove’. Это значит ты аттачишь только имятвоейбазы.mdf.
После этого проверь контент приаттаченной базы, и, если всё в порядке - удаляй лог файл.

Cartman 25.01.2009 15:06

Вот тут у меня вопросы к спецам по SQL.
Есть несколько 1С-овских (7.7) баз, крутятся соответственно на 2000 SQL standart, т.к. штатно 1С 2005-ый не понимает.
Базы относительно большие (15 гиг) и операции типа пересчет итогов занимают около часа.
Так вот, замечено что при запуске операций нагружающих SQL он использует 1 процесор (из 8) и то на половину.
Как бы заставить его работать на полную мощность?
Будет ли прирост в производительности если перевести на 2005?

Borland 25.01.2009 16:16

Вложений: 1
Цитата:

Сообщение от Cartman (Сообщение 1628085)
использует 1 процесор (из 8) и то на половину

Смотри вкладку Processor в свойствах сервера в Enterprise Manager...
http://www.imho.ws/attachment.php?at...1&d=1232889205
Все доступные процессоры должны быть помечены галочками. И должна стоять точка на "Use all Avaliable Processors".
Правда, если SQL при установке лицензирован на 1 проц - это не поможет до переустановки сервера.
Кроме того, кое-что зависит и от самой базы. Некоторые базы принципиально не распараллеливаются...

Cartman 25.01.2009 16:34

Цитата:

Сообщение от Borland (Сообщение 1628092)
Все доступные процессоры должны быть помечены галочками. И должна стоять точка на "Use all Avaliable Processors".

Так и есть.
Цитата:

Сообщение от Borland (Сообщение 1628092)
Правда, если SQL при установке лицензирован на 1 проц - это не поможет до переустановки сервера.

При установке был выбран тип лицензирования на устройство (cal), поскольку приобретены именно эти лицензии. Или я что-то не догоняю?
Цитата:

Сообщение от Borland (Сообщение 1628092)
Некоторые базы принципиально не распараллеливаются

Вот думаю, может в самом принципе 1С проблемма... Она то точно только 1 проц использует. Думал SQL поумнее будет.

pazdak 25.01.2009 22:02

Cartman
Насколько я помню (давно уже с ним не работал) SQL 200 SE, использует максимум 4 CPU (именно физических. И ядра для него не имеют никакого значения)

Что касается:
Цитата:

Базы относительно большие (15 гиг) и операции типа пересчет итогов занимают около часа.
Так вот, замечено что при запуске операций нагружающих SQL он использует 1 процесор (из 8) и то на половину.
Как бы заставить его работать на полную мощность?
Гиблый случай!
Для 1с 7.7 SQL, не имеет никакого значения количества CPU, кроме одного!
А причина безграмотности самой платформы, т.к. на сервере SQL никакой математики нет!
Так что никакого распараллеливания запросов не будет.

FACE CONTROL 05.02.2010 09:29

Доброго времени суток. вопрос такой есть MS SQL Server 2005, на нем работает 1с8,

я в MS SQL Management Studio, сделал план обслуживания, ну и в нем спосмощью мастера настроил архивацию свое БД, вопрос только в том как сделать так что-бы хранилось толлько последние 30 архивных копий, ну т.е. что бы он автоматически затирал старые.

там есть такой пункт СРОК ДЕЙСТВИЯ РЕЗЕРВНОГО НАБОРА ДАННЫХ

это оно или нет, если нет подскажите пожалуйста как это сделать!

заранее спасибо!!!

Badger 11.03.2010 00:10

Срок действия резервного набора данных истекает - дата истечения срока, чтобы определить, когда резервный набор данных можно будет перезаписать другой резервной копией:

Чтобы задать срок действия резервного набора данных, выберите пункт После (параметр по умолчанию) и введите срок действия набора в днях с момента его создания. Это значение может быть задано в диапазоне от 0 до 99999 дней; значение 0 означает, что срок действия резервного набора данных не ограничен.

Oleg 06.08.2010 10:40

Проблема : в системе "пропал" логический диск, на котором размещалась tempDB для MS SQL Server.

Удалось запустить MS SQL Server в режиме Single User Mode.

Можно ли в MS SQL Server, запущенном в Single User Mode, запускать SQL-скрипты? Если да, то как?

Необходимо изменить местоположение tempDB с диска F: на другой диск ( E: ).

Borland 06.08.2010 11:05

Цитата:

Сообщение от Oleg (Сообщение 1718950)
Можно ли в MS SQL Server, запущенном в Single User Mode, запускать SQL-скрипты?

Можно.
Цитата:

Сообщение от Oleg (Сообщение 1718950)
Если да, то как?

В общем-то - так же, как и в нормальном режиме. Либо в Query Analizer, либо в консольной osql.exe/sqlcmd.exe
Если, конечно, M$ не врёт... http://support.microsoft.com/kb/822852

Oleg 06.08.2010 11:48

Цитата:

Сообщение от Borland (Сообщение 1718953)
Либо в Query Analizer, либо в консольной osql.exe/sqlcmd.exe

Спасибо!

Действительно, как оказалось, в консоли sqlcmd.exe это можно сделать.

добавлено через 25 минут
Как оказалось, это ещё не все неприятности.

На "отлетевшем" диске также лежали логи SQL-баз (файлы *.LDF).

Как запустить базы в работу? Сервер запустить удалось, но базы недоступны...

Не удаётся войти в параметры базы, чтобы поменять расположение LDF-файла. Нельзя сделать Detach-операцию над базой.

Версия сервера - MS SQL Server 2005.

Borland 06.08.2010 11:52

Oleg, параметры базы, в т.ч. размещение лог-файлов, можно менять sql-скриптом через тот же QA/sqlcmd.
Команды сейчас подсказать не могу, но они точно есть...


Часовой пояс GMT +4, время: 11:11.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.