backup database, что значит опция Format и др.?

Ramzay_
Дата: 14.05.2015 07:01:14
Собираюсь первый раз сделать копию базы данных ms sql 2000 и восстановить ее на ms sql 2008.
Предполагаю выполнить команду :
backup database Treasury to D:\data\backup\Treasury.bak with init, noformat, skip, nounload

В документации сказано:
https://msdn.microsoft.com/ru-ru/library/ms186865.aspx
NOFORMAT
Определяет, что текущая операция резервного копирования сохранит существующие заголовки носителей и резервные наборы данных на томах носителей, используемых для текущей операции резервного копирования. Это режим по умолчанию.

Вопрос: Поскольку в качестве носителя выступает жесткий диск, меня интересует что такое "заголовок носителя"? Это что: файловая таблица?
Glory
Дата: 14.05.2015 08:15:37
Ramzay_
Вопрос: Поскольку в качестве носителя выступает жесткий диск, меня интересует что такое "заголовок носителя"? Это что: файловая таблица?

Это специальный раздел на ленте
o-o
Дата: 14.05.2015 10:05:45
лучше сосредоточиться на тех элементах синтаксиса, к-ые нужны,
а что не надо, оставить по дефолту.
ваше, например, не взлетит, а вот так отработает и не будет лишних вопросов:
backup database Treasury to disk = 'D:\data\backup\Treasury.bak'

а вообще лучше выбирать имя файла так, чтоб отражало и тип бэкапа, и дату[время]
Ramzay_
Дата: 14.05.2015 10:48:27
Glory
Ramzay_
Вопрос: Поскольку в качестве носителя выступает жесткий диск, меня интересует что такое "заголовок носителя"? Это что: файловая таблица?

Это специальный раздел на ленте

А применительно к диску?
Ramzay_
Дата: 14.05.2015 10:53:47
o-o
лучше сосредоточиться на тех элементах синтаксиса, к-ые нужны,
а что не надо, оставить по дефолту.
ваше, например, не взлетит, а вот так отработает и не будет лишних вопросов:
backup database Treasury to disk = 'D:\data\backup\Treasury.bak'

а вообще лучше выбирать имя файла так, чтоб отражало и тип бэкапа, и дату[время]


Замечание по поводу даты и времени справедливое. Но сейчас не об этом. o-o, я уже выполнил команду, которую вы написали. В результате я получил бэкап без последних изменений. Не подскажите почему?
o-o
Дата: 14.05.2015 10:57:22
Media Sets, Media Families, and Backup Sets (SQL Server)
Creating a New Media Set

To create a new media set, you must format the backup media (one or more tapes or disk files). The formatting process changes the backup media as follows:

1. Deletes the old header (if any), effectively deleting the previous contents of the backup media.

Formatting a tape device deletes all previous contents of the currently mounted tape. Formatting a disk affects only the file that you specify for the backup operation.

2. Writes a new media header on the backup media (tape or disk file) on each of the backup devices
.
o-o
Дата: 14.05.2015 11:11:39
Ramzay_
В результате я получил бэкап без последних изменений. Не подскажите почему?

потому что полный бэкап не ожидает окончания всех ваших изменений в базе и не "замораживает" файлы,
как тут некоторые писали.
в двух словах он
1. инициирует чекпойнт, чтобы все грязные страницы слились на диск
2. засекает его и самой древней открытой транзакции
3. дописывает только лог, начиная с мин. из этих .

теперь что у вас в бэкапе.
там могут быть незавершенные транзакции, к-ые могли начаться еще и до бэкапа и не закончиться до его окончания.
а ведь измененные ими страницы он захватил, когда заставил сделать чекпойнт.
тогда все эти изменения при ресторе он (ну или другой сервер, куда восстанавливаете) будет откатывать,
т.к. в конце рестора он обязан вам предъявить консистентную базу.
так что вы получаете базу без незавершенных (на момент окончания фазы чтения страниц данных бэкапом) транзакций,
т.е. "консистентную на момент окончания фазы чтения"
o-o
Дата: 14.05.2015 11:17:55
о блин, транслит-транслит.
не хватает слов в латинской раскладке:
o-o
2. засекает его и самой древней открытой транзакции
3. дописывает только лог, начиная с мин. из этих .

--> 2. засекает его LSN и LSN самой древней открытой транзакции
--> 3. дописывает только лог, начиная с мин. из этих LSN.
Glory
Дата: 14.05.2015 11:21:10
Ramzay_
Но сейчас не об этом. o-o, я уже выполнил команду, которую вы написали. В результате я получил бэкап без последних изменений. Не подскажите почему?

Наверное потому, что восстановили не тот бэкап
Ramzay_
Дата: 14.05.2015 13:07:36
Glory
Ramzay_
Но сейчас не об этом. o-o, я уже выполнил команду, которую вы написали. В результате я получил бэкап без последних изменений. Не подскажите почему?

Наверное потому, что восстановили не тот бэкап


backup database Treasury to disk = 'D:\data\backup\Treasury.bak'

Выполнил эту команду еще раз. Размер базы Treasury.bak, которая лежала на том же месте, почему-то увеличился в два раза.
Получается, что в этот же файл, сервер дописал еще одну резервную копию? Я не ожидал такого результата. Скажите, спасет ли "отца русской демократии", если будет использована фраза with init?