Está en la página 1de 43

Iniciacin a SQL Server para DBAs Oracle

Juan C. Erazo M. ApplyTech CO Skype: juanc.erazo


1

Contenido General
Arquitectura de la BD Administracin Bsica Administracin del Servidor Laboratorio Administrar Objetos Esquema Seguridad de la BD Transporte de Datos Afinamiento del Desempeo Escalabilidad y Alta Disponibilidad Monitoreo
2

Arquitectura de la Base de Datos

Arquitectura de la BD
Esquema y Estructura de Datos (Objetos) Arquitectura de Almacenamiento
Bloques de Datos, Extents, y Segmentos Asignacin de Almacenamiento Tablespaces y Datafiles SQL Server Data Files Mapeo de Tablespaces y Filegroups Instancias

Modelo de Logging Diccionario de Datos


4

Esquema y Estructura de Datos


Esquema coleccin de objetos pertenecientes a un usuario de bd Esquemas en SQL Server proveen separacin lgica de objetos, similar al Schema Oracle.
Oracle
Table Index View Synonym Sequence Procedure Function Package Queue in Streams Advanced Queuing Object Type XML DB Table Index View Synonym Identity Columns Stored Procedure Function N/A Service Broker Queue Type XML Schema Collection
5

SQL Server

Arquitectura de Almacenamiento
Incluye estructuras fsicas y lgicas. Fsicas: data files, log files y bloques del SO. Lgicas: subdivisiones de data files usadas para administrar el espacio de almacenamiento.
Data File Data File Data File Data File Data File Data File

Temporary Tablespace Groups


Tablespace Tablespace

Filegroup

Filegroup

Segment Extent
Blocks

Segment
Extent
Blocks

Heap/Index
Extent
Pages

Heap/Index
Extent
Pages

Extent
Blocks

Extent
Blocks

Extent
Pages
6

Bloques de Datos, Extents, y Segmentos


Estructura Unidad mnima de almacenamiento lgico Tamao de blo ue !signacin de almacenamiento Tamao de E"tent Oracle Bloque Variable En mltiples bloques; son los extents Variable !ualquier estru"tura l#gi"a a la que se asigna alma"enamiento SQL Server 2008+ Pgina 8 KB fijo En mltiples pginas; son los extents 6 KB fijo $o %a& una estru"tura equi'alente
7

Segmento

Asignacin de Almacenamiento

Tablespaces y Data Files


Oracle y SQL Server almacenan los datos en archivos. La estructura ms grande de almacenamiento lgico en Oracle es un tablespace. La estructura ms grande de almacenamiento lgico en SQL Server es un filegroup. Tablespaces/filegroups son usados para agrupar objetos de aplicacin. Tablespaces/filegroups optimizan la administracin de los Data Files.
9

SQL Server Data Files


3 tipos de archivos soportados: Primary Data Files. Cada BD tiene uno. Extensin mdf. Apunta a los otros archivos y es similar al control file de Oracle pero tambin puede contener datos de usuario. Secondary Data Files. Definidos por el usuario y almacenan los datos de usuario. Son opcionales. Log Data Files. Tienen toda la informacin de log que se utiliza para recuperar la BD. Debe existir al menos uno por cada BD.

10

Mapeo de Tablespaces y Filegroups


System Tablespace SysAux Tablespace Temporary Tablespace
Data file Data file Data file Log file

Master DB Resource DB TempDB Model DB MSDB

Data file

Data file

Data file

Log file

Tablespace Group
Data file Data file Data file Data file Data file Data file Data file Log file Log file Log file

BigFile Tablespace User Data Tablespace User Index Tablespace Undo Tablespace Redo Log Files

Data file

Data file

Data file

User Database
Data file Data file Data file Data file

User DB Data FG Index FG Log File(s)

Data file

Data file

Data file

Data file

Redo Log Redo Log Redo Log

Log file

Oracle DB Instance

SQL Server Instance


11

Instancias

12

Modelo de Logging
Oracle usa redo logs online para registrar los cambios hechos a la BD por transacciones, y segmentos undo para capturar las imgenes previas de los datos. SQL Server implementa ambas funcionalidades usando transaction logs. Cada registro de transaccin contiene la imagen undo y redo de la transaccin.
13

Diccionario de Datos
En Oracle el DD se almacena bajo el esquema SYS en el tablespace SYSTEM. En SQL Server el DD consiste de:
Vista Catlogo la mejor forma de acceder la metadata del sistema. Vistas de Compatibilidad con versiones anteriores todas las tablas del sistema de versiones anteriores se suministran como vistas de compatibilidad. Vistas de Administracin Dinmica para ver el estado actual del sistema. Proveen fotos en tiempo real de las estructuras de memoria que indican el estado del servidor. Vistas del INFORMATION_SCHEMA Es el mtodo estndar SQL-99 para ver la metadata del sistema. BD RESOURCE contiene la metadata para los procedimientos 14 almacenados del sistema.

Administracin Bsica

15

Contenido
Planeacin y pasos de preparacin para un ambiente de SQL Server. Creacin y configuracin de una instancia de SQL Server y sus BD. Caractersticas de una BD. Tareas bsicas de mantenimiento.

16

Instalacin de SQL Server


Planeacin edicin del SW, ubicacin de los archivos, convenciones de nombres, opciones de instalacin. Adquisicin de recursos HW, SO, Utilidades. Instalar SW y componentes. Configuracin de la red seleccin de protocolos, balanceo de carga, etc., usando el Configuration Manager. Conectividad de clientes y configuracin seleccin de protocolos, detalles del servidor, etc., usando el Configuration Manager.
17

Sistema de BD
Crear instancias. Configuracin los prmetros pueden establecerse usando sp_configure o el Management Studio. Los parmetros de configuracin pueden ser bsicos o avanzados algunos se auto-configuran y pueden ser establecidos manualmente.
18

Bases de Datos
Para nombrarlas se deben usar las mismas reglas que para los identificadores de objetos. Definir el propietario de la BD/Esquema.

19

Configuracin de la BD
Las opciones de configuracin de la BD se establecen usando ALTER DATABASE y sp_dboptions. Pueden clasificarse como: Opciones Auto auto_close, auto_shrink, Opciones de Cursor restricciones de direccionamiento y alcance. Opciones de Recuperacin full | bulk_logged | simple. Opciones SQL ansi_padding, Opciones de Estado offline | online, single user,
20

Mantenimiento de la BD
Informacin de la BD puede obtenerse usando sp_helpdb. Las operaciones de mantenimiento y su equivalente en Oracle son: Reducir (Shrinking) la base de datos equivalente a reducir (shrinking) todos los archivos en un tablespace Cambiar el filegrouppor defecto igual a cambiar el tablespace por defecto pero se establece para toda la base de datos y no para cada usuario que hace login. Asociar o des-asociar DB (Attaching & detaching) similar a transportar tablespaces Cambiar el nombre de la BD similar en funcionamiento a renombrar tablespaces Cambiar el dueo de la BD no existe en Oracle

21

Procedimientos Almacenados del Sistema


Equivalen a los paquetes propios del sistema Oracle. Algunas categoras incluyen: Active Directory Catalog Cursor Database Engine Database Mail and SQL Mail Distributed Queries Full-Text Search Log Shipping Automation Notification Services Replication Security SQL Server Profiler SQL Server Agent Web Task XML General Extended

22

Administracin del Servidor

23

Contenido
Recursos a nivel de instancia y de servidor como memoria y procesos. Recursos a nivel de base de datos coo estructuras de almacenamiento fsico y lgico. Sesiones de usuario y su actividad. Estructuras de concurrencia
24

Administracin de la Memoria
La memoria se gestiona a:
Nivel de servidor asegura la distribucin apropiada de la memoria a lo largo de toda la BD, el sistema operativo y las aplicaciones. Nivel de instancia tanto Oracle como SQL server permiten gestionar los requerimientos de memoria directamente por el DBA o automticamente. El tamao y el desempeo de los componentes de la memoria se pueden consultar en Oracle a travs del OEM o de las vistas dinmicas. En SQL Server el desempeo puede verse a travs de los objetos de gestin dinmica, contadores relacionados con la memoria en el Performance Monitor, el SQL Profiler, y otras sentencias de DBCC (DataBase Console Commands).
SQLServer:Buffer Manager, SQLServer:Cache Manager, SQLServer:Memory Manager

25

Administracin de Procesos
Los procesos de background de Oracle pueden ser configurados para asegurar un desempeo ptimo, mientras que en SQL Server no son configurables (excepto checkpoint). Los procesos compartidos de Oracle son configurados usando parmetros como DISPATCHER, SHARED_SERVERS, MAX_SHARED_SERVERS, mientras en SQL Server los worker threads pueden ser controlados usando la opcin de configuracin max worker threads. En Oracle el nmero y el desempeo de los procesos puede ser observado usando las vistas de desempeo dinmicas y el OEM. En SQL Server el desempeo puede ser visto a travs de los objetos de gestin dinmica, los contadores relacionados a los procesos (Page Faults/sec, Thread Count/sec.) usando el Performance Monitor, SQL Profiler.
26

Administracin del Almacenamiento


Tareas de administracin de data files:
Expandir el espacio y de los data files y del transaction log. Reducir (Shrink) el espacio de los data files y del transaction log. Adicionar y remover data files y transaction log.

Los transaction logs de SQL Server combinan las funciones de los redo log de Oracle y los segmentos undo. Oracle tiene mltiples redo logs de tamao fijo que se rotan en forma cclica con cada checkpoint. Los transaction logs de SQL tienen tamao variable y se liberan despus de un checkpoint o un backup del log. La gestin de los tablespaces incluye la creacin, eliminacin, renombrado y cambio de estado. Debido a que SQL Server usa extents de tamao fijo, su administracin no involucra las mismas tareas que se tienen en Oracle bajo ciertas condiciones. 27

Administracin de Sesiones y Transacciones


En Oracle las tablas y vistas del diccionario de datos se usan para relacionar sesiones, transacciones y recursos. En SQL Server, las vistas, procedimientos almacenados y utilidades pueden ser usados para proveer datos equivalentes.

28

Bloqueos y Latches (cerrojos)


Los latches son mecanismos que permiten a las BD evitar accesos simultneos a estructuras de memoria. Monitorear esperas relacionadas con bloqueos usando las vistas del diccionario de datos y los procedimientos almacenados. Monitorear bloqueos en con el umbral de procesos bloqueados Visualizar los interbloqueos usando el Deadlock Graph Profiler.

29

Laboratorio

30

Contenido
Instalacin de SQL Server Propiedades de las BD Propiedades de Almacenamiento Management Studio

31

Administrar Objetos Esquema

32

Contenido
Guas para nombrar identificadores en definicin de objetos esquema. Almacenamiento y estructura de objetos esquema. Implementar integridad de datos usando constraints. Implementar reglas de negocio a nivel de base de datos usando triggers y secuencias.
33

Identificadores y Nombrado
Nombres de objetos y columnas no son sensibles a maysculas/minsculas en Oracle, pero son almacenados en el DD en maysculas a menos que sean forzados usando delimitadores. En SQL Server los nombres de objetos y columnas son almacenados en el catlogo el sistema en la misma forma comose especificaron en el comando de creacin. Los nombres deben ser nicos dentro del mismo esquema.
34

Tablas
Existe una sintaxis de definicin genrica de tablas tanto para Oracle como para SQL Server. Existen varios tipos de tablas en ambos motores (temporales, particionadas, variables). Lo mismo ocurre con las columnas.

35

Constraints
Los tipos de constraints son:
NOT NULL CHECK UNIQUE PRIMARY KEY FOREIGN KEY

Pueden definirse junto con la definicin de las columnas o por fuera junto con la definicin de la tabla. Los contraints de llave primaria son forzados usando ndices nicos y constraints NOT NULL.
36

Triggers
Los triggers INSTEAD OF de SQL Server son similares a los triggers BEFORE en Oracle. Los triggers en SQL Server son a nivel de sentencia. Oracle usa estructuras de pseudo-filas :new and :old. SQL Server usa pseudotablas DELETED and INSERTED.
37

ndices
Existen ndices nicos, no-nicos, noclustered, B-tree al igual que en Oracle. O ndices clustered en SQL Server son similares a los IOTs (index-organized tables) de Oracle. Pueden ser creados, eliminados, reconstruidos, reorganizados, puestos offline u online. Tambin permite indexar tipos de datos XML y datos espaciales.
38

Vistas
En Oracle las vistas pueden crearse aun sin permisos o ausencia del objeto base usando la clusula FORCE. En SQL Server la definicion de la vista puede ser almacenada en forma encriptada dentro del catlogo del sistema. En Oracle las vistas pueden ser definidas con constraints y pueden ser solo de lectura.
39

Seguridad de la Base de Datos

40

Cotenido
Gestionar el acceso a la BD a travs de cuentas de usuario. Controlar el acceso a los datos a travs de privilegios y roles. Gestionar el acceso al servidor usando cuentas de login.

41

Gestin de Usuarios
En Oracle, un usuario hace parte de todo el sistema de BD. SQL Server usa cuentas de login para acceder a a instancia y cuentas de usuario para acceder a las BD individuales. Los nombres de usuario de Orale y los logins de SQL Server pueen ser auntenticados a nivel de sistema operativo o de la BD. Adicionalmente en SQL pueden tambin autenticarse en el dominio de red. En SQL Server, una cuenta de usuario debe ser creada en cada BD que una cuenta login necesite acceder y puede llamarse diferente que la cuenta login.
42

Gestin de Privilegios
Oracle y SQL Server controlan el acceso y la actividad dentro de la BD usando privilegios del sistema y de objetos. ALTER DATABASE y GRANT son ejemplos de privilegios del sistema mientras que los privilegios a nivel de objeto se manejan con SELECT, INSERT, UPDATE, DELETE. Oracle y SQL Server usan la sentencia GRANT para otorgar privilegios y REVOKE para removerlos. Adicionalmente SQL Server tiene la sentencia DENY para suspender privilegios. Para listar los permisos sobre objetos se pueden usa la vistas sys.database_permissions y la funcin fn_builtin_permissions. 43