Блог


Последние записи


Теги

Информация

MS SQL Server- по простому.


Обновление MS SQL Server в режиме AlwaysOn до новой версии MSSQL.


   Пришлось обновлять MS SQL Server 2012 до версии 2014, при этом MS SQL Server работало в режиме AlwaysOn. Сложного ничего нет, но есть несколько моментов, которые нужно учитывать при работе и обновлении. Главное, это конечно предварительное тщательное тестирование.


Итак, имеем двух узловой кластер с установленным MS SQL Server 2012 Enterprise Edition Sp2, необходимо обновить до MS SQL Server 2014 Sp1 Cu1.

Подготовительные работы:
  1.        Тестирование
  2.        Еще раз тестирование
  3.        Создание резервных копий системных баз данных (master, msdb)
  4.        Еще раз проверяем наличие всех копий баз данных.

Далее на переводим AlwaysOn в режим асинхронный.

Обновляем вторичную реплику AlwaysOn до 2014 версии, ставим SP и последние CU.

После этого переводим AlwaysOn в синхронный режим, в этом момент синхронизация проходит, но вторичная реплика(так которую мы обновили не доступна для чтения),

Создаем копии бд и делаем Failover.

Активный узел AlwaysOn у нас стал на MS SQL Server2014 и уже в этот момент синхронизация данных на вторичный узел не происходит (режим Suspend у баз данных), т.к там еще младшая версия ms sql server.

После этого проводим тестирование вашего приложения на узле MS SQL Server2014, проверяем журналы SQL Server на отсутствие ошибок.
Надо понимать, что на этот момент мы можем либо откатиться на данные до начала работ(восстановление из копий), либо на момент Failover на SQL2014. Необходимо буд...
читать дальше...
добавлено: 01 апр 16 просмотры: 2399, комментарии: 0



Еще одна ошибка сборщика данных (Data Collector-а).

Эта ошибка применима для MS SQL Server 2012, и тянется с SP2 CU6, после установки CU6 на CU5 SP2, перестает работать сбор данных Query Statistics. Помнится, мы даже кейс в Майкрософте открывали, но решения они не предоставили, сообщив, что это текущий баг, предложив вариант решения, который мы уже на тот момент сделали. Я бы забыл про него, так как уже вышел SP3 для MS SQL Server, но тут снова эта ошибка повторилась после установки SP3 на MS SQL Server2012.


Итак, после установки SP3 на MS SQL Server 2012 перестает работать сбор данных Query Statistics, при этом в журнале ошибки:
«SSIS Error Code DTS_E_PRIMEOUTPUTFAILED.  The PrimeOutput method on ODS - Get snapshot of dm_exec_requests returned error code 0xC020902A.  The component returned a failure code when the pipeline engine called PrimeOutput(). The meaning of the failure code is defined by the component, but the error is fatal and the pipeline stopped executing.  There may be error messages posted before this with more information about the failure.»«"RFS - Read current cache with dm_exec_requests" failed validation and returned validation status "VS_NEEDSNEWMETADATA".»
Решение, как и в прошлый раз, скопировать пакеты с другого сервера с версией до обновления.

Для начала, я скопировал пакет с MS SQL Server 2012 SP2 CU5, но ошибка осталась, затем проверил работу на тестовом сервере, где версия была SP3 CU1, там сборщик данных работал, поэтому решил скопировать пакеты с данного сервера. Так что возможно вам дос...
читать дальше...
добавлено: 26 фев 16 просмотры: 2215, комментарии: 1



Приятные «плюшки» при установке MS SQL 2016

В новой версии, кроме новых возможностей в части Database Engine, есть приятные графические плюшки, одни из них получаем при установке MS SQL Server.

Итак, при установке MS SQL Server 2016 редакции (в предыдущей редакции они были не так представлены)
Microsoft SQL Server 2016 (CTP3.1) - 13.0.801.12 (X64 )

Мы получаем:
1    1)      Во вкладке указания учетных записей служб MS SQL Server, есть возможность сразу предоставить права «Perform Volume Maintenance» для учетных записей.

Мелочь, а приятная штука. Что это за права и на что она влияет, можно почитать по данной теме либо здесьлибо погуглив по теме «perform volume maintenance tasks sql server».
А так же стоит проверить, что у вас стоит на ваших серверах, только нужно понимать для чего это и если на ваши сервера настроена политика полной безопасности, то включать наверно вам это не надо.

2)      И очень приятная плюшка по настройке MS SQL Server, это связанная с настройкой базы данных Tempdb.  


MS SQL Server сам определяет сколько ядер на сервере и ставит соответствующее количество файлов. У меня на виртуальной машине было 2 ядра, поэтому выставилось два файла. В этой же вкладке можно сразу выставить расположение файлов баз данных TempDB, их размер и приращения.

Кстати, размер приращения указан только в мегабайтах, что тоже хорошо для неопытных администраторов.

Больше плюшек при установке не заметил, если есть еще что-то, то ... это хорошо.

Так же хотелось, чтобы была во...
читать дальше...
добавлено: 18 дек 15 просмотры: 3384, комментарии: 1



Скрипт обновления статистики в базе данных с условием

В отличие от стандартного блока Maintance Plan-а, где статистика обновляется не смотря на дату последнего обновления, ниже приводится скрипт обновления статистики в базе данных с условием последней даты обновления статистики.

Сам скрипт:
 
-- запрос обновления статистики таблицы по дате последнего обновления
---1 получаем список имен статистики для обновления и записываем во временную таблицу

declare @dtas datetime
set @dt= getdate()-01 -- дата, меньше которой будем обновлять


begin try

      select o.name as [objname],s.name as [shname],o.object_id,st.name as     [stname]

      into #t_stat

    from sys.stats st

        inner join  sys.objects o  on st.object_id=o.object_id

        inner join   sys.schemas  s on o.schema_id=s.schema_id

      where o.type='U'

      --and STATS_DATE(st.object_id, st.stats_id)  <@dt    --фильтр по дате

      --and o.name='dbservers'                             --фильтра по обеъкту

end try

begin catch
      print (cast(error_number() as nchar(5))+'_'+ ERROR_MESSAGE())
      drop tab...
читать дальше...
добавлено: 24 ноя 15 просмотры: 2199, комментарии: 0



Скриптование всех пользователей, ролей БД и их прав

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



--1 создание таблицы для логинов
print 'Создание таблиц для хранения учетных записей и их прав'
IF NOT EXISTS (SELECT * FROM tempdb.sys.objects
              WHERE object_id = OBJECT_ID(N'tempdb.[dbo].[logins]') AND type in (N'U'))
begin
      create table tempdb.dbo.logins
      ( a varchar(2048),
       l int)
end
else
begin 
 truncate table tempdb.dbo.Logins
end

IF NOT EXISTS (SELECT * FROM tempdb.sys.objects
              WHERE object_id = OBJECT_ID(N'tempdb.[dbo].[loginsscripts]') AND type in (N'U'))
begin
      create table tempdb.dbo.loginsscripts
      ( a varchar(2048))
end
else
begin 
 truncate table tempdb.dbo.[loginsscripts]
end
print 'Конец Создание таблиц для хранения учетных записей и их прав'

--2 создание процедур скриптования 
print 'Создание процедур для скриптования логинов '
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[USERGRANT]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'CREATE P...
читать дальше...
добавлено: 22 ноя 15 просмотры: 2811, комментарии: 0



Ошибка при отображение OLAP куба


При начале работы в Microsoft  Visual Studio 2008 с OLAP кубами может  возникнуть следующая ошибка при попытке отобразить куб:

Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)) (Microsoft Visual Studio)

 

Решение: необходимо скачать компонент Office 2003 Add-in: Office Web Components:
http://www.microsoft.com/en-us/download/confirmation.aspx?id=22276
После установки ошибка исчезает.
читать дальше...
добавлено: 20 ноя 15 просмотры: 1343, комментарии: 0



Настройка репликации MS SQL Server через сеть Интернет


Иногда необходимо доставить данные с одного сервера MS SQL Server  к другому серверу через сеть Интернет использую репликацию, такой случай у меня  был, и ниже я описал как это было реализорвано.
Настройка репликации  MS SQL Server через Интернет мало чем отличается от настройки репликации в локальной сети, за исключением настройки сетевого оборудования.
 


Примерная схема, того, что у нас должно получиться примерно такова:


Объект 1 Сервер 1 и Объект 4 Сервер 2 - это сервера с MS SQL Server в разных сетях.
На Сервере 4 находится основная база, на которую настроена репликация транзакций.
Сервере 1 будет выполнять роль PULL подписчика.

Я еще дополнительно использую ftp для получения резервной копии и её восстановления на Сервер 1 для настройки репликации. Сервер ftp  так же запущен на сервере 2. В MS SQL Server есть возможность использовать ftp для доставки моментальных снимков при репликации, но у меня была проблема с настройкой сетевого оборудования с настройкой NAT-PT, FTPALG, иначе не будет происходить доступ подписчика к ftp серверу.  Я решил по-простому – использовать резервные копии.
Объект 2,3 –это коммутаторы имеющие выход в Интернет с  внешним IP, на которых будут настроены сетевые правила .

Сначала настраивается сетевое оборудование, на коммутаторе 2 необходимо открыть порты TCP 20,21 для ftp и 1433 для самого MS SQL Server (при использование именованного инстанса дополнительно открыть UDP 1434 ) для пак...
читать дальше...
добавлено: 19 ноя 15 просмотры: 1692, комментарии: 0



Скрипт список разрешений пользователей на сервер MS SQL Server


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

Ниже приводится скрипт  получения списка прав на MS SQL Server(скрипт применим для версий MS SQL Server 2005 и старше):

select 
 'sqlcommand'=
   case
     when s.class_desc='SERVER' then  
         case
             when  s.state_desc<>'GRANT_WITH_GRANT_OPTION'then
              s.state_desc+' '+s.permission_name +' TO ['+p.name+']' collate Cyrillic_General_CI_AS
             else 
              'GRANT '+s.permission_name +' TO ['+p.name+'] ' +'WITH GRANT OPTION ' collate Cyrillic_General_CI_AS
         end
    
     when s.class_desc='ENDPOINT' then
        case
             when  s.state_desc<>'GRANT_WITH_GRANT_OPTION'then
              s.state_desc+' '+s.permission...
читать дальше...
добавлено: 16 ноя 15 просмотры: 2172, комментарии: 0



32-разрядные ODBC драйвера на 64-разрядной операционной системе


Довольно часто бывает, что при настройке доступа из MS SQL Server к другим источникам данных мы имеем только 32-разрядные  ODBC драйвера в то время, когда операционная система 64-разрядная.

Решить данную проблему можно следующими способами:

1)Установить на 64 –разрядную ОС 32-разрядную версию MS SQL Server, иногда подходит даже  редакция MS SQL Server Express . После этого возможно настроить связанный сервер с помощью 32 - разрядных  драйверов.

2)Создать ODBC источник в операционной системе, затем создать SSIS пакет, а в свойствах пакета указать работу в 32-разрядном режиме. В этом случае наши драйвера будут работать.  

Для указания данного параметра необходимо в среде MS SQL Server Business Intelligence Development Studio в свойствах проекта «Project -> Name of Project Properties» выбрать пункт «Debugging»  параметр «Run64BitRuntime » выставить в значение  «False».

Важно:И еще после установки 32-разрядных драйверов, настройка источников данных осуществляется через приложение odbcad32.exe расположенное в каталоге «C:\Windows\SysWOW64».

Удачных коннектов!
читать дальше...
добавлено: 09 ноя 15 просмотры: 1608, комментарии: 1



Настройка IBM Lotus ODBC драйвера для MS SQL Server


    Недавно пришлось настраивать, а точнее восстанавливать, ODBC подключение к  базам Lotus-а.

А началось с того, что позвонил аналитик и сообщил, что перестала работать загрузка данных из баз данных Lotus-а. Выгрузка эта была настроена давно другим пользователем, и он уже как пол года уволился, а выгрузка перестала работать 3 дня назад. Начал разбираться, т.к это был первый опыт работы с данным источником, то пришлось разбираться с нуля, и получилось довольно не просто.
   06.11.2013 добавлена информация по настройке драйверов для Windows 2012 Server.
Ниже описаны шаги по настройке данного источника данных для MS SQL Server.

Итак, порядок установки и настройки таков:

1)Скачиваем и устанавливаем Lotus Notes SQL ODBC драйвера с сайта IBM. На момент написания этой статьи была доступна следующая версия драйверов 8.51.2009.1021 от 21.10.2009. На что здесь стоит обратить, то что драйвера только 32-разрядные, а  большинство серверов уже 63 разрядные. Соответственно настройка источника необходимо производить как описано в данной статье.

После того как скачали, устанавливаем драйвера, желательно в каталог по умолчанию C:\NotesSQL.

2)Устанавливаем клиент IBM Lotus Notes на сервер. После установки клиента на сервер, его необходимо настроить под пользователем, через которого будет осуществляться доступ к базам Lotus-а.

3) Запустить приложение Nsql_ALM.exe , которое находится в каталоге установки ODBC драйверов IBM Lotus. В данном приложении необходимо указать ...
читать дальше...
добавлено: 02 ноя 15 просмотры: 2450, комментарии: 0