2. administracion de archivos de una bd

Upload: ipuerple-os-x-oes-x

Post on 21-Feb-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/24/2019 2. Administracion de Archivos de Una BD

    1/49

    MAESTRAENTECNOLOGAS DE

    LAINFORMACINAdministracin de Archivos de una Base de DatosSQL Server.

  • 7/24/2019 2. Administracion de Archivos de Una BD

    2/49

    Realiz: M. Lic. Octavio Cruces M.

    INTRODUCCINALAESTRUCTURADEDATOS

    Cmo se almacenan los datos ?a) Todas la Bases de datos tienen:

    1. Archivo de Datos (.mdf)2. Log de Transacciones (.ldf)

    3. Archivo de datos secundario (.ndf)

    La ruta donde se encuentran dichos archivos es:c:\archivos de programa\Microsoft Sql Server\ MSSQLn\Data\

    Donde n es un nmero nico identificador de la instancia de

    SQL Server

    Archivo de Datos:.mdf .ndf

    LOG de transacciones:.ldf

  • 7/24/2019 2. Administracion de Archivos de Una BD

    3/49

    Realiz: M. Lic. Octavio Cruces M.

    INTRODUCCINALAESTRUCTURADEDATOS

    Cmo se almacenan los datos ?b) Los datos son almacenados en bloques de 8 Kilobytes de

    espacio en disco contiguo llamados pginas, esto significaque SQL Server puede almacenar 128 pginas por 1

    megabyte (MB).c) Cuando se genera una Base de Datos, una copia de la Base

    de datos Model, el cual incluye tablas de sistema, escopiada a la Base de Datos y el resto de la Base de datos sellena con pginas en Blanco.

    d) El LOG de transacciones contiene informacin necesariapara la recuperacin de la Base de Datos en eventos dondefalla el sistema.

  • 7/24/2019 2. Administracion de Archivos de Una BD

    4/49

    Realiz: M. Lic. Octavio Cruces M.

    COMOTRABAJAELLOG DETRANSACCIONES

    1. Modificaciones aDatos son enviadaspor una aplicacin

    2. Se graba enmemoria cache lainformacin

    4. Se realiza la escritura enel archivo de datos (Commit)

    3. Las modificaciones songrabadas en el LOG detransacciones en Disco.

  • 7/24/2019 2. Administracion de Archivos de Una BD

    5/49

    Realiz: M. Lic. Octavio Cruces M.

    COMOTRABAJAELLOG DETRANSACCIONES

    SQL Server registra cada transaccin en un LOG de transacciones

    manteniendo la consistencia de la Base de Datos y aadiendo modelo de

    recuperacin. SQL Server registra modificaciones en el LOG de disco

    antes de que ellas sean escritas en la Base de Datos.

  • 7/24/2019 2. Administracion de Archivos de Una BD

    6/49

    Realiz: M. Lic. Octavio Cruces M.

    CONSIDERACIONESPARALALOCALIZACINDELOSARCHIVOS

    Tipos de Archivos

    Primaria

    Secundaria

    LOG de Transacciones

    Localizacin de archivos

    Colocar los archivos en diferentes discos para mejorperformance y modelo de recuperacin.

  • 7/24/2019 2. Administracion de Archivos de Una BD

    7/49Realiz: M. Lic. Octavio Cruces M.

    CONSIDERACIONESPARALALOCALIZACINDELOSARCHIVOS

    Tipos de Archivos Primaria:

    Contiene informacin de la Base de Datos y apunta a otrosarchivos de la Base de datos

    Los Objetos de la BD y los usuarios pueden almacenarse enestos archivos primarios Cada Base de Datos tiene un archivo primario. La extensin del archivo primario de datos es .mdf

    Secundaria Se puede almacenar informacin y usuarios en archivos

    secundarios.Algunas Bases de Datos son muy grandes y se debern de

    separar en archivos secundarios

  • 7/24/2019 2. Administracion de Archivos de Una BD

    8/49Realiz: M. Lic. Octavio Cruces M.

    CONSIDERACIONESPARALALOCALIZACINDELOSARCHIVOS

    Secundaria La extensin de los archivos secundarios es (.ndf)

    LOG de transacciones Cada Base de Datos debe tener un LOG de transacciones El nombre de la extensin del LOG de Transacciones es

    (.ldf)

  • 7/24/2019 2. Administracion de Archivos de Una BD

    9/49Realiz: M. Lic. Octavio Cruces M.

    EJEMPLO

    a) Creacin de Base de datos (Transact SQL Server).VentasTipo de archivo Primario

    ventas.mdf

    Log de Transaccionesventas_log.ldf

    ____________________________________________________CREATE DATABASE ventas ON PRIMARY

    (NAME = N'ventas',filename=N'c:\sqlserver\DATA\ventas.mdf')LOG ON(NAME = N'ventas_log',

    filename=N'c:\sqlserver\DATA\ventas.ldf')GO

  • 7/24/2019 2. Administracion de Archivos de Una BD

    10/49

    Realiz: M. Lic. Octavio Cruces M.

    EJEMPLO

    b) Creacin de Base de Datos (SQL ServerManagement Studio)

    Salle

    Tipo de archivo PrimarioSalle.mdfTipo de Archivo Secundario

    Salle2.ndx

    Log de transaccionesSalle_log.ldf

  • 7/24/2019 2. Administracion de Archivos de Una BD

    11/49

    Realiz: M. Lic. Octavio Cruces M.

    CONSIDERACIONESPARALALOCALIZACINDELOSARCHIVOS

    Localizacin de los Archivos

    Proveer mejor rendimiento e implementa tolerancia a

    fallas administrando la localizacin de los archivos de

    datos y del Log de Transacciones en el Disco.

    El performance se refiere en parte a la velocidad de

    lectura y escritura de las operaciones.

    La tolerancia a fallas se refiere a la habilidad de el

    sistema para continuar funcionando sin perdida de

    datos cuando alguna parte del sistema falla.

  • 7/24/2019 2. Administracion de Archivos de Una BD

    12/49

    Realiz: M. Lic. Octavio Cruces M.

    CONSIDERACIONESPARALALOCALIZACINDELOSARCHIVOS

    Recomendaciones

    Para Bases de Datos grandes, se debe dividir en

    archivos fsicos dependiendo el nmero de discos y

    agrupar los archivos en FILEGROUPS.

    Crear LOG de Transacciones en Discos separados de

    los archivos de datos o usar Arreglo de Discos RAID.

    RAID Provee tolerancia a Fallas. Localizar la Base de Datos TEMPDB en un

    subsistema de mayor velocidad I/O para asegurar un

    optimo performance

  • 7/24/2019 2. Administracion de Archivos de Una BD

    13/49

    Realiz: M. Lic. Octavio Cruces M.

    FILEGROUPS

    Son arreglos de archivos utilizados para simplificar la localizacin delos datos.

    TIPOS DE FILEGROUPS.

    SQL Server tiene un Filegroup Primario y puede contener Filegroupsdefinidos por los usuarios.

    El Filegroup primario contiene el archivo de datos primario con lastablas de sistema. Tambin puede contener archivos secundariosdefinidos por el usuario y que no estn localizados en algn otroFilegroup.

    Los FileGroup definidos por el usuario consisten en archivo de datosque son agrupados con propsitos administrativos y por localizacin

  • 7/24/2019 2. Administracion de Archivos de Una BD

    14/49

    Realiz: M. Lic. Octavio Cruces M.

    FILEGROUPS

    El Log de Transacciones no forma parte de unFileGroup.

  • 7/24/2019 2. Administracion de Archivos de Una BD

    15/49

    Realiz: M. Lic. Octavio Cruces M.

    FILEGROUPS

  • 7/24/2019 2. Administracion de Archivos de Una BD

    16/49

    Realiz: M. Lic. Octavio Cruces M.

    CONSIDERACIONESPARACREARUNFILEGROUP

    Existen dos razones para controlar la localizacinde los datos:1. Performance2. Administracin

    Se puede dividir las tablas de sus ndicesnonclustered para optimizar el acceso a datos.

    Crear Filegroups para separar los datos condiferentes requerimientos de administracin. Porejemplo separar las tablas con datos que semodifican frecuentemente de las que sonrelativamente estticas.

  • 7/24/2019 2. Administracion de Archivos de Una BD

    17/49

    Realiz: M. Lic. Octavio Cruces M.

    CREACINDEBASEDEDATOS

    Se puede crear una Base de Datos usando SQL Server

    Management Studio o por medio de comandos de

    TRANSACT SQL.

  • 7/24/2019 2. Administracion de Archivos de Una BD

    18/49

    Realiz: M. Lic. Octavio Cruces M.

    CREACINDEBASEDEDATOS

    TRANSACT SQL SERVERCREATE DATABASE database_name[ CONTAINMENT = ([PARTIAL | NONE ])][ ON[ PRIMARY ] [ ( NAME = Logical_File_name, FILENAME = os_file_name

    [, SIZE= size [ KB | MB | GB | TB] ][, MAXSIZE= { maxsize [ KB | MB | GB | TB] | UNLIMITED } ][, FILEGROWTH = growth_increment [ KB | MB | GB | TB | % ] ) ]

    [ FILEGROUP filegroup_name [DEFAULT]( NAME = logical_file_name, FILENAME = os_file_name[, SIZE = size [ KB | MB | GB | TB] ][, MAXSIZE= { maxsize [ KB | MB | GB | TB] | UNLIMITED } ][, FILEGROWTH = growth_increment [ KB | MB | GB | TB | % ] ) ][, ..n] ]

    [LOG ON[ ( NAME = logical_file_name, FILENAME = os_file_name[, SIZE = size [ KB | MB | GB | TB] ][, MAXSIZE= { maxsize [ KB | MB | GB | TB] | UNLIMITED } ][, FILEGROWTH = growth_increment [ KB | MB | GB | TB | % ] ) ][, ..n] ]

    [COLLATE collation_name ] ]

  • 7/24/2019 2. Administracion de Archivos de Una BD

    19/49

    Realiz: M. Lic. Octavio Cruces M.

    CREACINDEBASEDEDATOS

    TRANSACT SQL SERVER

    ARGUMENTOS:

    Database_name: Nombre de la Base de Datos.ON: Permite definir los archivos usados para almacenar los datosPRIMARY: Especifica que la lista de elementos siguientes esta asociadadefine el archivo principalNAME logical_file_name: Especifica el nombre lgico para un archivo.FILENAME os_file_name Especifica el nombre del archivo de sistemaOperativo.SIZE: Especifica el valor inicial del archivo

    MAXSIZE: Especifica el tamao mximo que puede crecer el archivo.UNLIMITTED: Especifica que el archivo puede crecer hasta que se llene eldisco duro.FILEGROWTH growth_increment: Especifica el incremento automtico decrecimiento de un archivo.FILEGROUP filegroup_name: nombre lgico del filegroupLOG ON: Listado de archivos de LOG de transacciones separados por coma.

  • 7/24/2019 2. Administracion de Archivos de Una BD

    20/49

    Realiz: M. Lic. Octavio Cruces M.

    CREACINDEBASEDEDATOS

    Ejemplo: Crear Carpeta C:\sql2012\Data

    Crear Carpeta C:\sql2012\Log

    Crear la Base de Datos: Personal con las sig. caractersticas

  • 7/24/2019 2. Administracion de Archivos de Una BD

    21/49

    Realiz: M. Lic. Octavio Cruces M.

    UNICODE

    Estndar de codificacin de caracteres

    Simplifica la localizacin de software

    Provee procesamiento multilengua de caracteres

    Requiere el prefijo N en constantes LEN( )Nmero de caracteres

    DATALENGTH( )Nmero de Bytes

    Ejemplo:

    DECLARE @saludo nvarchar(10)

    SET @saludo=Hola;

    SELECT @saludo

  • 7/24/2019 2. Administracion de Archivos de Una BD

    22/49

    Realiz: M. Lic. Octavio Cruces M.

    COLLATION

    Cdigo de pgina que es utilizado para almacenar

    datos Non-Unicode

    Reglas de cmo ordenar y comparar valores paratipos Non-Unicode

    Collation puede ser configurado a nivel instancia,

    Base de datos y a nivel columna

  • 7/24/2019 2. Administracion de Archivos de Una BD

    23/49

    Realiz: M. Lic. Octavio Cruces M.

    COLLATION

    Demostracin (Demo_Collation.sql)

    Distingueentre

    Maysculas yMinsculas

    DistinguirAcentos

    DistinguirKana

    DistinguirAncho

    CS AS KS WSCI AI

  • 7/24/2019 2. Administracion de Archivos de Una BD

    24/49

    Realiz: M. Lic. Octavio Cruces M.

    ELIMINACINDEBASEDEDATOS

    Requerimientos: Exista la Base de datos Que no este en Uso

    Con la cuenta que se desea eliminar deber decontar con derechos de: OWNER DDLADMIN SYSADMIN

    Comando Transact-SQL:DROP DATABASE NombreBaseDeDatos

  • 7/24/2019 2. Administracion de Archivos de Una BD

    25/49

    Realiz: M. Lic. Octavio Cruces M.

    AMPLIACINODISMINUCINDEBASEDEDATOS.

    Incrementar el Tamao de la Base de Datos:ALTER DATABASE database_nameMODIFY FILE( NAME = Logical_file_name

    SIZE = size [ KB | MB | GB | TB] )

    Ejemplo:ALTER DATABASE personal

    MODIFY FILE

    ( NAME = NPersData1,SIZE = 10 MB )

  • 7/24/2019 2. Administracion de Archivos de Una BD

    26/49

    Realiz: M. Lic. Octavio Cruces M.

    AMPLIACINODISMINUCINDEBASEDEDATOS.

    Reducir el tamao de la Base de Datos o LOG de transacciones:DBCC SHRINKFILE( { NombreArchivo | file_id }

    { ,EMPTYFILE ]| [ [ , target_size ] [, { NOTRUNCATE | TRUNCATEONLY } ] ]

    } )

    EMPTYFILE: Mueve todos los datos en este archivo a otrosarchivos en el mismo filegroup

    Target_size: Es el tamao para el archivo, en megabytes,expresado como un nmero entero

    NOTRUNCATE: Mueve las pginas asignadas del final de un

    archivo de datos a pginas no asignadas del principio delarchivo especificando o sin especificar target_percent. Elespacio disponible del final del archivo no se devuelve alsistema operativo y el tamao fsico del archivo no cambia. Portanto, si se especifica NOTRUNCATE, parecer que el archivono se reduce.

  • 7/24/2019 2. Administracion de Archivos de Una BD

    27/49

    Realiz: M. Lic. Octavio Cruces M.

    AMPLIACINODISMINUCINDEBASEDEDATOS.

    TRUNCATEONLY: Devuelve al sistema operativo todo elespacio disponible del final del archivo, pero no realizaningn movimiento de pgina dentro del archivo

    Ejemplo:USE Personal

    GO

    DBCC SHRINKFILE

    (NPersData1,8)

  • 7/24/2019 2. Administracion de Archivos de Una BD

    28/49

    Realiz: M. Lic. Octavio Cruces M.

    VERIFICARTAMAOLOG

    1)DBCC sqlperf(

    logspace)

    2)Use DatabaseNamegoSelect name, size/128,filename from sysfilesgo

  • 7/24/2019 2. Administracion de Archivos de Una BD

    29/49

    Realiz: M. Lic. Octavio Cruces M.

    SCHEMAS

  • 7/24/2019 2. Administracion de Archivos de Una BD

    30/49

    Realiz: M. Lic. Octavio Cruces M.

    SCHEMAS

    Un Schema es un namespace para los objetos de la Base de Datos

    Beneficios:

    Mayor flexibilidad cuando organizamos objetos de la Base de

    Datos en namespaces.

    Simplifica la administracin de Permisos. Los permisos se

    asignan al schema y no a cada uno de las cuentas de usuario.Al borrar usuarios no es necesario renombrar todos los objetos a

    los que era propietario el schema.

  • 7/24/2019 2. Administracion de Archivos de Una BD

    31/49

    Realiz: M. Lic. Octavio Cruces M.

    CREACINDESCHEMAS

  • 7/24/2019 2. Administracion de Archivos de Una BD

    32/49

    Realiz: M. Lic. Octavio Cruces M.

    SCHEMAS

    Sintaxis para crear Schemas:

    CREATE SCHEMAschema_name |AUTHORIZATION owner_name |schema_name AUTHORIZATION owner_name[ table_definition | view_definition | grant_statement |revoke_statement | deny_statement ]

  • 7/24/2019 2. Administracion de Archivos de Una BD

    33/49

    Realiz: M. Lic. Octavio Cruces M.

    SCHEMAS

    Ejemplo:

    CREATE SCHEMAMarketing AUTHORIZATION dbo

    GO

  • 7/24/2019 2. Administracion de Archivos de Una BD

    34/49

    Realiz: M. Lic. Octavio Cruces M.

    ADMINISTRACINDEBASEDEDATOS

    Opciones de Configuracin de las Bases de Datos.

    Categora Propsito

    Automatic Manejo de estadsticas, cerrar BD, Depuracinde BD

    Cursor Manejo de CursoresRecovery Modelo de Recuperacin de la BD

    Service Broker Habilita o deshabilita Service Broker

    State Estado de la BD, si es de Solo Lectura,Restricciones de Acceso (Single, Mltiple,

    Restricted (Miembros db_owner,dbcreator,sysadmin)

  • 7/24/2019 2. Administracion de Archivos de Una BD

    35/49

    Realiz: M. Lic. Octavio Cruces M.

    ATTACHYDETACHDELABASEDEDATOS

    Los comandos Attach y Detach de la Base de datosson tiles para mover los archivos de datos y logde transacciones a:

    Una diferente localidad (Unidad de disco). Otra instancia de SQL Server. Diferente Servidor.

  • 7/24/2019 2. Administracion de Archivos de Una BD

    36/49

    Realiz: M. Lic. Octavio Cruces M.

    DETACH.

    Pasos para realizar el Detach de la Base de datos:1. Presionar Botn derecho del mouse sobre la

    Base de datos.2. Seleccionar Tareas3. Seleccionar opcin detach

    Nota. Para poder realizar la operacin de

    DETACH No debern de existir conexionesexistentes sobre la base de datos.

  • 7/24/2019 2. Administracion de Archivos de Una BD

    37/49

    Realiz: M. Lic. Octavio Cruces M.

    DETACH

  • 7/24/2019 2. Administracion de Archivos de Una BD

    38/49

    Realiz: M. Lic. Octavio Cruces M.

    ATTACH

    Despus de cambiar los archivos de la Base dedatos (.mdf / .ndf / .ldf) a la nueva ubicacin,realizamos la tarea de ATTACH paranuevamente levantar la Base de datos sobre la

    instancia de SQL Server.

    1. Presionar Botn derechos sobre DATABASES.2. Seleccionar TASK3. Seleccionar ATTACH4. Buscar el archivo .mdf en la nueva ubicacin

  • 7/24/2019 2. Administracion de Archivos de Una BD

    39/49

    Realiz: M. Lic. Octavio Cruces M.

    ATTACH

  • 7/24/2019 2. Administracion de Archivos de Una BD

    40/49

    Realiz: M. Lic. Octavio Cruces M.

    ATTACH

  • 7/24/2019 2. Administracion de Archivos de Una BD

    41/49

    Realiz: M. Lic. Octavio Cruces M.

    ADMINISTRACINDEBASEDEDATOS

    FIN

  • 7/24/2019 2. Administracion de Archivos de Una BD

    42/49

    Realiz: M. Lic. Octavio Cruces M.

    SERVICEBROKER

    Agente dedicado a la comunicacin entreaplicaciones (Envo de mensajes) Asncrono Confiable procesamiento de consultas Confiable coleccin de informacin Procesamiento distribuido del lado del servidor de

    aplicaciones del Cliente Tecnologa SOA

  • 7/24/2019 2. Administracion de Archivos de Una BD

    43/49

    Realiz: M. Lic. Octavio Cruces M.

    SERVICEBROKER

    Ejemplo.

    1. Aplicaciones realizan una accin aunque no este fsicamente la persona2. Una regeneracin de Orden de Compra automtica, no requiere que

    alguien se de cuenta de que ya no hay producto.

    Aplicacin deCliente

    (ASP.NET)

    Agente de Service Broker

  • 7/24/2019 2. Administracion de Archivos de Una BD

    44/49

    Realiz: M. Lic. Octavio Cruces M.

    PRCTICA3

    Objetivos:

    1) Crear una Base de datos utilizando SQL Server ManagementStudio

    2) Crear una Base de datos Utilizando Transact-SQL

    Instrucciones:

    1. Ejecutar SQL Server Management Studio 20122. En la Caja de Dialogo de Connect to Server especificar los

    valores que se mencionan a continuacin:

  • 7/24/2019 2. Administracion de Archivos de Una BD

    45/49

    Realiz: M. Lic. Octavio Cruces M.

    PRCTICA3

    3. Si el objeto Explorer no esta visible, en el menVIEW, clickObject Explorer

    4. En Object Explorer, Presionar botn derecho del mouse sobreDatabases, y entonces selecciona New Database

    5. En la caja de dialogo de New Database, especificar los valores de

    la siguiente tabla

    Propiedad Valor

    Tipo de Servidor Database Engine

    Authenticacin Windows

    Propiedad Valor

    Nombre de la Base de Datos TestDB

    Tamao inicial para el archivode la BD TestDB

    5 MB

  • 7/24/2019 2. Administracion de Archivos de Una BD

    46/49

    Realiz: M. Lic. Octavio Cruces M.

    PRCTICA3

    6. Para el archivo de Datos TestDB, en la columna Autogrowth,

    seleccionar el botn (..)

    7. En la caja de dialogo de Change Autogrowth for TestDB,

    limpiar el check box de Enable Autogrowth y luego presionar

    OK.

    8. Repetir los pasos 6 y 7 para el archivo TestDB_Log

    9. En la caja de dialogo New Database, seleccionar OKpara crear

    la Base de Datos.

    10. En la carpeta de Databasesverificar que aparece la nueva Base

    de datos TestDB.

  • 7/24/2019 2. Administracion de Archivos de Una BD

    47/49

    Realiz: M. Lic. Octavio Cruces M.

    PRCTICA3

    Crear una Base de datos utilizando Transact-SQL

    1. En SQL Server Management Studio, en la barra de herramientas

    seleccionar el botn de New Query2. En el ventana que abre en blanco escribir el siguiente cdigo:

    CREATE DATABASE TransactTestDB ON PRIMARY(Name = NTransactTestDB,FILENAME=NC:\SQL2012\DATA\TransactTestDB.mdf,SIZE = 5120KB, FILEGROWTH=10%)LOG ON(Name = NTransactTestDB_log,FILENAME=NC:\SQL2012\DATA\TransactTestDB_log.ldf,SIZE = 1024KB, FILEGROWTH=1024KB)GO

  • 7/24/2019 2. Administracion de Archivos de Una BD

    48/49

    Realiz: M. Lic. Octavio Cruces M.

    PRCTICA3

    Crear una Base de datos utilizando Transact-SQL

    3. En la barra de herramientas seleccione la opcin EXECUTE y

    verifique que se completa correctamente el comando

    4. En Object-Explorer,Seleccionar botn derecho del mouse sobre

    Databases, y seleccionar Refresh.

    5. Expandir el folder de Databases y verificar que la base de datos

    TransactTestDB fue creada.

    6. Presionar botn derecho sobre la Base de datos TransactTestDB y

    seleccionar la opcin propiedades, verificar la configuracin

    asignada.

  • 7/24/2019 2. Administracion de Archivos de Una BD

    49/49

    ADMINISTRACINDEBASEDEDATOS

    Opciones de Configuracin de las Bases de Datos.