Portada

Mostrando entradas con la etiqueta Microsoft. Mostrar todas las entradas
Mostrando entradas con la etiqueta Microsoft. Mostrar todas las entradas

lunes, 26 de enero de 2015

Bases de datos en SQL Server

La Base de Datos es una conjunto de archivos:

Primarios
Secundarios
y Log de Transacciones.

Primarios: Punto de partida de la BD. cada BD tiene uno y  este contiene punteros a los demas files. Son punto MDF aunque no es obligatoria es muy recomendable usarla.

Secundarios; Son opcionales y definidos por el usuario, y se pueden esparcir en varios discos por mantenimiento o performance, extension NDF es la recomendada.

        Paginas del archivo de datos:(Pagina = Tabla) se enumeran secuencialmente a partir de 0, su numeracion es unica tanto el ID como el numero de pagina son obligatorios.

        Estensiones: Grupo de 8 paginas contiguas, se usan para simplificar la gestion. Las uniformes son todas las paginas similares dentro de  una extension, y las extensiones mixtas.

        Archivo de Registro: Informacion que se utiliza para recuperar la base de datos cuando se necesita. extension LDF.

Los archivos de registro y de datos se deben separar en discos fisicos distintos, Este aislamiento es necesario por seguridad en caso de perdida de la base de datos.

Es posible tener varios archivos de datos, y esto es beneficioso en multiples efectos, por tamaño mantencion y otras que son dignas de tema por separado. El motor de SQL escribe solo en un archivo de datos a la vez.

La capacidad de la BD como tamaño maximo se debe proyectar: Indices, registro de transacciones y TempDB en un periodo de tiempo determinado. SQL Server de forma automatica puede agrandar automaticamente el tamaño dependiendo de las politicas de mantencion. Las copias de seguridad por su tiempo pueden afectar la desicion pero no hay relacion logica en esto.

Bases de Datos de Sistema

Se crean durante la instalacion automaticamente

MASTER: es la principal, contiene toda la informacion del sistema y la informacion de la instancia, si esta dañada SQL no inicia, por lo que debe ser copiada por seguridad constatemente.

MSDB: Contiene info para sql agent. Alertas Jobs y operadores. es necesario hacer respaldos para que esta info no se pierda.

MODEL: Es una plantilla que se usa para todas las bases de datos de usuario, cualquiera que se crea utiliza la model como plantilla.

TEMDB: Contiene los datos temporales, se crea o trunca cada vez que SQL inicia. No requiere respaldo.

RESOURCE: BD oculta de solo lectura y contiene todos los objetos de sistema que se asignan al esquema sys y contiene las vistas y todos los objetos. en las versiones anteriores a 2005 se definian en la base de datos MASTER.

La TEMPDB es fundamental para el funcionamiento de todo el resto del sistema y se compone de los objetos internos que son utilizados por SQL Server para sus operaciones con tablas de trabajos de punteros hash y trabajos de orden intermedio, logs.

OBJETOS de USUARIO: la mayoria de los objetos de la TEMPDB son creados por el usuario y consisten en tablas temporales, variables de tablas, y conjuntos de variables de resultado etc,

TAMAÑO DE LA TEMPDB: Version Store y objetos de usuario son parte de ella, y su rendimiento es fundamental para el rendimiento de SQL Server. La falta de espacio puede hacer que SQL Server no funcione. Se puede aumentar el numero de archivos para aumentar el rendimiento general del SQL Server-.

TRABAJAR CON ARCHIVOS Y FILES GROUPS

Los nombres de base de datos debe ser unico dentro de una instancia, Cada Bd tiene opciones configurables unicas y no afectan a otra, estos valores estan por defecto al crearse una nueva y se puede cambiar. Las categorias de opciones son las siguientes:

AutoOptions:
De cursor:
De disponibilidad
De recuperacion:
De verificacion de pagina:

No se puede utilizar un espacio en disco usado por otro usuario sin primero escribir en ese espacio en disco. Cuando a un archivo se le asignan 200 gigas, debe primero escribirlo. Para evitar el tiempo que se tarda en esto puede utilizar el archivo de inicializacion IFI, teniendo los permisos SQL puede solicitar el espacio sin inicializar desde el sistema operativo.

MODIFICAR BASES DE DATOS

Lo mas comun es añadir espacio adicional o añadir archivos, se puede hacer esto con la instruccion ALTER DATA BASE o el SMSS. Si una base de datos agota el espacio asignado y no esta configurada para crecer automaticamente o si no hay sufuciente espacio en el disco. A veces ya no se requiere un archivo tan grande, tanto los datos como el registro de transacciones se pueden reducir.

DBCC SHRINKFILE  o el Comando DBCC RINKDATABASE  pueden ser utilizados para reducir el espacion en las bases de datos.


FILEGROUPS

Filegroups se denomina a un grupo de archivos y se utilizan para simplificar el colocar un grupo de datos y tareas administrativas como copias de seguridad y restauraciones. Puede mejorar el rendimiento de la base de datos ya que puede hacer que una BD se pueda crear en varios discos, varios controladores de discos o sistemas RAID.


MOVER ARCHIVOS DE BASES DE DATOS.

Se pueden separar las bases de datos y eso no elimina los datos de los archivos de datos, ni los archivos de datos solo se elimina la METADATA de la base de datos. Estas se pueden separar desde SMSS o con el T-SQL DETACH/ATTACH. Luego se podra copiar a otra instancia y volver a atachar. Esto requiere que la base de datos este fuera de linea y se debe realizar en una ventana de mantenimiento.

BASES DE DATOS DE SISTEMA: todas se pueden mover de lugar, salvo la RESOURCE. La MASTER se debe mover de forma especial.

-Abra SQLConfiguration Manager.
- En el nodo de servicios de SQL Server haga clic en la instancia y seleccione propiedades, luego en opciones avanzadas.
- Edite los valores de parametros de inicio para que apunte a los valores previstos para la base de datos Master.
- Detenga la instancia de SQL Server.
- Mueva Mater y Masterlog a la nueva ubicacion.
-Reinicie el SQL Server.

Para mover el resto de las bases de datos, salvo la RESOURCE...

1. Para cada archivo a mover, execute ALTER DATABASE … MODIFY FILE como usuario de la base de datos.
2. Detenga la instancia de SQL Server.
3. Mueva los archivos a la nueva instalacion.
4. Reinicie la instancia de SQL Server.

COPIAR BASES DE DATOS

Hay varias maneras, separar la base de datos copiar los archivos a la nueva ubicacion, y volver a atachar. Realizar una copia de seguridad y luego restaurarla con el mismo nombre de la BD en un mismo servidor o con otro nombre en la misma instancia.

Tambien puede utilizar el asistente para copiar bases de datos.





viernes, 23 de enero de 2015

Modulo 2 Preparando el SIstema para SQL 2012

La Arquitectura de SQL Server:

3 Categorias de componentes existen y estan en capas:

- Execucion de la consulta:
- Motor de almacenamiento:
- SQL OS

Capa de Ejecucion:Gestiona conexiones y seguridad. Parser chequea que T-SQL esta bien utilizado, entregando lo que se quiere lograr en la consulta. Optimizador de consultas que encuentra un plan aceptable para cada costo de operacion.

Capa de Alamacenamiento:  Gestiona los datos que se llevan a la BD, gestionando como se almacenan los datos tanto en disco como en memoria, y su guardado en cache. Bloqueos y transacciones tambien es su responsabilidad para coherencia de datos.

           - Componente de metodos de acceso. Gestiona la cantidad de datos que se acceden.
           - Cache de Pagina: Minimiza el tiempo que accede el motor a las pagina de datos.
           - Componente de Bloqueo y transacciones. con la ayuda de log de transacciones de la base de               datos.

Capa de S.O.: Proporciona las funcionalidades del sistema oeprativo para los componentes de SQL Server,



USO de CPU.

   Windows usa threads para funcionar y el sistema operativo tiene un reloj para medir e interrumpir estos threads cuando considera que su tiempo se ha acabado. En lugar de usar los Threads de windows, SQL crea un subproceso de hilos que se asignan a los Threads de windows.

CPU Affinity Mask

    Estima que CPU debe usar un Threads.

TAKS and RESOURCES

     Las tareas esperan los recursos y es tarea de SQL Server OS la asignacion de recursos a estas tareas.

PARALELISMO

    Por el coste que esto tiene solo se usa para consultas que realmente valen el costo en recursos que esto significa. Umbral de costo, determina cual es el umbral que debe cumplir una consulta para usar paralelismo.

   EL optimizador solo crea una plan de consulta en paralelo, pero no decide su ejecucion si no el    SQL Server O.S.

SISTEMAS DE 32X

Virtual Address State: (VAS) Los Procesadores de 32X solo tienen un VAS de 4 GB de memoria y 2 GIGA son de sistema operativo y el resto esta disponible para aplicaciones. El switch se puede modificar en el archivo BOO.INI o usando el BCDEDIT en sistemas operativos mas recientes. (ver este link)


VAS depende de la consfiuracion del servidor y es la memoria que SQL Server puede referenciar a Windows.

SQL Server necesita grandes cantidades de memoria cache para consultas. SQL FUNCIONA MEJOR EN UNA VERSION DE 64X QUE EN UNA DE 32X. podremos obtener hasta 7 u 8 terabytes dependiendo del motor instalado.

Todas las operaciones de datos se llevan a cabo en la cache de datos. Las modificaciones nunca se realizan en las paginas de datos.

Entrada y SAlida  I/O Logica y Fisica.

Cuando un dato no esta en la cache esta entrada y salida se llama I/O Fisica. Optimizar los indices y el diseño fisico y logico y optimizando consultas esto se puede ayudar a disminuir las lecturas y escrituras. Una I/O logica se produce cuando este datos se puede recuperar del buffer cache.


                                     PLANIFICACION DE LOS REQUERIMIENTOS.

CPU

1- Hablar con el proveedor de software, para experiencias previas que el tenga.
2- Prueba de diferentes configuraciones. Se debe definir a nivel de negocios para definir cuanto tiempo se necesita guardar cierta informacion.
3- Preveer futuros crecimeintos.

Uso de CPU: depende de los tipos de consultas, y mas sencillo ya que no puedes calcular mucho los recursos de procesador. Hacer pruebas de cargas realistas es la mejor opcion. Mas CPUs los planes de consulta en paralello se veran mejor afectados. sobre todo si existen grandes volumenes de datos. Asegurese que el servidor esta dedicado solo a SQL Server o servicios poco importantes en el mismo servidor.

NUMA> si tienes multiples CPUs y solo un bus para memoria y procesador, esto puede transformarse en un cuello de botella. En los sistemas basados en NUMA existe un BUS para cada grupo de CPUs.


MEMORIA

 SQL Server Usa mucha memoria, ya que las consultas consumen de esta en grandes volumenes de datos, y mantiene los datos del usuario para cada contexto de ejecucion. Tambien la memoria es usada por otros agentes del sistema operativo.

Las experiencias de instalaciones similares solo puede ser utilizado como una guia.

ADAPTADORES DE RED

Pruebas de requisitos son fundamentales, 1 adaptador no siempre alcanza. considere multiples adaptadores.

EQUIPO de PERSONAS

Considere consultar a un equipo multidicplinario.

DISCO

Se requiere mucho disco. considerelo I&O grandes exploiraciones se realizaran. DAS es bueno y predecible, |SAN implica mas trabajo pero tambien es posible,







Componentes y Servicios de SQL Server 2012

Las aplicaciones clientes se conectan a los end points, y se deben identificar primero.

El protocolo que usan las apps. es DTS tabular data stream. otros como sql analys Services usan XML por analisis protocol.

SQL Server 2012 R2 Soporta Virtual Interfaces Adapter protocol, pero ha quedado obsoleto y no se debe usar para las nuevas implementaciones.

Para la mayoria de las app y org. y el acceso se basa en la identidad del usuario que accede. el proceso de verificacion se conoce como autentificacion. Para eso SQL usa dos metodos:

    - SQL Server Almacena las contraseñas. Inicio de sesion de SQL.
    - Un grupo de windows a traves de un Controlador de Dominio.
    - La resultante es que puede ser mixto.

Las capas de software: para las conexiones de software.

- Bibliotecas Clientes.
- Open Data Base Conectivity ODBC:  Capa de traduccion y el motor de la base de datos, al cambiar la configuracion la app podria trabajar con otro gestor de datos sin modificar la app.
- OLE DB: biblioteca no traduce comandos, lo pasa al gestor sin modificar desde la app a la BD.
- SQL Server Native Acces Component(SNAC): capa de soft. que encapsula los comandos emitidos por las bibliotecas OLE DB o ODBC y los traduces para que el gestor lo entienda. encapsula los resultados devueltos por SQL listos para los protocolos (TDS).
- BIBLIOTECAS DE RED:  ENDPOINT se utilizan para que las app clientes se puedan conectar, pasando comandos desde y hacia la base de datos.  SNAC se conecta a estos end points a traves de las bibliotecas de red como TCP/IP.
SQL Operating System, entrega una capa de software de abstraccion entre el motor relaciones y los recursos de red disponible,







SSMS: se ha creado este entorno integrado de operacion dentro de la plataforma microsoft visual studio Shell. Compartiendo muchas funciones con Visual Studio y ofreciendo edicion para archivos punto SQL o punto XML y proporciona asistencia al escribir las consultas de Transac SQL


La cantidad de servicios que se isntalan en SQL SErver dependera en realidad de los componentes que se selecciones para instalar durante el setup inicial.

Configuration Manager: Permite configurar protocolos y puertos de servidor y clientes. Se pueden ajustar numeros de puertos y protocolos de red para futuras modificaciones y cambios.

Si SMSS se instala se utiliza el protocolo  SMAC.

Para aplicaciones de clientes y para niveles de redireccion, se pueden crear ALIAS, asignando protocolo y puerto si es necesario.


Herramientas

SQL SERVER PROFILED: traza la actividad de los clientes de SQL Server.

DATA BASE ENGINE TUNING ADVISOR: genera metricas para analizar las cargas de trabajo.

MASTER DATA SERVICES CONG. MANAGER: Configura y adm. Master data services.

REPORTING SERVICES: Configura y Adm. Reporting Services.

SQL SERVER ERROR AND USED REPORTING: configura seteos sobre los errores que se producen.

POWER SHELL PROVIDER: Permite configurar y realizar consultas mediante Power Shell.

SQL SERVER MANAGEMENT OBJECT (SMO): proporciona una lista detallada de librerias .NET para trabajar desde el codigo de SQL server para trabajar directamente desde el codigo de la aplicacion.








miércoles, 21 de enero de 2015

Como Chequear La integridad de una Base de Datos


Integridad de las Bases de Datos, la integridad en una base de datos es la corrección y exactitud de la información contenida. Además de conservar la seguridad en un sistema de bases de datos que permite el acceso a múltiples usuarios en tiempos paralelos.

DBCC CheckDB.
DBCC CheckDB Options.
DBCC CheckDB Repairs.

Es raro que bases de datos pasen a estar corruptas pero puede suceder mas por temas de plataforma (temas en I/O o problemas en la memoria del sistema).


DBCC  se sumistra con SQL Server CheckDB suministra la revision de una base de datos con multiples mas funciones, que se pueden realizar por separado.

Las opciones mas importantes son:


1.- DBCC CHECKALLOC -  chequea la consistencia del espacio en disco.
2.-DBCC CHECKTABLE DBCC CHECKDB executes DBCC CHECKTABLE para todas las tablas
3.-DBCC CHECKCATALOG no chequea usuarios.



No siempre es posible reparar una base de datos, sin perdida de datos. Por lo que restaurar siempre es lo mejor, y esta opcion debe estar alineada con la politica de retencion de respaldos.




Una vez encontrados los errores, tenemos dos opciones de reparacion. Para las opciones de reparacion la base de datos debe estar en modo SINGLE USER MODE. 


DBCC CheckDB REBUILD funciona con algunas formas de corrupcion y no implica perder datos. Reorganiza indices y elimina las paginas de datos corruptas.
REPAIR_ALLOW_DATA_LOSS Implica la perdida de datos. Se eliminan los objetos corruptos y sus referencias desde otros objetos. Luego de la reparacion la base de datos queda consistente, pero solo en su integridad, muchos datos pudieron haberse perdido.

PREFIERA usar el RESTAURAR la BASE DE DATOS.

Por que no incian los servicios de SQL ¿que reviso?

Causas mas comunes: "Servicio de SQL no inicia o no es accesado."


- No se les permite a los servicios interactuar con la consola del sistema. Revise la cuenta de servicio.
- Inicio de sesion invalido (cuentas de servicio), contraseña vencida, cuenta bloqueada.
- Revisar el registro de SQL si se indica que la base de datos MODEL o MASTER esta dañada? la ruta de estos archivos debe existor y estar accesible.
- Inicie desde ComamdPromtp si funciona configuracion del servicio.
- Revisar Registro de SQL Server desde SSMS, si no parte lo puede abrir con un editor de notas. revisar tambien el Log de sistema del log de eventos del sistema operativo, tambien en el log de aplicaciones del log de eventos del sistema operativo.

Login y Conectividad:

 Los usuarios no pueden conectarse a SQL Server.

- Problemas de Conectividad, ¿Se puede conectar a traves de "shared memory connection"? De lo contrario bibliotecas de red incompatibles podrian ser el problema. (lo ultimo es muy poco comun).
- No puede iniciar sesion: (windows) se puede conectar el SQLServer a un controlador de dominio ?     Quizas no puede validar las sesiones de dominio.

- Esta configurado SQL Server para iniciar sesion con cuentas locales (cuentas locales). Por lo general una coneccion de confianza no esta disponible en este caso de errores.

- Contraseña Correcta?
- Contraseña Expiro pero la aplicacion que intenta conectarse no sabe que la contraseña expiro?
- Tiene la cuenta permiso para conectarse a SQL Server.
- El permiso se ha concedido para el inicio de sesion que esta intentando conectarse.


ACID

Lo que espero de las transacciones

Atomicidad: Comienzo y final conocido y completos.
Coherencia: La base de datos no queda a la mitad despues de una transaccion.
Aislamiento: Las transacciones no interfieren entre si.
Durabilidad: Una transaccion confimada queda en el sistema a prueba de reinicios.

Los bloqueos se usan para garantizar estas reglas. Esto es crucial para el procesamiento de transacciones y es natural en las bases de datos. Los bloqueos largos, son un issue ya que pareciera que las aplicaciones estan colgadas. Estos bloqueos pueden ser observados mirando el registro de actividad de SQL Server.


INTERBLOQUEOS

 La forma mas comun de interbloqueos: Dos tareas solicitan al mismo tiempo objetos que tienen bloqueados por si mismas. SQL Server reversa estas transacciones. No ahondare en esto ya que no es comun para mi.





jueves, 24 de julio de 2014

Recuperación de elementos objetos borrados de AD EXCHANGE


INSTALAR 

el software Quest Object Restore for Active Directory

https://drive.google.com/file/d/0Bwej7LC5_-tQQ01xc08yUElXUmM/edit?usp=sharing
  
seleccionar el objeto BOTON DERECHO y RESTAURAR 


EJEMPLO:

 



Ahora nos conectamos al Active Directory y cambiamos la contraseña y activamos la cuenta.


Conectar el mailbox de la cuenta recuperada

En este caso nos conectamos al GCBB067 que es el servidor de Exchange y conectamos el buzon a la cuenta de AD que recuperamos:

Ejemplo:
 Iniciamos Exchange System manager

Buscamos la cuenta de Active Directory y la conectamos a la cuenta de correo

Y seleccionamos Check Names
 

Si nos envía este error debemos realizar lo siguiente:





Nos conectamos a la herramienta Active Directory Users and Computers