Curso SQL Server administration

De Ardemans Wiki
Saltar a: navegación, buscar

FICHEROS DE BASES DE DATOS

Se pueden crear varios ficheros de bases de datos y se puede hacer separación de las tablas para que estén en diferentes ficheros, o incluso se puede hacer particionado de tablas para que los datos estén en dos ficheros diferentes. Esto puede servir para mejorar el rendimiento de la tabla, o incluso para hacer bacukp de datos nuevos y no hacer siempre backups de datos antiguos.


COPIADO DE TABLAS

Se puede hacer un copiado de tablas simplemente ejecutando

SELECT * INTO <tabla_destino> FROM <tabla.origen>


TRABAJO CON FICHEROS DE BASE SE DATOS

Con el comando ALTER DATABASE <databasename> se puede trabajar con los ficheros que tiene una DB. Se puede cambiar tamaño, renombrar ficheros, etc.

También se pueden borrar ficheros, pero antes hay que hacer un srink especial, diciendo que libere de tablas ese fichero

DBCC SRINKFILE (N'<nombre_fichero>, EMPTYFILE);

Cuidado con este comando que borrar datos que hay en ese fichero. Si tiene datos hay que moverlos manualmente a otro fichero.

cHEQUEO DE TABLAS

Se puede ver el comando DBCC CHECKDB; para hacer un checkeo del estado de una base de datos. Tiene parámetros para hacer reparaciones y más cosas. (consultar documentacion)


TRABAJO CON FILEGROUPS

Se pueden crear diferentes grupos de ficheros donde le diremos a las tablas donde ser almacenadas. Se suele usar un solo grupo de ficheros, pero tiene ventajas usar varios, por ejemplo almacenar tablas a otros filegrups en discos físicos diferentes (por ejemplo tablas de historicos en discos más lentos o remotos).

Para ver los filegroups

select * from sys.filegroups

Para decir que filegroup es el por defecto, usamos:

alter database <databasename> modify filegroup <filegroupname> DEFAULT;

Si quieres crear una tabla en un filegroup que no es el default se añade al CREATE TABLE la clausula ON <filegroupname> al final.


NOTA: Libro para consultar SQL INTERNALS explicando arquitectura y funcionamiento interno de sql server


Backups

Existe el tipo de backup "copy only" que hace una copia de las bases de datos sin afectar a la secuencia. Esto está bien para hacer copias de producción a desarrollo...

Se pueden hacer backups APPEND al mismo fichero, y cuando vayamos a hacer la restauración nos deja elegir en que punto se puede hacer la restauración. Para una restauración al punto más reciente es más cómodo porque no tienes que especificar todos los ficheros para hacer la restaruación, solo especificando un fichero ya te coge los full, los diferenciales y los transacionales.

También se puede mezclar el hacer un full de fin de semana, un delta cada día y en medio transacionales (A PROBAR EN NUESTRO SQL SERVER)


Recovery

Cuando se hace un restore, si va a implicar hacer varios hasta llegar al punto deseado (full y transacicional por ejemplo) el premer restore se hace with norecovery, y cuando se hace el último transaccinoal se hace with recovery, que habilita la base de datos para ser usada ya. Por defecto, si no se pone nada hace el reover.


Bases de datos de sistemas

Hay que hacer backup de todas las bases de datos de sistemas menos de la tempdb. Se hace backup de forma normal. Exite una herramienta que se llama SQLCMD. Si arrancamos en el modo MONO USUARIO, podemos usar con esta herramienta para intentar corregir algún herror que se hay aproducido en la base de datos y por el que no arranque en modo normal.

Para arrancar en modo mono-usuario se pueden ver las opicones de arranque en el sqlserver.exe /?