comred Ответов: 1

Хотите создать пакетный файл для выполнения SQL скрипта


Привет..

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

Я знаю, как это сделать с помощью sqlcmd.

Server_Name -U username -P passsword
GO
ALTER database dbName SET RECOVERY simple
GO
DBCC shrinkdatabase (dbName)
GO



Теперь я хочу выполнить этот скрипт автоматически. Я думаю использовать планировщик задач, чтобы я мог запускать эти команды в определенное время.

С уважением и благодарностью.

1 Ответов

Рейтинг:
11

Mike Meinz

Мне никогда не нужно было управлять ShrinkDatabase но у меня есть и другие BAT-файлы, которые я использую для планового обслуживания своей базы данных. Ниже приведен пример использования ваших SQL-команд.

1. Создание C:\BAT\SHRINKDB.BAT содержащие эти утверждения:

cd C:\Program Files\Microsoft SQL Server\110\Tools\Binn
SQLCMD -S YOURCOMPUTERNAME\SQLEXPRESS -E -w 166 -e -i C:\BAT\ShrinkDB.sql -o C:\BAT\ShrinkDB.log
После казни, C:\BAT\ShrinkDB.log будет содержать выходные данные SQLCMD.

2. Создание C:\BAT\SHRINKDB.SQL содержащий команды SQL:
ALTER database dbName SET RECOVERY simple
GO
DBCC shrinkdatabase (dbName)
GO


3. Используйте планировщик задач Windows для планирования C:\BAT\ShrinkDB.bat


phil.o

Мои 5! ;)
Просто убедитесь, что учетная запись, под которой выполняется задача, имеет достаточные права на базу данных для выполнения этих команд.

Member 10435696

Ваш 1-й пункт говорит создать C:\BAT\SHRINKDB.BAT
Но я не могу найти папку BAT на диске C...Plz поможет вам создать пакетный файл.Я хочу назначить процедуру ежедневного исполнения в полночь

Mike Meinz

Нажмите кнопку "Новая папка" и создайте папку BAT или папку с любым именем, которое вам нравится. Я использую летучую мышь, потому что она короткая и легко запоминается.

Member 10435696

k Спасибо за ответ, А что вы храните в ShrinkDB и как вы это делаете??

Member 10435696

SQLCMD -S YOURCOMPUTERNAME\SQLEXPRESS-E-w 166-e-i C:\BAT\ShrinkDB.sql -о C:\BAT\ShrinkDB.log

plz объясните-E-W & 166-E

Mike Meinz

Эти параметры описаны в документации Microsoft для SQLCMD. Видеть Программа sqlcmd .

- E означает использовать доверенное соединение
-э-Эхо входных данных выходных данных журнала
-ж 166 166 средства использовать, так как ширина входа выхода
-i означает, что имя файла входной SQL-команды следует (C:\BAT\Shrinkdb.sql)
-o означает, что имя выходного файла журнала следует (C:\BAT\Shrinkdb.log)

Видеть 2. в решении 1. Это наглядный пример содержания SHRINKDB.Sql-файл, который считывается с помощью программы sqlcmd. Я использовал Notepad.exe чтобы создать как ShrinkDb. SQL, так и ShrinkDB.BAT

Member 10435696

к благодаря..Вы решили мою проблему..Спасибо

vijay kumar sahu

Прочитав все вышеприведенные комментарии экспертов, я попробовал это сделать, но, похоже,
на меня это не действует. Может ли кто-нибудь проверить, не делаю ли я что-то не так?

Вот файл bat с командой.
программа sqlcmd -х годов .\отчеты -е -я "C:\Vijay Саху\официальное\запросов к БД\MCX_Test.летучая мышь" -о "C:\Vijay Саху\официальное\ДБ Queries\log.txt"


Bat файл содержит эту команду
ИСПОЛЬЗУЙТЕ [MCX]
вставить в тест (CurrentDateTime) значения (getdate())


И мой проект ConnectionString=
&ЛТ;добавить имя="МСХ" свойства connectionString="источник данных=гр-85HKG32\SQL2012;начальный каталог=МСХ;Комплексная безопасность=истина" имя_поставщика="системы.Данных.В sqlclient"/&ГТ;


Может ли кто-нибудь помочь мне как можно скорее выйти из БЦЗ крайнего срока реализации проекта. На самом деле
Я ищу это решение, потому что мой общий веб-сайт не позволяет мне создать агент заданий sql...

Mike Meinz

Видеть Документация утилиты SQLCMD[^]

1. Вы указали неверное имя сервера в параметрах программы sqlcmd.
2.Если вы не вошли на тот же компьютер, что и SQL Server, то вы не сможете использовать-E (доверенное соединение) и должны будете указать имя пользователя и пароль с помощью параметров-U и-P.

Пример:
программа sqlcmd -с гр-85HKG32\SQL2012 -у в <имя пользователя> По-Р <пароль> У-Я "C:\Vijay Саху\официальное\запросов к БД\MCX_Test.летучая мышь" -о "C:\Vijay Саху\официальное\ДБ Queries\log.txt"

Также, я предлагаю переименовать файл, содержащий SQL-операторы с "C:\Vijay Саху\официальное\запросов к БД\MCX_Test.летучая мышь" в "C:\Vijay Саху\официальное\запросов к БД\MCX_Test.для SQL", чтобы избежать путаницы. Использовать расширение файла ".летучая мышь" для пакетных командных файлов и ".SQL" для файлы, содержащие операторы SQL.

Нет такого слова, как"БЦЗ".
Я думаю, ты имеешь в виду " потому что."

vijay kumar sahu

Оооо!!! Да это "потому что".

Я попробовал этот код ниже, и он отлично работает для меня.


osql -S GH-85HKG32\SQL2012 -E  -i "C:\path\Test.sql" -o "C:\path\defragIndexesLog.txt"