PDA

Показать полную графическую версию : MS SQL / ORACLE статус бэкапа и дата последнего бэкапа отправить на почту


AZABAZA
27-04-2015, 10:52
Добрый день, ребята

Я наткнулся на задачку, прошу помощи кто чем горазд :dont-know


Есть сервера разные с MS SQL и ORACLE. Каждый день делается резервные копий.

Задача:
1. Нужно чтобы скрипт с этих серверов брал информацию у MS SQL/ORACLE о том что бэкапы прошли успешно и статус бэкапов, даты последнего бэкапа.
2. Отправил письмо!

Примечание: Базы на MS SQL и на ORACLE. ORACLE лог бэкапа пишет в лог файл. MS SQL ничего никуда не пишет но у него есть базы которые надо бэкапировать и не надо бэкапировать.

Можно все эти действий логировать и отправлять это письмом (это мое мнение, но если вы предложите что все статусы и даты будут в теле письма :up ).

Возникнут вопросы я постараюсь объяснить.
Заранее спасибо огромное!

AZABAZA
27-04-2015, 11:01
По MS SQL во тут (http://www.mssqltips.com/sqlservertip/1759/retrieve-a-list-of-sql-server-databases-and-their-properties-using-powershell/)есть кое что, но там показывает все базы а надо отдельные базы

Kazun
27-04-2015, 11:37
Для MSSQL:

1) Статус по Backup, функция SQL
http://beyondrelational.com/modules/2/blogs/43/posts/10198/backup-status-script.aspx

2) Invoke-Sqlcmd2
https://gallery.technet.microsoft.com/scriptcenter/7985b7ef-ed89-4dfd-b02a-433cc4e30894

$query = @'
Пункт 1
'@

$body = Invoke-Sqlcmd2 -ServerInstance "dserver\test" -Query $query | ConvertTo-Html | Out-String
Send-MailMessage -to "User01 <user01@example.com>" -from "User02 <user02@example.com>" -subject "Test mail" -body $body -BodyAsHtml


Еще альтернативное решение для MS SQL - http://blogs.technet.com/b/heyscriptingguy/archive/2011/05/02/use-powershell-to-report-sql-server-backup-status.aspx

AZABAZA
27-04-2015, 12:23
Kazun,

2-ой пункт куда прописать? :dont-know

Если просто закинуть до $body то отваливается ошибка

Exception calling "Open" with "0" argument(s): "A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not fou
nd or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error:
26 - Error Locating Server/Instance Specified)"
At line:104 char:15
+ $conn.Open <<<< ()
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException

Exception calling "Fill" with "1" argument(s): "A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not fou
nd or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error:
26 - Error Locating Server/Instance Specified)"
At line:109 char:19
+ [void]$da.fill <<<< ($ds)
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException

Kazun
27-04-2015, 12:45
Проблема подключения к SQL Instance - о чем и уведомляют.




© OSzone.net 2001-2012