|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Удаление-Копирование-Восстановление MS SQL DB |
|
PowerShell - Удаление-Копирование-Восстановление MS SQL DB
|
Пользователь Сообщения: 69 |
Профиль | Отправить PM | Цитировать
День добрый, всем
У меня вопросик в области POWERSHELL. Есть файл сервер, и сервак. Задача: 1. Удалить *.bak файлы из директорий D:\backup. 2. Копировать *.bak файлы из файл сервера (Примечание *.bak файлы лежат в разбросанном виде. То есть нужно копировать из разных папок в одну локальную папку). 3. Запустить восстановление несколько MS SQL DB (t-sql скрипт уже есть). 4. Подключение юзеров (t-sql скрипт уже есть). sqlcmd -d master -Q "IF EXISTS (SELECT * FROM sys.database_principals WHERE name .............N'db_owner';" 6. Отправить письмо с логами адресату. есть немного кода: # Объявляем переменные $des_dir = Get-Item "D:\Backup\" $src_dir = Get-Item "\\server1\backup\" # Удалить старые bak файлы Get-ChildItem $des_dir -Recurse -include *.bak | Remove-Item Кто чем поможет, выражаю заранее благодарность! Спасибо огромное! |
|
Отправлено: 12:41, 22-04-2015 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать # Объявляем переменные $log = "C:\log\log.txt" $des_dir = Get-Item "D:\Backup\" $src_dir = Get-Item "\\server1\backup\" Start-Transcript -Path $log # Удалить старые bak файлы Get-ChildItem $des_dir -Recurse -include *.bak | Remove-Item #Скопировать Get-ChildItem $src_dir -Recurse -include *.bak | Copy-Item -Destination $des_dir #Запустить восстановление несколько MS SQL DB (t-sql скрипт уже есть). sqlcmd -d master -Q "ALTER DATABASE .......... FILE = 1, NOUNLOAD, REPLACE, STATS = 10;" #Подключение юзеров (t-sql скрипт уже есть). sqlcmd -d APSDB -Q "IF EXISTS (SELECT * FROM sys.database_principals WHERE name .............N'db_owner';" Stop-Transcript send-mailmessage -from "user01@example.com" -to "user02@example.com" -subject "SQL LOG" -body "Forgot to send the attachment. Sending now." -Attachments $log -priority -smtpServer smtp.fabrikam.com |
Отправлено: 13:15, 22-04-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 69
|
Профиль | Отправить PM | Цитировать Kazun,
Спасибо, я не дополнил что копировать нужно только определенные бэкапы остальные не надо копировать Пример:back1.bak - копируем back2.bak - не копируем back3.bak - копируем 2. Когда еще раз копирует он говорит что already exist |
Отправлено: 13:22, 22-04-2015 | #3 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Указать через запятую, какие файлы копировать:
Get-ChildItem "$src_dir\back1.bak","$src_dir\back3.bak" | Copy-Item -Destination $des_dir 2. Когда еще раз копирует он говорит что already exist - Насколько помню, только для папок выдается подобное сообщение. |
Отправлено: 13:39, 22-04-2015 | #4 |
Пользователь Сообщения: 69
|
Профиль | Отправить PM | Цитировать Kazun,
выдает ошибку: Start-Transcript : This host does not support transcription. At line:6 char:17 + Start-Transcript <<<< -Path $log + CategoryInfo : NotImplemented: (:) [Start-Transcript], PSNotSupportedException + FullyQualifiedErrorId : NotSupported,Microsoft.PowerShell.Commands.StartTranscriptCommand |
|
Последний раз редактировалось AZABAZA, 22-04-2015 в 13:50. Причина: забыл Отправлено: 13:50, 22-04-2015 | #5 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Скрипт запускать только в консоли PowerShell и ни в каких других хостах(ISE,PSSQL).
|
Отправлено: 13:52, 22-04-2015 | #6 |
Пользователь Сообщения: 69
|
Профиль | Отправить PM | Цитировать Kazun,
Спасибо огромное! пойду допиливать дальше |
Отправлено: 13:55, 22-04-2015 | #7 |
Пользователь Сообщения: 69
|
Профиль | Отправить PM | Цитировать Kazun,
Что то он у меня не соблюдает порядок выполнения скриптов =( |
Отправлено: 13:44, 29-04-2015 | #8 |
Пользователь Сообщения: 69
|
Профиль | Отправить PM | Цитировать Kazun,
Добрый день, Вопрос: Как можно использовать операторы IF/THEN/ELSE/ELSE IF? Пример: 1.Выполняется проверка почты ЕСЛИ есть письмо с темой, ТОГДА запустить скрипт ЕСЛИ нету ВЫХОД! Примечание: Все в одном листке (скрипте)! Заранее благодарен! |
Отправлено: 13:25, 04-05-2015 | #9 |
Ветеран Сообщения: 1754
|
|
Отправлено: 14:46, 04-05-2015 | #10 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBS/WSH/JS - Удаление-Копирование-Редактирование-Восстановление БД | AZABAZA | Скриптовые языки администрирования Windows | 0 | 27-03-2015 09:42 | |
MSFT SQL Server - Есть ли способ перейти с MS SQL 2005 на MS SQL 2000 | elec | Программирование и базы данных | 10 | 18-04-2013 12:35 | |
MSFT SQL Server - MS SQL Express и MS SQL Standart | Negativ | Программирование и базы данных | 1 | 25-12-2012 08:12 | |
MSFT SQL Server - [решено] Резервное копирование MS SQL Server на сетевой ресурс | Shiirx | Программирование и базы данных | 13 | 26-02-2012 12:46 | |
MSFT SQL Server - Резервное копирование 1Cv7.7+MS SQL 2000 sp4 | FATruden | Программирование и базы данных | 2 | 12-01-2011 17:17 |
|