Estoy trabajando en una base de datos muy grande (más de 250 conciertos) con más de 225 millones de registros. Es difícil trabajar con la base de datos simplemente por su gran tamaño. Esta base de datos sólo se utilizará como de sólo lectura.
Estamos buscando conseguir hardware más rápido, pero de cualquier manera estoy tratando de encontrar la forma más eficiente de trabajar con la base de datos. Esta base de datos debe actualizarse todas las noches desde una base de datos maestra y el tiempo de inactividad debe mantenerse al mínimo. La base de datos maestra es mantenida por un tercero.
Estoy tratando de encontrar la mejor manera de actualizar eficientemente la base de datos todas las noches, pero no tengo mucha suerte. Busqué copias de seguridad diferenciales y de registros de transacciones, pero para aplicar cualquiera de ellas primero se debe restaurar una copia de seguridad completa de la base de datos. En mi caso, esto anula completamente el propósito de la copia de seguridad diferencial ya que no me ahorrará ningún tiempo [de inactividad]. También podría hacer una copia de seguridad completa en la base de datos maestra todas las noches y luego simplemente restaurar la copia de seguridad completa y eso sería más rápido.
Esperaba encontrar una solución en la que pudiera realizar una copia de seguridad completa una vez (o tal vez una vez al mes) y luego, a partir de ese momento, simplemente aplicar algún tipo de copias de seguridad incrementales (basadas en la copia de seguridad completa original) que se complementen entre sí. . Esto mantendría el tiempo de inactividad al mínimo, ya que una vez realizada la primera copia de seguridad completa, solo aplicaría las copias de seguridad incrementales cada noche. Simplemente reconstruiría el índice después de cada copia de seguridad "incremental" para mayor velocidad. No he logrado encontrar ninguna solución realmente viable como esta.
Intenté realizar una restauración completa CON STANDBY en una base de datos de prueba y de esta manera pude consultar los datos y luego seguir aplicando el registro de transacciones y solo un registro de transacciones. Esto fue un éxito algo limitado, ya que no puedo hacer cosas como agregar un índice, ya que técnicamente eso es escribir en la base de datos. Sin embargo, esto está muy cerca de lo que estoy buscando, ya que los datos en sí serán de solo lectura. ¿Existe alguna solución destinada a funcionar así? Prefiero evitar hacerlo con la opción STANDBY ya que no está diseñada para usarse de esta manera.
Recién ahora estoy sumergiéndome e investigando mucho sobre las copias de seguridad y el rendimiento de las bases de datos, leyendo MSDN constantemente; sin embargo, parece que esta solución no es una opción. Pensé en preguntar como último recurso; seguramente hay algunos aquí que administran grandes bases de datos donde no sería práctico realizar una restauración todas las noches.
¿Alguna sugerencia? También estoy abierto a sugerencias/enlaces a páginas sobre rendimiento, ya que nunca he trabajado con una base de datos de este tamaño.
Me temo que la replicación podría ser la única respuesta.
Respuesta1
El envío de registros satisface nuestra necesidad de mantener disponible la base de datos principal (300 GB) con los registros enviados a una copia en espera en otro servidor. Los registros de transacciones se aplican cada 15 minutos. Nuestros informes utilizan la copia en espera.