powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / create backup plan for 57 db
12 сообщений из 12, страница 1 из 1
create backup plan for 57 db
    #32020312
olga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
podckashite pls kak mne bit" :

ia na nobyu raboty prishla i teper" y
y menia na servere 57 baz

oni ne razy ne brali backup , ia vcegda delala tak :
picala dynamic store proc( kotorii potom v backup job zapicivala 2 step ) gde
backup cshimaetcia cnachala ( obichno c Winrar ) a potom etot .bak ydaliay

mo teper" y menia 57 baz neponiatno kak ix raznesti vo vremeni i ne bydyt li eti backup dryg drygy meshat"
vo vremia ispolnenia

ili ix vce vmeste v 1 bol"shoi job zapicat" , chtobi dryg drygy ne meshali ???


pocovetyite poshalyista !!!!
...
Рейтинг: 0 / 0
create backup plan for 57 db
    #32020314
Владимир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если одновременно делать бэкап для разных баз, то они друг другу мешать небудут. А чтобы один раз создать пакет необходимых заданий, можно создать курсор, в котором черпать нужные названия баз данных из системных таблиц, и в теле курсора вставить создание заданий(с бэкап) для нужных баз данных......А создавать одно задание для всех - не лучший вариант, если по какой либо причине понадобиться незапускать бэкап для какой-нибудь базы - лучше это делать в соответствующем задании...
...
Рейтинг: 0 / 0
create backup plan for 57 db
    #32020315
olga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
cpacibo bol"shoe !
ia toshe tak podymala , chto nado cdelat" eto bolee flexible

znachit nyshno 57 jobs cozdat"
...
Рейтинг: 0 / 0
create backup plan for 57 db
    #32020320
Фотография Слон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное не 57 jobs надо создавать, а просто 57 шагов для бэкапа. Сделал 1 - перешел на второй и так далее.
...
Рейтинг: 0 / 0
create backup plan for 57 db
    #32020323
Владимир
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Слон:
Каждая база должна иметь свой план обслуживания и бэкап одна из частей этого обслуживания..Если все делать в одно задание (в котором 57 шагов), то что будет если одна из баз переименована, удалена или несуществует более ?? Ну и т.д.
...
Рейтинг: 0 / 0
create backup plan for 57 db
    #32020324
bitof
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
почему бы не написать продцедуру которая бы отрабатывала бэкап для базы имя которой передано в параметре.
...
Рейтинг: 0 / 0
create backup plan for 57 db
    #32020327
olga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да вы правы - я сделаю 57 шагов в 1 Job
и в случае неудачи (а это может быть и
попытка бэкапить несуществующую базу буду просто переходить к следующему бэкапу )
на каждую базу будет 3 шага ( backup , add to winrar , delete bak from dir )
...
Рейтинг: 0 / 0
create backup plan for 57 db
    #32020328
olga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
171 шагов
...
Рейтинг: 0 / 0
create backup plan for 57 db
    #32020336
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если у вас SQL2000 я бы предложил следующий вариант
- создать DTS, который в качестве входного параметра получает имя базы данных(может быть еще что-то) и производит с этой базой необходимые действия. О каждом шаге(собственно резервное копирование, архивирование с помощью Winrar, ...) вам может приходить оповещение(e-mail, SMS).
- как предложил Владимир, создать процедуру, которая будет в цикле вызывать DTS с конкретным именем базы
- эту процедуру поместить в Job

В SQL7 данная схема тоже может быть реализована, только в более сложном варианте, т.к. в DTS невозможно передать значение при вызове
...
Рейтинг: 0 / 0
create backup plan for 57 db
    #32020340
Garry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скорее всего вам может помочь Database Maintananse Plans.

1. Графический интерфейс (Wizard). Отметить галочкой 57 БД и нажать с десяток next'ов
2. Одна точка входа для создания и поддержания типовых заданий для нескольких БД (!)
3. Простота в поддержании (если Вам придется что то изменить )

Удачи
...
Рейтинг: 0 / 0
create backup plan for 57 db
    #32020341
BiSas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Этот скрипт создаст таблицу master.dbo.ListDatabasesBackup (см ниже)
Заполнит ее списком баз данных в порядке возрастания их объема.
Создаст процедуру master.dbo.BackupListDatabases (см ниже) Эту процедуру надо вызвать в задании. Она делает backup баз
на ленту, у которых EnableBackup = 1, в порядке указанном в OrderBackup. После backup последней базы выплюнет ленточку.
Модифицируйте эту процедуру для ваших нужд.
Управлять тем для каких баз надо делать резервное копирование и в каком порядке надо редактированием таблицы master.dbo.ListDatabasesBackup. Надеюсь это вам подойдет. Мне подходит.
К сожалению вся разметка будет утерянна. Так что читабельность невысокая.


use master
go

CREATE TABLE [dbo].[ListDatabasesBackup] (
[DBName] [varchar] (128 ) COLLATE Cyrillic_General_CI_AS NOT NULL ,
[OrderBackup] [int] NOT NULL ,
[EnableBackup] [tinyint] NOT NULL ,
[DESCRIPTION] [varchar] (8000) COLLATE Cyrillic_General_CI_AS NULL
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[ListDatabasesBackup] WITH NOCHECK ADD
CONSTRAINT [PK_ListDatabaseBackup] PRIMARY KEY CLUSTERED
(
[OrderBackup]
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[ListDatabasesBackup] WITH NOCHECK ADD
CONSTRAINT [DF_ListDatabasesBackup_EnableBackup] DEFAULT (0) FOR [EnableBackup]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[BackupListDatabases]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[BackupListDatabases]
GO

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

CREATE procedure BackupListDatabases
@NameDeviceBackup sysname,
@RETAINDAYS tinyint,
@MEDIANAME varchar(255)

as

declare @FirstBackup int,
@LastBackup int,
@DateBeginBackup char(10),
@NAME varchar(256)

set @DateBeginBackup = convert(char(10),GetDate(),104)

select @FirstBackup = min(OrderBackup),
@LastBackup = max(OrderBackup)
from ListDatabasesBackup
where EnableBackup = 1



DECLARE cListDatabasesBackup CURSOR
LOCAL
FAST_FORWARD
FOR
select DBName,OrderBackup,[DESCRIPTION] from ListDatabasesBackup
where EnableBackup = 1
order by OrderBackup

DECLARE @DBName varchar(40),
@OrderBackup int,
@DESCRIPTION varchar(8000)

OPEN cListDatabasesBackup

FETCH NEXT FROM cListDatabasesBackup
INTO
@DBName,
@OrderBackup,
@DESCRIPTION
WHILE (@@fetch_status <> -1)
BEGIN
IF (@@fetch_status <> -2)
BEGIN
if IsNull(RTrim(@DESCRIPTION),'') = '' set @DESCRIPTION = @DBName + ' Backup от '+@DateBeginBackup
set @NAME = @DBName+' Backup'

if @OrderBackup = @FirstBackup
and @OrderBackup = @LastBackup
begin
-- Это если нужно делать Backup только для одной базы.
BACKUP DATABASE @DBName
TO @NameDeviceBackup
WITH INIT ,
UNLOAD,
RETAINDAYS = @RETAINDAYS,
NAME = @NAME,
STATS = 10,
DESCRIPTION = @DESCRIPTION,
FORMAT ,
MEDIANAME = @MEDIANAME
end
else
if @OrderBackup = @FirstBackup
begin
-- Это если база стоит в начале списка Backup, то нужно инициализировать ленту.
BACKUP DATABASE @DBName
TO @NameDeviceBackup
WITH INIT ,
NOUNLOAD,
RETAINDAYS = @RETAINDAYS,
NAME = @NAME,
STATS = 10,
DESCRIPTION = @DESCRIPTION,
FORMAT ,
MEDIANAME = @MEDIANAME
end
else
if @OrderBackup = @LastBackup
begin
-- Это если база стоит в конце списка Backup, то нужно сделать eject для ленты.
BACKUP DATABASE @DBName
TO @NameDeviceBackup
WITH NOINIT ,
UNLOAD,
RETAINDAYS = @RETAINDAYS,
NAME = @NAME,
SKIP ,
STATS = 10,
DESCRIPTION = @DESCRIPTION,
NOFORMAT ,
MEDIANAME = @MEDIANAME
end
else
begin
-- Это если база стоит в середине списка Backup, то нужно сделать eject для ленты.
BACKUP DATABASE @DBName
TO @NameDeviceBackup
WITH NOINIT ,
NOUNLOAD,
RETAINDAYS = @RETAINDAYS,
NAME = @NAME,
SKIP ,
STATS = 10,
DESCRIPTION = @DESCRIPTION,
NOFORMAT ,
MEDIANAME = @MEDIANAME
end

BACKUP LOG @DBName
WITH
TRUNCATE_ONLY
END
FETCH NEXT FROM cListDatabasesBackup
INTO
@DBName,
@OrderBackup,
@DESCRIPTION
END

CLOSE cListDatabasesBackup
DEALLOCATE cListDatabasesBackup
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO


create table #databases
(
DATABASE_NAME sysname NOT NULL,
[size] int NOT NULL,
Remark varchar(254) null
)

insert #databases
exec sp_databases

DECLARE cListDatabases CURSOR
READ_ONLY
FOR select Database_name from #Databases order by [Size]

delete from ListDatabasesBackup

DECLARE @name varchar(40),
@Npp int

OPEN cListDatabases

set @Npp = 100

FETCH NEXT FROM cListDatabases INTO @name
WHILE (@@fetch_status <> -1)
BEGIN
IF (@@fetch_status <> -2)
BEGIN
insert ListDatabasesBackup
(DBName,OrderBackup)
values
(@Name,@Npp)
set @Npp = @Npp + 100
END
FETCH NEXT FROM cListDatabases INTO @name
END

CLOSE cListDatabases
DEALLOCATE cListDatabases


drop table #databases
...
Рейтинг: 0 / 0
create backup plan for 57 db
    #32020366
olga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bol"shoe spacibo !!!

ceichas bydy probovat"
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / create backup plan for 57 db
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]