Saltar al contenido

Unas de las tareas del DBA es monitorizar las bases de datos.

Puede ser que las aplicaciones que necesiten funcionar no funcionen por que la bbdd no funcione.

Es muy fácil de verlo.

/* Estado de bbdd */
SELECT DATABASEPROPERTYEX('AdventureWorks2014', 'Status') AdventureWorks2014 ,
DATABASEPROPERTYEX('TSQL2012', 'Status') TSQL2012

Captura

Aqui solo vemos 2, aunque podemos mmirar mas.

Sus respectivos estados o valores son:

  • ONLINE = La base de datos está disponible para consultas.
  • OFFLINE = La base de datos está explícitamente sin conexión.
  • RESTORING = La base de datos se está restaurando.
  • RECOVERING = La base de datos se está recuperando y aún no está lista para consultas.
  • SUSPECT = La base de datos no se recuperó.
  • EMERGENCY = La base de datos está en un estado de emergencia de solo lectura. El acceso está restringido a los miembros del rol sysadmin

Es importante siempre en Estado ONline, ya veremos que hacemos cuando nos pasa alguno de los otros.

Tenerlo en cuenta.

Espero que os haya gustado, visiteis nuestro grupo de facebook, mi twitter.

Dijimos que  Collation es el juego de caracteres o letras asociadas a una base de datos SQL Server.

Unos de los problemas o errores que he visto que cuando trasladamos base de datos de servidores puede que este no sea el mismo y nos de problemas.

También nos puede servir como auditoría, .....

Para saber esto ...

/* Collation usado por las bbdd por una instancia SQL Server */

SELECT NAME Base_de_Datos, COLLATION_NAME Collation
FROM sys.Databases
ORDER BY DATABASE_ID ASC
GO

Y aquí el pantallazo:

Captura

Así de sencillo ..

Hace tiempo me preguntaron la diferencia entre estos 2 tipos de campos. Existe diferencias si vas leyendo blogs, foros y .....

Estos 2 campos sustituye al campo de  tipo Text que Microsoft recomienda dejar de usar ya que posiblemente en alguna versión dejará de existir.

En la versión 2014 existe aún.

Captura

Los campos varchar(max)  y nvarchar(max)  hay que decir que son de longitud variable excepto que pongas un número dentro de los ().

Nvarchar te permite ingresar caracteres UNICODE, es decir, puedes meter casi todos los caracteres de cualquier idioma.

Varchar tiene una máxima longitud de  8000 caracteres y Nvarchar 4000.

El almacenamiento en disco será el doble en Nvarchar que Varchar.

images

Ahora te toca a ti elegir cual es el mejor. Por cual te decantas ????

Esto me sirve de repaso para mi trabajo y  la certificación, y de paso, vemos como se programa en t-sql poniendo clave primaria, foránea y relacionamos tablas

Buenos, vamos a presentar el escenario.

Captura

Una clave primaria es identificar cada registro de forma única y  no se pueden repetir

Para saber las claves primarias

/* clave primaria */
SELECT i1.TABLE_NAME TABLA,
i2.COLUMN_NAME CLAVE_PRIMARIA
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS i1
INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE i2 ON i1.CONSTRAINT_NAME = i2.CONSTRAINT_NAME
WHERE i1.CONSTRAINT_TYPE = 'PRIMARY KEY'

La clave o claves foráneas de una tabla hacen referencia a registros de otra tabla, formando entre las tablas una relación.

Para ver la foránea y su relación con otra tabla

/* Claves foraneas y relaciones tablas */
SELECT fk.name 'Clave_Foranea', tp.name 'Tabla_Padre', cp.name 'Campo_Padre', tr.name 'Tabla_Enlazada', cr.name 'Campo_Indice'
FROM sys.foreign_keys fk
INNER JOIN sys.tables tp ON fk.parent_object_id = tp.object_id
INNER JOIN sys.tables tr ON fk.referenced_object_id = tr.object_id
INNER JOIN sys.foreign_key_columns fkc ON fkc.constraint_object_id = fk.object_id
INNER JOIN sys.columns cp ON fkc.parent_column_id = cp.column_id AND fkc.parent_object_id = cp.object_id
INNER JOIN sys.columns cr ON fkc.referenced_column_id = cr.column_id AND fkc.referenced_object_id = cr.object_id
ORDER BY tp.name, cp.column_id

Vamos a hacerlo en 3 o 4  artículos diferentes para que se vea bien y después trabajaremos con los alias.

Ayer la comente en el tema de backup y después de revisarla es unas de las opciones donde podemos sacar mucha información de nuestro sistema SQL Server, variar las opciones par que cambien, etc....

Captura1

Nos vamos a facetas.

Captura

Y tenemos mas opciones

Captura

Ya sabéis donde ir para verlo. Nos puede venir para distintas tareas de dba, informes, auditorias, .....muchas de estas opciones las hemos visto sacar por T-SQL en este blog

En este blog ya hemos visto donde guardar por defectos las bbdd, ahora vamos con las copias de seguridad.

En 2 pasos lo vamos a hacer.

Captura1

Facetas y ahora te toca decirle donde lo  quieres

Captura

Bien facil.

Un artículo sencillo y para empezar la semana

Captura

Podemos hacerle una copíaa de seguridad en SQL Server y después restaurar en SQL Azure, u otro Server.

También lo podemos hacer así.

Nos situaos en el Servidor, equipo en el que tenemos la base de datos de #sql Server.

Hacemos lo de este artículo.

Exporta las estructuras y datos en formato insert con T-SQL en #SQLServer

Lo tenemos todo en ficheros .sql, es decir la estructura y los datos.

Ahora nos conectamos al Server SQL Azure u otro server SQL Server cn el SSMS  y desplegar o abrimos los ficheros .sql, Primero lo de creación de fablas y después datos.

Captura

Sencillo. Ahora toca probarlo vosotros y compartirlo en vuestras Redes Sociales.

Como ya tenemos el grupo de recurso y el servidor, solo hace falta crear la base de datos.

Captura

Y el código bien sencillo.

Captura

Y cuando entramos en el ssms.

Captura

Fácil ???

Cuando me conecto a mi SQL Azure me sale este mensaje

Captura

Puede ser que el FW de Azure este desactivado

Captura

Que no hayamos puesto bien las IP publicas. Para eso vamos donde pone "Agregar IP ..."

Captura

YO lo que siempre hago que la parte de Firewall la hago en la forma gráfica. Así me quito este problema.

Captura

Así de fácil.

1

Vuelvo a escribir sobre temas de SQL Server y Powershell. Me gusta compartir con todos mis conocimientos.

Captura

Vamos a crear nuestra primera base de datos en Azure con Powershell.

Captura

Aunque en posteriores scripts voy a tener mas datos en esta parte del script, empezamos a poner los esenciales.

Vamos con los trozos del script powershell

Grupo de Recursos ...

# GR
New-AzureRmResourceGroup -Name $NombreGR -Location $CPD -Verbose

Servidor ...

# Servidor
New-AzureRmSqlServer -ResourceGroupName $NombreGR -ServerName $NombreServidor -Location $CPD -ServerVersion "12.0" -Verbose

Nombre de bbdd

#Base de Datos
New-AzureRmSqlDatabase -ResourceGroupName $NombreGR -ServerName $NombreServidor -DatabaseName $NombreBBDD -Edition Standard -RequestedServiceObjectiveName "S1" -Verbose

Regla firewall

# Firewall
New-AzureRmSqlServerFirewallRule -ResourceGroupName $NombreGR -ServerName $NombreServidor -FirewallRuleName "Regla FW" -StartIpAddress "192.168.1.0" -EndIpAddress "192.168.1.254" -Verbose

Estar atento al rango de  Ip publicas. Yo he puesto como veis IP privadas con intencion;).

Como veis prácticamente lo podemos resolver en 4 lineas, yo les he puesto adornos.

Y todo esto nos da un tiempo de

Captura

En 2 minutos tienes tu bbdd de datos en Azure. Menos tiempo que hacerlo graficamente.

Ahora conectarse con el SSMS

Captura

Vamos a perfeccionar esto en próximos artículos. Ahora os toca compartir este artículo en vuestras Redes Sociales.

 

 

 

Cuando te dan una base de datos y no sabes nada de ella, es lo primero que tienes que sacar.

Aparte de algún script, que ya hemos visto aquí,  tenemos que sacar los diagramas de bases de datos.

Nos ayudará a entender como esta estructurada, relaciones, indices, ....

Muy fácil. Nos ponemos encima del diagrama y ...

Captura

Y al portapapeles.  Los siguientes pasos vosotros mismos.

Seguimos con cosas sencillas por consola en Visual Basic.

Ahora vamos a pedir un dato y despúés lo sacaremos por pantalla

Captura

Vamos a ver lo esencial para después cómo hacemos  una conexión a SQL Server y ......