Backup y Restore Oracle

Como se realiza el Backupy el Restore

El Backkup y el restore  se hace con los comandos “imp” y “exp” en la linea de comandos.

si se va hacer un export de toda la base de datos se hace con el comando “exp” y las opciones full=y file=mi_archivo.dmp

ejemplo:

exp system/password_de_system  full=y file=mi_archivo.dmp

si se quiere importar ese archivo a una base de datos el comando es “imp”.

ejemplo:

imp system/password_de_system  full=y file=mi_archivo.dmp
cuando se coloca la opcion full=y eso significa q se va a traer todos los esquemas, tablas, indices, tablespaces, usuarios, grants, etc.

También se puede hacer con otras opciones mas especificas como indexes=N, tables(tabla1,tabla2,..) owner(usuario2,usuario2)

esos comandos se encuentran en la carpeta bin de oracle. si no se tienen en el sistema se deben colocar la ruta de la carpeta hasta el archivo.

 

Recomendaciones
Se recomienda que la base de datos donde se va hacer el restore (se va a montar el import) ya este creada con los usuarios, roles, grants y tablespaces para que no vaya a fallar.

El import intenta crear todo lo anterior, pero por ejemplo si intenta crear un tablespace con un datafile con ruta “d:/datafile.dbf” y en la maquina donde se va hacer el restore no existe la unidad “d:” tonces no puede crear el datafile y de ahi en adelante no puede crear el tablespaces ni las tablas etc..

para ver exactamente que parametros se pueden ejecutar se puede hacer “exp help=y” o “imp help=y”. Ya eso es dependiendo de lo que uno quiere exportar y/o importar.

SCRIPT

De manera rápida se puede realizar esto mediante un script de un nombre cualquiera como por ejemplo Backup.bat como el que les dejo a continuación:

@echo off
echo *** Generando Backup de la BD
echo %1
echo%2

exp userid=%1/%2 full=y buffer=4096 file=C:\bd\respaldo.dmp

las variables %1 y%2 hacen referencia al usuario y al password de la bd que vamos a respaldar, el campo fiel indica la ruta donde deseamos guardar el archivo y su nombre.

La forma de llamar dicho script seria buscar por consola o linea de comandos donde se encuentra ubicado el archivo Backup.bat, luego digitamos Backup.bat seguido del usuario y el password de la bd.

Así mismo les dejo el script de restore

@echo off
echo *** Generando Restore de la BD
echo %1
echo%2

imp userid=%1/%2  full=y file=C:\bd\respaldo.dmp

Y se ejecuta por linea de comandos tal y como se mencionó anteriormente.

Publicado en Tips Desarrollo de Software | Etiquetado | Deja un comentario

SQL SERVER 2008 R2 Overview

Acá les dejo a todos aquellos interesados en el tema de SQL SERVER 2008 r2 una serie de videos de Eduardo Castro Martinez – Microsoft SQL Server MVP. Son muy bueno videos instructivos los cuales pueden brindar una noción bien amplia para la toma de decisiones a futuros.

http://www.youtube.com/watch?v=Fftoi2M6AfE
http://www.youtube.com/watch?v=XExzHDRuUgQ
http://www.youtube.com/watch?v=oryl6lmvFlE
http://www.youtube.com/watch?v=95QMjhwvKyg
http://www.youtube.com/watch?v=OeJkCeEt1uI

 

Si quieren consultarlo del blog original pueden visitar el link:

http://universosql.blogspot.com/2009/12/sql-server-2008-r2-overview.html

Publicado en Tips Desarrollo de Software | Deja un comentario

Back up and Restore Sharepoint 2007

Procedimiento de Backup

Una vez que tengamos nuestra intranet/sitio web lista, generalmente en ambiente de desarrollo el siguiente paso es publicar hacia el servidor final o también llamado servidor de producción.

Para lo cual debemos hacer un respaldo completo de sitio, lo hacemos usando el comando stsadm, tal como se detalla a continuación:

cd C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN\
stsadm -o backup -url http://[URL a Respaldar] -filename backup.bak -overwrite

Estamos haciendo un respaldo hacia un archivo llamado backup.bak y se sobre-escribe en el caso de que el archivo ya exista. El respaldo se lo hace sobre el directorio antes mencionado (C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN\)

Procedimiento de Restore

Ya teniendo el respaldo lo llevamos hacia el servidor final o de producción y lo copiamos al mismo directorio donde se realizó el backup: C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN\ y ejecutamos los sigueintes comandos:

cd C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN\
stsadm -o restore -url http://[Url Final] -filename backup.bak -overwrite

Usando el mismo comando stsadm pero cambiamos los parámetros, hacemos referencia al archivo backup.bak y sobre-escribimos.

Este proceso puede tardar varios minutos dependiendo de la información a respaldar/restaurar. Con esto queda restaurado el archivo.

Publicado en Tips Desarrollo de Software | Deja un comentario

Back up and Restore SVN

Procedimiento de Backup

Supongamos que el repositorio se encuentra en  C:\SVN\MyProject. Se desea guardar su contenido en C:\tmp\MyProject.bak (realmente la extensión no importa). Para realizar el procedimiento deseado simplemente nos valemos de la herramienta svnadmin, la cual viene con el incluida Subversion.

Para realizar backup del repositorio, se debe hacer uso del command-line interpreter:               (Start -> Run -> cmd.exe) y executamos el comando:
svnadmin dump C:\SVN\MyProject > C:\tmp\MyProject.bak

 Esto guardra todas las revisiones en un archive de backup:

 

Procedimiento de Restore

Para realizar el procedimiento de restore del repositorio una vez creado el archivo dump de respaldo, primero se debe crear un nuevo repositorio (ejemplo: C:\SVN\MyProject2) que contendrá los datos que se desean restaurar. Cumpliendo lo anteriormente mencionado solo debemos digitar en el command-line interpreter svnadmin load C:\SVN\MyProject < C:\tmp\MyProject.bak

Esto restaurara los datos que contiene el archive dump de respaldo:

Se puede verificar su contenido utilizando la herramienta TortoiseSVN.

Referencias

  1. Ben Collins-Sussman, Brian W. Fitzpatrick, C. Michael Pilato. Subversion book: http://svnbook.red-bean.com/
  2. TortoiseSVN User Guide, which comes with TortoiseSVN.
  3. Charlie Calvert. Using Dump and Load to Backup up Subversion Repositories: http://www.codefez.com/Blogs/tabid/58/ctl/ArticleView/mid/404/articleId/180/Default.aspx
Publicado en Tips Desarrollo de Software | Deja un comentario

Instalación SQL Server 2008 R2

Instalación

Para instalar el SQL SERVER 2008 R2 debe cumplirse los siguientes prerequisitos:

  • Tener una maquina con un SO Windows.
  • Tener el sistema operativo actualizado a la fecha.

Una vez se cumplen los prerrequisitos se procede a utilizar el instalador en_sql_server_2008_r2_enterprise_x86_x64_ia64_dvd_520517 licenciado por la compañía.

Al iniciar el instalador nos encontramos con la siguiente pantalla

Seleccionamos la primera opcion que nos permite realizar la instalación de una nueva BD y seleccionar todos los servicios que deseamos activar al instalar el SQL SERVER. Despues se verficaran las reglas de instalación como muestra la siguiente pantalla:

Una vez terminada la verficación el wizard procede a solicitarnos el Product key, como la copia es legal solo debemos dar next.

Luego solo procedemos a dar next para que se instalen los archivos de soporte.

Una vez relizado esto se nos muestra la siguiente pantalla donde al final solo necesitamo dar next.

Dejamos seleccionada la primera opción tal y como se muestra en la siguiente imagen y luego damos next:

Aquí seleccionamos las opciones que deseamos instalar lo único que no es tan importante aquí de seleccionr es el SQL server book así que será lo único que no se instalará.

Procedemos a Dar next para seguir a la sección de Installation Rules, en la cual damos Next de nuevo.

En la siguiente pantalla procemos a relizar la configuración de la instancia del Server. Le colocmos el nombre que desemos, en este caso se le configura SQLSERVER2008

Al terminar damos clic en Next, de aquí se nos desplegara la pantalla que verifica el espacio necesario para la instalación tal y como muestra la siguiente imagen:

Damos clic en Next.

Procedemos a adicionar las configuraciones de seguridad del servidor, en el cual damos clic en el boton use the same account for all sql server services, seleccionamos Network. Luego, en la siguiente opcion damos clic en mix ingresamos  un password, y damos add current user.

Luego damos clic en next.

Luego damos clic en Next

Le damos clic en add current user y luego en next.

Posterior a esto damos clic en la primera opcion del configurador del reporting services

Por ultimo el sistema nos muestra la configuración que esta lista para instalar, si es correcta procedemos  dar clic en el boton Install, sino nos devolvemos hasta la parte que deseamos corregir.

Publicado en Tips Desarrollo de Software | Deja un comentario

Patrones de Diseño en aplicaciones Web con Java J2EE

A diario a través de nuestras actividades laborales, en especial en los roles de desarrollador, diseñador y arquitecto de software vamos acrecentando nuestras habilidades para resolver problemas que con el tiempo nos damos cuenta que no eran tan complejos como en primera instancia creíamos. Por cada problema que se nos presenta pensamos distintas formas de resolverlo, incluyendo soluciones exitosas que ya hemos usado anteriormente en problemas similares o que otros posiblemente ya hayan realizado para resolver lo mismo.

De esta manera nuestra experiencia a medida que pasa el tiempo se hace mayor y nuestra habilidad para encontrar soluciones mejores y adaptadas a las restricciones que nos plantea  un problema en específico crecen, pero en la mayoría de caso nunca documentamos estas soluciones para compartirlas con la compañía o con nuestros compañeros de trabajo. Si documentamos esta solución, podemos reutilizarla y compartir lo que hemos aprendido para resolver de la mejor manera un problema específico.

Los patrones del diseño son herramientas que se nos facilitan a los desarrolladores y a los diseñadores a través de la documentación de soluciones exitosas a problemas comunes que se repiten constantemente. Hay diversas maneras de implementar patrones de diseño. Los detalles de estas implementaciones son llamadas estrategias.

En este artículo, guiado gracias  al core de J22E y a la extensa documentación disponible en la red veremos algunos patrones de diseño para las aplicaciones basadas en J2EE.

Breve historia de los patrones de diseño:

Un patrón de diseño es una abstracción en alto nivel de una solución específica exitosa para resolver un determinado problema.  Existen muchos tipos de patrones que abarcan las distintas etapas del desarrollo; desde el análisis hasta el diseño y desde la arquitectura hasta la implementación.

Con base en lo anterior, los diseñadores de software extendieron la idea de patrones de diseño al proceso de desarrollo de software. Debido a las notorias características que proporcionaron los lenguajes orientados a objetos (como herencia, abstracción y encapsulamiento) les permitieron relacionar entidades de los lenguajes de programación a entidades del mundo real fácilmente, los diseñadores empezaron a aplicar esas características para crear soluciones comunes y reutilizables para problemas frecuentes que exhibían patrones similares.

Alrededor de los por los años 1994, que apareció el libro “Design Patterns: Elements of Reusable Object Oriented Sofware” escrito por  Gang of Four (GoF, que en español es la pandilla de los cuatro) formada por Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides. En dicha obra se recopilaron y documentaron 23 patrones de diseño aplicados usualmente por expertos diseñadores de software orientado a objetos. Desde luego que GoFno son los inventores ni los únicos involucrados, pero en principio fuerón ellos los primeros en impulsar la divulgación y la efectividad del uso de patrones de diseño.

Gracias a lo anteriormente mencionado podríamos hablar de una breve clasificación de los patrones en diferentes categorías de acuerdo a su uso o propósito. El grupo de GoF clasificaron los patrones en 3 grandes categorías: creacionales, estructurales y de comportamiento.

  • Creacionales: Patrones creacionales tratan con las formas de crear instancias de objetos. El objetivo de estos patrones es de abstraer el proceso de instanciación y ocultar los detalles de cómo los objetos son creados o inicializados.
  • Estructurales: Los patrones estructurales describen como las clases y objetos pueden ser combinados para formar grandes estructuras y proporcionar nuevas funcionalidades. Estos objetos adicionados pueden ser incluso objetos simples u objetos compuestos.
  • Comportamiento: Los patrones de comportamiento nos ayudan a definir la comunicación e iteración entre los objetos de un sistema. El propósito de este patrón es reducir el acoplamiento entre los objetos.

En el segundo instancia, decidieron realizar una clasificación de los patrones en 2 ámbitos: Clases y objetos. Es así que, tenemos encontramos 6 tipos de patrones a partir de esta clasificación que son:

 

 

Creacionales
  • Creacional de la Clase

Los patrones creacionales de Clases usan la herencia como un mecanismo para lograr la instanciación de la Clase. Por ejemplo el método Factoría.

  • Creacional del objeto

Los patrones creacionales de objetos son más escalables y dinámicos comparados de los patrones creacionales de Clases. Por ejemplo la Factoría abstracta y el patrón Singleton.

Estructurales
  • Estructural de la Clase

Los patrones estructurales de Clases usan la herencia para proporcionar interfaces más útiles combinando la funcionalidad de múltiples Clases. Por ejemplo el patrón Adaptador (Clase).

  • Estructural de Objetos

Los patrones estructurales de objetos crean objetos complejos agregando objetos individuales para construir grandes estructuras. La composición de l patrón estructural del objeto puede ser cambiado en tiempo de ejecución, el cual nos da flexibilidad adicional sobre los patrones estructurales de Clases. Por ejemplo el Adaptador (Objeto), Facade, Bridge, Composite.

Comportamiento
  • Comportamiento de Clase

Los patrones de comportamiento de Clases usan la herencia para distribuir el comportamiento entre Clases. Por ejemplo Interpreter.

  • Comportamiento de Objeto

Los patrones de comportamiento de objetos nos permite analizar los patrones de comunicación entre objetos interconectados, como objetos incluidos en un objeto complejo. Ejemplo Iterator, Observer, Visitor.

Patrones J2EE

Con la aparición del J2EE, todo un nuevo abanico de posibilidades se abre frente a nuestros ojos y podemos escoger de ahí una amplia gama de patrones de diseño. Debido a que J2EE es una arquitectura que tiene embebida en si misma otras arquitecturas como son por mencionar algunas de las más conocidas:

  • servlets
  • JavaServer Pages
  • Enterprise JavaBeans

Este conjunto de patrones específicos serán utilizados para diferentes soluciones o aplicaciones empresariales.

Según se referencia en el libro “J2EE PATTERNS Best Practices and Design Strategies”, existen 5 capas en la arquitectura J2EE:

  • Cliente
  • Presentación
  • Negocios
  • Integración
  • Recurso

El libro explica 15 patrones J2EE que están divididos en 3 de las capas: presentación, negocios e integración.

Catálogo de patrones J2EE

Tomado del link http://java.ciberaula.com/articulo/diseno_patrones_j2ee

Capa de Presentación

Decorating Filter / Intercepting Filter Un objeto que está entre el cliente y los componentes Web. Este procesa las peticiones y las respuestas.
Front Controller/ Front Component Un objeto que acepta todos los requerimientos de un cliente y los direcciona a manejadores apropiados. El patrón Front Controller podría dividir la funcionalidad en 2 diferentes objetos: el Front Controller y el Dispatcher. En ese caso, El Front Controller acepta todos los requerimientos de un cliente y realiza la autenticación, y el Dispatcher direcciona los requerimientos a manejadores apropiada.
View Helper Un objeto helper que encapsula la lógica de acceso a datos en beneficio de los componentes de la presentación. Por ejemplo, los JavaBeans pueden ser usados como patrón View Helper para las páginas JSP.
Composite view Un objeto vista que está compuesto de otros objetos vista. Por ejemplo, una página JSP que incluye otras páginas JSP y HTML usando la directiva include o el action include es un patrón Composite View.
Service To Worker Es como el patrón de diseño MVC con el Controlador actuando como Front Controller pero con una cosa importante: aquí el Dispatcher (el cual es parte del Front Controller) usa View Helpers a gran escala y ayuda en el manejo de la vista.
Dispatcher View Es como el patrón de diseño MVC con el controlador actuando como Front Controller pero con un asunto importante: aquí el Dispatcher (el cual es parte del Front Controller) no usa View Helpers y realiza muy poco trabajo en el manejo de la vista. El manejo de la vista es manejado por los mismos componentes de la Vista.

Capa de Negocios

Business Delegate Un objeto que reside en la capa de presentación y en beneficio de los otros componentes de la capa de presentación llama a métodos remotos en los objetos de la capa de negocios.
Value Object/ Data Transfer Object/ Replicate Object Un objeto serializable para la transferencia de datos sobre lar red.
Session Façade/ Session Entity Façade/ Distributed Façade El uso de un bean de sesion como una fachada (facade) para encapsular la complejidad de las interacciones entre los objetos de negocio y participantes en un flujo de trabajo. El Session Façade maneja los objetos de negocio y proporciona un servicio de acceso uniforme a los clientes.
Aggregate Entity Un bean entidad que es construido o es agregado a otros beans de entidad.
Value Object Assembler Un objeto que reside en la capa de negocios y crea Value Objets cuando es requerido.
Value List Handler/ Page-by-Page Iterator/ Paged List Es un objeto que maneja la ejecución de consultas SQL, caché y procesamiento del resultado. Usualmente implementado como beans de sesión.
Service Locator Consiste en utilizar un objeto Service Locutor para abstraer toda la utilización JNDI y para ocultar las complejidades de la creación del contexto inicial, de búsqueda de objetos home EJB y recreación de objetos EJB. Varios clientes pueden reutilizar el objeto Service Locutor para reducir la complejidad del código, proporcionando un punto de control.

Capa de Integración

Data Access Object Service Activator Consiste en utilizar un objeto de acceso a datos para abstraer y encapsular todos los accesos a la fuente de datos. El DAO maneja la conexión con la fuente de datos para obtener y almacenar datos.
Service Activator Se utiliza para recibir peticiones y mensajes asíncronos de los clientes. Cuando se recibe un mensaje, el Service Activator localiza e invoca a los métodos de los componentes de negocio necesarios para cumplir la petición de forma asíncrona.

Se recomienda darle un vistazo al siguiente diagrama encontrado en la página de SUN para precisar más en detalle lo mencionado en este artículo.

http://java.sun.com/blueprints/corej2eepatterns/Patterns/index.html

 

Este articulo fue realizado en base a la información encontrada en:

http://java.ciberaula.com/articulo/diseno_patrones_j2ee

Las tablas de clasificación fueron conservados textualmente para preservar el contenido en general del articulo.

Publicado en Ante-proyecto Sistema de recaudo remoto Epayment | Deja un comentario

Arquitectura en Capas

La arquitectura en capas es una opción de diseño de software que evita la alta cohesión, permitiendo asi que una modificación una corrección tenga minimo impacto sobre una aplicación en desarrollo.

Una opción de este tipo de arquitectura es la planteada en mi ante-proyecto de grado, la cual está compuesta por 3 capas que son:

  • Capa de presentación: Es la capa más alta y la única visible por el usuario, encargada de la interacción con el mismo. Esta                                                                                                                                      desarrollada en IceFaces 1.8.2.
  • Capa lógica: contiene toda la lógica de negocios y los EJBs.
  • Capa de acceso datos: contiene las clases de acceso a datos que utilizan al hibernate para la manipulación de la información.

La conexión entre la capa de presentación y la de lógica la dan las clases controladoras. Estas clases lo único que hacen es proveer el paso de la información desde la parte grafica hasta la lógica para que en ella se manipule la información de acuerdo a lo estipulado en los CU y retorne de nuevo a la parte grafica lo que debe ser mostrado al usuario.

La conexión entre la clase de lógica y las de acceso a datos están provistas por los EJBs quienes llaman a los DAOs para poder manipular la información, para esto nos valemos del patrón manager que trata de simplificar la interfaz entre dos sistemas o componentes de software ocultando un sistema complejo detrás de una clase que hace las veces de fachada. Esto se realiza con el fin de evitar la alta cohesión, al mantener un bajo acoplamiento podemos aislar los cambios entre componentes logrando que un cambio no afecte a lo otro. Por ejemplo si se cambia un archivo de interfaz de conexión el resto de la aplicación no le debe afectar en lo más mínimo y por eso no lo conoce.

El patrón DAO Según  Deepack Alur, Jhon Crupi Y Dan Malk., en el libro CORE J2EE PATTERNS publicado en Junio DE 2003 se define como  “El Data Access Object o modelo de objetos de acceso a datos proporciona acoplamiento flexible entre la capa de negocio y la de resource para el enterprise beans que utilizan la persistencia administrada por beans. Los Objeto de Acceso a Datos intercepta y sirve a todos los servicios de acceso de la capa resource, haciendo que los detalles de implementación de la capa resource sean transparentes para los clientes. Los datos de la capa resource puede residir en los sistemas de base de datos, sistemas propietarios, otros sistemas y/o en servicios externos. Mediante el uso de este patrón, se puede construir aplicaciones que son más flexibles y portátiles.”

Descripción arq en capas

Descripción arquitectura en capas

Para precisar más a fondo la arquitectura se plantea el siguiente diagrama de componentes:

Diagramas de componentes Arq 3 capas

Diagramas de componentes Arq 3 capas

Publicado en Ante-proyecto Sistema de recaudo remoto Epayment | Deja un comentario