Tengo la inicialización instantánea de archivos habilitada en nuestro servidor SQL, por lo que la parte 'vacía' del archivo de base de datos no se pone a cero antes de ser asignada. Entiendo que esto significa que el archivo podría contener datos 'eliminados'.
Así que ahora quiero enviar una copia de una base de datos (probablemente un archivo de respaldo) fuera de la empresa. Pero hay todos esos datos 'eliminados' potencialmente confidenciales dentro del archivo. Ahora me gustaría poner a cero la parte no utilizada del archivo.
¿Es eso posible? Me imagino que podría crear una nueva base de datos y copiar todo, o tal vez restaurar una copia de la base de datos a otro servidor sin la Inicialización instantánea de archivos habilitada y luego ser agresivo con un comando ShrinkFile para eliminar la mayor parte o la totalidad de la parte no utilizada del archivo de base de datos , pero ¿hay un método menos manual y lento? Idealmente, un comando para indicarle a SQL que ponga a cero el archivo como lo habría hecho si la Inicialización instantánea de archivos no estuviera habilitada.
Respuestas:
Una COPIA DE SEGURIDAD de SQL Server solo realiza copias de seguridad de las extensiones que se utilizan para almacenar datos. La copia de seguridad deja atrás las extensiones no utilizadas . Cuando se utiliza una página para datos, se formateará para su uso según sea necesario, de modo que esa página esté libre de datos antiguos.
Por lo tanto, todo lo que debe hacer es hacer una copia de seguridad de la base de datos y restaurarla en otro lugar. Los archivos restaurados serán del mismo tamaño que la base de datos original, pero las extensiones no utilizadas se crearán utilizando las capacidades del servidor de destino. Esto puede inicializarse total o instantáneamente usando los bloques de disco en el servidor de destino.
Sin embargo, debido a que las extensiones son el nivel en el que se realizan las copias de seguridad, las páginas no utilizadas en la extensión aún podrían tener el potencial de exponer algunos datos cuando se restauran en otro servidor. No tanto como podría estar expuesto en el servidor de origen, ya que las extensiones no utilizadas no se restauran.
fuente
¿Ha considerado restaurar una copia de él, habilitar TDE que lo forzará a 0 y luego deshabilitar TDE nuevamente? No he probado esto, pero creo que funcionará, aunque tendremos que probarlo.
Algo más también, ¿ha considerado restaurar una copia de él con IFI deshabilitado, crear un nuevo grupo de archivos con nuevos archivos, prescribirlo, reconstruir el clúster y otros índices en el nuevo grupo de archivos, y luego soltar el grupo de archivos existente (si es el grupo de archivos principal) tendrás que reducirlo ya que no puedes soltar el primario)
fuente