Показаны сообщения с ярлыком MS SQL Server 2005. Показать все сообщения
Показаны сообщения с ярлыком MS SQL Server 2005. Показать все сообщения

среда, 1 декабря 2010 г.

Доустановка SQL 2005 Reporting Service на сервер SQL 2005 Database Engine

Возникла необходимость в доустановить SQL 2005 Reporting Service.

При установке возник Warning:



проделав по ссылке рекомендации:

ASP.NET 2.0 Переключение между 32-Bit и 64-Bit-версиями.

обнаружив, что в IIS Web Service Extentions действительно отключен ASP.NET v.2.0.50727 (32-bit) и включил его, после чего согласно рекомендаций накатил апдейт - тот который стоял на SQL 2005 - SP3:



всё -равно не смог подключиться к Reporting Service через SQL Server Management Studio, получив ошибку:

the report services instance could not be found microsoft.sqlserver.management.ui.rsclient

Просто оказалось, что его [Reporting Service] нужно ещё сконфигурировать.

Start -> All Programs -> Microsoft SQL Server 2005 -> Configuration Tools -> Reporting Services Configuration

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



Reporting Service наконецто заработает, ан нет - перезапуск службы SQL Reporting Service только и помог.

среда, 10 ноября 2010 г.

Добавление учетной записи компьютера в Security SQL сервера

Который раз спотыкаюсь об эти грабли - в SQL Server 2005 было проще - добавляешь в конце имени компьютера знак доллара и тогда учетная запись компьютера определялась в SQL Server Management Studio при создании пользователя в Security в SQL Server 2008 только скриптом получилось:

USE
[master]
GO
EXEC master.dbo.sp_grantlogin @loginame = N'DOMAIN\ACCOUNT'

http://www.sqldev.org/getting-started-with-sql-server/how-to-add-computer-account-in-sql-2005-98197.shtml

понедельник, 8 ноября 2010 г.

Галактики ERP пробный переезд с 32-битной платформы на 64-битную

Имели продакшн сервер HP DL 580G5, 32G RAM, и дисками с SAN, с одной базой Галактики ERP в двухуровневой архитектуре, размер базы без транзакционных журналов, но с журналом базы галактики составлял 70Гб, всё это было на Windows 2003 Enterprise 32bit + SQL 2005 Enterprise 2005 32-bit.

Подняли виртуальную машину Windows 2003 Standart 64-bit с достаточным объемом дискового пространства, поставили SQL 2005 64bit и обновили его до версии соответствующей версии SQL на продакшн сервере, после чего восстановили базу мастер и боевую базу, а также рабочий каталог галактики - клиентской части и support.

Далее был выкачан новый дистрибутив Галактики ERP(потом, как выяснилось - это было сделано зря, лучше бы использовали старый), поскольку мы ставили достаточно давно, а обновлений (patches) на ресурсные файлы за пару лет было накачено на ERP огромное множество, благо под цели тестирования есть ещё 2 тестовых сервера, где крутиться около 5 тестовых баз - клонов производственной, для тестирования различных обновлений (patches) и внедрения новых АРМов(автоматизированных рабочих мест).

После установки не хотел нормально вязаться NAP-сервер с SQL (оба располагались на одном сервере) и клиентская часть (обычно клиентскую шару располагают там же) тоже не пускалась. Симптомы были очень странными - служба работала, порт 1997 слушался (смотрели утилитой CurrPorts), но telnet на порт не цеплялся ))), А также не могли подключиться через "Менеджер серверов и служб "Галактики"" - видимо по той же причини, что и не могли подключиться по telnet:



При сравнении dll-файлов на продакшн и тестовом сервере, выяснилось, что на тестовом вообще нет версии у файлов, - заменили библиотеки с продакшн, после этого перезагрузив - всё заработало, без перезагрузки никак не обошлось. (да и Internet Explorer Enhanced Security Configuration тоже надо отключать - не любят они друг друга)

Теперь осталось дело за "МАЛЫМ" - проверить программистскую часть о чем и было попрошено программистов(по-проверять проводки и т.п.).

вторник, 19 октября 2010 г.

Определение версии SQL и перенос системных баз

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

на 32 битном была версия 9.0.3054

на 64 битном поставил SQL2005, потом накатил SP2 далее выкачал апдейт с:
http://www.microsoft.com/downloads/en/details.aspx?FamilyId=D09CF5C4-FEC4-4322-9FEE-06A43401CF0C&displaylang=en

Перезаливка из бэкаппа базы мастер
1.убедиться что пользователь, из под которого будут выполняться команды имеет привелегии sysadmin на SQL сервере
2.Выполнить команду:
\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn\sqlservr.exe -m

3.Из другой командной строки запустить
C:\Program Files\Microsoft SQL Server\90\Tools\Binn\sqlcmd.exe

4.
1>RESTORE DATABASE master FROM DISK = 'G:\master_backup_.bak' WITH REPLACE;
2> GO

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


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

Перенастройка базы tempdb:

use master
use master
alter database tempdb modify file( name = tempdev, filename = N'F:\Tempdb\tempdb.mdf')
go
alter database tempdb modify file( name = templog, filename = N'F:\Tempdb\templog.ldf')
go


сссылки по теме:
http://support.microsoft.com/?kbid=934458

http://sqlserver2000.databases.aspfaq.com/how-do-i-know-which-version-of-sql-server-i-m-running.html

http://www.aspfaq.com/sql2005/show.asp?id=20

среда, 9 июня 2010 г.

После миграции баз с SQL 2005 на SQL 2008...

После миграции баз с SQL 2005 на SQL 2008 они уже не хотят работать на SQL 2005 вновь им подавай только 2008 и не ниже. Причем не ниже той версии на которой был сделан бэкап, если перенос ведется средствами резервного копирования и восстановления:



В частности к ним принадлежит база WSUS и база ESX vSphere

Вопрос: "Как перенести базу на SQL с более поздней версией?" - остается открытым.
Надо попробовать просто отмонтировать базу от "нового" SQL сервера и примонтировать к "старому" SQL серверу - скорее всего это выход...

четверг, 13 мая 2010 г.

Удивил c правами SQL 2008 после импорта базы с SQL 2005

Перенс базу c SQL Server 2005 на SQL Server 2008.
Ну что значит перенес - создал новую с таким же именем на SQL 2008, на SQL 2005 забэкапил текущую и восстановил её на SQL 2008 заменив пути и мена файлов на необходимые.
Поскольку в базе был пользователь с SQL авторизацией, а на новом сервере SQL 2008, его естественно не было, создал такового на SQL 2008, и к моему удивлению не смог добавить ему доступ на базу. Дело в том, что восстановленная база несла в себе информацию о том, что такому пользователю должен уже быть предоставлен доступ, о чем свидетельствовала запись в свойствах безопасности базы, но в то же время новый созданный пользователь с таким же именем в свойствах безопасности сервера не был добавлен в безопасность базы.
При добавлении пользователя выскакивала ошибка:
----------------------------------------------------------------
TITLE: Microsoft SQL Server Management Studio------------------------------
Create failed for User 'User_Program'. (Microsoft.SqlServer.Smo)
For help, click:
http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.0.1600.22+((SQL_PreRelease).080709-1414+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Create+User&LinkId=20476
------------------------------ADDITIONAL INFORMATION:
An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)
------------------------------
User, group, or role 'User_Program' already exists in the current database. (Microsoft SQL Server, Error: 15023)
For help, click:
http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.00.1600&EvtSrc=MSSQLServer&EvtID=15023&LinkId=20476
------------------------------BUTTONS:
OK------------------------------

----------------------------------------------------------------
После удаления пользователя из свойств безопасности базы, необходимая роль на базу успешно предоставилась.

четверг, 6 мая 2010 г.

Миграция базы данных Virtual Center c SQL Server 2005 на SQL Server 2008

Сделал практически все что написано здесь, т.е.:
VCenter 2.5.0
1.Остановил службу "VMware VirtualCenter Server"
2.Отключил базу на SQL 2005 сервере - Take Offline.
3.Скопировал файлы базы данных на новый сервер SQL 2008.
4.На новом SQL 2008 сервере примонтировал базу Attach, выбрав файл .mdf
5.У меня был сохраненный пароль пользователя с SQL аутентификацией со старого сервера - создал аналогичного, назначил ему роль sa на сервер. Если у вас отсутствует пароль на поьлзователя, то можно просто через установку удаление програм запустить Modify для "VMware VirtualCener Server", где можно заново назначить базу с новыми настройками.
6.Настройка ODBC на новый сервер:(для Native Client) Start->Administrative Tool->Data Source (ODBC)->System DSN->choose "Vmware VirtualCenter"->Press button "Configure..." -> сменить "имя сервера" на "новое имя сервера"\"имя инстранса SQL" - здесь имя инстанса не нужно указывать если оно имя по-умолчанию (типа к службе SQL в службах идет примиска MSSQLSERVER) ->Press "Next" and insert "Login ID" and "Password"->Press "Next" set CheckBox "Cnange the default database to:" and choose youre database name->Press "Next"->Press "Finish"->Press "Test Data Source..." must see "TESTS COMPLETED SUCCESSFULLY!"->Ok->Ok->Ok
7.Запустил службу "VMware VirtualCenter Server"

через "SQL Server Management Studio" видим в "Processes", что есть подключения к базе

после того как всё заработало подключил базу в настройка ODBC не через имя сервера, а через DNS алиас - всё так же запустилось

WSUS - Миграция базы данных с СУБД SQL Server 2005 на СУБД SQL Server 2008

В английском варианте это звучало бы: WSUS - Migrating from SQL Server 2005 Database to SQL Server 2008 Database
Конечно же всем для начала читать WSUS - Migrating from Windows Internal Database to SQL Server 2005
Миграция выполняется буквально в несколько шагов - ничего сложного:
1.Останавливаем службу "Update Services" на своем сервере WSUS
2.Заходим в SQL Server Management Studio на сервер баз данных SQL Server 2005 на котором "крутиться" в настоящий момент база WSUS. И делаем праой кнопкой на базе WSUS (скорее всего имя базы будет SUSDB) следующее Tasks -> Take Offline
3.Копируем файлы базы данных на сервер баз данных SQL Server 2008
4.На сервере баз данных SQL Server 2008 через SQL Server Management Studio (для 2008 своя оснастка, отличная от 2005) на корне заходим в Databases -> Attach и выбираем файл базы данных .mdf жмем OK, после чего база будет присоединена к серверу и будет в работе.
5.Теперь необходимо направить сервер WSUS на новый сервер баз данных SQL Server 2008. Для этого заходим на сервер WSUS (например по RDP), находим в реестре (regedit) следующую ветку:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Update Services\Server\Setup]
выбираем параметр:
SqlServerName, здесь ранне стояло имя алиаса DNS для подключения к SQL Server 2005, например: "db_wsus_susdb" и всё работало, теперь же указываем также имя DNS алиаса(DNS псевдонима) но с указанием имени инстанса уже: "db_wsus_susdb\cluster02sql2".
Естественно DNS алиас направляем на новый сервер баз данных SQL Server 2008.

Дело в том, что в моем случае был Active\Active кластер с двумя инстансами: один из которых назывался "cluster02sql2", а имя виртуаьлного узла кластера sql сервера было "cluster-02-sql2" на который, как раз и направили DNS алиас.

Возможно у кого-то зараработает и без указания имени DNS алиаса, но в рассматриваемой кластерной среде так не заработало, возможно дело в том, что SQL инстанс именованный - отличный от дефолтового и ещё отличается от имени витруального узла кластера.
Параметры:
"SqlAuthenticationMode"="WindowsAuthentication"
"SqlDatabaseName"="SUSDB"
"SqlUserName"=""
"SqlEncryptedPassword"=""
оставил без изменения.
6.Необходимо добавить учетную запись компьютера, на котором распологается WSUS сервис - "Update Services" на доступ к SQL Server 2008, для эого заходим через SQL Server Management Studio в корне оснастки Security -> на Logins жмем правой кнопкой и выбираем "New Login...", поскольку мы в находимся в доменной среде и безопасность сервера находиться в режиме Mixed mode, выбираем Windows authentication, в поле "Login Name" вводим имя компьютерного аккаунта, например, "WSUS-Server" и в конце добавляем знак $, т.е. должно получиться "WSUS-Server$", у меня тоже не получилось с первого раза, всё дело в том, что на базу master доступ компьютерным аккаунтам дается по-другому, что бы получилось - нужно указать нашу базу SUSDB. После добавления аккаунта предоставил ему роль на базу db_owner.
7.На сервере WSUS запускаем "Update Services", если все операции начиная с первой вы проделали очень быстро, то, возможно, ещё не очистился DNS кэш со старым значение DNS алиаса для разрешения этой проблемы, можно выполнить команду: ipconfig /flushdns, но лучше перезагрузить компьютер.