Database backup на SQL-сервере (MS Access etc.)

maximovega

Можно ли регулярно делать полную копию базы данных, включая не только таблицы, но и написанные функции и процедуры? Так, словно "фотографировать" её, сохранять содержимое хотя бы папок Tables, Stored Procedures и Scalar-valued Functions?
Желательно, чтобы легко переносился обратно.
Вопрос возник в связи с тем, что доступ к важным процедурам имеет слишком много людей, и при этом не все достаточно тактичны, чтобы скопировать чужую процедуру в отдельное окошко, когда хотят запустить её с изменениями. Или, по крайней мере, недостаточно внимательны, чтобы после использования привести её в первоначальную форму.

Alena_08_11

Не совсем понятно что именно нужно, но вот так у меня делается full backup всех (несистемных баз, как правило - 1С-вские ) каждый день, уже на протяжении лет так 4-х (Это sql-job):

declare @today datetime;
declare @date_affix varchar(128);
declare @filePath varchar(256);
declare @name varchar(256);
select @today = GETDATE;
select @date_affix = '-'+CONVERT(varchar(2DAY(@today+'.'+CONVERT(varchar(2MONTH(@today+'.'+CONVERT(varchar(4YEAR(@today+'-'+CONVERT(varchar(2DATEPART(hh,@today+'h'+CONVERT(varchar(2DATEPART(mi,@today+'m';


declare myCur cursor for select name from sys.databases where owner_sid <> 0x01

open myCur


fetch next from myCur into @db
while @@FETCH_STATUS = 0
begin
-- Щас делаем типа backup
select @filePath = '\\fs01\sqlbu$\'+CONVERT(varchar(db)+@date_affix+'.bak';
select @name = 'FULL BACKUP of ' + @db
BACKUP DATABASE @db TO DISK = @filePath WITH FORMAT, NAME = @name
fetch next from myCur into @db
end
close myCur
deallocate myCur

Старые бэкапы стираются другим скриптом, не sql-job-ом
Короче, ключевое слово :

BACKUP DATABASE @db TO DISK = @filePath WITH FORMAT, NAME = @name

Развернуть из бэкапа можно через sql management studio, или sql командой (щас непомню уже какой).

hprt

restore database ;)
Вообще, ей проще будет потыкать кнопки, наверное. Это в Management Studio в дереве объектов Management -> Maintenance Plans -> New Plan etc.
Ну, если сервер 2005+
Так же, если сервер 2005+, то можно повесить триггер на DDL-события (изменения данных не получится так отслеживать, конечно и отслеживать все изменения, кем и когда сделаны, а потом всех бить по голове.
Вообще, Ксения, результат
select @@version
в студию, не раз уж просили сказать, какой сервер :)
Если сама база Access, а не только морда, то черт знает, что с этим делать :)

Alena_08_11

Вообще, ей проще будет потыкать кнопки, наверное.
Один раз - да, один раз в сутки - уже не проще, лучше job.
up. Понял что написал фигню, осознав что вышепроцитированное было относительно восстановления, а не создания бэкапа.

hprt

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

maximovega

Восстановление, честно говоря, не совсем то, что бы хотелось: не могу контролировать, кто и когда менял данные. Хочу, поработав в базе, сохранять тексты использованых процедур и результирующие таблички. Но их не настолько мало, чтобы каждый раз экспортировать вручную в Access. И уж тем более Ctrl+C, Ctrl+V процедуры в Word...

nawok

Если база данных MSAccess, то вот:
http://office.microsoft.com/ru-ru/access-help/HA010235586.aspx#BM2

nik93

задам вопрос здесь чтобы не плодить тем:
Есть огроменный sql скрипт, примерно 1,1 Гига CREATE/INSERT. Как его выполнить чтобы создать БД (если это возможно)?
MSSQL

nik93

thnx :)
Оставить комментарий
Имя или ник:
Комментарий: