Мониторинг
зеркалирования(Mirroring)
и оповещения о проблемах с ним возможно реализовать несколькими способами.
среда, 18 июля 2012 г.
вторник, 17 июля 2012 г.
VBS: Создание папки пользователя и предоставление прав
Необходимо было автоматизировать создание папки пользователя
на сетевом ресурсе и предоставить права
на запись. Ниже предоставлен скрипт создания папки пользователя на сетевом
каталоге и предоставление прав ни
запись.
среда, 27 июня 2012 г.
Размер всех баз данных MS SQL сервера
Использование sp_spaceused на экземпляре MS SQL Server-е, когда на сервере находится довольно много баз данных не очень удобно, и получается не информативно, да и иногда хочется получить результат одной строкой, чтобы, например, результат записать в таблицу.
четверг, 21 июня 2012 г.
Step by step: Настройка репликации транзакций
Репликация
- это механизм
распространения данных из основной
базы данных(издатель) к базам данным-
подписчикам. MS SQL Server имеем
несколько видов репликаций, одна из них
репликация транзакций, которую и будем
настраивать .
суббота, 9 июня 2012 г.
Step By Step: Настройка зеркального отображения БД в MS SQL Server (Mirroring)
Один из
способов сделать вашу базу данных более
доступной, а так же сохранить данные,
является технология зеркалирование
(Mirroring).
Данная
технология появилась в MS SQL
2005 версии и была продолжена в MS
SQL 2008, MS SQL2008R2, доступна в редакция
Standart и Enterprise,
в качестве свидетеля могут выступать
редакции Express и Workgroup.
Ниже описывается метод без свидетеля и в домене Windows, экземпляры MS SQL Server работают под доменной учетной записью.
среда, 30 мая 2012 г.
VBS: скрипт для управления файлами резервных копий
Согласно плану по резервному копированию одним или двумя файлами резервной копии не отделаться, нужно несколько копий, с запасом , а еще нужно следить , чтобы этих файлов было приемленное колличество, т.к место все таки ограниченно. А еще , к примеру в Mysql, делая резервные копии, например, с помощью Mysql Administrator нужно старые копии удалять.
Для этих целей я написал .vbs скрипт, который решает несколько проблем:
1) Удаляет старые резервные копии файлов по дате
2) Следит и не удалит, при достижение минимального колличества файлов резервной копий
3) В одном скрипте можно описать все нужные каталоги сервера для удаления старых файлов
4)В каталоге с резерными копиями могут находится и другие файлы, скрипт их не затронет
вторник, 15 мая 2012 г.
Запуск xp_cmdshell с правами без sysadmin
Чтобы запускать хранимую
процедуру xp_cmdshell,
нужно иметь разрешения CONTROL SERVER на сервер, т.е быть в роли sysadmins. Пользователям MS SQL Server-а, которые не входят в
данную роль, предоставить права на
выполнение данной процедуры будет мало
только дать права на выполнение данной процедуры, но и нужно создать учетную
запись-посредник для процедуры xp_cmdshell.
четверг, 19 апреля 2012 г.
Узнать права у логина на объекты MS SQL сервера
Как-то дали учетной записи права
на выборку из некоторых таблиц БД, учетная запись уже была в БД, но, как
оказалось, эта учетная запись уже имела выборку на все таблицы БД, но откуда
они шли из графической оболочки Management Studio не
сразу смогли вычислить – смотрел права на таблицы, на роль db_datareader и другие объекты, но как оказалось, права шли с прав на
БД, а в графическом интерфейсе Management Studio просто забыли их посмотреть, в конце концов вычислил их через функции
безопасности ms sql server-а и решил
законспектировать данный пункт, чтобы лучше запомнить.
Итак, узнать права учетной записи можно несколькими способами,
приведу их примеры:
вторник, 3 апреля 2012 г.
Off Topic: О работе MS SQL в кластере
Сейчас нахожусь в поиске работы, приходиться ходить по собеседованиям.
Как на одном собеседование сказали, что вот у них есть система OLTP на базе MS SQL Server-а, система бронирования билетов, они хотя получить от администратора , советы как увеличить производительность, как пример, организовав кластер MS SQL. Что я могу сказать?! Думаю, сначало нужно изучить теорию, как работает MS SQL в кластере, прежде чем такое говорить .
Кластер MS SQL это не средство увеличения производительности, а средство повышения отказоустойчивости. В кластере экземпляр файлов БД один, и с ним может работать только один инстанс ms sql-я, независимо от сколько нод в вашем кластере.
Посмотрите еще в интернете, много статей по этому поводу.
А тот админ который скажет, что сделает вам кластер и при этом будет настаивать, что увеличиться производительность, то надо его отправить на обучение или дать почитать книжку.
:)
вторник, 27 марта 2012 г.
Оператор DML MERGE в MS SQL SERVER 2008
На днях все таки применил оператор DML MERGE, довольно сложный для первоначального понимания, но удобен и есть свои преимущества, если его освоить.
Данный оператор был введен в MS SQL с версии 2008 в дополнение к сущеcтвующим инструкциям DML. Вкратце, его назначение - это применение нескольких инструкций на основание нескольких операторов сравнения, более подробно в первоисточнике -http://msdn.microsoft.com/ru-ru/library/bb510625.aspx
Попробую его описать на моем примере, т.к довольно трудно его понять сразу:
merge dbo.INCAS_GRAF as t
using (select a.recid,a.ID,t.graf
from dbo.temp_graf t inner join ATM a on t.idterminal=a.ID
) as s
on (t.ParentLink_RecID=s.recid)
when matched
then update set t.Graf=s.graf,t.LastModDateTime=getdate(),t.LastModBy='admin'
when not matched by target
then insert (RecId,LastModDateTime,LastModBy,CreatedDateTime,CreatedBy,ParentLink_RecID,GRAF)
values(NEWID(),GETDATE(),'admin',Getdate(),'admin',s.recid,s.graf);
что он делает по шагам:
1) merge dbo.INCAS_GRAF as t -устанавливает, с какой таблицой будут действия(update, insert, delete), в BOL описана как таблица TARGET, т.е цель
2) (select a.recid,a.ID,t.graf
from dbo.temp_graf t inner join ATM a on t.idterminal=a.ID
) - устанавливает 2-ю таблицу - SOURCE
3) (t.ParentLink_RecID=s.recid) - устанавливает связь двух таблиц
4)when matched -описание действий при совадение строк, в моем случае это UPDATE
5)when not matched by target -описание действий со строками которых нет в TARGET, но есть в SOURCE, точнее в том случае если есть строки, которых нет в TARGET. В моем примере, это вставка новых строк в таблицу TARGET.
Вот и все, при выполнения данного запроса, если проанализировать план его выполнения, то он будет намного приятным, если мы бы выполняли данные операции отдельно, что довольно хорошо отразится на операциях с I\O.
Еще полезное, возможность применения аргумента OUTPUT, что позволяет нам получить все данные, которые были изменены\вставлены.
Enjoy it!
Подписаться на:
Сообщения
(
Atom
)