На нашем сервере SQL Server включена функция мгновенной инициализации файла, поэтому «пустая» часть файла базы данных не обнуляется перед выделением. Насколько я понимаю, это означает, что файл может содержать «удаленные» данные.
Итак, теперь я хочу отправить копию базы данных (возможно, файла резервной копии) за пределы компании. Но внутри файла есть все потенциально конфиденциальные «удаленные» данные. Теперь я хотел бы обнулить неиспользованную часть файла.
Это возможно? Я предполагаю, что мог бы создать новую базу данных и скопировать все заново, или, возможно, восстановить копию базы данных на другом сервере без включенной мгновенной инициализации файла, а затем проявить агрессию с помощью команды ShrinkFile, чтобы удалить большую часть или всю неиспользованную часть файла базы данных. , но есть ли менее ручной и трудоемкий метод? В идеале это команда, которая сообщает SQL обнуление файла, как если бы не была включена мгновенная инициализация файла.
Ответы:
SQL Server BACKUP создает резервные копии только тех экстентов , которые используются для хранения данных. Неиспользованные экстенты остаются в резервной копии. Когда страница используется для данных, она будет отформатирована для использования по мере необходимости, чтобы на этой странице не было старых данных.
Поэтому все, что вам нужно сделать, это сделать резервную копию базы данных и восстановить ее в другом месте. Восстановленные файлы будут иметь тот же размер, что и исходная база данных, но неиспользуемые экстенты будут созданы с использованием возможностей целевого сервера. Это может быть инициализировано полностью или мгновенно инициализировано с использованием блоков диска на целевом сервере.
Однако, поскольку экстенты - это уровень, на котором происходит резервное копирование, неиспользуемые страницы в экстенте могут по-прежнему потенциально представлять некоторые данные при восстановлении на другом сервере. Не так много, как на исходном сервере, поскольку неиспользуемые экстенты не восстанавливаются.
источник
Рассматривали ли вы восстановление его копии, включение TDE, которое заставит его обнуляться, а затем снова отключение TDE? Я не проверял это, но я думаю, что это сработает, но мы должны это проверить.
И еще кое-что: рассматривали ли вы восстановление копии с отключенным IFI, создание новой файловой группы с новыми файлами, ее сохранение, восстановление кластеризованных и других индексов в новой файловой группе, а затем удаление существующей файловой группы (если это основная файловая группа вам придется уменьшить его, так как вы не можете отказаться от основного)
источник