Вы находитесь на странице: 1из 41

Mdulo 7 Administracin de bases de datos

Creacin de Bases de Datos


Armando Vega A.

Objetivos del mdulo


Crear y modificar base de datos Entender las opciones de base de datos Monitorear el espacio de las bases de datos Manejar la asignacin de espacio del log de transacciones Entender el mapeo de bases de datos a tablas del sistema
sysdatabases sysdevices

Mdulo 7 Administracin de base de datos Administraci

Mapa del Mdulo


Creando y Dandoles Tamao a las Bases de Datos Propiedad de la Base de Datos Desplegando Informacin de la Base de Datos Personalizando Bases de Datos Uso del Espacio Expansin de la Base de Datos

Mdulo 7 Administracin de base de datos Administraci

Que sucede cuando se crea una base de datos?


model New database master

Logical device Physical database


Mdulo 7 Administracin de base de datos Administraci

create database
Sintaxis: create database database_name [on database_device [= size] [,database_device = size]]...] [log on database_device = [size]]...] Ejemplos: (1) create database pubs2 (2) create database salesdb on data_dev1=5 (3) create database salesdb on data_dev1=5 log on log_dev1 = 2 size es especificado en megabytes
Mdulo 7 Administracin de base de datos Administraci

Prerequisitos al crear base de datos


Antes de crear base de datos, decida:
El tamao de la base de datos La ubicacin y el espacio necesario Si un dispositivo de log es necesario y, si lo es, de que tamao

Se debe estar en la base de datos master para ejecutar el comando create database

Database size Database name Database location Location of log

5 MB pubs2 data_dev log_dev


Mdulo 7 Administracin de base de datos Administraci

Tamao de una base de datos


El tamao es en megabytes, minimo 2MB Fcil de extender, no puede estar encogida
Para hacer ms chica la base de datos , se debe volverla a crear y copiar datos de nuevo con la utilidad de copiado bcp

Al estimar el tamao de una base de datos, considere principalmente:


Tablas Indices Log de transacciones

Deje algn espacio libre, dependiendo de la actividad anticipada Use sp_estspace para estimar el tamao de las tablas y sus ndices
Mdulo 7 Administracin de base de datos Administraci

sp_estspace
Ejemplo, salida parcial:

sp_estspace titles, 10000

name type idx_level Pages Kbytes --------------------------------------------------------------------------------titles data 0 983 1966 titleidind clustered 0 7 14 titleidind clustered 1 1 2 titleind nonclustered 0 279 558 titleind nonclustered 1 9 18 titleind nonclustered 2 1 2 Total_Mbytes: 2.50 (followed by summary data for titleidind, titleind)
Mdulo 7 Administracin de base de datos Administraci

Tamao del log


El tamao del Log depende de la actividad (tipo y cantidad de transacciones) y la frecuencia de los respaldos
Un buen punto de partida: 10-25% del tamao global de la base de datos Todos los inserts, deletes, y updates son registrados Para select into y fast bulk copy: solo la asignacin y desasignacin de espacio son registrados

Simule correr aplicaciones con el mismo nmero de usuarios; entonces mida el uso del log usando dbcc checktable(syslogs) El log es fcil de extender, imposible encoger

Mdulo 7 Administracin de base de datos Administraci

Colocando el log en un dispositivo diferente


database Coloque el log en un dispositivo diferente

data_dev1

log_dev1

Deja sus respaldos del log de transacciones en separado Ayuda en el monitoreo del uso de espacio y manejo del espacio Permite el duplicado de disco del log para un recuperacin a tiempo
Mdulo 7 Administracin de base de datos Administraci

create database: Sintaxis


create database database_name [on {default | database_device} [= size] [,database_device [= size]]...] [log on database_device [= size,...] [, database_device [= size]]...] [with override] [for load] (1) create database pubs2 on default = 4 (2) create database mydb on default = 3, data_dev1 = 2 (3) create database salesdb on sales_dev1 = 2 log on sales_dev1 = 2 with override

Ejemplos:

Nota: Es recomendado poner el log en un dispositivo diferente


Mdulo 7 Administracin de base de datos Administraci

Mapa del Mdulo


Creando y Dandoles Tamao a las Bases de Datos Propiedad de la Base de Datos Desplegando Informacin de la Base de Datos Personalizando Bases de Datos Uso del Espacio Expansin de la Base de Datos

Mdulo 7 Administracin de base de datos Administraci

Quin crea las bases de datos?


Los administradores del sistema (logines con el rol SA) pueden crear bases de datos El login que crea una base de datos es propietario de ella inicialmente

Mdulo 7 Administracin de base de datos Administraci

Transfiriendo la propiedad de la base de datos


Para transferir la propiedad de la base de datos, accese a esa base da datos usando use dbname seguido de sp_changedbowner en otro lote Sintaxis: sp_changedbowner login_name
El login debe ser vlido en el servidor y no puede estar como usuario en la base de datos a transferir la propiedad

use productsdb go sp_changedbowner fred go Nota: La propiedad de la base de datos master no puede
transferirse
Mdulo 7 Administracin de base de datos Administraci

Ejemplo:

Otorgando permisos para create database


Los administradores del sistema pueden otorgar permisos de create database a usuarios especificos:

grant create database to mary


El control de uso de disco puede estar restringido en la autorizacin en la creacin de base de datos

Mdulo 7 Administracin de base de datos Administraci

Efectos sobre las tablas del sistema


Cuando se crea una base de datos, las siguentes tablas del sistema en master son afectadas:
sysdatabases Contiene un registro por cada base de datos en el SQL Server, incluyendo el nombre de la base de datos y su propietario sysusages Contiene un registro para cada fragmento del dispositivo para cada base de datos, indicando el tamao y la direccin del disco del comienzo lgico para ese fragmento

Para desplegar esta informacin, consulte estas tablas o ejecute sp_helpdb

Mdulo 7 Administracin de base de datos Administraci

Mapa del Mdulo


Creando y Dandoles Tamao a las Bases de Datos Propiedad de la Base de Datos Desplegando Informacin de la Base de Datos Personalizando Bases de Datos Uso del Espacio Expansin de la Base de Datos

Mdulo 7 Administracin de base de datos Administraci

Desplegando informacin de base de datos


Ejemplo de salida de sp_helpdb
name db_size owner dbid ...status -------------------------------------------------------------------------------------master 8.0 MB sa 1 ... no options set model 2.0 MB sa 3 ... no options set pubs2 2.0 MB sa 4 ... no options set salesdb 6.0 MB sa 5 select into/bulkcopy tempdb 2.5 MB sa 2 select into/bulkcopy

Cuando es seguido por un nombre de base de datos, sp_helpdb reporta informacin sobre esa base de datos

Mdulo 7 Administracin de base de datos Administraci

Desplegando ubicacin de la base de datos


Cmo sabe SQL Server en que dispositivo esta una base de datos?
sysusages sysusages sysdevices sysdevices

(dbid, . . . , size, vstart) , . . . , size, vstart)

(low, high, name, phyname, mirror)

sysdatabases sysdatabases

master database

(name, dbid, . . . )

(continued)

Mdulo 7 Administracin de base de datos Administraci

Desplegando ubicacin de la base de datos


Ejemplo de selects from sysusages, sysdevices:

select * from sysusages where dbid = db_id("smalldb") dbid segmap lstart size dbid segmap lstart size 5 3 0 1024 5 3 0 1024 5 4 1024 512 5 4 1024 512 vstart vstart 16777216 16777216 33554432 33554432 pad unreservedpgs pad unreservedpgs NULL 680 NULL 680 NULL 496 NULL 496

Para desplegar el mapeo de uno de estos fragmentos de dispositivos:

select low, high, name, phyname, mirrorname from sysdevices where 16777216 between low and high name name data_dev1 data_dev1 physname physname /syb/data_dev1.dat /syb/data_dev1.dat

low high low high 16777216 16782335 16777216 16782335

mirrorname mirrorname NULL NULL Mdulo 7

Administracin de base de datos Administraci

Desplegando ubicacin de la base de datos y uso

sp_helpdb db_name despliega ubicacin y uso del disco para esa base de datos Ejemplo: sp_helpdb smalldb

name name smalldb smalldb

db size db size 3.0 MB 3.0 MB

owner owner sa sa

dbid dbid 5 5

created created May 5, 1993 May 5, 1993 usage usage data only data only log only log only

status status no options set no options set

device fragments device fragments data_dev1 data_dev1 log_dev1 log_dev1

size size 2.0 MB 2.0 MB 1.0 MB 1.0 MB

free kbytes free kbytes 1376 1376 1008 1008


Mdulo 7 Administracin de base de datos Administraci

Mapa del Mdulo


Creando y Dandoles Tamao a las Bases de Datos Propiedad de la Base de Datos Desplegando Informacin de la Base de Datos Personalizando Bases de Datos Uso del Espacio Expansin de la Base de Datos

Mdulo 7 Administracin de base de datos Administraci

Personalizando base de datos


Cuando se crea una base de datos, el contenido de model es copiado a la nueva base de datos

model

new database

Puede personalizar model a que contenga procedimientos almacenados, tablas, reglas, tipos de datos de usuario, privilegios, y opciones para todas las futuras bases de datos Solo el administrador del sistema puede actualizar model
Mdulo 7 Administracin de base de datos Administraci

Fijando las opciones de base de datos


Usando sp_dboption, las siguientes opciones de base de datos pueden ser fijadas:
abort tran on log full allow nulls by default dbo use only ddl in tran identity in nonunique index no chkpt on recovery no free space acctg read only select into/bulkcopy/pllsort single user trunc log on chkpt (continued)
Mdulo 7 Administracin de base de datos Administraci

Fijando las opciones de base de datos


SSO pueden habilitar o deshabilitar free-space accounting; los dems sern fijados por el dueo de la base de datos (o un SA actuando como un dbo) Las opciones no podrn ser cambiadas en la base de datos master

Mdulo 7 Administracin de base de datos Administraci

sp_dboption
Sintaxis:
sp_dboption [dbname, option_name, {true|false}]

Ejemplo de uso:
use master /* must be in master */ go sp_dboption "smalldb", "read only", true go use smalldb /* must use database and... */ go checkpoint /* checkpoint the database */ go

Cualquier usuario puede usar sp_helpdb para desplegar las opciones actuales de la base de datos
Mdulo 7 Administracin de base de datos Administraci

Mapa del Mdulo


Creando y Dandoles Tamao a las Bases de Datos Propiedad de la Base de Datos Desplegando Informacin de la Base de Datos Personalizando Bases de Datos Uso del Espacio Expansin de la Base de Datos

Mdulo 7 Administracin de base de datos Administraci

Monitoreando el uso del espacio


La base de datos, tanto el segmento de log como el de datos, pueden llenarse tanto como uso se le de a la base de datos
Si esto sucede, todas las modificaciones de datos son suspendidas

Puede usar las siguientes herramientas para monitorear el uso del espacio en la base de datos:
sp_helpdb sp_helpsegment sp_spaceused Threshold Manager

Mdulo 7 Administracin de base de datos Administraci

Que hacer cuando no se tiene espacio


Si no se tiene espacio en el log, se tiene que truncarlo
Posibles soluciones: Dump/truncate frecuentemente

Si no se tiene espacio en los segmentos de datos, intente liberar espacio eliminando objetos no usados Otra alternativa: Extender la base de datos (datos y/o log)

Database

Expansion

Logical device
Mdulo 7 Administracin de base de datos Administraci

Mapa del Mdulo


Creando y Dandoles Tamao a las Bases de Datos Propiedad de la Base de Datos Desplegando Informacin de la Base de Datos Personalizando Bases de Datos Uso del Espacio Expansin de la Base de Datos

Mdulo 7 Administracin de base de datos Administraci

Extendiendo una base de datos


Usando alter database, los propietarios de base de datos y administradores del sistema asignan espacio adicional a una base de datos sobre el mismo o diferentes dispositivos

Expansion

OR

Expansion

data_dev1

data_dev1

data_dev2

El tamao de la base de datos no puede ser disminuido

Mdulo 7 Administracin de base de datos Administraci

alter database
alter database database_name [on {default | database_device} [= size]] [log on database_device [= size]]
El tamao es especificado como incrementos de espacio adicional; predeterminado, 1MB Ejemplos: Sintaxis:

alter database pubs2 alter database pubs2 on data_dev1 = 3 alter database pubs2 on default = 2
(continued)
Mdulo 7 Administracin de base de datos Administraci

alter database
Ejemplo de secuencia: create alter alter

create database salesdb on data_dev1 = 5 alter database salesdb on data_dev2 = 2 alter database salesdb on data_dev3 = 1

Mdulo 7 Administracin de base de datos Administraci

Tips para la expansin de una base de datos

Puede expandir una base de datos mientras este en uso Solo se puede expandir la base de datos master en el dispositivo master Si tempdb o model es expandido y el dispositivo master es renconstruido entonces se vuelve a expandir
No haga a model ms grande que tempdb Si model es ms grande que tempdb, SQL Server no reiniciar

Mdulo 7 Administracin de base de datos Administraci

Separando el log y moverlo a un dispositivo diferente

Para una base de datos creada sin la opcin log on (esto es, sin un log separado), haga lo siguiente:
Respalde el log al truncarlo Modifique la base de datos hacia un nuevo dispositivo Ejecute sp_logdevice para hacer ese dispositivo en dispositivo de log

Realice estos pasos con un minimo de tiempo entre cada uno para evitar que los registros sean escritos al dispositivo original

(continued)

Mdulo 7 Administracin de base de datos Administraci

Separando el log y moverlo a un dispositivo diferente

Efecto:
Las paginas antiguas sern asignadas al dispositivo anterior Los registros existentes sern desasignados tanto el log sea truncado Resultado: El log crece en el nuevo dispositivo

Mdulo 7 Administracin de base de datos Administraci

Expandiendo el log
En el mismo dispositivo:

Expansion

alter database pubs2 log on log_dev1 = 1

data_dev1

log_dev1

En un nuevo dispositivo:

alter database pubs2 log on log_dev2 = 4


data_dev1 log_dev1 log_dev2

Mdulo 7 Administracin de base de datos Administraci

Eliminando base de datos


Los DBO y SAs pueden borrar una base de datos ejecutando drop database La base de datos no debe estar en uso Cuando borra una base de datos:
Base de datos experimentales o antiguas, se libera el espacio Antes se trata de recuperar base de datos daadas

Mdulo 7 Administracin de base de datos Administraci

Repaso Creacin de Bases de Datos


1. Qu sucede cuando crea una base de datos? 2. Nombre algunas consideraciones para darle el tamao a una base de datos. 3. Que procedimiento para ayudarle a estimar tamaos de tablas e ndices? 4. Por qu es buena prctica poner el log en un dispositivo distinto? 5. Qu procedimiento despliega informacin acerca de las bases de datos? 6. Que hacer si el espacio del archivo de log se agota? En la base de datos?
Mdulo 7 Administracin de base de datos Administraci

Lab 4: Creando Bases de Datos


Descripcin del Ejercicio Hasta ahora...
Ha creado los dispositivos de base de datos

Metas
Crear una base de datos Entender las tablas del sistema sysdevices, sysusages y sysdatabases

(continued)

Mdulo 7 Administracin de base de datos Administraci

Lab 4: Creando Bases de Datos


Tareas Generales
Crear una base de datos de 6 MB (4 MB datos, 2 MB log) Verificar que la base de datos haya sido creada Active o desactive la opcin dbo use only en la base de datos Escriba consultas que usen sysdevices, sysusages sysdatabases

Lab Setup
Crear slo una base de datos a la vez

Mdulo 7 Administracin de base de datos Administraci

Вам также может понравиться