Sunteți pe pagina 1din 86

Iniciación a SQL Server

para DBA’s Oracle


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

1
Contenido General
• Arquitectura de la BD
• Administración Básica
• Administración del Servidor
• Laboratorio
• Administrar Objetos Esquema
• Seguridad de la BD
• Transporte de Datos
• Backup y Recuperación
• Afinamiento del Desempeño
• Escalabilidad y Alta Disponibilidad
• Monitoreo

2
Arquitectura de la Base de
Datos

3
Arquitectura de la BD
• Esquema y Estructura de Datos (Objetos)
• Arquitectura de Almacenamiento
– Bloques de Datos, Extents, y Segmentos
– Asignación 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 – colección de objetos pertenecientes a un usuario de bd
• Esquemas en SQL Server proveen separación lógica de objetos,
similar al Schema Oracle.

Oracle SQL Server


Table Table
Index Index
View View

Synonym Synonym
Sequence Identity Columns
Procedure Stored Procedure

Function Function
Package N/A
Queue in Streams Advanced Queuing Service Broker Queue
Object Type Type
XML DB XML Schema Collection
5
Arquitectura de Almacenamiento
• Incluye estructuras físicas y lógicas.
• Físicas: data files, log files y bloques del SO.
• Lógicas: 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 Segment Heap/Index Heap/Index


Extent Extent Extent Extent Extent Extent Extent

Blocks Blocks Blocks Blocks Pages Pages Pages

6
Bloques de Datos, Extents, y
Segmentos
Estructura Oracle SQL Server 2008+

Unidad mínima de
almacenamiento Bloque Página
lógico

Tamaño de bloque Variable 8 KB fijo

Asignación de En múltiples bloques; En múltiples páginas;


almacenamiento son los “extents” son los “extents”

Tamaño de Extent Variable 64 KB fijo

Cualquier estructura
lógica a la que se No hay una estructura
Segmento
asigna equivalente
almacenamiento 7
Asignación de Almacenamiento

8
Tablespaces y Data Files
• Oracle y SQL Server almacenan los datos en
archivos.
• La estructura más grande de almacenamiento
lógico en Oracle es un tablespace.
• La estructura más grande de almacenamiento
lógico en SQL Server es un filegroup.
• Tablespaces/filegroups son usados para
agrupar objetos de aplicación.
• Tablespaces/filegroups optimizan la
administración de los Data Files.
9
SQL Server Data Files
3 tipos de archivos
soportados:
• Primary Data Files. Cada BD
tiene uno. Extensión mdf.
Apunta a los otros archivos y
es similar al control file de
Oracle pero también 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 información 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 Data file Data file Data file Log file Master DB

SysAux Tablespace Data file Data file Data file Log file
Resource
DB
Tablespace Group
Temporary Data file Log file
TempDB
Data file Data file
Tablespace
Data file Log file Model DB
Data file Data file

Data file Log file MSDB


BigFile Tablespace Data file

User Data Data file Data file

Tablespace User Database


User DB
User Index Data file Data file Data file Data file

Tablespace Data FG
Data file Data file
Undo Tablespace Data file Data file
Index FG
Redo Log Log file Log File(s)
Redo Log Files Redo Log
Redo Log

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 imágenes “previas” de los
datos.
• SQL Server implementa ambas
funcionalidades usando transaction logs.
Cada registro de transacción contiene la
imagen “undo” y “redo” de la transacción.
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 Catálogo — 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 Administración Dinámica — 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 método estándar
SQL-99 para ver la metadata del sistema.
– BD RESOURCE contiene la metadata para los procedimientos
14
almacenados del sistema.
Administración Básica

15
Contenido
• Planeación y pasos de preparación para
un ambiente de SQL Server.
• Creación y configuración de una instancia
de SQL Server y sus BD.
• Características de una BD.
• Tareas básicas de mantenimiento.

16
Instalación de SQL Server
• Planeación— edición del SW, ubicación de los archivos,
convenciones de nombres, opciones de instalación.
• Adquisición de recursos — HW, SO, Utilidades.
• Instalar SW y componentes.
• Configuración de la red — selección de protocolos,
balanceo de carga, etc., usando el Configuration
Manager.
• Conectividad de clientes y configuración — selección de
protocolos, detalles del servidor, etc., usando el
Configuration Manager.

17
Sistema de BD
• Crear instancias.
• Configuración – los parámetros pueden
establecerse usando sp_configure o el
Management Studio.
• Los parámetros de configuración pueden
ser básicos 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
Configuración de la BD
• Las opciones de configuración 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 Recuperación – full | bulk_logged |
simple.
– Opciones SQL – ansi_padding, …
– Opciones de Estado – offline | online, single user, …

20
Mantenimiento de la BD
• Información 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 dueño de la BD – no existe en Oracle

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

22
Administración 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 físico y
lógico.
• Sesiones de usuario y su actividad.
• Estructuras de concurrencia

24
Administración de la Memoria
• La memoria se gestiona a:
– Nivel de servidor – asegura la distribución 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 automáticamente.
– El tamaño y el desempeño de los componentes de la memoria se pueden consultar
en Oracle a través del OEM o de las vistas dinámicas. En SQL Server el desempeño
puede verse a través de los objetos de gestión dinámica, 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
Administración de Procesos
• Los procesos de background de Oracle pueden ser configurados
para asegurar un desempeño óptimo, mientras que en SQL Server
no son configurables (excepto checkpoint).
• Los procesos compartidos de Oracle son configurados usando
parámetros como DISPATCHER, SHARED_SERVERS,
MAX_SHARED_SERVERS, mientras en SQL Server los worker
threads pueden ser controlados usando la opción de configuración
max worker threads.
• En Oracle el número y el desempeño de los procesos puede ser
observado usando las vistas de desempeño dinámicas y el OEM.
En SQL Server el desempeño puede ser visto a través de los
objetos de gestión dinámica, los contadores relacionados a los
procesos (Page Faults/sec, Thread Count/sec.) usando el
Performance Monitor, SQL Profiler.
26
Administración del
Almacenamiento
• Tareas de administración 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 múltiples redo logs de tamaño fijo que se rotan en
forma cíclica con cada checkpoint. Los transaction logs de SQL
tienen tamaño variable y se liberan después de un checkpoint o un
backup del log.
• La gestión de los tablespaces incluye la creación, eliminación,
renombrado y cambio de estado.
• Debido a que SQL Server usa extents de tamaño fijo, su
administración no involucra las mismas tareas que se tienen en
Oracle bajo ciertas condiciones. 27
Administración 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 simultáneos 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
• Instalación de SQL Server
• Propiedades de las BD
• Propiedades de Almacenamiento
• Management Studio

31
Administrar Objetos Esquema

32
Contenido
• Guías para nombrar identificadores en
definición 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 mayúsculas/minúsculas en Oracle,
pero son almacenados en el DD en mayúsculas
a menos que sean forzados usando
delimitadores.
• En SQL Server los nombres de objetos y
columnas son almacenados en el catálogo el
sistema en la misma forma como se
especificaron en el comando de creación.
• Los nombres deben ser únicos dentro del
mismo esquema. 34
Tablas
• Existe una sintaxis de
definición genérica 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 definición de las
columnas o por fuera junto con la definición de
la tabla.
• Los constraints 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 pseudo-
tablas
DELETED and INSERTED.
37
Índices
• Existen índices únicos, no-únicos, no-
clustered, 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.
• También permite indexar tipos de datos 38

XML y datos espaciales.


Vistas
• En Oracle las vistas pueden crearse aun sin
permisos o ausencia del objeto base usando
la cláusula FORCE.
• En SQL Server la definición de la vista puede
ser almacenada en forma “encriptada” dentro
del catálogo 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
Contenido
• Gestionar el acceso a la BD a través de
cuentas de usuario.
• Controlar el acceso a los datos a través de
privilegios y roles.
• Gestionar el acceso al servidor usando
cuentas de login.

41
Gestión 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 Oracle y los logins de SQL
Server pueden ser auntenticados a nivel de sistema
operativo o de la BD. Adicionalmente en SQL pueden
también 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
Gestión 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 función
fn_builtin_permissions. 43
Gestión de Roles
• Oracle and SQL Server proveen roles del sistema con
privilegios predefinidos y roles de usuario definidos.
• Los roles del sistema en SQL Server son de 2
categorías:
– Roles fijos del servidor, definidos para la instancia de BD.
– Roles fijos de BD cuyo alcance está limitado a la BD.
• El rol sysadmin (de servidor) equivale al rol de DBA en
Oracle.
• En Oracle, existe un único rol DBA cuyos privilegios se
extienden a la instancia y a todos los esquemas.
• En SQL Server, los privilegios administrativos pueden
limitarse a BD individuales usando roles fijos de BD.
44
Transporte de Datos

45
Contenido
• Herramientas y funcionalidad en Oracle y
sus equivalentes en SQL Server para:
– Transporte de datos fuera de la BD.
– Transporte de datos dentro de la BD.
• Herramientas y funcionalidad en SQL
Server para el transporte de datos dentro,
fuera y entre múltiples BD, múltiples
formatos de archivos y otras fuentes de
datos y destinos.
46
Exportar Datos
Herramientas Oracle Herramientas SQL Server
• Data Pump • SQL Server Integration
• Export Services (SSIS)
• SQL*Plus • BCP (Bulk Copy)
• DBMS_OUTPUT • Sqlcmd.exe
• UTL_FILE • PowerShell
• OBI SQL Server • SELECT o PRINT
Oracle 10g+
2008+ • Servidores
• Encadenados

47
Importar Datos
Herramientas Herramientas SQL
Oracle Server
• Data Pump • SQL Server Integration
• Import Services (SSIS)
• SQL*Plus • BCP (Bulk Copy)
• CREATE TABLE Person
Payroll • Bulk Insert
• OBI • Sqlcmd.exe
• SQL Loader • PowerShell
Parts
• SELECT INTO
• Linked Servers

Input
SQL Server
2008+
48
Transporte de Datos
• SQL Server ofrece varios comandos y herramientas para hacer bulk copy
(copia masiva):
– BCP, es usada para transferir grandes volúmenes de datos dentro o
fuera de una BD.
• Para exportar - los datos son vaciados a un archivo plano en un
formato delimitado.
• Para importar – los datos son primero exportados de la fuente y
luego importados a SQL Server.
– El comando BULK INSERT puede usarse con programas Transact-SQL
para insertar grandes volúmenes de datos desde un archivo plano.
– El API Bulk copy puede usarse en aplicaciones ODBC, OLE DB, SQL-
DMO (Objetos de administración de BD – se eliminaron en 2012) y
SMO (Objetos de aministración de SQ Server).
– OPENROWSET (BULK…) puede usarse para importar de forma
masiva grandes cantidades de datos en SQL Server.
49
SQL Server Integration Services
• SSIS ofrece varias herramientas
para extraer, transformar y cargar
datos desde múltiples fuentes hacia
BD SQL Server y viceversa.
• Provee control sobre el flujo de los
datos, los ciclos y las condiciones de
extracción y carga.
• Es posible construir paquetes
usando:
– SSIS designer en Business Intelligence
Development Studio.
– Asistente para Import / Export
– Database Export 50
Asistente para copia de BD
• Copy Data Wizard (CDW) puede usarse para copiar o
mover bases de datos entre instancias de SQL Server.
• Soporta 2 métodos:
– Attach / Detach
– Usando SQL Server
Management Objects
(SMO)
• Se debe crear una cuenta especial,
cuenta proxy, para ejecutar el paquete
SSIS creado por el CDW

51
Backup y Recuperación

52
Contenido
• Métodos de Backup y recuperación
disponibles en Oracle y SQL Server.
• Tipos de fallos.
• Tipos de recuperación.
• Formulación de estrategias de de Backup
y Recuperación.

53
Errores de la BD
• Los errores más comunes de BD incluyen:
– Fallo de sentencias, cuando un programa encuentra una falla en
el manejo de una sentencia.
– Fallo de proceso, cuando un proceso de background, de usuario
o de servidor encuentra una desconexión anormal o terminación
del proceso.
– Fallo de instancia, cuando una instancia deja de ejecutarse
debido a un fallo en el HW o en el SW.
– Error de usuario o de aplicación, cuando los objetos son
eliminados o se eliminan datos por accidente.
– Fallo de medios, cuando la lectura o escritura a un archivo de
datos (data file) falla.
– Fallo de red, cuando un segmento de red falla o una conexión
telefónica se aborta.
54
Métodos de Backup
• Dos tipos: lógicos y físicos.
• Los lógicos facilitan la recuperación a nivel
objeto del esquema.
– En SQL Server, se puede usar SSIS, bcp, y otras herramientas
de transporte de datos.

• Los físicos son copias de los archivos


físicos de la BD. Estos incluyen:
– Backups Online (o inconsistentes)
– Backups Offline (o consistentes).
– Backups Incrementales.
– Backups de Archive/Transaction log. 55
Modelos de Recuperación en
SQL Server
• Pueden ser:
– Full
– Bulk Logged
– Simple
• Determinan la cantidad de registros log a nivel
de BD o de línea de comandos.
• Proveen bastante control sobre las operaciones
de registro de log y la velocidad de las
transacciones masivas, al mismo tiempo que
proveen recuperación a sistemas “pesados” en
transacciones. 56
Modelos de Recuperación
(Cont.)
• Simple: Sin backup del log. Recupera automáticamente el espacio
de log para mantener al mínimo las necesidades de espacio. Los
cambios realizados después de la copia de seguridad más reciente
no están protegidos. En caso de desastre, es necesario volver a
realizar dichos cambios.
• Full: Requiere backup del log. No se pierde trabajo si un archivo de
datos se pierde o resulta dañado. Se puede recuperar hasta
cualquier momento.
• Bulk: Requiere backup del log. Complemento del modelo de
recuperación full que permite operaciones de copia masiva de alto
rendimiento. Reduce el uso del espacio de log mediante el registro
mínimo de la mayoría de las operaciones masivas.

57
Factores que Afectan las
Estrategias de Backup
• La tasa de transacciones y la tasa de cambios en los
datos.
• Los requerimientos de disponibilidad de la BD.
• El valor y grado de “misión crítica” de los datos.
• La naturaleza del acceso a los datos.
• El espacio de almacenamiento para los backups de los
data files.
• La disponibilidad de espacio en los medios de Backup.
• El costo de otros recursos HW y SW.
• Requerimientos de performance de carga.

58
Recuperación de Errores en la
BD
• Fallo en sentencias, Oracle y SQL Server automáticamente hacen la
recuperación y retornan el control.
• Fallo de procesos, el PMON en Oracle y el SQLOS en SQL Server
automáticamente deshacen la transacción actual y liberan los recursos
retenidos.
• Fallo de instancia, Oracle y SQL Server se recuperan al reiniciar la
instancia.
• Errores de usuario o aplicación, Oracle y SQL Server ofrecen opciones de
recuperación en tiempo.
• Fallo de medios, Oracle y SQL Server ofrecen recuperación a nivel de
archivos.
• Fallo de red,
– PMON en Oracle y SQLOS en SQL Server recuperan las transacciones
abortadas.
– RECO en Oracle y MSDTC en SQL Server recuperan de fallos durante
las transacciones distribuidas o two-face commit 59
Herramientas de Backup y
Recuperación
• Oracle Recovery Manager (RMAN), en
Oracle, es usado para hacer backup y
recuperar los data files.
• Los componentes de Backup y
Recuperación de SQL Server, junto
con el SQL Server Agent, permiten
establecer, programar y automatizar
backups y ejecutar recuperaciones.
• Los comandos BACKUP y RESTORE
pueden usarse en aplicaciones, scripts
T-SQL, procedimientos almacenados y
triggers.
• La historia de los Backups se
mantiene en el catálogo de RMAN.
Las tablas equivalentes del catálogo
están en la BD MSDB de SQL Server.
• Ambas herramientas proveen algo de
Encripción y compresión.
60
Afinamiento del Desempeño

61
Contenido
• Metodologías de afinamiento:
– A nivel de Instancia.
– A nivel de BD.
– A nivel de Aplicación.
• Revisión de herramientas y técnicas para
analizar performance y hacer afinamiento.

62
Metodologías – Afinar Mientras
se Construye
• Ofrece un acercamiento proactivo al
afinamiento, siguiendo estos pasos:
– Afinar las reglas del negocio.
– Afinar el diseño de datos.
– Afinar la aplicación.
– Afinar la instancia.
– Afinar la plataforma.

63
Metodologías – Afinamiento del
Desempeño
• Es un proceso continuo e interactivo.
• El método ofrece varios pasos para mejorar el desempeño:
– Definir el problema.
– Examinar el sistema y las estadísticas.
– Examinar la documentación para ayudar a identificar el
problema.
– Generar un pronóstico basado en los datos capturados.
– Proponer un curso de acción e implementar los
cambios.
– Evaluar la efectividad de los cambios.
– Si no es exitosa, repetir los dos pasos anteriores.
64
Afinamiento de Aplicaciones
• Afinar el diseño – utilizar las características de la BD
– Ej.: ejecutar cálculos y sumatorias en la BD antes de recuperar los resultados
utilizando los recursos de la BD y reduciendo el tráfico de red.
• Afinar la estructura lógica de la BD – Utilizar los objetos esquema
soportados.
– Ej.: escoger los índices apropiados.
• Afinar las operaciones de la BD
– Encontrar las sentencias que consumen más recursos – Usar las estadística de
los catálogos como las operaciones de parsing, el tiempo de CPU, lecturas
físicas, etc.
– Afinar las sentencias para que usen menos recursos – Utilizar estándares de
codificación y herramientas para analizar y afinar los SQL.
• Afinar los caminos de acceso – Ayudar al optimizador a encontrar
los caminos de acceso óptimos, creando índices, índices en cluster,
y utilizar hints.
65
Afinamiento de Instancia
• Afinar la asignación de memoria
• Configurar y usar apropiadamente Proper configuration
and los caché que conforman la SGA (Oracle) y el
memory pool (SQL Server)
• Afinar el I/O y las estructuras físicas
• Separación de archivos basados en el acceso
• Distribución de carga de I/O a través de archivos y
dispositivos
• Afinar la contención de recursos
• Reducir o eliminar la contención de bloqueos latches,
headers y colas.
66
Herramientas de Afinamiento
• Profiler — registra información detallada de la actividad en el servidor de
BD, incluyendo estadísticas I/O, estadísticas de la CPU, recorridos de
tablas e índices, planes de ejecución y otras estadísticas para ayudar a
afinar SQL y T-SQL I/O.
• Performance Data Collector — herramienta completamente integrada que
recolecta un variedad de métricas de desempeño sobre uno o más
servidores SQL Server y las almacena en una bodega de datos central. Es
lo más parecido al OEM de Oracle.
• Query Editor — es la herramienta gráfica para construir, ejecutar y analizar
consultas SQL.
• Database Engine Tuning Advisor — Es una herramienta de diseño físico de
la BD para optimizar índices y particiones. Reemplaza a Index Tuning
Wizard de versiones anteriores.
• Performance Monitor — herramienta Windows que registra contadores a
nivel de HW, SO, DB y aplicación.

67
SQL Profiler

68
Escalabilidad y Alta
Disponibilidad

69
Contenido
• Características clave de alta disponibilidad
en Oracle y SQL Server.
• Características clave de escalabilidad en
Oracle y SQL Server.

70
Alta Disponibilidad
• Asegurar que la BD y el acceso a los datos se
tiene durante la máxima cantidad de tiempo.
• Existen parámetros de inicialización u opciones
de configuración tanto en Oracle como en SQL
Server.
• Estructura Lógica (agregar, remover, renombrar
columnas) y física (reconstruir, mover y cambiar
parámetros de storage) de las tablas.
• Índices.
• Opción de particionamiento de SQL Server.
71
Clustering
• Tanto Oracle como SQL Server cuentan con
opciones Activo/Pasivo ( a nivel de instancia) y
Activo/Activo (clustering failover multi-instancia).
En Oracle, se llaman Failsafe y Real Application
Clusters (RAC); En SQL Server se llama Failover
Clustering.
• Para el clustering Activo/Pasivo, Failsafe y
Failover clustering están basados en Microsoft
Cluster Services (MSCS) que contienen un único
conjunto de discos no compartidos.
• Para el clustering Activo/Activo, Failsafe y Failover
clustering utilizan una configuración multi-
nododonde cada nodo tiene su propia instancia
conectada a discos compartidos. Sin embargo, la
BD puede ser abierta solo por un nodo a la vez.
• Oracle RAC también puede tener clustering
Activo/Activo en una arquitectura “todo
compartido” donde múltiples instancias pueden
simultáneamente acceder a los datos en la misma 72
BD.
BD StandBy
• Ambas BD ofrecen este tipo de HA que puede ser usada
para disponibilidad o para DR.
• En Oracle, Data Guard.
• En SQL Server, Database Mirroring y Log Shipping.
• Las BD Standby se actualizan usando los archive logs en
Orale y el Transacion Log en SQL Server.
• El envío de logs al servidor Standby y su aplicación puede
ser controlado para proveer el alcance para recuperarse de
errores de usuario en el servidor primario.
• Los Snapshots de la BD espejo en SQL Server y la BD
standby lógica en Oracle pueden usarse como accesos de
solo lectura como reportes, análisis, DSS.
73
Replicación - Objetos
• La replicación es una especialización del concepto de BD
distribuida donde las copias de un objeto pueden mantenerse en
múltiples BD.
• A diferencia del clustering y las BD standby la replicación trabaja el
intercambio y la distribución de objetos individuales en vez de BD
enteras.
• Ambos motores proveen múltiples tipos de replicación basados en
si las réplicas son de solo lectura o actualizables.
• Oracle Streams ofrece replicación en 3 formas:
– Multi-master — múltiples réplicas actualizables punto a punto.
– Vistas materializadas — cada réplica tiene un sitio maestro con varias políticas
para a actualización de las réplicas.
– Híbridos entre replicación y vistas materializadas.

74
Replicación - Tipos
• SQL Server cuenta con los siguientes tipos de replicación:
– Replicación de Snapshot — usada casi siempre como copias de solo lectura las
cuales se refrescan periódicamente.
– Replicación Transaccional — se mantienen actualizadas con actualizaciones
inmediatas o diferidas desde el sitio maestro. Las copias se mantienen en su
mayoría de solo lectura y ocasionalmente se actualizan.
– Replicación mezclada (Merge) — similar a la replicación multi-master de Oracle
donde los sitios autónomos se sincronizan en intervalos regulares.
• Oracle y SQL Server tienen algoritmos sofisticados para resolver
conflictos entre las réplicas actualizables.

75
BD Espejo
• Solución SW para incrementar la disponibilidad
de una BD específica.
• Consiste de un servidor principal, un servidor
espejo y opcionalmente un servidor “testigo”.
• El servidor testigo habilitar el failover
automático.
• Puede operar en modo síncrono o asíncrono.
• Se usan vistas como sys.database_mirroring,
sys.dm_db_mirroring_connections para
monitorear el funcionamiento del espejo.
76
Escalabilidad
• Es la habilidad de soportar BD muy grandes (very large databases -
VLDB) y/o un gran volumen de OLTP.
• Las áreas de memoria en Oracle y en SQL Server se redimensionan
dinámicamente sin necesidad de reiniciar. Los procesos se ejecutan
automáticamente o a través del DBA, en Oracle, mientras que en SQL
Server se hacen de forma automática por el motor.
• Oracle usa queries paralelos “esclavos” y SQL Server usa hilos de
trabajo para proveer la interoperabilidad y el paralelismo en la
ejecución de DMLs y DDLs.
• Oracle y SQL Server se escalan bien en el manejo de conexiones de
usuario a través de los procesos compartidos del servidor.
• Oracle y SQL Server cuentan con varias características para acelerar
el acceso a grandes volúmenes de información, como por ejemplo
varios tipos de índices, técnicas avanzadas de I/O y de caché.

77
Monitoreo

78
Monitoreo
• Formular requerimientos e identificar recursos
para monitorear en un ambiente de BD.
• Tipos de monitoreo que pueden realizarse para
asegurar:
– Máxima disponibilidad
– Desempeño Óptimo
– Operaciones libres de errores
• Disponibilidad de herramientas para monitoreo.

79
Monitoreando la Disponibilidad
• El monitoreo debe cubrir disponibilidad, errores y desempeño
de todos los componentes del ambiente de BD.
• Componentes para monitorear:
– Nodo o servidor – HW y todos los componentes
– Listener de la BD – en SQL Server el listener es parte del
servicio de BD.
– Monitoreo de la BD
• High-level – chequear la existencia de la instancia.
• Low-level – asegurar que los trabajo pueden
ejecutarse en la BD.

80
Monitoreando Errores
• La BD y sus componentes retornan un estado de éxito o
de error con mensajes cuando se encuentran eventos
de falla.
• En Oracle los mensajes de error tienen un código que
consta de un número y una descripción.
• En SQL Server los mensajes de error están compuestos
por:
– Un número de mensaje único.
– Nivel de severidad.
– Número de estado de error – identifica la fuente.
– Descripción.

81
Registro (log) de Errores
• El archivo “alert” de Oracle tiene su equivalente en los
log de errores de SQL Server.
• Logs pueden leerse usando SQL Server Management
Studio o un editor de texto.
• Es posible mantener hasta 99 archivos de error.
• Los archivos para hacer trazas (trace) no se crean por
defecto, pero pueden crearse manualmente usando el
Performance Monitor o el Profiler.
• SQL Server también escribe información útil en el log de
aplicación de Windows, el cual puede leerse utilizando el
Event Viewer.
82
Monitoreando el Desempeño
• El servidor de BD debería monitorearse por CPU, memoria,
procesos, memoria virtual, red, I/O, y almacenamiento.
• Las herramientas y utilidades para monitorear los recursos del
servidor son:
– En Windows – Task Manager, Performance Monitor,
Windows Explorer.
• Monitorear el almacenamiento:
– Database Files – tamaño, crecimiento, espacio libre, estado,
archiving de los logs.
– Tablespaces o Filegroups – tamaño, crecimiento,
gragmentación, estado.
– Extents – tamaño y número de extents asignados a objetos,
desempeño del espacio de rollback, temporal y de
ordenamiento. 83
Monitoreando el Desempeño
(Cont.)
• Monitoreo de la instancia de BD:
– Memoria – desempeño de sub-componentes de la SGA
(Oracle) y del pool de memoria (SQL Server).
– Procesos – desempeño de los procesos de backgroun y los
procesos servidor (Oracle) o de los hilos de trabajo (worker
threads - SQL Server).
– Sesiones y transacciones – número y actividad de sesiones y
uso de recursos en las transacciones.
– Bloqueos y Latches – esperas por bloqueos y latches, y
deadlocks.
– Parsing – actividad de parsing que indica el desempeño de
SQL y cursores.

84
Herramientas de Monitoreo
Windows / SQL Server
• Activity Monitor De Terceros
• Data Collector / • BMC Software—
Management Data Performance Manager
Warehouse for Databases
• DBCC commands • Embarcadero—
• Dynamic Management DBArtisan
Objects (DMO) • Computer Associates—
• Performance Monitor Unicenter
• Reportes en Management • Quest Software—
Studio Spotlight
• SQL Server Agent
• SQL Profiler

85
Iniciación a SQL Server
para DBA’s Oracle
Juan C. Erazo M.
ApplyTech – CO
Skype: juanc.erazo

86

S-ar putea să vă placă și