воссоздание из бекапа

EvgeniyW
Дата: 16.10.2003 08:19:03
Есть бекап БД ms sql server2000, есть sql скрипты БД. Необходимо воссоздать эту БД у себя. Создается нормально из скриптов), но нужны данные из бекапа(
Постоянно натыкаюсь на всякие засады. Может кто подскажет, как это правильно сделать или ссылки в инете.
Заранее благодарен))
pkarklin
Дата: 16.10.2003 08:25:05
А зачем скрипты то тебе, если у тебя бэкап полный есть??? Создавай пустую базу, восстанавливай из бэкапа.

Постоянно натыкаюсь на всякие засады.

Про засады бы поконкретней.
EvgeniyW
Дата: 16.10.2003 08:56:47
Сделал так
RESTORE DATABASE TestDB
FROM DISK = 'c:\Northwind.bak'
WITH MOVE 'Northwind' TO 'c:\test\testdb.mdf',
MOVE 'Northwind_log' TO 'c:\test\testdb.ldf'
GO
имена конечно другие)
Типа восстановилась, но теперь не могу выполнить хранимые процедуры или запросы пишет "Invalid object name 'объект'"(
В EM могу смотреть содержимое таблиц.

И еще у меня админские права(на моем сервере). Я также знаю пароль и логин владельца той БД из которой сделан бекап.
Спасибо)
pkarklin
Дата: 16.10.2003 09:11:11
Типа восстановилась, но теперь не могу выполнить хранимые процедуры или запросы пишет "Invalid object name 'объект'"(
В EM могу смотреть содержимое таблиц.


Типа где выполняешь? В QA. Надеюсь USE TestDB сделал?
EvgeniyW
Дата: 16.10.2003 09:20:17
Понял почему, для доступа к объетам БД нужно было указывать
[login старого владельца][имя объекта]
добавил я такой логин пароль в БД, только теперь при попытке добавить его в юзеры БД, говорит что такой уже есть(
А когда коннекчусь под этим логином, он не видит нужную БД(
Помогите плиз
pkarklin
Дата: 16.10.2003 09:40:23
[login старого владельца][имя объекта]

Т.Е. он, владелец был не dbo?

добавил я такой логин пароль в БД, только теперь при попытке добавить его в юзеры БД, говорит что такой уже есть

Конечно есть. Этот пользователь восстановился вместе с базой.

Помогите плиз

А чем тебе помочь. Зачем объекты создавались не от dbo? По идеи надо сменить владельцев всех объектов на dbo.
x
Дата: 16.10.2003 09:46:02
sp_chage_login тебе поможет
EvgeniyW
Дата: 16.10.2003 09:52:33
Не подскажите как сменить владельца.
Базу делал не я(
Просто есть много кода, где производится обращение к объектам БД.
Я конечно могу у себя поменять, но потом надо будет менять обратно(
Т. е. хотелось, что бы обращения к объектам остались такие же как и в старом коде, например просто "имя хранимой процедуры" а не
[имя владельца]."имя объекта БД"
Спасибо))
SuperMuha
Дата: 16.10.2003 09:59:45
-- Все имена пользователей БД
--SELECT SUBSTRING(Name,1,35) FROM sysusers
-- Удаление имени пользователя из БД
--EXECUTE sp_revokedbaccess @name_in_db='muha'

Удали сначало всех не нужных пользователей из БД (но можно это сделать и из ЕМ). Потом создавай свое имя пользователя.
А БД со всеми ее объектами у тебя создалась не от dbo пользователя, скорее всего из-за невнимательности. Когда ресторишь (и не только) БД, владелецем становиться тот под чьим именем залогинился ИМХО (это хорошо видно, если все действия делать из ЕМ).
pg
Дата: 16.10.2003 10:01:48
проблема в том, что sid юзера в таблице sysusers базы не совпадает с sid в таблице syslogins. Если есть объекты в базе от этого юзера, его удалить нельзя, но можно поменять ему Sid в sysusers. Немного гиммора и всё будет ОК!