UNIVERSIDAD DE GUAYAQUIL - Repositorio Digital Universidad

UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMATICAS Y FISICAS
CARRERA DE INGENIERIA EN SISTEMAS
COMPUTACIONALES
PLAN PILOTO PARA LA ADMINISTRACIÓN EMERGENTE DE
BASE DE DATOS SQL SERVER 2005 A TRAVÉS DE E-MAIL
MEDIANTE TECNOLOGÍA JAVA
TESIS DE GRADO
Previa a la obtención del Título de:
INGENIERO EN SISTEMAS COMPUTACIONALES
AUTOR: DICK MARCOS VERA AGUIRRE
TUTOR: ING. JOSÉ LUIS RODRIGUEZ
GUAYAQUIL – ECUADOR
2010
i
UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMATICAS Y FISICAS
CARRERA DE INGENIERIA EN SISTEMAS
COMPUTACIONALES
PLAN PILOTO PARA LA ADMINISTRACIÓN EMERGENTE DE
BASE DE DATOS SQL SERVER 2005 A TRAVÉS DE E-MAIL
MEDIANTE TECNOLOGÍA JAVA
TESIS DE GRADO
Previa a la obtención del Título de:
INGENIERO EN SISTEMAS COMPUTACIONALES
DICK MARCOS VERA AGUIRRE
TUTOR: ING. JOSÉ LUIS RODRIGUEZ
GUAYAQUIL – ECUADOR
2010
ii
Guayaquil, Octubre del 2010
APROBACION DEL TUTOR
En mi calidad de Tutor del trabajo de investigación, “PLAN PILOTO PARA LA
ADMINISTRACIÓN EMERGENTE DE BASE DE DATOS SQL SERVER 2005 A
TRAVÉS DE E-MAIL MEDIANTE TECNOLOGÍA JAVA “
DICK MARCOS VERA AGUIRRE, egresado
elaborado por el Sr.
de la Carrera de Ingeniería en
Sistemas Computacionales, Facultad de Ciencias Matemáticas y Físicas de la
Universidad de Guayaquil, previo a la obtención del Título de Ingeniero en Sistemas,
me permito declarar que luego de haber orientado, estudiado y revisado, la Apruebo
en todas sus partes.
Atentamente
………………………………….
Ing. José Luis Rodríguez
TUTOR
iii
DEDICATORIA
Éste trabajo va dedicado a mi madre Elena Aguirre Martínez por su incondicional
apoyo que día tras día me ha brindado para poder cumplir la meta de ser un Ingeniero
de vastos conocimientos y aportar a la sociedad con lo que se me ha impartido en ésta
institución. De igual manera por su ayuda prestada a mi querida hermana Yvette Vera
Aguirre, mi abuelita Victoria Martínez y sobre todo a Brandy que ha llenado mi vida
de grandes alegrías.
iv
AGRADECIMIENTO
Agradezco a Dios por darme la vida y permitirme cumplir una de las metas de mi
vida. Así como también agradezco a mi tutor Ing. José Luis Rodríguez por su
incondicional apoyo para guiarme en el transcurso de mi tesis con sus grandes
conocimientos e indicaciones precisas para el enfoque adecuado de la elaboración del
proyecto presentado. Así como también agradezco a mis amigos por haberme
ayudado a resolver inquietudes que hay tenido sobre la resolución de alguna
problemática.
v
TRIBUNAL DE GRADO
Ing. Frenando Abad Montero
DECANO DE LA FACULTAD
CIENCIAS MATEMATICAS Y FISICAS
Ing. José Luis Rodríguez
TUTOR
Ing. Juan Chanabá Alcócer
DIRECTOR
Ing. Gary reyes
PROFESOR DEL ÁREA - TRIBUNAL
AB. Juan Chávez A.
SECRETARIO
vi
UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMATICAS Y FISICAS
CARRERA DE INGENIERIA EN SISTEMAS
COMPUTACIONALES
PLAN PILOTO PARA LA ADMINISTRACIÓN EMERGENTE DE BASE DE
DATOS SQL SERVER 2005 A TRAVÉS DE E-MAIL MEDIANTE TECNOLOGÍA
JAVA
RESUMEN
El tema planteado ha sido realizado pensando en la gran cantidad de tiempo que
llevaría la administración remota vía internet de una base de datos como Sql Server a
través de un software comercial usado para estos fines. Para la resolución de lo antes
expuesto se ha creado una aplicación con tecnología java para que sirva de
intermediador entre una cuenta de correo electrónico y la base de datos que se desee
administrar. Cuenta que se deberá crear una sola vez y configurarla para que acepte
trabajar mediante el protocolo pop3, ésta funcionará como cuenta principal de donde
la aplicación va a interactuar directamente. A su vez se deberá crear una cuenta de
cualquier proveedor de correo que deberá ser usada exclusivamente para el envío de
comandos preestablecidos o script por parte del administrador. La aplicación deberá
estar instalada en el mismo equipo donde se encuentre la base de datos que va a ser
manipulada vía internet por medio del uso de un correo electrónico. Entre los
objetivos tenemos el de establecer comandos predefinidos para la ejecución de una
tarea repetitiva como la de respaldar, restaurar, subir o bajar la base de datos.
También se ha considerado el procesamiento de scripts, en la cual el administrador
podrá enviar un archivo adjunto con sentencias sql o transact- sql para la ejecución de
una tarea en particular a fin de que satisfaga alguna necesidad de dicho administrador.
Una vez que se ha enviado una solicitud por parte del D.B.A. a través del correo
electrónico recibirá por el mismo medio un aviso sobre la solicitud realizada, y de
igual manera se le notificará en caso de que exista algún error al ejecutar algún
comando o archivo sql enviado por él y que contenga errores sintácticos.
vii
UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMATICAS Y FISICAS
CARRERA DE INGENIERIA EN SISTEMAS
COMPUTACIONALES
PLAN PILOTO PARA LA ADMINISTRACIÓN EMERGENTE DE
BASE DE DATOS SQL SERVER 2005 A TRAVÉS DE E-MAIL
MEDIANTE TECNOLOGÍA JAVA
Proyecto de trabajo de grado que se presenta como requisito para optar por el título de
INGENIERO EN SISTEMAS COMPUTACIONALES
Autor/a Dick Marcos Vera Aguirre
C.I.
Tutor:
Guayaquil, Octubre del 2010
0924224108
Ing. José Luis Rodríguez
viii
CERTIFICADO DE ACEPTACIÓN DEL TUTOR
En mi calidad de Tutor del Primer Curso de Fin de Carrera, nombrado por el
Departamento de Graduación y la Dirección de la Carrera de Ingeniería en Sistemas
Computacionales de la Universidad de Guayaquil,
CERTIFICO:
Que he analizado el Proyecto de Grado presentado por el egresado Dick
Marcos Vera Aguirre, como requisito previo para optar por el título de Ingeniero cuyo
problema es:
LENTITUD AL MOMENTO DE ADMINISTRAR REMOTAMENTE UNA BASE
DE DATOS SQL SERVER 2005 A TRAVÉS DE INTERNET MEDIANTE UNA
HERRAMIENTA COMERCIAL USADA PARA ESTOS FINES.
Considero aprobado el trabajo en su totalidad.
Presentado por:
VERA AGUIRRE DICK MARCOS
0924224108
Tutor: Ing. José Luis Rodríguez
Guayaquil, Octubre del 2010
ix
ÍNDICE GENERAL
Pág.
CARÁTULA…..…………………………………………………………………... i
CARTA DE ACEPTACIÓN DEL TUTOR……………………….……….……...ii
ÍNDICE GENERAL…….…………………………………………………….…. ix
ÍNDICE DE CUADROS……………………………………………………….…xi
RESUMEN………………………………………………………………….……..vi
INTRODUCCIÓN…………………………………………………………………1
CAPÍTULO 1.- EL PROBLEMA
PLANTEAMIENTO DEL PROBLEMA…………………………………………3
Ubicación del Problema en un contexto…………………………………………...3
Situación Conflicto………………………………………………………………...4
Causas del problema, Consecuencias………………………………………….…..4
Delimitación del Problema………………………………………………………...5
Planteamiento……………………………………………………………………...5
Evaluación del Problema………………………………………………….……….7
OBJETIVOS DE LA INVESTIGACIÓN……………………………….……….12
JUSTIFICACIÓN E IMPORTANCIA DE LA INVESTIGACIÓN……………15
Utilidad práctica de la Investigación………………………………………….…..15
Cuáles serán los beneficiarios………………………………………….……….....15
CAPÍTULO II.- MARCO TEÓRICO
Antecedentes del estudio………………………………………………………...16
Exposición fundamentada en la consulta bibliográfica…………………………..16
FUNDAMENTACIÓN TEÓRICA………………………………………….….18
x
CAPÍTULO III.- METODOLOGÍA
Pág.
DISEÑO DE LA INVESTIGACIÓN…………………………………………...73
Modalidad de la Investigación…………………………………………………....73
Tipo de Investigación………………………………………………………….......73
Población y Muestra……………………………………………………………....75
Operacionalización de las Variables………………………………………………78
Instrumento de Recolección de Datos……………………………………………79
Procesamiento de la Investigación………………………………………………...84
Recolección de la Información………………………………………………….....84
PROCESAMIENTO Y ANÁLISIS………………………………………………85
Criterio para la elaboración de la propuesta…………………………………….....87
Criterio para la validación de la propuesta………………………………………...87
CAPÍTULO IV.- MARCO ADMINISTRATIVO
CRONOGRAMA………………………………………………………………….88
PRESUPUESTO………………………………………………………………...…89
CAPÍTULO V.- CONCLUSIONES Y RECOMENDACIONES
CONCLUSIONES…………………………………………………………….......91
RECOMENDACIONES……………………………………………………..…...92
REFERENCIAS BIBLIOGRÁFICAS…………………………………………...94
DIRECCIONES WEB…………………………………………………………….95
ANEXOS………………………………………………………………………......98
xi
ÍNDICE DE CUADROS
CUADRO 1
Pág.
Comparativa de Tiempo Vs Recursos de Sistemas de Administración de
Base de Datos……………………………………………………………………... 7
xii
UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMATICAS Y FISICAS
CARRERA DE INGENIERIA EN SISTEMAS
COMPUTACIONALES
PLAN PILOTO PARA LA ADMINISTRACIÓN EMERGENTE DE BASE
DE DATOS SQL SERVER 2005 A TRAVÉS DE E-MAIL
MEDIANTE TECNOLOGÍA JAVA
Autor/a: Dick Marcos Vera Aguirre
Tutor/a: Ing. José Luis Rodríguez.
RESUMEN
La Administración de una Base de Datos conlleva una gran responsabilidad por lo
que no se puede descuidar su normal funcionamiento dentro de los parámetros fijados
en una empresa que realice el almacenamiento de sus datos en forma digital. Es por
esto que se propone facilitar la administración remota de una base de datos a través de
un software que solucione, en determinadas situaciones, necesidades y problemas
menores que surjan de un momento a otro y que requiera de su rápida atención por
parte del Administrador de la Base. La propuesta consiste en administrar una Base de
datos SQL SERVER 2005 a través del envío de un correo electrónico que contenga
comandos predefinidos en la aplicación así como la facilidad de adjuntar archivos
SQL conocidos como script para la ejecución de sentencias SQL hacia la Base de
datos que se desea administrar. Cabe recalcar que la aplicación deberá estar instalada
en el equipo donde se encuentre el servidor de base de datos y que debe de tener
acceso a conexión a internet para poder interactuar con una cuenta de correo
electrónico en donde receptará las peticiones que ha enviado el administrador de base
de datos desde otra cuenta de correo electrónico que deberá ser creada para uso
exclusivo del envío y recepción de comandos, sentencias y notificaciones desde y
hacia la base de datos. El desarrollo del software de administración remota servirá
como herramienta de apoyo a las labores del Administrador de la Base, mas no se
utilizará como una herramienta reemplazante de las normativas de administración de
una base que debe tener en cuenta el Administrador de base de datos.
xiii
UNIVERSIDAD DE GUAYAQUIL
FACULTAD DE CIENCIAS MATEMATICAS Y FISICAS
CARRERA DE INGENIERIA EN SISTEMAS
COMPUTACIONALES
PILOT PLAN FOR THE EMERGENT ADMINISTRATION OF DATA BASES SQL
SERVER 2005 THROUGH EMAIL BY MEANS
OF TECHNOLOGY JAVA.
Autor/a: Dick Marcos Vera Aguirre
Tutor/a: Ing. José Luis Rodríguez.
ABSTRACT
The Administration of Base de Data entails a great responsibility reason why its
normal operation within the parameters determined to a company cannot be neglected
that realises the storage of its data in digital form. It is by that one sets out to facilitate
the remote administration of a data base through a software that it solves, in certain
situations, needs and problems smaller than arise from a little while to another one
and that it requires of his fast attention on the part of the Administrator of Base. The
proposal consists of administering Base of data SQL SERVER 2005 through
shipment of an electronic mail that contains predefined commandos in the application
as well as the facility to enclose archives SQL known as script for the execution
sentences SQL towards Base of data that is desired to administer. It is possible to
stress that the application will have to be installed in the equipment where is the basic
servant of data and that he must have access to connection to Internet to be able to
interact with an account of electronic mail where he will welcome the requests that
the basic administrator of data has sent from another account of electronic mail that
will have to be created for exclusive use of the shipment and reception of
commandos, sentences and notifications from and towards the data base. The
development of the software of remote administration will serve like tool as support
the workings as the Administrator as Base, but it will not be used as a reemplazante
tool of the norms of administration of a base that must consider the basic
Administrator of data.
1
INTRODUCCIÓN
La presente propuesta de administrar una base de datos sql server 2005 mediante el
envío de un correo electrónico con sentencias sql y comandos predefinidos en la
aplicación, surge como una herramienta de apoyo para facilitar las labores técnicas
del Administrador de base de datos. La administración estará limitada al manejo de
sentencias create, insert, select, update, delete, drop y sentencias transact-sql, éstas
últimas servirán para ejecutar procedimientos almacenados creados por el usuario o
procedimientos propios de la base de datos, todas éstas sentencias serán enviadas por
correo a través de un archivo adjunto del tipo SQL conocido como script.
Para la administración remota mediante el uso de herramientas de software que se
conectan a una base de datos por medio de internet puede resultar con una estimación
de tiempo bastante prolongada, o a su vez se deberá gastar en contrataciones de
internet de alta velocidad generando gastos a una empresa en particular, cuyos gastos
pueden ser reducidos si solo se utiliza la cantidad de Kbps necesaria para el envío de
un correo electrónico con archivo de texto adjunto. Es por ende que se propone una
administración remota de una base por medio del uso del correo electrónico a través
del envió de archivos adjuntos denominados scripts o como también a través de la
escritura en el cuerpo del mensaje del correo donde se colocarán los comandos que
han sido preestablecidos en la aplicación para la realización de una tarea predefinida
como lo es el respaldo de una base, el iniciar o detener la ejecución de una base, el
poner en online u offline la base de datos.
2
Cabe recalcar que por cada solicitud enviada por el usuario administrador de la base
de datos a través del uso del correo electrónico recibirá una notificación al correo, del
cual ha enviado dicha solicitud, una notificación sobre lo ejecutado o a su vez sobre la
presencia de algún error ya sea en la sintaxis del código enviado o de algún error por
inexistencia de algún objeto en la base de datos.
Para que exista la correcta funcionalidad del programa, que servirá de intermediario
entre la base de datos y la cuenta de correo electrónico que servirá como cuenta
principal de correo, se deberá tomar ciertas consideraciones como es el de instalar la
aplicación en el mismo equipo donde se encuentra la base de datos que se desea
administrar remotamente, a su vez se deberá crear una cuenta de correo electrónico
que servirá como cuenta principal de donde la aplicación hará la búsqueda de
mensajes con solicitudes del administrador, dicha búsqueda se la efectuará cada 3
minutos hasta que la aplicación detecte un mensaje y realice el respectivo análisis de
autenticación del usuario que ha enviado el mensaje electrónico y efectúe la petición
requerida. A continuación se profundará sobre la realización de lo planteado para que
el lector tenga de forma detallada la forma en que se ha llevado la implantación del
tema antes descrito.
3
CAPÍTULO I
EL PROBLEMA
LENTITUD AL ADMINISTRAR REMOTAMENTE UNA BASE DE
DATOS SQLSERVER 2005 A TRAVÉS DE INTERNET
UBICACIÓN DEL PROBLEMA EN UN CONTEXTO
Hoy en día el área de administración de base de datos necesita de que el
administrador sea una persona proactiva al 100% ya que se requiere de todas sus
habilidades en el manejo administrativo de una base para que pueda resolver
problemas presentados en la empresa como también para la automatización de
procesos. Debe dar respuesta a las diferentes peticiones que le son requeridas al
menor tiempo posible, por lo que necesita de herramientas que le ayuden a cumplir
con lo solicitado en forma rápida. Y mucho más si se trata de administrar una base de
datos que contiene información clave para la empresa.
La administración remota de una base de datos a través de internet por medio del uso
de un software puede llevar mucho tiempo, la causa de esto puede darse debido a que
se cuente con una conexión de internet de poca velocidad, esto ocasionaría que el
D.B.A. no pueda cumplir en forma rápida un requerimiento que se le haya solicitado.
4
SITUACIÓN CONFLICTO NUDOS CRÍTICOS
El problema surge de la utilización de recursos informáticos de forma considerable al
momento de administrar remotamente una base de datos sql server 2005 a través de
internet, recursos tales como: memoria, disponibilidad de la red a la que está
conectado el servidor de base de datos para realizar la conexión pertinente y por la
que se accesará a la misma, servicio de conexión a internet ya que ésta última es el
medio por la cual se realizará la administración remota a la base de datos.
La disponibilidad de la red es la causa principal de la que depende una conexión
exitosa al momento de realizar una administración remota, si ésta se encuentra
trabajando a su máxima capacidad la conexión remota tomaría bastante tiempo o en
mucho de los casos no se pudiese realizar por saturación de la red a la que está
conectado el servidor de base de datos.
La vigencia del problema se debe a que no se ha implementado una nueva forma de
administrar remotamente la base de datos sin utilizar demasiado o saturar la red del
servidor al que se va a manipular.
CAUSAS Y CONSECUENCIAS DEL PROBLEMA
Entre las causas que ocasionan el problema antes expuesto es la falta de
implementación de administración de base de datos más ligeras y rápidas, que
coadyuven a la realización de tareas del Administrador de manera rápida y confiable.
Una causa adicional sería la saturación de la red con la que está conectado el servidor
5
de la base de datos, ya que de darse éste caso no se podría realizar una conexión
remota vía internet para administrar una base mediante la utilización de un software
utilizado para éstos fines. De darse continuidad con este problema al momento de
realizar una administración remota de una base de datos, el D.B.A. perderá mucho
tiempo al realizar dicha administración y no se daría solución a lo que le ha sido
solicitado, ya sean requerimientos de rutinas o resolución de algún problema
presentado en la base de datos.
DELIMITACIÓN DEL PROBLEMA
El área del problema es: Administración de base de datos.
Tema de Investigación: Administración remota de una base de datos a través de
internet.
Problema de Investigación: ¿Cómo administrar remotamente una base de datos sql
server 2005 a través de internet de forma adecuada?
FORMULACIÓN DEL PROBLEMA
¿Cómo minorar el tiempo de acceso remoto a una base de datos sql server 2005 a
través de internet mediante el uso de un software de administración remota?
6
CUADRO NO. 1
COMPARATIVA DE TIEMPO VS RECURSOS
SOFTWARE
ADMINISTRACION
REMOTA
TIEMPO
POC
O
MODERAD
O
PROLONGAD
O
USO DE
LA RED
X
X
MEDIO
TOAD FOR SQL
SERVER
PUTTY
RECURSOS
X
MEMORIA
< 512 MB
BAJO
MEMORIA
> 512 MB
X
X
EMS SQL Manager
for SQL Server
X
MEDIO
X
MS SQL Maestro 9.4
X
MEDIO
X
phpmyadmin
X
MEDIO
X
Fuentes:
http://www.sqlmaestro.com/products/mssql/maestro/
http://www.toadworld.com/Freeware/ToadforSQLServerFreeware/tabid/562/Default.a
spx
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
http://www.sqlmanager.net/products/mssql/manager
Elab. Inv. Marcos Vera Aguirre
EVALUACIÓN DEL PROBLEMA
7
Los aspectos generales de evaluación son:
1. Delimitado
Porque está enfocado en el área de Administración de Base de Datos cuyo
problema a resolver es: ¿Cómo minorar el tiempo de acceso remoto a una base de
datos sql server 2005 a través de internet mediante el uso de un software de
administración remota?
La solución que se plantea es la administración de la base de datos sql server 2005
a través del uso del correo electrónico, en donde el administrador enviará sus
peticiones a otra cuenta de correo que esté configurada con protocolo pop3 para
que la aplicación java que va a estar instalada en el servidor de base de datos
pueda conectarse a dicha cuenta de correo y analizar los mensajes que envíe el
administrador.
El funcionamiento de la aplicación estará delimitada en:
Tipo De Consultas Enviadas
Se podrá administrar bases de Datos relacionales a través del envío de sentencias
Transact-SQL y scripts SQL por medio de un archivo con extensión SQL desde
una cuenta de correo electrónico creada para este fin.
T-SQL (Transact-SQL) es el principal medio de programación y administración de
SQL Server. Entre las operaciones que se podrán realizar se incluye la creación y
8
modificación de esquemas de la base de datos, introducción y edición de datos en
la base de datos, así como supervisión y gestión del propio servidor.
Cantidad De Datos
El total de sentencias enviados desde un archivo a través de una cuenta de correo
electrónico se aconseja que no sea mayor a 1 MB, debido a que se tardaría
demasiado la ejecución del archivo en cuestión si el peso del archivo es mayor.
Sólo se permitirá el envío de archivo del tipo script SQL como adjunto desde una
cuenta de correo electrónico.
Ejecución De La Aplicación
Para que la aplicación, que servirá como herramienta intermediaria entre la base de
datos y la cuenta de correo electrónico, funcione adecuadamente se deberá tener en
cuenta las siguientes indicaciones:
El servicio de la Base de datos deberá estar levantado para que la utilidad
SQLCMD se encuentre en funcionamiento.
El equipo donde se encuentre corriendo el servidor de Base de Datos deberá contar
con acceso a internet y disponibles los puertos 995 y 465 que son de envío y
recepción de correos que requieren autenticación.
9
2. Relevante
La propuesta de administrar la base de datos sql server 2005 vía E-Mail es de
gran aporte educativo ya que por medio de ésta se orienta a la comunidad
educativa a que hoy en día las aplicaciones faciliten aún más el trabajo de la
persona encargada de Administrar la Base de Datos. La solución de administrar
remotamente la base de datos a través del uso del correo electrónico facilita las
labores del administrador logrando así a que el trabajo resulte más eficiente en
determinadas situaciones.
En cuanto a seguridad del correo electrónico se refiere se aconseja usar una
cuenta de correo electrónico que use el Protocolo seguro para la transferencia de
hipertexto o HTTPS es un protocolo seguro que garantiza la comunicación
encriptada y autenticada. A demás se deberá configurar la cuenta de correo para
que cada vez que un mensaje de la bandeja de entrada sea leído dicho mensaje
sea eliminado, así no se almacenará de forma permanente los mensajes enviados
por el Administrador de la Base de Datos.
Cabe recalcar que la aplicación usará una cuenta de correo electrónico como
cuenta principal, y a ésta cuenta llegarán los correos enviados desde otra cuenta
de correo que será de uso exclusivo para el envío de comandos y script por parte
del D.B.A. La cuenta principal de correo electrónico será intervenida por la
aplicación en donde verificará si ha llegado un correo desde la cuenta del
Administrador de la Base, una vez realizada la comprobación, se procederá a
10
descargar el correo desde la cuenta principal para su posterior análisis y
ejecución a través de la aplicación de Administración Remota.
3. Original
Lo que se propone es algo novedoso en cuanto administración de base de datos
de manera remota se refiere por medio de E-Mail, ya que es algo que no se ha
dado en el actual mercado informático. Esto servirá como herramienta de apoyo
para que el Administrador de la Base tenga facilidades de gestionar la base desde
cualquier dispositivo electrónico que tenga acceso a una cuenta de correo
electrónico.
4. Contextual
El tema va de acuerdo al área en que realizo mis estudios universitarios con la
puesta en práctica de los conocimientos que he adquirido a lo largo del tiempo en
la institución educativa, y tiene como fin la consecución del título universitario
en la carrera de Ingeniería en Sistemas Computacionales.
5. Factible
La implantación de una nueva forma de administrar la base de datos vía E-Mail
es posible ya que se cuentan con el tiempo y herramientas tecnológicas como el
desarrollo de una aplicación en lenguaje java que permiten el envío, recepción y
análisis de datos vía e-mail. También se cuenta con servidores de correo como
Gmail que permiten la interacción con una aplicación java. Es por ello que la
11
solución trazada de administrar la base de datos por medio del uso del correo
electrónico es posible dado que se realizará una aplicación java que va a
interactuar con una cuenta de correo electrónico para receptar lo solicitado por el
D.B.A.
6. Evidente
La solución del problema se da en base a la observación directa de las
necesidades que tienen muchos D.B.A. al momento de administrar la base de
datos sql server 2005 de manera remota a través de internet, como es la rapidez
de ejecutar una tarea requerida, o solucionar algún problema presentado en la
base de datos.
De no dar una solución el trabajo del D.B.A. al momento de realizar una
administración remota vía internet se estaría cayendo en la desoptimización de
procesos y esto puede llegar a causar pérdidas para la empresa donde se labora.
12
OBJETIVOS
OBJETIVO GENERAL
Elaborar una nueva forma de administración remota de la base de datos a través del
Internet para facilitar a los DBA la resolución de problemas o requerimientos
emergentes.
OBJETIVOS ESPECÍFICOS

Establecer comandos para ejecución de tareas hacia la base de datos.

Crear una aplicación en java que recepte el contenido de los comandos o
sentencias del correo enviado por DBA para ejecución de tareas hacia la base de
datos SQL server 2005.
13
ALCANCES
Para la ejecución de tareas predefinidas el D.B.A deberá escribir en el cuerpo del
mensaje los siguientes comandos para ejecución de tareas:
Comandos (CMD)
Tareas
Éste comando servirá para realizar un
respaldo de la base de datos en una
RESPALDARBASE.
localidad del servidor donde se encuentra
instalada la aplicación.
Éste comando detendrá el servicio de la
DETENERBASE.
base de datos.
Éste comando permitirá el inicio del
INICIARBASE.
servicio de la base de datos para que entre
en funcionamiento.
Comandos De Autenticación
Servirá para la autenticación del D.B.A al
USER:
PASS:
BASE:
momento de administrar la base de datos
y el nombre de la base a la que
manipulará remotamente.
14
Para la ejecución de comandos hacia la base se deberá escribir en el cuerpo del
mensaje del correo electrónico lo siguiente:
USER:XXXXXX.
PASS:XXXXXX.
BASE:XXXXXX.
CMD:XXXXXXX.
Cabe destacar que al término de cada palabra de deberá colocar un punto por ejemplo:
USER:MARCOS.
PASS:CLAVE.
BASE:SQLEXPRESS.
CMD:RESPALDARBASE.
El orden de escritura de los comandos será de la manera expuesta anteriormente.
Se deberá crear una cuenta de correo electrónico para la recepción de correos
emitidos por el DBA para ejecutar tareas a la base de datos, al momento de crear el
correo se tendrá que habilitar el protocolo POP.
Se tendrá que desarrollar una aplicación en java la cual servirá para tener acceso a los
mensajes de la cuenta de correo electrónico creada para almacenar las peticiones
enviadas por el DBA desde otro correo a fin de identificar comandos o en su defecto
bajar el archivo adjunto con extensión SQL hacia una localidad específica y luego
ejecutar ese archivo en el SQL server 2005 mediante archivos BAT a través de la
utilidad SQLCMD para realizar alguna acción en la base. La aplicación será instalada
en el servidor de la base de datos que se desea administrar remotamente.
15
JUSTIFICACION E lMPORTANCIA
Con la implementación de una herramienta que sirva de apoyo al Administrador de la
Base Datos se facilitará en parte la labor que ejerce el DBA al momento de gestionar
una base de datos en forma remota.
Muchas veces el uso de una herramienta convencional para manejo remoto de la base
de datos puede consumir mucho tiempo al administrador mientras realiza la conexión
y ejecuta órdenes, con la implementación de una aplicación que trabaje desde el
mismo equipo en que se encuentra el servidor de Base de datos se prevé minorar ese
tiempo de acceso y ejecución de tareas hacia la base en un 20%, ya que, la ejecución
de comandos y scripts se ejecutarán localmente en la base.
16
CAPÍTULO II
MARCO TEÓRICO
ANTECEDENTES DEL ESTUDIO
En SQL server 2005 existe una forma de recibir notificaciones por e-mail de los
procesos que se están ejecutando gracias a procedimientos almacenados previamente
en la base que sirven para que la persona encargada de la administrar la base de datos
pueda estar alerta ante cualquier evento suscitado en la misma ya sea como la
disminución de espacio de almacenamiento de la base, errores presentados, entre
otros, de acuerdo a lo configurado por el D.B.A. Pero la comunicación entre la base
de datos y el correo electrónico asignado para recibir notificaciones es de forma
unidireccional ya que el D.B.A. no puede administrar la base respondiendo a los
correos que ha recibido para dar solución a los problemas suscitados.
Actualmente existen herramientas que nos permite la administración de base de datos
de manera remota pero que pueden depender de otros recursos como el de contar: con
un servicio de internet de alta velocidad, servidor de ftp, disponibilidad e la red a la
que se va conectar, entre otros.
La administración remota en varias ocasiones puede tomar mucho tiempo en el
transcurso de la conexión a la base de datos, envío y recepción de información, esto
17
puede generar pérdidas económicas a las empresas. Es por ello que se ve la necesidad
de implantar una nueva técnica de administración remota con bajos costos usando
herramientas existentes como el E-mail que es de fácil uso y que nos permite
comunicarnos desde un punto a otro en cualquier parte del mundo.
Correo electrónico, es un servicio de red que permite a los usuarios enviar y recibir
mensajes
rápidamente
mediante
sistemas
de
comunicación
electrónicos.
Principalmente se usa este nombre para denominar al sistema que provee este servicio
en Internet, mediante el protocolo SMTP. Por medio de mensajes de correo
electrónico se puede enviar, no solamente texto, sino todo tipo de documentos
digitales. Su eficiencia, conveniencia y bajo coste (con frecuencia nulo) están
logrando que el correo electrónico adquiera nuevos usos de los ya habituales.
En el mercado informático aun no se ofrecen aplicaciones que recepten correo
electrónico para luego ejecutar su contenido como tareas administrativas hacia una
base de datos.
18
FUNDAMENTACIÓN TEÓRICA
El administrador de base de datos (DBA) es la persona responsable de los aspectos
ambientales de una base de datos. En general esto incluye:
Recuperabilidad: Crear y probar Respaldos
Integridad: Verificar o ayudar a la verificación en la integridad de datos
Seguridad: Definir o implementar controles de acceso a los datos
Disponibilidad: Asegurarse del mayor tiempo de encendido
Desempeño: Asegurarse del máximo desempeño incluso con las limitaciones
Desarrollo y soporte a pruebas: Ayudar a los programadores e ingenieros a utilizar
eficientemente la base de datos.
El diseño lógico y físico de las bases de datos a pesar de no ser obligaciones de un
administrador de bases de datos, es a veces parte del trabajo. Esas funciones por lo
general están asignadas a los analistas de bases de datos ó a los diseñadores de bases
de datos.
DEBERES
Los deberes de un administrador de bases de datos dependen de la descripción del
puesto, corporación y políticas de Tecnologías de Información (TI). Por lo general se
incluye recuperación de desastres (respaldos y pruebas de respaldos), análisis de
rendimiento y optimización, y algo de asistencia en el diseño de la base de datos.
19
DEFINICIÓN DE BASE DE DATOS
Antes de continuar, necesitamos describir brevemente lo que es una "base de datos."
Una base de datos es una colección de información, accedida y administrada por un
DBMS. Después de experimentar con DBMSs jerárquicos y de red durante los 70's, la
industria de IT se vio dominada por DBMSs tales como Oracle y MySQL.
Un DBMS relacional manipula la información a manera de tipos de cosas del mundo
real (entidades) en tablas que representan esas entidades. Una tabla es como una hoja
de cálculo; cada renglón representa una entidad en particular (instancia), y cada
columna representa la información respecto de la entidad (dominio). En ocasiones las
entidades están hechas de entidades más pequeñas, como órdenes y líneas de orden.
Una base de datos relacional bien manejada, minimiza la necesidad de las
aplicaciones de contener información respecto al almacenamiento físico de los datos
que se van a acceder.
DISPONIBILIDAD
La disponibilidad significa que los usuarios autorizados tengan acceso a los datos
cuando lo necesiten para atender a las necesidades del negocio. De manera
incremental los negocios han ido requiriendo que su información esté disponible todo
el tiempo (7x24", o siete días a la semana, 24 horas del día). La industria de TI ha
20
respondido a estas necesidades con redundancia de red y hardware para incrementar
las capacidades administrativas en línea.
RECUPERABILIDAD
La recuperabilidad significa que, si se da algún error en los datos, hay un bug de
programa ó de hardware, el DBA puede traer de vuelta la base de datos al tiempo y
estado en que se encontraba en estado consistente antes de que el daño se causara. Las
actividades de recuperación incluyen el hacer respaldos de la base de datos y
almacenar esos respaldos de manera que se minimice el riesgo de daño o pérdida de
los mismos, tales como hacer diversas copias en medios de almacenamiento
removibles y almacenarlos fuera del área en antelación a un desastre anticipado. La
recuperación es una de las tareas más importantes de los DBA's.
La recuperabilidad, frecuentemente denominada "recuperación de desastres", tiene
dos formas primarias. La primera son los respaldos y después las pruebas de
recuperación.
La recuperación de las bases de datos consiste en información y estampas de tiempo
junto con bitácoras los cuales se cambian de manera tal que sean consistentes en un
momento y fecha en particular. Es posible hacer respaldos de la base de datos que no
incluyan las estampas de tiempo y las bitácoras, la diferencia reside en que el DBA
debe sacar de línea la base de datos en caso de llevar a cabo una recuperación.
21
Las pruebas de recuperación consisten en la restauración de los datos, después se
aplican las bitácoras a esos datos para restaurar la base de datos y llevarla a un estado
consistente en un tiempo y momento determinados. Alternativamente se puede
restaurar una base de datos que se encuentra fuera de línea sustituyendo con una copia
de la base de datos.
Si el DBA intenta implementar un plan de recuperación de bases de datos sin pruebas
de recuperación, no existe la certeza de que los respaldos sean del todo válidos. En la
práctica, los respaldos de la mayoría de los RDBMSs son raramente válidos si no se
hacen pruebas exhaustivas que aseguren que no ha habido errores humanos o bugs
que pudieran haber corrompido los respaldos.
INTEGRIDAD
La integridad de una base de datos significa que, la base de datos o los programas que
generaron su contenido, incorporen métodos que aseguren que el contenido de los
datos del sistema no se rompa así como las reglas del negocio. Por ejemplo, un
distribuidor puede tener una regla la cual permita que sólo los clientes individuales
puedan solicitar órdenes; a su vez cada orden identifique a uno y sólo un proveedor.
El servidor Oracle y otros DBMSs relacionales hacen cumplir este tipo de reglas del
negocio con limitantes, las cuales pueden ser configuradas implícitamente a través de
consultas. Para continuar con este ejemplo, en el proceso de inserción de una nueva
orden a la base de datos, ésta a su vez tendría que cerciorarse de que el cliente
identificado existe en su tabla para que la orden pueda darse.
22
SEGURIDAD
Seguridad significa la capacidad de los usuarios para acceder y cambiar los datos de
acuerdo a las políticas del negocio, así como, las decisiones de los encargados. Al
igual que otros metadatos, una DBMS relacional maneja la seguridad en forma de
tablas. Estas tablas son las "llaves del reino" por lo cual se deben proteger de posibles
intrusos.
RENDIMIENTO
El rendimiento significa que la base de datos no cause tiempos de respuesta poco
razonables. En sistemas muy complejos cliente/servidor y de tres capas, la base de
datos es sólo uno de los elementos que determinan la experiencia de los usuarios en
línea y los programas desatendidos. El rendimiento es una de las mayores
motivaciones de los DBA para coordinarse con los especialistas de otras áreas del
sistema fuera de las líneas burocráticas tradicionales.
DESARROLLO/SOPORTE A PRUEBAS.
Uno de los deberes menos respetados por el administrador de base de datos es el
desarrollo y soporte a pruebas, mientras que algunos otros encargados lo consideran
como la responsabilidad más importante de un DBA. Las actividades de soporte
incluyen la colecta de datos de producción para llevar a cabo pruebas con ellos;
consultar a los programadores respecto al desempeño; y hacer cambios a los diseños
23
de tablas de manera que se puedan proporcionar nuevos tipos de almacenamientos
para las funciones de los programas.
Todos estos aspectos mencionados anteriormente hacen que el DBA deba realizar una
administración eficiente aun si no se encuentra físicamente junto al servidor de base
de datos para que pueda cumplir con su rol de administrador.
Es por esto que se propone una administración remota para casos emergentes que se
presenten en la base de datos SQL SERVER 2005 usando el correo electrónico como
medio de envío de soluciones por medio de comandos predefinidos y sentencias SQL.
Para realizar ésta administración remota se desarrollará una aplicación en java para
que reciba los correos enviados por el D.B.A. a fin de que ésta aplicación identifique
los comandos y sentencias SQL para posteriormente ejecutar las tareas mediante la
utilidad SQLCMD propia de la base SQL SERVER mediante archivos BATCH que
son archivos de procesamiento por lotes propios de sistemas operativos Windows.
A continuación se describirá la utilización del lenguaje java como herramienta clave
para lograr solucionar el problema descrito al inicio del actual documento.
La versatilidad y eficiencia de la tecnología Java, la portabilidad de su plataforma y la
seguridad que aporta, la han convertido en la tecnología ideal para su aplicación a
redes. De portátiles a centros de datos, de consolas de juegos a superequipos
científicos, de teléfonos móviles a Internet, Java está en todas partes.
JavaMail es una API opcional a la versión estándar de Java (J2SDK) que proporciona
funcionalidades de correo electrónico, a través del paquete javax.mail. Permite
24
realizar desde tareas básicas como enviar, leer y componer mensajes, hasta tareas más
sofisticadas como manejar gran variedad de formatos de mensajes y datos, y definir
protocolos de acceso y transporte. Aunque a primera vista pueda parecer que su
utilidad se orienta a construir clientes de correo-e de tipo Outlook, ThunderBird, etc.,
su aplicación se puede generalizar a cualquier programa Java que necesite enviar y/o
recibir mensajes, como por ejemplo, aplicaciones de intranets, páginas JSP, etc.
JavaMail soporta, por defecto, los protocolos de envío y recepción SMTP, IMAP,
POP3 y las versiones seguras de estos protocolos SMTPS, IMAPS, POP3S (estos 3
últimos a partir de la versión JDK 1.3.2), si bien puede implementar otros protocolos.
El envío y recepción son independientes del protocolo, aunque podremos necesitar
usar un protocolo u otro según nuestras necesidades.
Este paquete va unido al uso del paquete JavaBeans Activation Framework (JAF),
que es también un paquete opcional a la versión estándar de Java (J2SDK), aunque
tanto éste como JavaMail vienen incorporados en la versión empresarial (J2EE).
Este paquete es el que se encarga de la manipulación de los canales (streams) de
bytes de los tipos MIME, que pueden incluirse en un mensaje.
JavaMail está diseñada para facilitar las funcionalidades más comunes, si bien
también posee características más avanzadas, que permiten sacar el máximo partido a
los estándares de correo electrónico.
25
Las funciones más importantes se detallan a continuación:
•
Componer y enviar un mensaje: el primer paso que ha de realizar cualquier
aplicación que pretenda enviar un correo electrónico es componer el mensaje. Es
posible crear un mensaje de texto plano, es decir, un mensaje sin adjuntos que
contenga exclusivamente texto formado por caracteres ASCII; pero es igualmente
sencillo componer mensajes más completos que contengan adjuntos. También se
pueden componer mensajes que contengan código HTML e incluso imágenes
embebidas en el texto.
• Descargar Mensajes: se pueden descargar los mensajes desde la carpeta que se
indique ubicada en el servidor que en ese momento se esté usando. Estos mensajes
pueden ser de texto plano, contener adjuntos, HTML, etc.
• Usar flags (banderines): para indicar, por ejemplo, que un mensaje ha sido leído,
borrado, etc., en función de cuáles de estos flags estén soportados por el servidor.
•
Establecer una conexión segura: actualmente algunos servidores de correo
requieren de una conexión segura, ya sea para descargar el correo almacenado en
ellos, o para enviar mensajes a través de ellos. JavaMail ofrece la posibilidad de
establecer este tipo de conexiones, indicando que se trata de una conexión segura,
además de poder indicar otros parámetros, en algunos casos necesarios, como el
puerto donde establecer la conexión. Esta capacidad está disponible desde la versión
de JDK 1.3.2
26
• Autenticarse en un servidor: ciertos servidores requieren autenticación ya no sólo
para leer sino también para enviar. JavaMail
ofrece también la posibilidad de
autenticación a la hora de enviar un correo.
•
Definir protocolos: JavaMail soporta por defecto
los protocolos de envío y
recepción SMTP, IMAP, POP3, (y sus correspondientes seguros a partir de la versión
de JDK 1.3.2), si bien puede implementar otros protocolos. Para usar otros
protocolos, o desarrollar por nuestra cuenta soporte para algún protocolo no definido
por defecto en JavaMail, podemos es posible consultar la página de Sun,
http://java.sun.com/products/javamail/Third_Party.html, donde se detallan una serie
de protocolos que podemos usar, y que no se ofrecen por defecto con JavaMail ya que
no son estándares.
• Manejar adjuntos: JavaMail ofrece la posibilidad de añadir adjuntos a los mensajes
de salida, así como obtener y manipular los adjuntos contenidos en un mensaje de
entrada.
Ahora se tratará sobre la metodología con que trabaja un correo electrónico.
MIME está orientado a proporcionar facilidades para el intercambio de distintos tipos
de contenidos, ya sea audio, video o imágenes en diferentes formatos, documentos
procedentes de una amplia diversidad de aplicaciones ofimáticas, etc., además de
proporcionar soporte para la internacionalización del lenguaje, es decir, poder incluir
27
caracteres propios de distintos alfabetos, como es el caso de la letra eñe (‘ñ’) del
idioma español. Así, con el estudio de los ejemplos de este capítulo se pondrán en
evidencia las características que JavaMail proporciona para el manejo de los tipos
MIME.A modo de resumen podemos decir que las clases que más intervienen cuando
se trabaja con correos en HTML o formados por adjuntos, son las clases Message,
MimeMessage, MultiPart, MimeMultiPart, BodyPart, MimeBodyPart y la interfaz
Part (ANEXO 1), que se detallará en el manual técnico.
28
A continuación se detalla la utilidad SQLCMD para tener claro su funcionamiento.
La utilidad sqlcmd permite escribir instrucciones Transact-SQL, procedimientos del
sistema y archivos de secuencia de comandos en el símbolo del sistema, en el Editor
de consultas en modo SQLCMD, en un archivo de secuencia de comandos de
Windows o en un paso de trabajo del sistema operativo (Cmd.exe) de un trabajo del
Agente SQL Server. Esta utilidad utiliza OLE DB para ejecutar lotes de TransactSQL.
Sintaxis para la utilización de la utilidad de sqlcmd:
sqlcmd
[{ { -U login_id [ -P password ] } | –E trusted connection }]
[ -z new password ] [ -Z new password and exit]
[ -S server_name [ \ instance_name ] ] [ -H wksta_name ] [ -d db_name ]
[ -l login time_out ] [ -A dedicated admin connection ]
[ -i input_file ] [ -o output_file ]
[ -f < codepage > | i: < codepage > [ < , o: < codepage > ] ]
[ -u unicode output ] [ -r [ 0 | 1 ] msgs to stderr ]
[ -R use client regional settings ]
[ -q "cmdline query" ] [ -Q "cmdline query" and exit ]
[ -e echo input ] [ -t query time_out ]
[ -I enable Quoted Identifiers ]
[ -v var = "value"...] [ -x disable variable substitution ]
[ -h headers ][ -s col_separator ] [ -w column_width ]
[ -W remove trailing spaces ]
[ -k [ 1 | 2 ] remove[replace] control characters ]
[ -y display_width ] [-Y display_width ]
[ -b on error batch abort ] [ -V severitylevel ] [ -m error_level ]
[ -a packet_size ][ -c cmd_end ]
[ -L [ c ] list servers[clean output] ]
[ -p [ 1 ] print statistics[colon format] ]
[ -X [ 1 ] ] disable commands, startup script, enviroment variables [and
exit]
[ -? show syntax summary ]
29
OPCIONES DE LÍNEA DE COMANDOS.
-Ulogin_id
Es el identificador de inicio de sesión del usuario.
Si no se especifica la opción -U ni la opción -P, sqlcmd intenta conectarse mediante el
modo de autenticación de Microsoft Windows. La autenticación se basa en la cuenta
de Windows del usuario que está ejecutando sqlcmd.
Si se utiliza la opción -U junto con la opción -E (descrita más adelante en este tema),
se genera un mensaje de error. Si la opción –U va seguida de más de un argumento, se
genera un mensaje de error y el programa se cierra.
-Ppassword
Es una contraseña especificada por el usuario. En las contraseñas se distingue entre
mayúsculas y minúsculas. Si se utiliza la opción -U y no la opción -P y además no se
ha establecido la variable de entorno SQLCMDPASSWORD, sqlcmd solicita al
usuario una contraseña. Si se utiliza la opción -P al final del símbolo del sistema sin
una contraseña, sqlcmd utiliza la contraseña predeterminada (NULL).
El mensaje de contraseña se muestra en la consola de la siguiente manera: Password:
La entrada del usuario queda oculta. Esto significa que no se muestra nada y que el
cursor permanece en su posición.
30
La variable de entorno SQLCMDPASSWORD permite establecer una contraseña
predeterminada para la sesión actual. Por lo tanto, las contraseñas no tienen que estar
codificadas de forma rígida en los archivos de proceso por lotes.
El siguiente ejemplo primero establece la variable SQLCMDPASSWORD en el
símbolo del sistema y después tiene acceso a la utilidad sqlcmd. En el símbolo del
sistema, escriba:
SET SQLCMDPASSWORD= p@a$$w0rd
En el siguiente símbolo del sistema, escriba:
sqlcmd
Si la combinación de nombre de usuario y contraseña no es correcta, el proveedor
OLE DB generará un mensaje de error.
Si la opción -P se utiliza junto con la opción -E, se genera un mensaje de error.
Si la opción -P va seguida de más de un argumento, se genera un mensaje de error y
el programa se cierra.
-E trusted connection
Utiliza una conexión de confianza en lugar de utilizar un nombre de usuario y una
contraseña para iniciar sesión en SQL Server. De manera predeterminada, sin
especificar -E, sqlcmd utiliza la opción de conexión de confianza.
31
La opción -E omite la posible configuración de la variable de entorno de nombre de
usuario y contraseña, como SQLCMDPASSWORD. Si se utiliza la opción -E junto
con la opción -U o la opción -P, se genera un mensaje de error.
-z new password
Cambiar contraseña:
sqlcmd -U someuser -P s0mep@ssword -z a_new_p@a$$w0rd
-Z new password and exit
Cambiar contraseña y salir:
sqlcmd -U someuser -P s0mep@ssword -Z a_new_p@a$$w0rd
Sserver_name [ \instance_name ]
Especifica la instancia de SQL Server a la que hay que conectarse. Establece la
variable de secuencia de comandos de sqlcmd SQLCMDSERVER.
Especifique server_name para conectarse a la instancia predeterminada de SQL
Server en ese equipo servidor. Especifique server_name [ \instance_name ] para
conectarse a una instancia con nombre de SQL Server en ese equipo servidor. Si no se
especifica ningún equipo servidor, sqlcmd se conecta a la instancia predeterminada de
SQL Server en el equipo local. Esta opción es necesaria si se ejecuta sqlcmd desde un
equipo remoto conectado a la red.
32
Si no especifica server_name [ \instance_name ] al iniciar sqlcmd, SQL Server
comprobará si existe la variable de entorno SQLCMDSERVER y la utilizará.
-Hwksta_name
Es el nombre de una estación de trabajo. Esta opción establece la variable de
secuencia de comandos de sqlcmd SQLCMDWORKSTATION. El nombre de la
estación de trabajo se muestra en la columna host_name de la vista de administración
dinámica sys.dm_exec_sessions o se puede devolver usando el procedimiento
almacenado sp_who. Si no se especifica esta opción, el nombre actual del equipo es el
valor predeterminado. Este nombre se puede usar para identificar diferentes sesiones
de sqlcmd.
-ddb_name
Emite una instrucción USE db_name cuando se inicia sqlcmd. Esta opción establece
la variable de secuencia de comandos de sqlcmd SQLCMDDBNAME. Especifica la
base de datos inicial. El valor predeterminado es la propiedad de base de datos
predeterminada del inicio de sesión. Si la base de datos no existe, se genera un
mensaje de error y sqlcmd se cierra.
-llogintime_out
Especifica el número de segundos que tienen que transcurrir antes de que un inicio de
sesión de sqlcmd al proveedor OLE DB agote el tiempo de espera cuando se intente
conectar a un servidor. Esta opción establece la variable de secuencia de comandos de
33
sqlcmd SQLCMDLOGINTIMEOUT. El tiempo de espera predeterminado del inicio
de sesión de sqlcmd es de ocho segundos. El tiempo de espera de inicio de sesión
debe ser un número entre 0 y 65.534. Si el valor proporcionado no es numérico o no
está dentro de este intervalo, sqlcmd genera un mensaje de error. El valor 0 especifica
que el tiempo de espera es infinito.
A dedicated admin connection
Inicia sesión en SQL Server con una Conexión de administrador dedicada (DAC).
Este tipo de conexión se utiliza para solucionar problemas de un servidor. Sólo
funcionará con equipos servidores que admitan DAC. Si DAC no está disponible,
sqlcmd genera un mensaje de error y después se cierra.
OPCIONES DE ENTRADA O SALIDA
-i input_file[,input_file2...]
Identifica el archivo que contiene un lote de instrucciones SQL o procedimientos
almacenados. Se pueden especificar varios archivos que se leerán y se procesarán en
orden. No utilice espacios en blanco entre los nombres de archivo. Sqlcmd
comprobará primero si todos los archivos especificados existen. Si uno o más
archivos no existen, sqlcmd se cerrará. Las opciones -i y -Q/-q se excluyen
mutuamente.
34
Ejemplos de rutas de acceso:
-i C:\<nombreDeArchivo>
-i \\<Servidor>\<recursoCompartido$>\<nombreDeArchivo>
-i "C:\Carpeta\<nombreDeArchivo>"
Las rutas de acceso que contienen espacios deben incluirse entre comillas.
Esta opción se puede utilizar más de una vez: -i input_file -i I input_file.
-ooutput_file
Identifica el archivo que recibe la salida de sqlcmd.
Si se especifica -u, el archivo output_file se almacena en formato Unicode. Si el
nombre de archivo no es válido, se genera un mensaje de error y sqlcmd se cierra.
sqlcmd no admite la escritura simultánea de varios procesos de sqlcmd en el mismo
archivo. El archivo de salida estará dañado o será incorrecto. Vea el modificador -f
para obtener más información acerca de formatos de archivo. Este archivo se creará si
no existe. Se sobrescribirá cualquier archivo con el mismo nombre que pertenezca a
una sesión de sqlcmd anterior. El archivo que se especifica aquí no es el archivo
stdout. Si se especifica un archivo stdout, este archivo no se utilizará.
35
Ejemplos de rutas de acceso:
-o C:\< nombreDeArchivo>
-o \\<Servidor>\<recursoCompatido$>\<nombreDeArchivo>
-o "C:\Carpeta\<nombreDeArchivo>"
Las rutas de acceso que contienen espacios deben incluirse entre comillas.
-f < codepage > | i: < codepage > [ <, o: < codepage > ]
Especifica las páginas de códigos de entrada y de salida. El número de página de
códigos es un valor numérico que especifica una página de códigos instalada en
Windows.
Reglas de conversión de páginas de códigos:
Si no se especifica ninguna página de código, sqlcmd utilizará la página de código
actual para los archivos de entrada y salida, a menos que el archivo de entrada sea un
archivo Unicode, en cuyo caso no es necesaria la conversión.
sqlcmd reconoce automáticamente archivos de entrada Unicode "big endian" y "little
endian". Si se ha especificado la opción -u, la salida siempre será Unicode "little
endian".
Si no se especifica ningún archivo de salida, la página de código de salida será la
página de código de la consola. Esto permite que la salida se muestre correctamente
en la consola. Si hay varios archivos de entrada, se considera que pertenecen a la
36
misma página de código. Los archivos de entrada Unicode y no Unicode pueden ser
mixtos.
Escriba chcp en el símbolo del sistema para comprobar la página de código de
Cmd.exe.
-u unicode output
Especifica que output_file se almacena en formato Unicode, independientemente del
formato de input_file.
-r[ 0 | 1] msgs to stderr
Redirige la salida del mensaje de error a la pantalla (stderr). Si no especifica ningún
parámetro o si especifica 0, sólo se redirigirán los mensajes de error con un nivel de
gravedad 11 o superior. Si especifica 1, toda salida de mensaje, incluida PRINT, se
redirigirá. No tiene efecto si utiliza -o. De manera predeterminada, los mensajes se
envían a stdout.
-R use client regional settings
Establece el proveedor OLE DB de SQL Server para que utilice la configuración
regional del cliente cuando convierta datos de hora, fecha y moneda en datos de
caracteres. El valor predeterminado es la configuración regional del servidor.
37
OPCIONES DE EJECUCIÓN DE CONSULTAS
-q" cmdline query "
Ejecuta una consulta cuando se inicia sqlcmd, pero no cierra sqlcmd cuando finaliza
la consulta. Se pueden ejecutar varias consultas delimitadas por punto y coma. Utilice
las comillas alrededor de la consulta, como se muestra en el siguiente ejemplo.
En el símbolo del sistema, escriba:
sqlcmd
-d
AdventureWorks
-q
"SELECT
FirstName,
LastName
FROM
FirstName
FROM
Person.Contact WHERE LastName LIKE 'Whi%';"
sqlcmd
-d
AdventureWorks
-q
"SELECT
TOP
5
Person.Contact;SELECT TOP 5 LastName FROM Person.Contact;"
i se especifica -b junto con esta opción, sqlcmd se cierra en caso de error. -b se
describe más adelante en este tema.
-Q"cmdline query " and exit
Ejecuta una consulta cuando se inicia sqlcmd e inmediatamente después cierra
sqlcmd. Se pueden ejecutar varias consultas delimitadas por punto y coma.
Utilice las comillas alrededor de la consulta, como se muestra en el siguiente ejemplo.
En el símbolo del sistema, escriba:
38
sqlcmd
-d
AdventureWorks
-Q
"SELECT
FirstName,
LastName
FROM
FirstName
FROM
Person.Contact WHERE LastName LIKE 'Whi%';"
sqlcmd
-d
AdventureWorks
-Q
"SELECT
TOP
5
Person.Contact;SELECT TOP 5 LastName FROM Person.Contact;"
Si se especifica -b junto con esta opción, sqlcmd se cierra en caso de error. -b se
describe más adelante en este tema.
-e echo input
Escribe secuencias de comandos de entrada en el dispositivo de salida estándar
(stdout).
-I enable Quoted Identifiers
Activa (ON) la opción de conexión SET QUOTED_IDENTIFIER. De forma
predeterminada, está desactivada (OFF).
-tquerytime_out
Especifica el número de segundos que tienen que transcurrir antes de que un comando
(o la instrucción de SQL) exceda el tiempo de espera. Esta opción establece la
variable de secuencia de comandos de sqlcmd SQLCMDSTATTIMEOUT. Si no se
especifica ningún valor para time_out, el comando no tiene tiempo de espera. El valor
de querytime_out debe ser un número entre 1 y 65.535. Si el valor proporcionado no
es numérico o no está dentro de este intervalo, sqlcmd genera un mensaje de error.
39
Nota El tiempo de espera real puede variar unos segundos con respecto al valor de
time_out especificado.
-vvar=value[ var=value...]
Crea una variable de secuencia de comandos de sqlcmd que se puede usar en una
secuencia de comandos de sqlcmd. Si el valor contiene espacios en blanco,
especifíquelo entre comillas. Puede especificar varios valores var="values". Si hay
errores en cualesquiera de los valores especificados, sqlcmd genera un mensaje de
error y después se cierra.
sqlcmd -v MyVar1=something MyVar2="some thing"
sqlcmd -v MyVar1=something -v MyVar2="some thing"
-x disable variable substitution
Hace que sqlcmd omita las variables de secuencia de comandos. Es útil cuando una
secuencia de comandos contiene muchas instrucciones INSERT que pueden contener
cadenas con el mismo formato que las variables normales, por ejemplo, $
(variable_name).
Opciones de formato
-hheaders
Especifica el número de filas que se van a imprimir entre los encabezados de las
columnas. El valor predeterminado es imprimir los encabezados una vez para cada
40
conjunto de resultados de la consulta. Esta opción establece la variable de secuencia
de comandos de sqlcmd SQLCMDHEADERS. Utilice -1 para especificar que no
desea imprimir los encabezados. Cualquier valor que no es válido hará que sqlcmd
genere un mensaje de error y se cierre.
-scol_separator
Especifica el carácter del separador de columnas. El valor predeterminado es un
espacio en blanco. Esta opción establece la variable de secuencia de comandos de
sqlcmd SQLCMDCOLSEP. Para usar caracteres que tienen un significado especial
para el sistema operativo como la y comercial (&) o el punto y coma (;), incluya el
carácter entre comillas ("). El separador de columnas puede ser cualquier carácter de
8 bits.
-wcolumn_width
Especifica el ancho de pantalla para la salida. Esta opción establece la variable de
secuencia de comandos de sqlcmd SQLCMDCOLWIDTH. El ancho de la columna
debe ser un número superior a 8 e inferior a 65.536. Si el ancho de la columna
especificada no está dentro de ese intervalo, sqlcmd genera un mensaje de error. El
ancho predeterminado es 80 caracteres. Cuando la línea de salida excede el ancho de
columna especificado, se ajusta a la siguiente línea.
41
-W remove trailing spaces
Esta opción quita los espacios finales de una columna. Utilice esta opción junto con la
opción -s cuando prepare datos que se vayan a exportar a otra aplicación. No se puede
usar con las opciones -y ni -Y.
-k[ 1 | 2 ] remove[replace] control characters
Quita todos los caracteres de control, como fichas y nuevos caracteres de línea de la
salida. De este modo se conserva el formato de las columnas cuando se devuelven
datos. Si se especifica 1, los caracteres de control se reemplazan con un solo espacio.
Si se especifica 2, los caracteres de control consecutivos se reemplazan por un solo
espacio.
-ydisplay_width
Establece
la
variable
de
secuencia
de
comandos
de
sqlcmd
SQLCMDMAXVARTYPEWIDTH. El valor predeterminado = 0 (no establecido).
Limita el número de caracteres que se devuelve para tipos de datos de longitud
variable:
varchar(max)
nvarchar(max)
varbinary(max)
xml
42
UDT (tipos definidos por el usuario)
text
ntext
image
Si display_width es 0, la salida queda truncada en 1 MB. Puede utilizar el comando:
XML ON para evitar que la salida se trunque. El comando: XML ON se describe más
adelante en este tema.
-Ydisplay_width Establece la variable de secuencia de comandos de sqlcmd
SQLCMDMAXFIXEDTYPEWIDTH. El valor predeterminado es 256. Limita el
número de caracteres que se devuelve para los siguientes tipos de datos:
char donde 1<n<8000
nchar donde 1<n<4000
varchar(n) donde 1<n<8000
nvarchar(n) donde 1<n<4000
varbinary(n) donde 1<n<8000
sql_variant
43
Opciones de informes de errores
-b on error batch abort
Especifica que sqlcmd se cierre y devuelva un valor de DOS ERRORLEVEL cuando
se produzca un error. El valor que se devuelve a la variable DOS ERRORLEVEL es 1
cuando el mensaje de error de SQL Server tiene un nivel de gravedad superior a 10;
de lo contrario, el valor devuelto es 0. Si se ha establecido la opción -V además de -b,
sqlcmd no notificará un error si el nivel de gravedad es inferior a los valores
establecidos mediante -V. Los archivos de proceso por lotes del símbolo del sistema
pueden probar el valor de ERRORLEVEL y tratar el error adecuadamente. sqlcmd no
notifica errores del nivel de gravedad 10 (mensajes de información).
Si la secuencia de comandos de sqlcmd contiene un comentario incorrecto, un error
de sintaxis o carece de una variable de secuencia de comandos, el valor de
ERRORLEVEL devuelto es 1.
-V severitylevel
Especifica el nivel de gravedad más bajo que notifica sqlcmd. Cuando se produce un
error en una secuencia de comandos de Transact-SQL, el nivel de gravedad se notifica
sólo si es mayor o igual que el valor especificado con el modificador -V. Si el nivel de
gravedad es inferior a 0, se notifica. El nivel de error predeterminado es 0. Los
archivos de proceso por lotes del símbolo del sistema pueden probar el valor de
ERRORLEVEL y controlar el error adecuadamente.
44
-merror_level
Personaliza la presentación de los mensajes de error. Se muestra el número de
mensaje, el estado y el nivel de error para errores con un nivel de gravedad superior al
especificado. No se muestra ninguna información para errores de una gravedad
inferior al nivel especificado. Utilice -1 para especificar que se devuelvan todos los
encabezados con los mensajes, incluso con los mensajes informativos. Si se
especifica -1, no incluya un espacio entre el parámetro y la configuración (por
ejemplo, -m-1, no -m-1).
Esta opción establece la variable de secuencia de comandos de sqlcmd
SQLCMDERRORLEVEL, cuyo valor predeterminado es 0.
Otras opciones
-apacket_size
Solicita un paquete de tamaño diferente. Esta opción establece la variable de
secuencia de comandos de sqlcmd SQLCMDPACKETSIZE. packet_size debe ser un
valor entre 512 y 32.767. El valor predeterminado = 4096. Un tamaño de paquete
mayor puede mejorar el rendimiento para la ejecución de las secuencias de comandos
que tienen muchas instrucciones SQL entre comandos GO. Puede solicitar un tamaño
de paquete mayor. Sin embargo, si se deniega la solicitud, sqlcmd utiliza el valor
predeterminado del servidor para el tamaño del paquete.
45
-ccmd_end
Especifica el terminador del lote. De forma predeterminada, los comandos se
terminan y se envían a SQL Server escribiendo la palabra "GO" en una línea aparte.
Cuando restablezca el terminador del lote, no utilice palabras reservadas de TransactSQL o caracteres especiales que tienen un significado especial para el sistema
operativo, incluso aunque vayan precedidos de una barra diagonal invertida.
-L [ c ] list servers[clean output]
Enumera los equipos servidores configurados localmente y los nombres de los
equipos servidores que difunden en la red. Este parámetro no se puede usar en
combinación con otros parámetros. El número máximo de equipos servidor que se
puede mostrar es 3.000. Si la lista de servidores se trunca debido al tamaño del búfer,
se muestra un mensaje de advertencia.
Si se especifica el parámetro opcional c, la salida aparece sin la línea de encabezado
Servers: y cada línea de servidor se muestra sin espacios delante. Esto se denomina
salida limpia. La salida limpia mejora el rendimiento del procesamiento de los
lenguajes de secuencias de comandos.
-p[ 1 ] print statistics[colon format]
Imprime estadísticas de rendimiento para cada conjunto de resultados. A continuación
se muestra un ejemplo del formato para las estadísticas de rendimiento:
Network packet size (bytes): n
46
x xact[s]:
Clock Time (ms.): total t1 avg t2 (t3 xacts per sec.)
Donde:
x indica el número de transacciones que procesa SQL Server.
t1 indica el tiempo total de todas las transacciones.
t2 indica el tiempo medio de una única transacción.
t3 indica el número medio de transacciones por segundo.
Todos los tiempos se indican en milisegundos.
Si se especifica el parámetro opcional 1, el formato de salida de las estadísticas es el
separado por dos puntos, que se puede importar fácilmente en una hoja de cálculo o
se puede procesar en una secuencia de comandos.
Si el parámetro opcional es cualquier valor diferente de 1, se genera un error y sqlcmd
se cierra.
-X [ 1 ] disable commands, startup script, enviroment variables [and exit]
Deshabilita comandos que pueden poner en peligro la seguridad del sistema cuando
se ejecuta sqlcmd desde un archivo de proceso por lotes. Los comandos
deshabilitados se siguen reconociendo; sqlcmd emite un mensaje de advertencia y
continúa. Si se especifica el parámetro opcional 1, sqlcmd genera un mensaje de error
47
y después se cierra. Los siguientes comandos se deshabilitan cuando se utiliza la
opción -X:
ED
!!command
Si se especifica la opción -X, eso evita que se pasen variables de entorno a sqlcmd.
También impide que la secuencia de comandos de inicio especificada mediante la
variable de secuencia de comandos SQLCMDINI se ejecute.
-? show syntax summary
Muestra el resumen de la sintaxis de las opciones de sqlcmd.
Notas
Las opciones no tienen que utilizarse forzosamente en el orden mostrado en la
sección de sintaxis.
Cuando se devuelven varios resultados, sqlcmd imprime una línea en blanco entre
cada conjunto de resultados de un lote. Además, el mensaje "<x> filas afectadas" no
aparece cuando no se aplica a la instrucción ejecutada.
Para utilizar sqlcmd de forma interactiva, escriba sqlcmd en el símbolo del sistema
con una o varias de las opciones descritas anteriormente en este tema.
Las opciones -L, -Q, -Z o -i hacen que sqlcmd se cierre después de la ejecución.
48
La longitud total de la línea de comandos sqlcmd en el entorno de comandos
(Cmd.exe), incluidos todos los argumentos y las variables expandidas, es la que
determine el sistema operativo para Cmd.exe. Varía según el sistema operativo. Para
Windows Server 2003 y Windows XP, la longitud es 8.191; mientras que para
Windows 2000 y Windows NT4, es 2.047.
49
PRECEDENCIA DE VARIABLES (MENOR A MAYOR)
Variable
Modificad
or
L/
relacionad E
o
Valor
predeterminado
SQLCMDUSER
-U
L
""
SQLCMDPASSWORD
-P
--
""
SQLCMDSERVER
-S
L
"DefaultLocalInstan
ce"
SQLCMDWORKSTATION
-H
L
"ComputerName"
SQLCMDDBNAME
-d
L
""
SQLCMDLOGINTIMEOUT
-l
L/
E
"8" (segundos)
SQLCMDSTATTIMEOUT
-t
L/
E
"0" = esperar
indefinidamente
SQLCMDHEADERS
-h
L/
E
"0"
SQLCMDCOLSEP
-s
L/
E
""
SQLCMDCOLWIDTH
-w
L/
E
"0"
SQLCMDPACKETSIZE
-a
L
"4096"
SQLCMDERRORLEVEL
-m
L/
E
0
50
SQLCMDMAXVARTYPEWI
DTH
-y
L/
E
"256"
SQLCMDMAXFIXEDTYPE
WIDTH
-Y
L/
E
"0" = ilimitado
SQLCMDEDITOR
L/
E
"edit.com"
SQLCMDINI
L
""
SQLCMDUSER, SQLCMDPASSWORD y SQLCMDSERVER se establecen cuando
se utiliza: Connect
L indica que el valor sólo puede establecerse una vez durante la inicialización del
programa.
L/E indica que el valor puede modificarse mediante el comando setvar y que los
comandos siguientes se verán influidos por el nuevo valor.
51
COMANDOS DE SQLCMD
Además de las instrucciones Transact-SQL de sqlcmd, también están disponibles los
siguientes comandos:
GO [coun
t]
[:] RESET
[:] ED
[:] !!
[:] QUIT
[:] EXIT
:r
:
ServerList
:List
:Error
:Out
:Perftrace
:Connect
:On Error
:Help
:XML [ON | OF
F]
:Setvar
:Listvar
Tenga en cuenta lo siguiente cuando utilice comandos de sqlcmd:
Todos los comandos de sqlcmd, excepto GO, deben ir precedidos de dos puntos (:).
Los comandos de sqlcmd se reconocen sólo si aparecen al principio de una línea.
Todos los comandos de sqlcmd no distinguen entre mayúsculas y minúsculas.
Cada comando debe estar en una línea separada. Un comando no puede ir seguido de
una instrucción de Transact-SQL o de otro comando.
Los comandos se ejecutan inmediatamente. No se colocan en el búfer de ejecución,
como es el caso de las instrucciones.
52
Editar comandos
[:] ED
Inicia el editor de texto. Este editor se puede utilizar para editar el lote actual de
Transact-SQL o el último lote ejecutado. Para editar el último lote ejecutado, el
comando ED debe escribirse inmediatamente después de que se complete la ejecución
del último lote.
El editor de texto se define mediante la variable de entorno SQLCMDEDITOR. El
editor predeterminado es "Edit". Para cambiar el editor, establezca la variable de
entorno SQLCMDEDITOR. Por ejemplo, para establecer el editor en el Bloc de notas
de Microsoft, en el símbolo del sistema, escriba:
SET SQLCMDEDITOR=notepad
[:] RESET
Borra la caché de instrucciones.
:List
Imprime el contenido de la caché de instrucciones.
53
Variables
:Setvar <var> [ "value" ]
Define las variables de secuencia de comandos de sqlcmd. Las variables de secuencia
de comandos tienen el siguiente formato: $(VARNAME).
Los nombres de variables no distinguen entre mayúsculas y minúsculas.
Las variables de secuencia de comandos pueden establecerse de los siguientes modos:
Implícitamente mediante una opción de línea de comandos. Por ejemplo, la opción -l
establece la variable SQLCMDLOGINTIMEOUT de sqlcmd.
Explícitamente mediante el comando: Setvar.
Al definir una variable de entorno antes de ejecutar sqlcmd.
La opción -X impide que las variables de entorno se pasen a sqlcmd.
Si una variable definida mediante :Setvar y una variable de entorno tienen el mismo
nombre, la variable definida mediante :Setvar tiene prioridad.
Los nombres de variables no deben contener caracteres de espacio en blanco.
Los nombres de variable no pueden tener el mismo formato que una expresión
variable como $(var).
54
Si el valor de la cadena de la variable de secuencia de comandos contiene espacios en
blanco, incluya el valor entre comillas. Si un valor para la variable de la secuencia de
comandos no se especifica, la variable de secuencia de comandos se elimina.
:Listvar
Muestra una lista de variables de secuencias de comandos que están establecidas
actualmente.
Sólo se mostrarán las variables de secuencia de comandos establecidas mediante
sqlcmd y las variables establecidas con el comando: Setvar.
Comandos de salida
:Error <filename>|STDERR|STDOUT
Redirige toda la salida de error al archivo especificado por file name, a stderr o a
stdout. El comando Error puede aparecer varias veces en una secuencia de comandos.
De forma predeterminada, la salida de error se envía a stderr.
file name
Crea y abre un archivo que recibirá la salida. Si el archivo ya existe, se truncará en
cero bytes. Si el archivo no está disponible a causa de los permisos u otros motivos, la
salida no se cambiará y se enviará al último destino especificado o al predeterminado.
55
STDERR
Cambia la salida del error al flujo stderr. Si se ha redirigido, el destino al cual se
redirige el flujo recibirá la salida del error.
STDOUT
Cambia la salida del error al flujo stdout. Si se ha redirigido, el destino al cual se
redirige el flujo recibirá la salida del error.
:Out <filename>| STDERR| STDOUT
Crea y redirige todos los resultados de consulta al archivo especificado por file name,
a stderr o a stdout. De forma predeterminada, la salida se envía a stdout. Si el archivo
ya existe, se truncará en cero bytes. El comando Out puede aparecer varias veces en
una secuencia de comandos.
:Perftrace <filename>| STDERR| STDOUT
Crea y redirige toda la información de traza de rendimiento al archivo especificado
por file name, a stderr o a stdout. De forma predeterminada, la salida de traza de
rendimiento se envía a stdout. Si el archivo ya existe, se truncará en cero bytes. El
comando Perftrace puede aparecer varias veces en una secuencia de comandos.
56
Comandos de control de ejecución
:On Error[ exit | ignore]
Establece la acción que se llevará a cabo cuando se produzca un error durante la
ejecución de la secuencia de comandos o del lote.
Cuando se utiliza la opción exit, sqlcmd se cierra con el valor de error adecuado.
Cuando se utiliza la opción ignore, sqlcmd pasa por alto el error y continúa con la
ejecución del lote o de la secuencia de comandos. De forma predeterminada, se
imprimirá un mensaje de error.
[:] QUIT
Hace que sqlcmd se cierre.
[:] EXIT[ (statement) ]
Permite utilizar el resultado de una instrucción SELECT como valor devuelto de
sqlcmd. La primera columna de la primera fila del resultado se convierte en un entero
de 4 bytes (long). MS-DOS pasa el byte bajo al proceso primario o al nivel de errores
del sistema operativo. Windows 2000 pasa el entero de 4 bytes completo. La sintaxis
es:
:EXIT(query)
57
Por ejemplo:
:EXIT(SELECT @@ROWCOUNT)
También puede incluir el parámetro EXIT como parte de un archivo de proceso por
lotes. Por ejemplo, en el símbolo del sistema, escriba:
sqlcmd -Q "EXIT(SELECT COUNT(*) FROM '%1')"
La utilidad sqlcmd envía todo lo que está entre paréntesis () al servidor. Si un
procedimiento almacenado del sistema selecciona un conjunto y devuelve un valor,
sólo se devuelve la selección. La instrucción EXIT() sin nada entre los paréntesis
ejecuta todo lo que precede a éstos en el lote y luego cierra sin ningún valor devuelto.
Cuando se especifica una consulta incorrecta, sqlcmd se cierra sin devolver ningún
valor.
Aquí se muestra una lista de formatos de EXIT:
:EXIT
No ejecuta el lote y, después, sale de forma inmediata y no devuelve ningún valor.
:EXIT( )
Ejecuta el lote y, a continuación, sale sin devolver ningún valor.
58
:EXIT(query)
Ejecuta el lote que incluye la consulta y, a continuación, sale tras devolver el
resultado de la consulta.
Si se utiliza RAISERROR en una secuencia de comandos de sqlcmd y se produce un
estado 127, sqlcmd se cerrará y devolverá el identificador del mensaje al cliente. Por
ejemplo:
RAISERROR(50001, 10, 127)
Este error hará que la secuencia de comandos de sqlcmd finalice y devuelva el Id. de
mensaje 50001 al cliente.
Los valores devueltos -1 a -99 están reservados por SQL Server; sqlcmd define los
siguientes valores devueltos adicionales:
59
Valores
devuelto
Descripción
s
-100
Error encontrado antes
de seleccionar el valor
devuelto.
-101
No se encontró
ninguna fila al
seleccionar el valor
devuelto.
-102
Error de conversión al
seleccionar el valor
devuelto.
GO [count]
GO marca tanto el final de un lote como la ejecución de cualquier instrucción de
Transact-SQL almacenada en caché. Cuando especifique un valor para count, las
instrucciones almacenadas en caché se ejecutarán tantas veces como indique count,
como un solo lote.
60
Otros comandos
:r <filename>
Analiza instrucciones Transact-SQL y comandos sqlcmd adicionales del archivo
especificado por <filename>en la caché de instrucciones.
Si el archivo contiene instrucciones que no van seguidas de GO, debe escribir GO en
la línea que sigue a: r.
<filename> se lee de forma relativa al directorio de inicio en el que se ejecutó
sqlcmd.
El archivo se leerá y se ejecutará después de que se encuentre un terminador de lote.
Puede emitir varios comandos: r. El archivo puede incluir cualquier comando de
sqlcmd. Eso incluye el terminador de lote GO.
:Serverlist
Enumera los servidores configurados localmente y los nombres de los servidores que
difunden en la red.
:Connect server_name[\instance_name] [-l timeout] [-U user_name [-P
password]]
Conecta con una instancia de SQL Server. También cierra la conexión actual.
61
OPCIONES DE TIEMPO DE ESPERA:
0 espera
indefinidamente
n>0 espera durante
n segundos
La variable de secuencia de comandos SQLCMDSERVER reflejará la conexión
activa actual.
Si no se especifica timeout, el valor de la variable SQLCMDLOGINTIMEOUT es el
predeterminado
Si sólo se especifica el valor de user_name (como una opción o como una variable de
entorno), se solicitará al usuario que especifique una contraseña. Esto no es así si se
han establecido las variables de entorno SQLCMDUSER o SQLCMDPASSWORD.
Si no se proporcionan opciones ni variables de entorno, se utiliza el modo de
autenticación de Windows para iniciar sesión. Por ejemplo, para conectar con una
instancia, instance1, de SQL Server, myserver, mediante seguridad integrada, se
necesitaría lo siguiente:
:connect myserver\instance1
Para conectar con la instancia predeterminada de myserver con variables de secuencia
de comandos, utilizaría lo siguiente:
62
:setvar myusername test
:setvar myservername myserver
:connect $(myservername) $(myusername)
[:] !!< command>
Ejecuta comandos del sistema operativo. Para ejecutar un comando del sistema
operativo, inicie una línea con dos signos de exclamación (!!) seguidos por el
comando del sistema operativo. Por ejemplo:
:!! Dir
:XML [ON | OFF]
Para obtener más información, vea "Formato de salida XML", más adelante en este
tema.
:Help
Muestra los comandos de sqlcmd junto con una breve descripción de cada comando.
NOMBRES DE ARCHIVO DE SQLCMD
Los archivos de entrada de sqlcmd se pueden especificar con la opción -i o con el
comando :r. Los archivos de salida se pueden especificar con la opción -o o con los
comandos :Error, :Out y :Perftrace. A continuación se incluyen algunas directrices
para trabajar con estos archivos:
63
:Error, :Out y :Perftrace deben utilizar <filename> independientes. Si se utiliza el
mismo <filename>, es posible que las entradas de los comandos se entremezclen.
Si sqlcmd llama a un archivo de entrada ubicado en un servidor remoto desde un
equipo local y el archivo contiene una ruta de acceso de archivo del tipo :out
c:\OutputFile.txt, el archivo de salida se creará en el equipo local y no en el servidor
remoto.
Entre las rutas de archivo válidas se incluyen:
C:\<filename>,\\<Servidor>\<recursoCompartido$>\<filename> y "C:\Carpeta\<file
name>". Si hay algún espacio en blanco en la ruta de acceso, utilice comillas.
Cada nueva sesión de sqlcmd sobrescribirá los archivos existentes que tengan el
mismo
nombre.
MENSAJES INFORMATIVOS
sqlcmd imprime los mensajes informativos enviados por el servidor. En el siguiente
ejemplo, tras ejecutar las instrucciones de Transact-SQL, se imprime un mensaje
informativo.
En el símbolo del sistema, escriba lo siguiente:
sqlcmd
64
En el símbolo del sistema, escriba sqlcmd:
USE AdventureWorks;
GO
Cuando se presiona ENTRAR, se imprime el siguiente mensaje informativo: "Se
cambió el contexto de la base de datos a 'AdventureWorks'".
FORMATO DE SALIDA DE CONSULTAS DE TRANSACT-SQL
sqlcmd primero imprime un encabezado de columna que contiene los nombres de
columna especificados en la lista de selección. Los nombres de columna se separan
mediante el carácter SQLCMDCOLSEP. De forma predeterminada, es un espacio en
blanco. Si el nombre de la columna es más corto que el ancho de la columna, la salida
se amplía con espacios hasta la siguiente columna.
Esta línea irá seguida por una línea separadora, que es una serie de caracteres de
guión. La siguiente salida muestra un ejemplo.
Inicie sqlcmd. En el símbolo del sistema de sqlcmd, escriba lo siguiente:
USE AdventureWorks;
SELECT TOP (2) Person.ContactID, FirstName, LastName
FROM Person.Contact;
GO
65
Cuando presione ENTRAR, se devolverá el siguiente conjunto de resultados.
ContactID FirstName LastName
----------- ------------ ---------1 Syed Abbas
2 Catherine Abel
(2 row(s) affected)
Aunque la columna ContactID tiene sólo 4 caracteres de ancho, se ha expandido para
acomodar el nombre de columna más largo. De forma predeterminada, la salida
finaliza a los 80 caracteres. Esto se puede cambiar mediante la opción -w o al
establecer la variable de secuencia de comandos SQLCMDCOLWIDTH.
FORMATO DE SALIDA XML
La salida XML de una cláusula FOR XML se ofrece sin formato en una secuencia
continua.
Cuando espere una salida XML, utilice el siguiente comando: XML ON.
Para desactivar el modo XML, utilice el siguiente comando: XML OFF.
El comando GO no debe aparecer antes de que se emita el comando XML OFF, ya
que el comando XML OFF vuelve a cambiar sqlcmd a la salida orientada a filas.
66
Los datos XML (de flujo) y los datos del conjunto de filas no se pueden mezclar. Si el
comando XML ON no se ha emitido antes de ejecutar una instrucción Transact-SQL
que genera flujos XML, la salida será confusa. Si se ha emitido el comando XML
ON, no se pueden ejecutar instrucciones Transact-SQL que den como resultado
conjuntos de filas normales.
PRÁCTICAS RECOMENDADAS PARA SQLCMD
Utilice las siguientes prácticas para maximizar la seguridad y la eficacia.
Utilice seguridad integrada.
Utilice -X en entornos automatizados.
Asegure los archivos de entrada y salida mediante los permisos del sistema de
archivos NTFS adecuados.
Para aumentar el rendimiento, haga tanto como pueda en una sola sesión de sqlcmd
en vez de emplear varias.
Establezca valores de tiempo de espera para la ejecución de lotes y consultas
superiores a los que prevea para la ejecución de cada lote o consulta.
Para empezar a utilizar sqlcmd, primero debe iniciar la utilidad y conectarse a una
instancia de SQL Server. Puede conectarse a una instancia con nombre o a la instancia
predeterminada.
67
El primer paso consiste en iniciar la utilidad sqlcmd. Para iniciar la utilidad sqlcmd y
conectar con una instancia predeterminada de SQL Server se debe realizar lo
siguiente:
Abrir una ventana de D.O.S. y escribir sqlcmd y presionar entrar, de ésta manera se
estará conectada a la utilidad con la instancia predeterminada de sql server 2005. Para
iniciar la utilidad sqlcmd y conectar con una instancia con nombre de SQL Server se
debe realizar lo siguiente:
Abra
una
ventana
del
símbolo
del
sistema
y
escriba:
sqlcmd
-SmiServidor\nombreDeInstancia. Reemplace miServidor\nombreDeInstancia con el
nombre del equipo y la instancia de SQL Server a la que desea conectarse.
Presione ENTRAR.
El comando sqlcmd (1>) indica que está conectado con la instancia especificada de
SQL Server.
Para ejecutar archivos de secuencias de comandos Transact-SQL mediante sqlcmd se
debe llevar a cabo lo siguiente:
Después de utilizar sqlcmd para conectarse a una instancia con nombre de Microsoft
SQL Server, el paso siguiente consiste en crear un archivo de secuencia de comandos
de Transact-SQL. Un archivo de secuencia de comandos de Transact-SQL es un
archivo de texto que puede incluir una combinación de instrucciones Transact-SQL,
comandos sqlcmd y variables de secuencia de comandos.
68
Para crear un archivo sencillo de secuencia de comandos de Transact-SQL mediante
el Bloc de notas, siga estos pasos:
USE AdventureWorks
GO
SELECT c.FirstName + ' ' + c.LastName AS 'Employee Name',
a.AddressLine1, a.AddressLine2 , a.City, a.PostalCode
FROM Person.Contact AS c
INNER JOIN HumanResources.Employee AS e
ON c.ContactID = e.ContactID
INNER JOIN HumanResources.EmployeeAddress ea ON
ea.EmployeeID = e.EmployeeID
INNER JOIN Person.Address AS a ON a.AddressID = ea.AddressID
GO
Guarde el archivo como myScript.sql en la unidad C.
Para ejecutar el archivo de secuencia de comandos se deberá realizar lo siguiente:
Abra una ventana del símbolo del sistema.
69
En la ventana del símbolo del sistema escriba: sqlcmd -S
nombreDeServidor\nombreDeInstancia -i C:\myScript.sql.
Presione ENTRAR.
En la ventana del símbolo del sistema se escribe una lista con las direcciones y los
nombres de los empleados que figuran en AdventureWorks.
Para guardar los resultados en un archivo de texto se tomará en cuenta lo siguiente:
Abra una ventana del símbolo del sistema.
En la ventana del símbolo del sistema escriba: sqlcmd -S
nombreDeServidor\nombreDeInstancia -i C:\myScript.sql -o C:\EmpAdds.txt
Presione ENTRAR.
La ventana del símbolo del sistema no devuelve resultados. En su lugar, los resultados
se envían al archivo EmpAdds.txt. Para comprobar los resultados, abra el archivo
EmpAdds.txt.
70
FUNDAMENTACIÓN LEGAL
La aplicación que se utilizará se desarrollará en código java usando el IDE NET
BEANS que es una herramienta de código abierto.
La aplicación que se desarrollará le pertenecerá a la Carrera de Ingeniería en Sistemas
Computacionales de la Universidad Estatal de Guayaquil por motivo de que es un
proyecto necesario para la incorporación de sus estudiantes.
HIPÓTESIS PREGUNTAS A CONTESTARSE
¿Cómo resolver problemas que se presenten en la base de datos si el DBA no se
encuentra junto al servidor para solucionarlos?
¿Cómo aprovechar al máximo los conocimientos del DBA para que aporte con su
ayuda a otras áreas de la empresa sin que se descuide de administrar la base de datos?
¿El usar una aplicación en el servidor para que reciba comandos y sentencias SQL
desde un correo enviado por el DBA facilitaría la administración remota?
¿Qué tareas son las más repetitivas al administrar una base de datos?
VARIABLES DE LA INVESTIGACIÓN
Variable Independiente
Administración remota de una base de datos sql server 2005 a través de internet en un
tiempo prudencial.

Se refiere a las tareas administrativas que realiza un D.B.A. en una base de
datos.
71
Variable Dependiente
Tecnología utilizada para la administración remota de una base de datos sql server
2005 a través de internet.
 Se refiere a la tecnología utilizada para la administración de una base de datos
sql server 2005 a través de un software comercial.
DEFINICIONES CONCEPTUALES
Problemas emergentes. Se refiere a:

Caída del servicio de inicio del servidor de base de datos.

Necesidad de respaldar la información.
Requerimientos emergentes. Son:

Permitir el acceso de un nuevo usuario a la base tras previa
autorización.

Poner en marcha un respaldo de la base.

Obtención de información para toma de decisiones.
DBA. Administrador de base de datos.
BAT. Archivo de ejecución por lotes de sistemas operativos Windows.
72
COMANDOS. Palabras predefinidas en la aplicación para la elaboración de tareas
programadas en archivos BAT por medio de la utilidad de ejecución de comandos
SQL.
SQLCMD. Permite especificar instrucciones, procedimientos del sistema y archivos
de secuencias de comandos de Transact-SQL en el símbolo del sistema.
ADMINISTRACIÓN REMOTA. Gestionar la base de datos desde otro punto
geográfico.
73
CAPÍTULO III
METODOLOGÍA
DISEÑO DE LA INVESTIGACIÓN
MODALIDAD DE LA INVESTIGACIÓN
La investigación que se realizará para la resolución del problema de lentitud al
momento de administrar remotamente una base de datos SQL SERVER 2005 a través
de Internet corresponde a la modalidad de proyecto factible, éste tipo de proyecto es
el que permite la elaboración de una propuesta de un modelo operativo viable, o una
solución posible, cuyo propósito es satisfacer una necesidad o solucionar un
problema.
Los proyectos factibles se deben elaborar respondiendo a una necesidad específica,
ofreciendo soluciones de manera metodológica.
Es así que el proyecto factible consistirá en la investigación, elaboración y desarrollo
de una propuesta de un modelo operativo viable para solucionar problemas,
requerimientos o necesidades de organización o grupos sociales; puede referirse a la
formulación de políticas, programas, tecnologías, métodos o procesos. Para
solucionar el problema descrito anteriormente se va a implementar una nueva forma
de administración remota de una base de datos sql server 2005 como es la de del uso
del correo electrónico, ya que por éste medio resulta más rápido el envío de
74
peticiones ya sea a través de sentencias sql, en una archivo adjunto o a través de
comandos preestablecidos.
Se cuenta con la tecnología necesaria para llevar a cabo ésta propuesta de
administración remota, como lo es el lenguaje de programación java que nos
permitirá conectarnos a una cuenta de correo electrónico previamente configurada
para poder llevar a cabo un análisis minucioso para la identificación de comandos
preestablecidos y script para posteriormente ejecutarlos hacia la base de datos a través
de un archivo batch que implemente la utilidad SQLCMD propia de sql server 2005.
Es así que se dará solución al problema de lentitud de administración remota a través
de internet usando tecnología existente en el actual mercado informático.
75
POBLACIÓN Y MUESTRA
Población:
A los efectos de alcanzar los objetivos de la presente investigación, la población
correspondiente a este estudio está conformada por las personas que integran el área
de tecnología de Información precisamente en la parte de administración de bases de
datos, la cual se ha considerado la opinión de 2 expertos en la administración de bases
de datos como lo es el catedrático de la carrera de Ingeniería en Sistemas
Computacionales el Ing. José Luis Rodríguez D.B.A. de Contecon Guayaquil S.A y la
Jefa del departamento de sistemas de Bic Ecuador la Ing. Elva González y otros Ing.
que laboran en CLS. Además se ha tomado en consideración la opinión de personas
egresadas de la carrera de Ingeniería en sistemas computacionales que están
involucradas de alguna manera en la administración de una base de datos, recogiendo
información de una población de 150 personas.
La opinión y experiencias de las personas antes descritas facilitan al investigador la
recolección y formulación de ideas para dar solución al problema que se desea
resolver estipulado al inicio del presente documento.
76
Muestra:
El subconjunto de la población que se tomó fue de 25 personas ya que son el número
de personas que aportaron a la investigación con sus experiencias laborales e
inclusión de ideas para que éste proyecto tuviese una solución factible.
Su aporte fue mediante una encuesta para la identificación de problemas que hay al
momento de administrar remotamente una base de datos.
POBLACIÓN
N
Trabajadores de CLS
Catedráticos de la
50
10
Carrera
Egresados de la
carrera de Ingeniería
en Sistemas
40
Computacionales
seminario base de
datos
Administradores de
40
empresas privadas
TOTAL
140
77
Los especialistas que fueron consultados fueron el Ing. José Luis Rodríguez D.B.A.
de Contecon Guayaquil S.A., la Ing. Elva Valdez Jefa de Sistemas de Bic Ecuador,
Ing. Eduardo Mora Cisneros CRM de Porta.
78
OPERACIONALIZACIÓN DE VARIABLES
MATRIZ DE OPERACIONALIZACIÓN DE VARIABLES
Variables
Dimensiones
Indicadores
Técnicas
y/o
Instrumentos
V. I.
Evaluación: área Experiencia en el Encuestas,
Administración
Tecnología
de área
de referencias
remota de una Información:
Administración
bibliográficas y de
base de datos sql Administración de remota de una páginas
server 2005 a base de datos base de datos. electrónicas.
través
de D.B.A.s
Conocimientos,
internet en un
habilidades
y
tiempo
destrezas.
prudencial.
V.D.
Tecnología
utilizada para la
administración
remota de una
base de datos sql
server 2005 a
través de
internet.
Calidad
software
del Conocimiento en Bibliografía
el manejo de especializada,
tecnologías
consulta a
informáticas
expertos,
Documentos
electrónicos.
79
INSTRUMENTOS DE RECOLECCIÓN DE DATOS
Las técnicas de recolección de datos aplicadas en la investigación fueron; la
observación directa. Además debe mencionarse que la observación fue de tipo
participante debido a que la persona investigadora forma parte de la comunidad
objeto de estudio, la observación ha sido descrita en un registro de observación. Y a
modo de complemento en la aplicación de esta técnica se utilizó como instrumento
una lista de chequeo en el cual se plasmaron todos los datos recopilados. La
observación aplicada en este trabajo de grado permitió la búsqueda de los datos
necesarios que conllevaron a resolver la problemática que se ha detectado en la
administración remota de base de datos.
En segundo lugar, la técnica de la encuesta cuyo objeto es de interactuar de forma
directa con el recurso humano de la institución, para obtener opiniones importantes.
La utilización de esta técnica se materializó a través de un cuestionario, elaborado a
fin de recoger la información para la presentación de la investigación.
80
INSTRUMENTOS DE LA INVESTIGACIÓN
El instrumento que se ha utilizado para la elaboración de la investigación ha sido el
uso del internet, ésta ha sido una herramienta clave para el desarrollo de la misma.
Además se ha usado la observación directa a un administrador de base de datos sobre
el problema que se desea solucionar.
Para garantizar la confiabilidad de los instrumentos se tomado en cuenta opiniones de
personas experimentadas en el área de administración de base de datos sql server
2005, así como páginas electrónicas que sean de fuente confiable como lo es java y
páginas de Microsoft Sql Server 2005.
81
LA ENCUESTA Y EL CUESTIONARIO
Universidad de Guayaquil
Facultad de Ciencias Matemáticas y Físicas
Carrera de Ingeniería en Sistemas Computacionales
ENCUESTA SOBRE LA ADMINISTRACION REMOTA
DE UNA BASE DE DATOS EN SQL SERVER 2005
A TRAVÉS DE INTERNET
Persona encuestada:
Cargo:
Empresa
1). Ha usado alguna herramienta de software para administrar remotamente
una base de datos a través de internet. (De responder SI descríbalas
MARQUE CON X).
SI
NO
a).
b).
c).
2). Con qué frecuencia usa una herramienta de software para la
administración
remota de la base de datos MARQUE CON X?
Poca
Mucha
3). El tiempo de acceso a una base de datos de manera remota por medio del
uso de un software le resulta MARQUE CON X?
LENTO
NORMAL
RÁPIDO
4). Qué tareas son las que usa con mayor periodicidad en la administración
remota de una base de datos? descríbalas
a).
b).
82
c).
d).
5). Qué tipo de problemas tiene al usar un herramienta de software para la
administración remota de una base de datos? Descríbalos.
a).
b).
c).
d).
Encuestador: Marcos Vera Aguirre
83
VALIDACIÓN
Las respuestas dadas por los diferentes participantes a la que se les ha realizado la
encuesta ha sido analizada y estudiada y comprobada a fin de que la información
recabada sea lo más confiable posible para poder partir de esos datos obtenidos en la
elaboración de una solución a la problemática que se ha estudiado. Se ha tomado en
cuenta la opinión del tutor asignado para la verificación de lo expuesto ante las
interrogantes planteadas en el cuestionario que se ha elaborado.
84
PROCEDIMIENTOS DE LA INVESTIGACIÓN
El problema:
Planteamiento del problema
Interrogantes de la investigación
Objetivos de la Investigación
Justificación o importancia de la investigación
Marco teórico:
Fundamentación teórica
Fundamentación legal
Preguntas a contestarse
Definición de términos
Metodología:
Diseño de Investigación
Población y Muestra
Instrumentos de recolección de datos
Operacionalización de variables, dimensiones e indicadores
Procedimiento de la Investigación
Criterios para la elaboración de la propuesta
RECOLECCIÓN DE LA INFORMACIÓN
Entre las técnicas que se utilizarán tenemos la observación directa al momento de
administrar una base de datos de manera remota a través del uso de internet. Otra
técnica utilizada será la elaboración de encuestas para determinar la solución del
problema que se desea resolver.
85
PROCESAMIENTO Y ANÁLISIS
La información obtenida por medio de la implementación del cuestionario como
medio de obtención de información para la elaboración de una solución viable a la
problemática que se ha planteado ha sido analizada de la siguiente manera:
GRÁFICO #1
80
70
60
50
40
LENTO
NORMAL
RAPIDO
30
20
10
0
1
La pregunta planteada corresponde a:
El tiempo de acceso a una base de datos de manera remota a través de internet por
medio del uso de un software le resulta? Gráfico #1
86
En donde el 80% respondió que le resulta lento, el 10% le resulta normal el tiempo al
momento de administrar la base y un 10% desconoce del tema.
90
80
70
60
50
SI
NO
40
30
20
10
0
1
GRÁFICO #2
87
Ha usado alguna herramienta de software para administrar remotamente una base de
datos a través de internet?
Éste grafico nos indica que el 90% de personas encuestadas ha usado algún tipo de
software para la administración remota de una base de datos sql server 2005.
CRITERIOS PARA LA LABORACIÓN DE LA PROPUESTA
Se propone como solución al problema descrito inicialmente en la presente
documentación la elaboración de un software realizado en lenguaje de programación
java que sirva de intermediario entre una cuenta de correo electrónico que usará el
usuario D.B.A. de base de datos y el servidor de base de datos al que se desea
administrar remotamente, de ésta manera el envío de requerimientos por parte del
D.B.A. desde un correo electrónico será realizada en un tiempo mínimo.
88
CRITERIOS DE VALIDACIÓN DE LA PROPUESTA
Se ha contado con el juicio del experto asignado para que avale la vialidad y
confiabilidad de la propuesta planteada. Experto destinado como mi tutor de
Ingeniero José Luis Rodríguez catedrático de la Carrera de Ingeniería en Sistemas
Computacionales de la universidad de Guayaquil.
Además también se ha contado con opiniones favorables de Ingenieros en sistemas
como Ing. Eduardo Mora y la Ing. Elva González que han visto la propuesta como
novedosa y factible.
CAPÍTULO IV
MARCO ADMINISTRATIVO
CRONOGRAMA
89
90
PRESUPUESTO
Comprende los diferentes gastos que se llevaran a efecto, para el cumplimiento del
objetivo del proceso de la investigación.
DETALLE DE EGRESOS DEL PROYECTO
EGRESOS
DÓLARES
Suministros de oficina y computación
$
30.00
Fotocopias
$
35.00
Libros y documentos
$
10.00
Computadora y servicios de Internet
$
124.50
Transporte
$
30.00
Refrigerio
$
50.00
Empastado, anillado de tesis de grado
$
60.00
$
339.50
TOTAL………………………………………
91
Ingresos
El financiamiento para la elaboración del proyecto ha sido obtenido a través del
apoyo de familiares y de trabajos realizados para la consecución del mismo.
Egresos







Gastos por traslado hacia donde está la fuente
Gastos por fotocopias
Gastos por servicio de Internet
Gastos por suministros de oficina
Gastos por refrigerios
Gastos por documentos adquiridos
Gastos por anillados y empastados
$30.00
$35.00
$124.50
$30.00
$50.00
$10.00
$60.00
92
CAPÍTULO V
CONCLUSIONES Y RECOMENDACIONES
CONCLUSIONES
Luego de analizar e interpretar los resultados obtenidos en la aplicación de los
instrumentos de recolección de datos y en función a la propuesta de una aplicación
que sirva de intermediadora entre un correo electrónico y una base de datos para la
recepción, ejecución y envío de información, se ha llegado a la siguiente conclusión:
El proceso de administrar una base de datos sql server 2005 de manera remota, a
través de internet mediante el uso de la aplicación desarrollada, disminuiría en un
20% el tiempo en que tomaría administrar una Base usando un software tradicional.
La herramienta que se ha creado servirá de soporte para que el D.B.A. ejecute sus
tareas remotas en poco tiempo, ya que no se dependerá de que la conexión hacia el
Servidor de la Base se mantenga estable, dado que, los requerimientos enviados por el
correo electrónico serán descargados hacia el equipo donde se encuentra instalado el
Servidor de Base de Datos y localmente se realizará la ejecución de dichos
requerimientos.
Cabe recalcar que el uso de la herramienta tendrá que ser tomada como un apoyo para
la realización de tareas del D.B.A. mas no como una solución de software para la
gestión de Bases de datos en forma remota.
93
RECOMENDACIONES
Se recomienda que para el normal funcionamiento del software se tome en cuenta lo
siguiente:
 En el equipo donde se va a instalar la herramienta que facilitará la
administración remota deberá constar de una base de datos SQL SERVER
2005 que sea configurada con autenticación mixta, es decir, autenticación de
Windows y de SQL SERVER.
 En el equipo deberá estar instalado una maquina virtual mínimo Java SE
Development Kit 6u20 para el normal funcionamiento de la aplicación.
 El equipo en el que se instale la aplicación para administrar una Base de Datos
se deberá contar con acceso a internet, donde se tendrá que habilitar los
puertos 995 y 465 que requieren autenticación para envío y recepción de
correos electrónicos.
 Se incita que la cuenta de correo electrónico que será creada por parte del
D.B.A., para el envío y recepción de información hacia y desde la base
respectivamente, sea utilizada única y exclusivamente para ese fin, es decir,
que no se la utilice para conveniencia personal del administrador ya que puede
darse el caso de que se envíen correos spam o no deseados por parte de alguna
otra fuente o la adquisición de algún virus electrónico a través de una mensaje
de correo infectado o con código oculto de carácter malicioso.
94
Además la cuenta principal de correo electrónico que será utilizada como cuenta
receptora con las peticiones del D.B.A. desde la cuenta que ha creado para el envío de
comandos y scripts deberá ser creada de un proveedor de correo confiable que maneje
preferiblemente la encriptación de datos al enviar o recibir un correo electrónico https
como lo utiliza GMAIL.
95
REFERENCIAS BIBLIOGRÁFICAS
Sergio Gálvez Rojas, Ignacio García Sucino. (2006). Java a Tope: Java Mail (Java
en Ejemplos) Edición Electrónica. Dpto. de Lenguajes y Ciencias de la Computación.
E.T.S. de Ingeniería Informática. Universidad de Málaga. Málaga España. Páginas
consultadas 1 a 84.
96
BIBLIOGRAFÍA
LIBROS
Sergio Gálvez Rojas, Ignacio García Sucino. (2006). Java a Tope: Java Mail (Java
en Ejemplos). Dpto. de Lenguajes y Ciencias de la Computación. E.T.S. de Ingeniería
Informática. Universidad de Málaga. Málaga España.
PUBLICACIONES
Yépez Aldas, Edison. (2006). Guía para la elaboración del Proyecto de Trabajo de
Grado: procesos paso a paso. Adaptación de Roldós Aguilera, Concepción Mariana.
Quito: Universidad Central del Ecuador. Unidad de Postgrado.
DIRECCIONES WEB
Chuidiang
(2007)
Enviar
un
correo
con
JavaMail
desde
http://www.chuidiang.com/java/herramientas/javamail/enviar-correo-javamail.php
Chuidiang
(2007)
Leer
correos
con
JavaMail
http://www.chuidiang.com/java/herramientas/javamail/leer-correo-javamail.php
desde
97
Chuidiang
(2007)
Enviar
correos
con
adjuntos
en
JavaMail
desde
http://www.chuidiang.com/java/herramientas/javamail/enviar-adjuntos-javamail.php
Forosdelweb
(2006)
Ejecutar
.bat
desde
Java
desde
2005?
desde
http://www.forosdelweb.com/f45/ejecutar-bat-desde-java-365662/
Microsoft
(2005)
Qué
es
Sql
Server
http://www.microsoft.com/spain/sql/productinfo/overview/what-is-sql-server.mspx
Microsoft
(2006)
sqlcmd
(utilidad)
desde
http://msdn.microsoft.com/es-
es/library/ms162773(v=SQL.90).aspx
Oracle.
(2009)
FAQ
JAVAMAIL
API
desde
http://www.oracle.com/technetwork/java/faq-135477.html
Oracle. (2009). JavaMail desde http://www.oracle.com/technetwork/java/index-jsp139225.html
Sun
Microsystems,
Inc.
(2009)
JavaMail
API
http://java.sun.com/products/javamail/javadocs/overviewsummary.html#overview_description
documentation
desde
98
Wikipedia
(2010)
Lenguaje
Unificado
de
http://es.wikipedia.org/wiki/Lenguaje_Unificado_de_Modelado
Modelado
desde
99
ANEXOS
ANEXO 1
Composición de un mensaje de correo electrónico
Proyecto de tesis
Diagramas UML
CASO DE USO
17/03/2015
Proyecto de tesis
Diagramas UML
DIAGRAMA DE CLASES
17/03/2015
Proyecto de tesis
Diagramas UML
17/03/2015
Proyecto de tesis
Diagramas UML
17/03/2015
Proyecto de tesis
Diagramas UML
17/03/2015
Proyecto de tesis
Diagramas UML
17/03/2015
Proyecto de tesis
Diagramas UML
17/03/2015
Proyecto de tesis
Diagramas UML
17/03/2015
Proyecto de tesis
Diagramas UML
INTERACCIÓN DE OBJETOS
17/03/2015
Proyecto de tesis
Diagramas UML
17/03/2015
Proyecto de tesis
Diagramas UML
17/03/2015
Proyecto de tesis
Diagramas UML
17/03/2015
Proyecto de tesis
Diagramas UML
17/03/2015
Proyecto de tesis
Diagramas UML
17/03/2015
Proyecto de tesis
Diagramas UML
17/03/2015
Proyecto de tesis
Diagramas UML
17/03/2015
Proyecto de tesis
Diagramas UML
17/03/2015
Plan de Pruebas
1
INTRODUCCIÓN
El presente plan de pruebas ayudará a comprobar la efectividad de la aplicación cuya función es la
de Interactuar con un servidor de correo para poder captar comandos o scripts y ejecutarlos en una
base de datos de Sql Server 2005.
Describe el alcance en las pruebas de la aplicación y los objetivos principales del proyecto.
2
ANTECEDENTES
Reseña histórica de funcionalidad del proyecto
3
OBJETIVOS

Crear y configurar una cuenta de correo electrónico de GMAIL para la habilitación del
protocolo pop3, cuenta que será usada para la recepción de correos del DBA.

Crear una aplicación en java que recepte el contenido de los comandos o sentencias del
correo enviado por DBA para ejecución de tareas hacia la base de datos SQL server 2005.
Indicar cuál es el objetivo del proyecto
4
PARTICIPANTES
Autor de la aplicación: Dick Marcos vera Aguirre.
Rol: Programador.
Responsabilidades: Elaborar el respectivo análisis, diseño, desarrollo y pruebas de la aplicación
JARemoteDBA.
Se desglosa el personal que participará en las pruebas, su rol y responsabilidades.
5
REQUERIMIENTOS GENERALES
Ambientes de prueba
Se detallan las plataformas que servirán de ambientes de prueba y de simular el ambiente en
producción.
Ejemplo:
Machine
Virtual Machine
Oracle Virtual
Box
Virtual Machine
Oracle Virtual
Box
AMD
6
Producción/Desar
rollo
Producción
Desarrollo
Desarrollo
Consideraciones
UsuarioDB/SO
It requires Clean Up
process before going in
production.
Doesn’t not require any
Clean UP
BD: Usr_marcos
No cleanup before or
after.
BD: Usr_marcos
BD: Usr_marcos
OBJETOS UTILIZADOS
Mencionar los objetos que se utilizarán para probar la funcionalidad del desarrollo implementado
Autor: Dick Marcos Vera Aguirre
Fecha miércoles 7 Julio de 2010:
Plan de Pruebas
7
CASOS DE PRUEBA
Se detalla todos los casos posibles de las pruebas del proyecto.
Escenario de Prueba
Resultados
Esperados
Resultados
Obtenidos
Comentarios
SCRIPT
creación de tablas.
Devolver tabla creada.
creación de Base de
Datos.
Devolver Base de
datos creada
Envío de sentencia
Select
Muestra la información
requerida
Crear un procedimiento
almacenado
Ejecutar un
procedimiento
almacenado que
contenga sentencia
select.
Ejecutar un
procedimiento
almacenado que
contenga sentencia
Insert
Solicitud ejecutada
exitosamente.
La utilidad SQLCMD
con que trabaja la
aplicación no siempre
retorna un resultado de
lo ejecutado, como en
la creación de tablas.
Ejecución de DBCC
completada. Si hay
mensajes de error,
consulte al
administrador
Muestra los datos
solicitados
Procedimiento creado.
Solicitud ejecutada
exitosamente
Muestra la información
requerida
Muestra la información
requerida
Solicitud ejecutada
exitosamente
Solicitud ejecutada
exitosamente
COMANDOS
Envío de comando Recepción
del
RESPALDARBASE.
resultado
de
la
ejecución del comando
al E-Mail.
Envío de comando Recepción
del
RESTAURARBASE.
resultado
de
la
ejecución del comando
al E-Mail.
Envío de comando Recepción
del
INICIARBASE.
resultado
de
la
ejecución del comando
al E-Mail.
Envío de comando Recepción
del
DETENERBASE.
resultado
de
la
ejecución del comando
al E-Mail.
Conexión
de
la Conexión
realizada
aplicación
con
un exitosamente.
servidor de correo
Recepción
del
resultado
de
la
ejecución del comando
al E-Mail.
Recepción
del
resultado
de
la
ejecución del comando
al E-Mail.
Recepción
del
resultado
de
la
ejecución del comando
al E-Mail.
Recepción
del
resultado
de
la
ejecución del comando
al E-Mail.
Conexión
realizada
exitosamente.
Autor: Dick Marcos Vera Aguirre
Fecha miércoles 7 Julio de 2010:
Plan de Pruebas
Autor: Dick Marcos Vera Aguirre
Fecha miércoles 7 Julio de 2010:
Proyecto de tesis
Manual de Técnico
17/03/2015
REQUERIMIENTOS TÉCNICOS PARA LA INSTALACIÓN DEL
SOFTWARE
1) Se debe contar con una base de datos Sql Server 2005 que se encuentre
configurada de la siguiente manera:

Que tenga un nombre de Instancia establecido.

Que tenga funcional la utilidad SQLCMD, ésta es de vital importancia
ya que por medio de dicha utilidad se realizará la ejecución de script
que genere la aplicación java con las peticiones enviadas por el D.B.A.
desde un correo electrónico.

Que exista un login de usuario administrador de todas las base de
datos que se encuentren en el servidor de Base de Datos.
2) En el servidor de Base de datos debe existir conexión a internet, ya que se
desea administrar la base de datos desde el correo electrónico ya sea de un
proveedor comercial, libre o particular de alguna institución que permita la
salida y entrada de información a través de internet.
3) Deberá estar instalado en el servidor la máquina virtual de java, ya que la
aplicación requerirá de ella para su ejecución. De no contarse con dicho
software instalado, al instalar la aplicación java se dará paso a la instalación
de la máquina virtual de java cuya versión será la óptima para el
funcionamiento del aplicativo.
4) Se deberá crear y configurar una cuenta de correo electrónico que trabaje con
el protocolo pop3 y con SSL, proveedor recomendado GMAL, ésta cuenta
será la cuenta principal en donde llegarán los correos enviados por el D.B.A.
desde otra cuenta, denominada cuenta secundaria o cuenta usada por el
administrador, creada única y exclusivamente para la recepción y envío de
datos desde y hacia la base a través de ésta cuenta secundaria hacia la cuenta
principal. A la cuenta principal accesará la aplicación java denominada
JAremoteDBA que se encargará de analizar el correo reciente para determinar
que solicitud está pidiendo el D.B.A y proceder con la creación de archivo
batch para ejecutar alguna tarea a través de la utilidad SQLCMD.
Proyecto de tesis
Manual de Técnico
17/03/2015
5) La aplicación está programada solo para interactuar con la base de datos sql
server 2005 de Microsoft. Debido al tiempo con que se contaba para el
desarrollo del aplicativo no se puedo extender su funcionalidad para que
trabajare con varias bases de datos.
6) En caso de perderse la conexión a internet la aplicación seguirá ejecutándose
pero solo mostrará por la consola de mensajes el estado de la conexión a
internet, una vez activa la conexión la aplicación se ejecutará normalmente.
Cabe destacar que si el D.B.A. envía una petición y al momento de que la
aplicación java lea el mensaje electrónico desde la cuenta principal se pierde
la conexión la aplicación volverá a leer el mensaje después de 5 minutos.
7) Se debe contar con una conexión a internet segura para que al momento de
análisis de correo o envío y recepción del mismo no se pierda la información,
es decir, si la aplicación una vez leído el mensaje de la cuenta principal
ejecuta la tarea respectiva y justo antes de enviar la notificación al correo del
administrador se pierde la conexión a internet. La aplicación no volverá a
retomar ese mensaje pendiente de envío y para que el D.B.A. sepa de que si se
ejecutó su tarea normalmente deberá realizar un query de consulta sobre lo
ejecutado.
Proyecto de tesis
17/03/2015
Manual de Técnico
PAQUETES Y CLASES:
PAQUETES
CLASES
com.JAremoteDBA.ARCHIVO
ARCHIVO
BATCH
NOTIFICAR_SUCESOS
SCRIPT
com.JAremoteDBA.Auth
AUTENTICACION
com.JAremoteDBA.CORREO
com.JAremoteDBA.ENCRIPTACION
CORREO
Crear_Llave
Desencriptar_Clave
Desencriptar_Properties
Encriptar_Properties
Encriptar_clave
Password_Decrypt_Clave
com.JAremoteDBA.PRINCIPAL
JF_AUTENTICACION
PRINCIPAL
CAMBIO_CLAVE
Datos_properties
Bandera
Cargar_Datos_Properties
Control_Expiración_Clave
Directorios
Verificar_Conexion_Internet
com.JAremoteDBA.buffer
LlenarJTextArea_Con_Procesos
com.JAremoteDBA.log4j
LogClass
com.JAremoteDBA.util
Archivo_Properties
Proyecto de tesis
Manual de Técnico
Constantes_Archivo_Properties
LLenar_Combo_Con_Base_Datos
17/03/2015
Proyecto de tesis
Manual de Técnico
17/03/2015
PAQUETE com.JAremoteDBA.ARCHIVO
Sumario de Clases
Clase encargada de crear, escribir, leer, analizar contenido y
copiar archivos de texto plano. Para cumplir fines como:
Crear un archivo con el contenido del mensaje del correo
electrónico, almacenar claves en archivos, identificar los
comandos enviados y compararlos con los comandos existentes
en el archivo properties.
ARCHIVO
Clase encargada de crear, escribir y ejecutar un archivo Batch.
BATCH
NOTIFICACIO
N
Clase que envía un correo con información, ya sea, indicando
que se presentó un error o si lo solicitado ha sido ejecutado
correctamente.
Clase que servirá para crear y escribir un archivo SQL de a
cuerdo a los comandos, preestablecidos, que han sido enviados
por el D.B.A.
SCRIPT
PAQUETE com.JAremoteDBA.Auth
Sumario de Clases
AUTENTICACIO
N
Clase que servirá para comparar la clave ingresada en el
campo de autenticación de la ventana principal con la
almacenada en un archivo que ha sido previamente
encriptado. También realizará la comparación de las claves
ingresadas en la ventana cambio de contraseña.
PAQUETE com.JAremoteDBA.CORREO
Sumario de Clases
CORRE
O
Clase que servirá para descargar el correo electrónico con las peticiones
del D.B.A. enviado desde una cuenta creada para la administración
remota hacia otra cuenta de correo principal, cuenta con la cual va a
interactuar el método descargar correo() de la clase descrita..
Proyecto de tesis
Manual de Técnico
17/03/2015
PAQUETE com.JAremoteDBA.ENCRIPTACION
Sumario de Clases
Crear_Llave
Desencriptar_Clave
Desencriptar_Properties
Encriptar_Properties
Encriptar_clave
Password_Decrypt_Clav
e
Clase que servirá para crear las llaves públicas y
privadas con la cual se procederá a encriptar un archivo,
ya sea el de configuración o el que contiene la clave de
acceso a la aplicación.
Clase que servirá para desencriptar el archivo que
contiene la clave de acceso a la aplicación para realizar
la verificación al momento de que el D.B.A. se
autentique.
Clase que desencripta el archivo properties para
cargarlo al sistema.
Clase que encripta el archivo de configuración
properties para evitar fuga de información.
Clase que servirá para encriptar el archivo que contiene
la clave de acceso a la aplicación.
Clase que servirá para desencriptar las llaves que
servirán para encriptar o desencriptar información.
Proyecto de tesis
Manual de Técnico
17/03/2015
MÉTODOS CREADOS DE SUS RESPECTIVAS CLASES
PAQUETE com.JAremoteDBA.ARCHIVO
CLASE
MÉTODOS





ARCHIVO





BATCH






public static String
LEER_CONTENIDO_MAIL(String asunto)
static String Analiza_Contenido_Mail(String
contenido, String asunto, int linea)
static void
Verificacion_Datos_Con_Script(String dato, int
indice)
static void Verificacion_Datos_Sin_Script(String
dato, int indice)
public void
Escribir_Archivo_Contenido_Mail(String
Contenido_Mail)
public void Leer_Resultado_De_Lo_Ejecutado()
public static void
Escribir_Archivo_Properties(String path,
String[] Datos)
public static String Leer_Clave_Del_Archivo()
public static void
Escribir_Clave_En_Archivo(char[] key)
public static void Copiar_Archivos(String
nombreFuente, String nombreDestino)
public static String Crear_Archivo_Batch(String
nom_archivo)
public static String Escribir_Bat_Script(String
BASE)
public static String
Escribir_Bat__De_Comandos(String BASE,
String COMANDO)
public static void
Crear_Archivo_A_Contener_Resultado()
public static void Ejecutar_Bat()
public static void Ejecutar_Bat_Script()
Proyecto de tesis
Manual de Técnico
17/03/2015

public static void
Notificar_Sucesos_Por_Correo(String error,
String asunto)

public static String CREAR_SCRIPT(String
comando, String BASE)
public static void ESCRIBIR_SCRIPT(String
comando, String BASE)
NOTIFICAR_SUCESO
S
SCRIPT

PAQUETE com.JAremoteDBA.Auth
CLASE
MÉTODOS
AUTENTICACIO
N


public boolean passwordCorrecta(char[] clave)
public boolean passwordCorrecta(char[] clave1, char[]
clave2)
PAQUETE com.JAremoteDBA.CORREO
CLASE
CORRE
O
MÉTODOS



public static String DESCARGAR_CORREO()
public static void ENVIAR_CORREO_ADJUNTO(String
path_archivo_con_resultados)
public static String getNombre_adjunto()
Proyecto de tesis
Manual de Técnico
17/03/2015
PAQUETE com.JAremoteDBA.buffer
CLASE
MÉTODOS

LlenarJTextArea_Con_Proc
esos

public
LlenarJTextArea_Con_Procesos(javax.swing
.JTextArea area)
public void run()
PAQUETE com.JAremoteDBA.log4j
CLASE
LogClas
s
MÉTODOS

public void Llenar_Log(String nivel, String mensaje)
Proyecto de tesis
Manual de Técnico
17/03/2015
PAQUETE com.JAremoteDBA.ENCRIPTACION
CLASE
MÉTODOS




Crear_Llave




Desencriptar_Clave
Desencriptar_Properties
Encriptar_Properties
Encriptar_clave
Password_Decrypt_Clav
e
public static void Llaves()
private static byte[] passwordEncrypt(char[]
password, byte[] privateKeyBytes)
public static byte[] getPublicKeyBytes()
public static void setPublicKeyBytes(byte[]
aPublicKeyBytes)
public static byte[] getPrivateKeyBytes()
public static void setPrivateKeyBytes(byte[]
aPrivateKeyBytes)
public static String getPassword()
public static String
getENCRYPT_PRIVATEKEY_FILE()
 public static void decrypt()
 public static String decrypt(String
Archivo_Encriptado)
 public static void encrypt()
 public static void Encriptar()
 public static byte[] passwordDecrypt(char[]
password, byte[] ciphertext)
Proyecto de tesis
Manual de Técnico
17/03/2015
PAQUETE com.JAremoteDBA.ENCRIPTACION
CLASE
MÉTODOS
JF_AUTENTICACION
 private void initComponents()
 private void
JB_CERRARActionPerformed(java.awt.eve
nt.ActionEvent evt)
 private void
JB_AUTHActionPerformed(java.awt.event.
ActionEvent evt)
 private void
JB_INICIARActionPerformed(java.awt.even
t.ActionEvent evt)
 private void
JB_CONFIGURARActionPerformed(java.a
wt.event.ActionEvent evt)
 private void
JB_DETENERActionPerformed(java.awt.ev
ent.ActionEvent evt)
 private void
JCB_CAMBIAR_CLAVEActionPerformed(j
ava.awt.event.ActionEvent evt)
 private void
JMI_VER_CONFIGActionPerformed(java.a
wt.event.ActionEvent evt)
 private void
JMI_INICIARActionPerformed(java.awt.eve
nt.ActionEvent evt)
 private void
JMI_DETENERActionPerformed(java.awt.e
vent.ActionEvent evt)
 private void
JMI_SALIRActionPerformed(java.awt.event
.ActionEvent evt)
 private void
JB_AUTHKeyPressed(java.awt.event.KeyEv
ent evt)
 private void
Proyecto de tesis
Manual de Técnico
17/03/2015
JP_CONTRASEÑAKeyPressed(java.awt.eve
nt.KeyEvent evt)
 public void run()
 public javax.swing.JButton
getJB_INICIAR()
 public javax.swing.JButton
getJB_CONFIGURAR()
 public javax.swing.JButton
getJB_DETENER()
 public javax.swing.JCheckBox
getJCB_CAMBIAR_CLAVE()
 public javax.swing.JMenuItem
getJMI_INICIAR()
 public javax.swing.JMenuItem
getJMI_VER_CONFIG()



PRINCIPAL




CAMBIO_CLAVE



private void initComponents()
private void
jB_AÑADIRBASEActionPerformed(java.aw
t.event.ActionEvent evt)
private void
jB_BORRARBASEActionPerformed(java.a
wt.event.ActionEvent evt)
private void
JB_GUARDARActionPerformed(java.awt.ev
ent.ActionEvent evt)
private void
JB_CERRARActionPerformed(java.awt.even
t.ActionEvent evt)
protected void cargar_datos()
public javax.swing.JComboBox
getjCB_DATABASE()
private void initComponents()
private void
JB_CANCELAR_PASSActionPerformed(jav
a.awt.event.ActionEvent evt)
private void
JB_ACEPTAR_PASSActionPerformed(java.
awt.event.ActionEvent evt)
Proyecto de tesis
Manual de Técnico




Datos_properties

Bandera
Cargar_Datos_Properties
Control_Expiración_Clave
Verificar_Conexion_Internet
private void
JCHB_EXPIRACIÓN_CLAVEItemStateCha
nged(java.awt.event.ItemEvent evt)
public javax.swing.JSpinner
getJS_PERIODO_EXPIRACIÓN()
private void initComponents()
private void
JB_CERRAR_VISORActionPerformed(java.
awt.event.ActionEvent evt)
public javax.swing.JTextArea
getJTA_VISOR_PROPERTIES()


public static boolean isContinuar()
public static void setContinuar(boolean
aContinuar)

public static void
cargar_properties(JTextArea area)




public String Obtener_Fecha_Actual()
public String Obtener_Hora_Actual()
public void Fecha_A_Expirar_Clave(int
num)
public boolean
Comprobar_Fecha_Exp_Clave()
public static void
fichero_fecha_vencimiento_clave(String
Fecha)
public static String getFe()

public static void Crear_Directorios()

public static int comprobar_conexion()


Directorios
17/03/2015
Proyecto de tesis
Manual de Técnico
17/03/2015
PAQUETE com.JAremoteDBA.util
CLASE
Archivo_Properties
Constantes_Archivo_Properties
MÉTODOS

public static String getString(String
key)
 public String
getMAIL_SERVER_USER()
 public String
getMAIL_SERVER_PASSWORD()
 public String
getMAIL_SERVER_OUTGOING()
 public String getINCOMING_PORT()
 public String getOUTGOING_PORT()
 public String getUSER()
 public String getPASS()
 public String getPATH_ARCHIVO()
 public String
getNOMBRE_ARCHIVO()
 public String getCANTIDAD_BASE()
 public String getNOMBRE_BAT()
 public String getPROTOCOL_IN()
 public String getCANT_CMD()
 public String getSCRIPT_BACKUP()
 public String getSCRIPT_RESTORE()
 public String getRESULT_RESTORE()
 public String getSERVER_NAME()
 public String getBACKUP_DB()
 public String getRESULT_BACKUP()
 public String getPROTOCOL_OUT()
 public String
getRESULTADO_SCRIPT()
 public String getDBA_MAIL()
 public String getDBA_MAIL_PASS()
 public String
getMAIL_SERVER_INCOMING()
 public String
getSCRIPT_ONLINEBASE()
 public String
Proyecto de tesis
Manual de Técnico
17/03/2015
getSCRIPT_OFFLINEBASE()
 public String getFECHA_ACTUAL()
 public void
setFECHA_ACTUAL(String
FECHA_ACTUAL)
 public String
getFECHA_EXP_CLAVE()
 public void
setFECHA_EXP_CLAVE(String
FECHA_EXP_CLAVE)
LLenar_Combo_Con_Base_Dato
s
public static String[] Llenar_Combo()
Proyecto de tesis
Manual de usuario
DbaRemoteApp
DESCRIPCIÓN DE PANTALLAS UTILIZADAS EN LA APLICACIÓN
Figura #1
Nombre de
Campo
Descripción del campo
CONTRASEÑA.
Contiene la contraseña del administrador.
La contraseña por default es: administrador.
ÁREA
PROCESOS:
Se mostrarán todos los eventos que se susciten una vez presionado
el botón INICIAR.
Nombre del
CheckBox
CAMBIAR
CONTRASEÑA:
Descripción
La opción se activará una vez se haya autenticado correctamente.
Abrirá una ventana para efectuar el cambio de contraseña.
Nombre del
Botón
Descripción del campo
AUTENTICARSE: Compara que la contraseña almacenada sea igual a la ingresada.
CERRAR:
Cierra la aplicación.
CONFIGURAR:
El botón se activará una vez se haya autenticado correctamente. Ésta
opción sirve para modificar el archivo de configuración del programa.
INICIAR:
DbaRemoteApp
El botón se activará una vez se haya autenticado correctamente.
Pone en marcha el proceso de identificación de correos del servidor
Página 1 de 7
Proyecto de tesis
Manual de usuario
DbaRemoteApp
de correo previamente configurado.
DETENER:
El botón se activará una vez se haya autenticado correctamente.
Detiene el proceso de identificación de correos del servidor de correo
previamente iniciado.
Figura #2
Nombre de
Campo
Descripción del campo
DIRECCIÓN
E_MAIL
Contendrá la Dirección de correo personal del D.B.A. desde la cual
enviará sus peticiones para que sean procesadas por la aplicación.
Ésta dirección debe de ser de uso exclusivo para la interacción con la
base de datos, es decir se debe crear una nueva dirección de correo.
PASSWORD
Contendrá la Clave de la dirección de correo del D.B.A. desde la cual
enviará sus peticiones para que sean procesadas por la aplicación.
USUARIO D.B.A
Contendrá el Nombre de usuario con la cual se autentica en el servidor
de base de datos.
PASSWORD
D.B.A
Contendrá la Clave de usuario con la cual se autentica en el servidor
de base de datos.
SERVIDOR DE
RECEPCIÓN
Contendrá el Nombre del Servidor pop3.
DbaRemoteApp
Página 2 de 7
Proyecto de tesis
Manual de usuario
DbaRemoteApp
SERVIDOR DE
ENVÍO
Contendrá el Nombre del Servidor smtp.
DIRECCIÓN DE
USUARIO
Contendrá la Dirección de correo del servidor de correos. Se debe
crear una dirección de correo nueva la cual receptará lo que el D.B.A
envíe desde su dirección de correo que ha sido creada para
interactuar con la aplicación.
Contendrá la Clave de correo del servidor de correos. La clave
PASSWORD
corresponderá a la nueva dirección de correo creada para la recepción
SERVIDOR MAIL de mensajes desde el correo del D.B.A. que ha sido creada para
interactuar con la aplicación.
PROTOCOLO
IN/MAIL
Contendrá el protocolo Pop3 que sirve para recepción de mensajes.
PROTOCOLO
OUT/MAIL
Contendrá el protocolo Smtp que sirve para el envío de mensajes.
PUERTO
IN/MAIL
Contendrá el puerto que sirve para recepción de mensajes.
PUERTO
OUT/MAIL
Contendrá el protocolo que sirve para el envío de mensajes.
NOMBRE DEL
SERVIDOR
Contendrá el NAME_SERVER del motor de base de datos.
NUEVA BASE
DE DATOS
Contendrá la nueva base de datos que sea ingresada por el usuario.
BORRAR BASE
DE DATOS
Contendrá la base de datos que será eliminada, cuyo nombre esté
almacenado en el listado de base de datos disponibles.
Nombre de
Botón
Descripción del botón
GUARDAR
Guarda los cambios en el archivo de configuración. Para que los cambios
tengan efecto se deberá salir completamente de la aplicación.
CANCELAR
Se cerrará la ventana sin guardar los cambios o alterar el archivo de
configuración.
DbaRemoteApp
Página 3 de 7
Proyecto de tesis
Manual de usuario
DbaRemoteApp
Figura #3
Nombre de Campo
Descripción del campo
INGRESE NUEVA
CONTRASEÑA
Contendrá la nueva contraseña ingresada por el D.B.A.
CONFIRME NUEVA
CONTRASEÑA
Contendrá la nueva contraseña que será comparada con
el campo superior.
Nombre del Botón
Descripción del Botón
ACEPTAR
Se almacenará la nueva clave.
CANCELAR
Se saldrá de la ventana.
DbaRemoteApp
Página 4 de 7
Proyecto de tesis
Manual de usuario
DbaRemoteApp
DESCRIPCIÓN DE LOS MENÚS
Figura #4
Menú
Programa
Descripción del campo
INICIAR
El menú se activará una vez se haya autenticado correctamente. Pone en
marcha el proceso de identificación de correos de la cuenta de correo
principal de donde se receptará los mensajes del D.B.A.
DETENER
El menú se activará una vez se haya autenticado correctamente. Detiene el
proceso de identificación de correos de la cuenta de correo principal de
donde se receptará los mensajes del D.B.A.
SALIR
Se saldrá por completo de la aplicación.
Figura #5
Menú Ver
ARCHIVO
CONFIGURACIÓN
DbaRemoteApp
Descripción del campo
Mostrará la ventana con los datos que contiene el archivo de
configuración.
Página 5 de 7
Proyecto de tesis
Manual de usuario
DbaRemoteApp
CUENTA
Figura #5.1
Nombre del
Campo
ÁREA DE TEXTO
Nombre del Botón
CERRAR
Descripción del Botón
Se visualizará el contenido del archivo de configuración con que
trabaja la aplicación.
Descripción del Botón
Al presionar éste botón la ventana actual se cerrará.
Figura #6
Menú
Ayuda
AYUDA
Descripción del campo
Mostrará la ayuda de la aplicación en donde se podrá solucionar los posibles
problemas del manejo de la aplicación.
DbaRemoteApp
Página 6 de 7
Proyecto de tesis
Manual de usuario
DbaRemoteApp
ICONOS UTILIZADOS EN LA APLICACIÓN
Autenticación del D.B.A.
Iniciar el proceso de análisis de correos.
Detiene el proceso de análisis de correos.
Añadir una base de datos al archivo de configuración.
Eliminar una base de datos del archivo de configuración.
Modificar el archivo de configuración.
Salir de la ventana o cerrar la aplicación.
Realiza lo solicitado según la ventana donde se encuentre.
DbaRemoteApp
Página 7 de 7