manuales:tivoli_tsm:manual_de_manejo_de_backups_con_tivoli
Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
manuales:tivoli_tsm:manual_de_manejo_de_backups_con_tivoli [2015/02/03 18:31] – cayu | manuales:tivoli_tsm:manual_de_manejo_de_backups_con_tivoli [2015/05/04 19:53] (actual) – cayu | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
+ | ====== Manual de manejo de respaldos con Tivoli ====== | ||
+ | {{ : | ||
+ | Tivoli Storage Manager (TSM) o más recientemente llamado IBM Tivoli Storage Manager (ITSM) es un software centralizado y basado en políticas que permite la administración de los recursos de almacenamiento. | ||
+ | |||
+ | Este programa es parte de la serie IBM TotalStorage. Previamente se conocía como ADSTAR Distributed Storage Manager (ADSM). | ||
+ | |||
+ | ====== Implementación tipica de TSM ====== | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ====== Instalación del Servidor Tivoli TSM ====== | ||
+ | ===== Desde paquetes ===== | ||
+ | Para instalar sobre Debian, deberemos convertir los paquetes **RPM** a **DEB** por medio de la herramienta **alien**. | ||
+ | |||
+ | < | ||
+ | tivsm-license_5.4.0-1_i386.deb | ||
+ | tivsm-server_5.4.0-1_i386.deb | ||
+ | tivsm-tsmscsi_5.4.0-1_i386.deb | ||
+ | </ | ||
+ | |||
+ | y los archivo del cliente de Tivoli TSM para poder administrarlo desde la consola | ||
+ | |||
+ | < | ||
+ | tivsm-api_5.4.2-1_i386.deb | ||
+ | tivsm-ba_5.4.2-1_i386.deb | ||
+ | tivsm-msg.es-es_5.4.2-1_i386.deb | ||
+ | </ | ||
+ | ===== Creación de los archivos de la base de datos ===== | ||
+ | |||
+ | Generación de los archivos : | ||
+ | |||
+ | Un tamaño recomendable para la base de datos es de 5GB y para el log de 2GB | ||
+ | < | ||
+ | dd if=/ | ||
+ | dd if=/ | ||
+ | </ | ||
+ | |||
+ | Debemos formatearlos a TSM | ||
+ | < | ||
+ | ./dsmserv format 1 / | ||
+ | |||
+ | Tivoli Storage Manager for Linux/i386 | ||
+ | Version 5, Release 4, Level 0.0 | ||
+ | |||
+ | Licensed Materials - Property of IBM | ||
+ | |||
+ | (C) Copyright IBM Corporation 1990, 2007. | ||
+ | All rights reserved. | ||
+ | U.S. Government Users Restricted Rights - Use, duplication or disclosure | ||
+ | restricted by GSA ADP Schedule Contract with IBM Corporation. | ||
+ | |||
+ | ANR7800I DSMSERV generated at 16:19:56 on Dec 7 2006. | ||
+ | ANR7801I Subsystem process ID is 1916. | ||
+ | ANR0900I Processing options file dsmserv.opt. | ||
+ | ANR4726I The ICC support module has been loaded. | ||
+ | ANR0300I Recovery log format started; assigned capacity 1952 megabytes. | ||
+ | ANR0301I Recovery log format in progress; 4 megabytes of 1952. | ||
+ | ANR0301I Recovery log format in progress; 8 megabytes of 1952. | ||
+ | ANR0301I Recovery log format in progress; 12 megabytes of 1952. | ||
+ | ANR0301I Recovery log format in progress; 16 megabytes of 1952. | ||
+ | ANR0301I Recovery log format in progress; 20 megabytes of 1952. | ||
+ | ANR0301I Recovery log format in progress; 24 megabytes of 1952. | ||
+ | ANR0301I Recovery log format in progress; 28 megabytes of 1952. | ||
+ | ...... | ||
+ | </ | ||
+ | |||
+ | Si al ejecutar el comando **dsmserv** obtenemos un mensaje como este : | ||
+ | < | ||
+ | ANR0000E Unable to open language en_US for message formatting. | ||
+ | ANR0000E Unable to open message text file for message formatting. | ||
+ | </ | ||
+ | |||
+ | Debemos copiar el archivo **dsmen_US.txt** a **dsmen_us.txt**. | ||
+ | |||
+ | |||
+ | Debemos configurarlos en **/ | ||
+ | < | ||
+ | / | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | ==== Backup de la base ==== | ||
+ | |||
+ | Podemos ir tomando backups diarios de la base de datos, para ello necesitamos generar una clase de dispositivo. | ||
+ | |||
+ | Ejemplo si es sobre un servidor TSM sobre Windows o Linux : | ||
+ | < | ||
+ | DEFINE DEVCLASS FILE DEVTYPE=FILE FORMAT=DRIVE DIRECTORY=/ | ||
+ | DEFINE DEVCLASS FILE DEVTYPE=FILE FORMAT=DRIVE DIRECTORY=E: | ||
+ | </ | ||
+ | |||
+ | Ejemplo para una base pequeña : | ||
+ | **backup db t=f dev=file wait=yes** | ||
+ | < | ||
+ | ANR0984I Process 4 for DATABASE BACKUP started in the FOREGROUND at 11:59:24. | ||
+ | ANR2280I Full database backup started as process 4. | ||
+ | ANR4554I Backed up 67712 of 135502 database pages. | ||
+ | ANR4554I Backed up 135424 of 135502 database pages. | ||
+ | ANR4550I Full database backup (process 4) complete, 135502 pages copied. | ||
+ | ANR0985I Process 4 for DATABASE BACKUP running in the FOREGROUND completed with completion state SUCCESS at 11:59: | ||
+ | </ | ||
+ | |||
+ | Tomamos registros de otros historicos que nos interesan : | ||
+ | < | ||
+ | backup volhist file=E: | ||
+ | backup devconfig file=E: | ||
+ | </ | ||
+ | ===== Configuración del servicio de backup ===== | ||
+ | Debemos configurar el nombre del servidor : | ||
+ | < | ||
+ | Set SERVername SERVERTSM | ||
+ | </ | ||
+ | |||
+ | |||
+ | Ver las opciones tomadas del archivo dsmserv.opt | ||
+ | < | ||
+ | tsm: SERVER1> | ||
+ | |||
+ | Server Option | ||
+ | ----------------- | ||
+ | CommTimeOut | ||
+ | BufPoolSize | ||
+ | DateFormat | ||
+ | NumberFormat | ||
+ | Language | ||
+ | MaxSessions | ||
+ | ExpQuiet | ||
+ | ReportRetrieve | ||
+ | MirrorRead DB | ||
+ | MirrorWrite DB Sequential | ||
+ | TxnGroupMax | ||
+ | MoveSizeThresh | ||
+ | DisableScheds | ||
+ | AuditStorage | ||
+ | SELFTUNEBUFpools- | ||
+ | | ||
+ | DBPAGESHADOWFile | ||
+ | QueryAuth | ||
+ | nt | ||
+ | ThroughPutDataTh- | ||
+ | | ||
+ | NOPREEMPT | ||
+ | TEC UTF8 Events | ||
+ | NORETRIEVEDATE | ||
+ | DNSLOOKUP | ||
+ | NDMPPortRange | ||
+ | TCPPort | ||
+ | HTTPPort | ||
+ | TCPBufsize | ||
+ | CommMethod | ||
+ | MsgInterval | ||
+ | FileExit | ||
+ | UserExit | ||
+ | AcsTimeoutX | ||
+ | AcsQuickInit | ||
+ | SNMPSubagentHost | ||
+ | TECHost | ||
+ | UNIQUETECevents | ||
+ | ts | ||
+ | SHAREDLIBIDLE | ||
+ | CheckTrailerOnFr- | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Debemos crear un usuario administrador para poder conectarnos al servicio por red, para esto debemo arrancar manualmente el servidor y registrar el usuario por ejemplo admin con el passwor ' | ||
+ | |||
+ | Registramos el usuario | ||
+ | * **register admin admin admin** | ||
+ | |||
+ | Le otorgamos permisos de administración al mismo | ||
+ | * **GRANT AUTHORITY admin classes=system** | ||
+ | |||
+ | |||
+ | < | ||
+ | root@localhost:/ | ||
+ | |||
+ | Tivoli Storage Manager for Linux/i386 | ||
+ | Version 5, Release 4, Level 0.0 | ||
+ | |||
+ | Licensed Materials - Property of IBM | ||
+ | |||
+ | (C) Copyright IBM Corporation 1990, 2007. | ||
+ | All rights reserved. | ||
+ | U.S. Government Users Restricted Rights - Use, duplication or disclosure | ||
+ | restricted by GSA ADP Schedule Contract with IBM Corporation. | ||
+ | |||
+ | ANR7800I DSMSERV generated at 16:19:56 on Dec 7 2006. | ||
+ | ANR7801I Subsystem process ID is 2436. | ||
+ | ANR0900I Processing options file dsmserv.opt. | ||
+ | ANR4726I The ICC support module has been loaded. | ||
+ | ANR0990I Server restart-recovery in progress. | ||
+ | ANR0200I Recovery log assigned capacity is 1952 megabytes. | ||
+ | ANR0201I Database assigned capacity is 4880 megabytes. | ||
+ | ANR0306I Recovery log volume mount in progress. | ||
+ | ANR0353I Recovery log analysis pass in progress. | ||
+ | ANR0354I Recovery log redo pass in progress. | ||
+ | ANR0355I Recovery log undo pass in progress. | ||
+ | ANR0352I Transaction recovery complete. | ||
+ | ANR1635I The server machine GUID, fd.fa.36.ba.7c.3d.11.e2.87.5c.00.18.fe.75.50.26, | ||
+ | ANR2100I Activity log process has started. | ||
+ | ANR4726I The NAS-NDMP support module has been loaded. | ||
+ | ANR1794W TSM SAN discovery is disabled by options. | ||
+ | ANR0984I Process 1 for EXPIRATION started in the BACKGROUND at 18:17:40. | ||
+ | ANR0811I Inventory client file expiration started as process 1. | ||
+ | ANR2803I License manager started. | ||
+ | ANR8200I TCP/IP driver ready for connection with clients on port 1500. | ||
+ | ANR8190I HTTP driver ready for connection with clients on port 1580. | ||
+ | ANR2560I Schedule manager started. | ||
+ | ANR4747W The web administrative interface is no longer supported. Begin using the Integrated Solutions Console instead. | ||
+ | ANR0993I Server initialization complete. | ||
+ | ANR0916I TIVOLI STORAGE MANAGER distributed by Tivoli is now ready for use. | ||
+ | ANR0985I Process 1 for EXPIRATION running in the BACKGROUND completed with completion state SUCCESS at 18:17:40. | ||
+ | ANR2841W Server is NOT IN COMPLIANCE with license terms. | ||
+ | TSM: | ||
+ | register admin admin admin | ||
+ | ANR2017I Administrator SERVER_CONSOLE issued command: REGISTER ADMIN admin ?***? | ||
+ | ANR2068I Administrator ADMIN registered. | ||
+ | TSM: | ||
+ | GRANT AUTHORITY admin classes=system | ||
+ | ANR2017I Administrator SERVER_CONSOLE issued command: GRANT AUTHORITY admin classes=system | ||
+ | ANR2076I System privilege granted to administrator ADMIN. | ||
+ | TSM: | ||
+ | QUERY ADMIN | ||
+ | ANR2017I Administrator SERVER_CONSOLE issued command: QUERY ADMIN | ||
+ | |||
+ | Administrator | ||
+ | Name Last Access | ||
+ | -------------- | ||
+ | ADMIN <1 < | ||
+ | ADMIN_CENTER | ||
+ | SERVER_CONSOLE | ||
+ | </ | ||
+ | |||
+ | Configuración de Storage Pools | ||
+ | |||
+ | < | ||
+ | UPDATE STGPOOL ARCHIVEPOOL NEXTSTGPOOL=SPACEMGPOOL | ||
+ | UPDATE STGPOOL BACKUPPOOL NEXTSTGPOOL=SPACEMGPOOL | ||
+ | |||
+ | tsm: SERVER1> | ||
+ | |||
+ | Storage | ||
+ | Pool Name Class Name | ||
+ | | ||
+ | ----------- | ||
+ | ARCHIVEPOOL | ||
+ | BACKUPPOOL | ||
+ | SPACEMGPOOL | ||
+ | |||
+ | </ | ||
+ | |||
+ | Debemos definir un volumen para el pool de disco, por ejemplo de 50GB | ||
+ | < | ||
+ | DEFINE VOLUME SPACEMGPOOL / | ||
+ | </ | ||
+ | |||
+ | ===== Configurando dispositivo de Tape ===== | ||
+ | {{ : | ||
+ | |||
+ | Debemos instalar y compilar el paquete lin_tape "Linux – IBM LinTape driver" | ||
+ | |||
+ | Obtendremos dos paquetes RPM | ||
+ | * lin_tape-1.61.0-1.src.rpm <= Módulo del Kernel | ||
+ | * lin_taped-1.61.0-rhel5.i386.rpm <= Servicio | ||
+ | |||
+ | Debemos compilar el codigo fuente del módulo del Kernel y luego instalar el servicio. | ||
+ | |||
+ | Con lo cual obtendremos estos dispositivos especiales en **/dev**: | ||
+ | < | ||
+ | IBMtape | ||
+ | IBMtape0 | ||
+ | IBMtape0n | ||
+ | </ | ||
+ | |||
+ | **/ | ||
+ | < | ||
+ | lin_tape version: 1.76.0 | ||
+ | lin_tape major number: 250 | ||
+ | Attached Changer Devices: | ||
+ | Number | ||
+ | lin_tape version: 1.76.0 | ||
+ | lin_tape major number: 250 | ||
+ | Attached Tape Devices: | ||
+ | Number | ||
+ | 0 | ||
+ | </ | ||
+ | |||
+ | Luego de esto debemos ejecutar **/ | ||
+ | |||
+ | |||
+ | |||
+ | Definiendo la libreria : | ||
+ | < | ||
+ | DEFINE LIBRARY TAPE_LIBR LIBTYPE=MANUAL | ||
+ | </ | ||
+ | Definiendo el drive : | ||
+ | < | ||
+ | DEFINE DRIVE TAPE_LIBR TAPE_DRIVE ONLINE=YES | ||
+ | </ | ||
+ | Definiendo la clase de dispositivo : | ||
+ | < | ||
+ | DEFINE DEVCLASS TAPE_DEVICE_CLASS DEVTYPE=LTO FORMAT=DRIVE LIBRARY=TAPE_LIBR MOUNTLIMIT=1 MOUNTRETENTION=60 PREFIX=ADSM MOUNTWAIT=60 | ||
+ | </ | ||
+ | Definiendo el path : | ||
+ | < | ||
+ | DEFINE PATH TSERVER1 TAPE_DRIVE SRCTYPE=SERVER DESTTYPE=DRIVE LIBRARY=TAPE_LIBR DEVICE=/ | ||
+ | </ | ||
+ | Definimos un pool de cintas : | ||
+ | < | ||
+ | DEFINE STGPOOL BACKUP TAPE_DEVICE_CLASS maxscratch=999 | ||
+ | </ | ||
+ | Definimos como poolde migracion del pool de disco al pool de cintas : | ||
+ | < | ||
+ | UPDATE STGPOOL SPACEMGPOOL nextstgpool=BACKUP | ||
+ | </ | ||
+ | < | ||
+ | ACTIVATE POLICYSET STANDARD STANDARD | ||
+ | </ | ||
+ | ===== Configurando dispositivo de VTL - Data Domain ===== | ||
+ | |||
+ | Para poder utilizar esta configuración deberemos contar con la version de Tivoli TSM 5.5.7 o superior y dar de alta la configuación en el Data Domain | ||
+ | |||
+ | Ejemplo de definición para una emulación VTL tipo IBM 3584 con cuatros drives LTO4 | ||
+ | |||
+ | < | ||
+ | DEFINE LIBRARY lb0.0.0.6 libtype=scsi | ||
+ | DEFINE PATH TSM1 lb0.0.0.6 srctype=server desttype=library device=lb0.0.0.6 | ||
+ | DEFINE DRIVE lb0.0.0.6 mt0.1.0.6 element=257 | ||
+ | DEFINE PATH TSM1 mt0.1.0.6 srctype=server desttype=drive device=mt0.1.0.6 library=lb0.0.0.6 | ||
+ | DEFINE DRIVE lb0.0.0.6 mt0.2.0.6 element=258 | ||
+ | DEFINE PATH TSM1 mt0.2.0.6 srctype=server desttype=drive device=mt0.2.0.6 library=lb0.0.0.6 | ||
+ | DEFINE DRIVE lb0.0.0.6 mt0.3.0.6 element=259 | ||
+ | DEFINE PATH TSM1 mt0.3.0.6 srctype=server desttype=drive device=mt0.3.0.6 library=lb0.0.0.6 | ||
+ | DEFINE DRIVE lb0.0.0.6 mt0.4.0.6 element=260 | ||
+ | DEFINE PATH TSM1 mt0.4.0.6 srctype=server desttype=drive device=mt0.4.0.6 library=lb0.0.0.6 | ||
+ | DEFINE DEVCLASS LTOCLASS2 devtype=LTO library=lb0.0.0.6 format=ULTRIUM4 | ||
+ | DEFINE STGPOOL LTOPOOL2 LTOCLASS2 maxscratch=500 dataformat=NATIVE | ||
+ | </ | ||
+ | |||
+ | Luego podemos etiquetar las cintas presentes en la VTL : | ||
+ | < | ||
+ | LABEL LIBVolume LB0.0.0.3 SEARCH=yes LABELSource=b checkin=priv overwrite=no | ||
+ | </ | ||
+ | ===== Configuraciones extras ===== | ||
+ | |||
+ | ./dsmserv runfile / | ||
+ | |||
+ | ====== Registro de un nodo cliente ====== | ||
+ | |||
+ | < | ||
+ | register node nodo contraseña | ||
+ | </ | ||
+ | ===== Tipos de Backups ===== | ||
+ | Esquema de como se organizan los datos de Backup del nodo | ||
+ | |||
+ | {{: | ||
+ | |||
+ | ==== Backups Programados ==== | ||
+ | |||
+ | === Compresión del lado del cliente === | ||
+ | EL uso de la compresión en el cliente de Tivoli Storage Manager puede ahorrar espacio de almacenamiento para las copias de seguridad. La compresión ocurre en el cliente antes de ser enviado el respaldo al servidor de TSM con lo cual también ahorra ancho de banda en la red. El algoritmo de compresión hace uso adicional de CPU y puede causar que la copia de seguridad tarde un poco más. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | === Clientes de Tivoli Storage Manager en sistemas UNIX === | ||
+ | == Problemas comúnes con el cliente Tivoli TSM == | ||
+ | |||
+ | El cliente Java arroja este error : | ||
+ | < | ||
+ | ANS2600S Browser trying to establish connection to client: received | ||
+ | socket exception: java.net.ConnectException: | ||
+ | </ | ||
+ | Debemos ejecutar **/ | ||
+ | |||
+ | |||
+ | === Clientes de Tivoli Storage Manager en sistemas Windows === | ||
+ | http:// | ||
+ | |||
+ | http:// | ||
+ | |||
+ | ==== Backups TDP ==== | ||
+ | === BACKINT === | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Las herramientas de administración de bases de datos de SAP ofrecen todas las funciones necesarias para administrar una base de datos. Las herramientas SAP DBA BRTOOLS para Oracle (BRBACKUP, BRARCHIVE, BRRESTORE) ofrecen funciones de copia de seguridad en línea o fuera de línea, parcial o completa de espacios de tabla (mediante BRBACKUP), copia de seguridad de archivos de registro redolog archivados (mediante BRARCHIVE) y funciones de restauración/ | ||
+ | |||
+ | |||
+ | Las herramientas de mySAP.com (programas de utilidad de SAPDBA) utilizan tablas de la base de datos Oracle y datos del sistema para registrar el estado de las copias de seguridad de los archivos de datos y de las copias de seguridad de los archivos de registro. Esta información permitirá a mySAP.com restaurar automáticamente los archivos de datos correctos y sus archivos específicos de registro de transacciones de bases de datos (archivos de registro redolog), si es necesario. Los archivos de datos residen en la base de datos de Oracle (Instancia de Oracle). Data Protection for mySAP.com se ejecuta como un proceso independiente de la base de datos. Recibe los datos a través de la interfaz de Backint y los guarda en Tivoli Storage Manager. | ||
+ | |||
+ | Una ejecución de copia de seguridad se realizará del siguiente modo (consulte los números incluidos en un círculo): | ||
+ | |||
+ | - El programa de utilidad de SAPDBA BRBACKUP informa a Oracle sobre los datos de los que hay que hacer copia de seguridad y coloca la base de datos en el estado de copia de seguridad adecuado ('en línea' | ||
+ | - BRBACKUP llama a DP for mySAP.com a través de la interfaz de BACKINT con una lista de todos los archivos de los que hay que hacer copia de seguridad. | ||
+ | - DP for mySAP.com (a través de la interfaz de BACKINT) hace copia de seguridad de todos los archivos solicitados de la base de datos e informa a BRBACKUP. BRBACKUP aumenta sus datos para incluir los archivos de los que se ha hecho copia de seguridad (corriente de datos a repositorio de archivos). | ||
+ | - BACKINT guarda los datos en TSM. | ||
+ | - SAPDBA actualiza el repositorio de archivos, que alberga información sobre el estado de los archivos. | ||
+ | |||
+ | == Instalación de BACKINT == | ||
+ | **Instalación de Data Protection for mySAP.com en UNIX (AIX, Solaris, HP-UX, Linux)** | ||
+ | |||
+ | Data Protection for mySAP.com para sistemas UNIX se suministra como un solo archivo ejecutable denominado | ||
+ | |||
+ | install_tdpr3_ora_< | ||
+ | donde <xx> es 32 ó 64 <sistema operativo> | ||
+ | |||
+ | Cuando invoque el archivo, se le guiará por el procedimiento de configuración de Data Protection for mySAP.com. Para asegurarse de que el procedimiento de configuración se lleva a cabo correctamente, | ||
+ | |||
+ | Para instalar Data Protection for mySAP.com en un sistema UNIX, siga los pasos siguientes: | ||
+ | |||
+ | Lea el Aviso de release (RELNOTE) y el archivo README que se suministra con Data Protection for mySAP.com. | ||
+ | |||
+ | Conéctese como usuario root en la máquina servidor de bases de datos de mySAP.com. | ||
+ | |||
+ | El programa de instalación le guía por la instalación mediante una X-Window gráfica. Asegúrese de haber establecido la variable DISPLAY correctamente. | ||
+ | |||
+ | Invoque el archivo de instalación correspondiente a Data Protection for mySAP.com que se ajuste a su sistema operativo y a sus bases de datos Oracle. | ||
+ | |||
+ | Compruebe el resumen al final del diálogo de instalación. En el resumen, entre otra información, | ||
+ | |||
+ | Durante la instalación, | ||
+ | |||
+ | * se crea una entrada en / | ||
+ | * se crea una entrada en / | ||
+ | |||
+ | Después de la instalación, | ||
+ | |||
+ | En la ruta de instalación de Data Protection for mySAP.com: | ||
+ | * backint | ||
+ | * prole | ||
+ | * createinfo | ||
+ | * backfm | ||
+ | * backintv3.cat | ||
+ | * initSID.bki | ||
+ | * libtdp_r3.< | ||
+ | * archive.ksh | ||
+ | * backup.ksh | ||
+ | * crontab.sample | ||
+ | * dsm.opt | ||
+ | * dsm.sys | ||
+ | * gensortfile.sh | ||
+ | * inclexcl.list | ||
+ | * README | ||
+ | * RELNOTE | ||
+ | * TIPHINTS | ||
+ | |||
+ | se crea una carpeta denominada _uninst, que contiene varios archivos. | ||
+ | |||
+ | Los archivos de configuración de DP for mySAP.com bajo los directorios de SAP (generalmente, | ||
+ | * init< | ||
+ | * init< | ||
+ | * agent.lic (Sólo después de la instalación desde CD-ROM, no está contenido en el paquete de la web). | ||
+ | |||
+ | La configuración de Data Protection for mySAP.com se realiza con el siguiente valor básico de rendimiento: | ||
+ | |||
+ | Multiplexing 1 | ||
+ | |||
+ | Parallel Sessions 1 | ||
+ | |||
+ | Para ajustar los valores a sus requisitos, en el soporte de instalación se proporciona un perfil de ejemplo, initSID.utl. | ||
+ | El procedimiento de instalación para UNIX copia el archivo y cambia su nombre por $ORACLE_HOME/ | ||
+ | |||
+ | Se aplican a la sintaxis las reglas siguientes: | ||
+ | |||
+ | * Cada línea se analiza por separado. | ||
+ | * Las palabras clave pueden empezar en cualquier columna de la línea. | ||
+ | * Las palabras clave no deben ir precedidas de ninguna cadena, a excepción de espacios en blanco. | ||
+ | * Si una palabra clave se encuentra varias veces, se utiliza la última. | ||
+ | * El proceso de archivos finaliza cuando se encuentra la palabra clave END o se llega al final del archivo. | ||
+ | * El símbolo de comentario es #. Una exploración de la línea actual se detiene cuando se encuentra el símbolo de comentario. No se permite ningún comentario entre la palabra clave y los valores. Por ejemplo: | ||
+ | |||
+ | # | ||
+ | BRARCHIVEMGTCLASS | ||
+ | BRARCHIVEMGTCLASS | ||
+ | |||
+ | En cualquier caso se requieren unas cuantas palabras clave, pero la mayoría son opcionales. Cada una de las palabras clave opcionales tiene preestablecido un valor predeterminado. | ||
+ | |||
+ | |||
+ | **La contraseña** | ||
+ | |||
+ | Data Protection for mySAP.com se debe instalar una vez finalizada la instalación de TSM. TSM proporciona dos métodos de contraseña diferentes para proteger los datos. Data Protection for mySAP.com debe utilizar el mismo método que se haya especificado en TSM. Cuando se instala Data Protection for mySAP.com, se da por supuesto que el método de contraseña, | ||
+ | |||
+ | Para poder trabajar con Data Protection for mySAP.com, tiene que proporcionar a Data Protection for mySAP.com la contraseña correspondiente al nodo de TSM. | ||
+ | Este es un paso manual en el shell: | ||
+ | |||
+ | Conéctese como usuario de Oracle. | ||
+ | Ejecutar el siguiente comando : | ||
+ | < | ||
+ | backint -p <ruta completa a archivo UTL>/ | ||
+ | </ | ||
+ | Introdusca la contraseña cuando se le solicite. | ||
+ | |||
+ | == Problemas comúnes con BACKINT == | ||
+ | |||
+ | Los mas errores frecuentes son: | ||
+ | |||
+ | Mensaje de error: | ||
+ | * BKI2001E: Error de socket al conectar con PROLE en < | ||
+ | {{ : | ||
+ | Compruebe que el daemon background se está ejecutando, en UNIX. | ||
+ | |||
+ | Para comprobar el daemon, ejecute el comando: | ||
+ | |||
+ | * ps -ef | grep prole | ||
+ | |||
+ | Compruebe la entrada contenida en / | ||
+ | |||
+ | Compare el número de puerto indicado en el mensaje de error con el número de puerto que aparece en / | ||
+ | |||
+ | Si todo esto no le sirve de ayuda, inicie el prole desde otro shell, prole -p < | ||
+ | |||
+ | Mensaje de error: | ||
+ | * BKI5001E: Error de Tivoli Storage Manager: No se ha encontrado el servidor en el archivo de configuración. | ||
+ | |||
+ | El Servidor de TSM indicado en init< | ||
+ | |||
+ | Mensaje de error: | ||
+ | * BKI5001E: Error de Tivoli Storage Manager: ANS1353E (RC53) Sesión rechazada: Se ha entrado un ID desconocido o incorrecto | ||
+ | |||
+ | Se puede producir este mensaje si el nodo de la stanza de servidor en el archivo UTL no es válido en el servidor. Vea también la referencia de la API (es decir, busque el mensaje en tivoli.com) | ||
+ | |||
+ | COLGADO: Si backint se cuelga después de entrar la contraseña, | ||
+ | |||
+ | ====== Configuracion de Clientes ====== | ||
+ | ====== Cliente Standard ====== | ||
+ | ===== GNU/Linux ===== | ||
+ | |||
+ | <note tip>It seems to be a better solution, I haven' | ||
+ | |||
+ | <note warning> | ||
+ | |||
+ | The TSM Client is proposed only as a RPM. With '' | ||
+ | < | ||
+ | test# alien *.rpm</ | ||
+ | |||
+ | Now you've got all '' | ||
+ | < | ||
+ | |||
+ | You would notice there' | ||
+ | |||
+ | Now all your files are installed on ''/ | ||
+ | < | ||
+ | |||
+ | And then run '' | ||
+ | < | ||
+ | |||
+ | Finally just create a symbolic link in ''/ | ||
+ | < | ||
+ | test# ln -s ../ | ||
+ | |||
+ | Now your client is ready to use. The rest is well documented in the IBM documentation. | ||
+ | |||
+ | |||
+ | |||
+ | ==== Init script ==== | ||
+ | |||
+ | Now you need an init script. So this is mine (based on ''/ | ||
+ | < | ||
+ | #! /bin/sh | ||
+ | ### BEGIN INIT INFO | ||
+ | # Provides: | ||
+ | # Required-Start: | ||
+ | # Required-Stop: | ||
+ | # Default-Start: | ||
+ | # Default-Stop: | ||
+ | # Short-Description: | ||
+ | # Description: | ||
+ | ### END INIT INFO | ||
+ | |||
+ | # Author: Etienne Bagnoud < | ||
+ | # | ||
+ | |||
+ | PATH=/ | ||
+ | DESC=" | ||
+ | NAME=dsmcad | ||
+ | DAEMON=/ | ||
+ | SCRIPTNAME=/ | ||
+ | |||
+ | # Exit if the package is not installed | ||
+ | [ -x " | ||
+ | |||
+ | . / | ||
+ | . / | ||
+ | |||
+ | do_start() | ||
+ | { | ||
+ | start-stop-daemon --start --quiet --exec $DAEMON --test > /dev/null \ | ||
+ | || return 1 | ||
+ | start-stop-daemon --start --quiet --exec $DAEMON -- \ | ||
+ | || return 2 | ||
+ | } | ||
+ | |||
+ | do_stop() | ||
+ | { | ||
+ | # TODO It seems that start-stop-daemon crash when stopping dsmcad | ||
+ | start-stop-daemon --stop --quiet --retry=20/ | ||
+ | RETVAL=" | ||
+ | |||
+ | return " | ||
+ | } | ||
+ | |||
+ | case " | ||
+ | start) | ||
+ | [ " | ||
+ | do_start | ||
+ | case " | ||
+ | 0|1) [ " | ||
+ | 2) [ " | ||
+ | esac | ||
+ | ;; | ||
+ | stop) | ||
+ | [ " | ||
+ | do_stop | ||
+ | case " | ||
+ | 0|1) [ " | ||
+ | 2) [ " | ||
+ | esac | ||
+ | ;; | ||
+ | *) | ||
+ | echo " | ||
+ | exit 3 | ||
+ | ;; | ||
+ | esac | ||
+ | |||
+ | : | ||
+ | </ | ||
+ | |||
+ | ===== Windows ===== | ||
+ | |||
+ | Ejemplo para el nodo SRVWINDOWS con el password client | ||
+ | |||
+ | < | ||
+ | dsmcutil inst / | ||
+ | </ | ||
+ | |||
+ | Ref.: http:// | ||
+ | |||
+ | < | ||
+ | C: | ||
+ | / | ||
+ | |||
+ | TSM Windows NT Client Service Configuration Utility | ||
+ | Command Line Interface - Version 5, Release 5, Level 2.0 | ||
+ | (C) Copyright IBM Corporation, | ||
+ | Last Updated Mar 22 2009 | ||
+ | TSM Api Verison 5.5.2 | ||
+ | |||
+ | Command: Install TSM Client Service | ||
+ | Machine: SRVWINDOWS(Local Machine) | ||
+ | |||
+ | |||
+ | |||
+ | Installing TSM Client Service: | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | Logon Account | ||
+ | The service was successfully installed. | ||
+ | |||
+ | |||
+ | Creating Registry Keys ... | ||
+ | |||
+ | Updated registry value ' | ||
+ | Updated registry value ' | ||
+ | Updated registry value ' | ||
+ | Updated registry value 'TSM Client Scheduler' | ||
+ | Updated registry value ' | ||
+ | Updated registry value ' | ||
+ | Updated registry value ' | ||
+ | Updated registry value ' | ||
+ | |||
+ | Generating registry password ... | ||
+ | Authenticating TSM password for node SRVWINDOWS ... | ||
+ | |||
+ | Connecting to TSM Server via client options file ' | ||
+ | ' ... | ||
+ | |||
+ | Password authentication successful. | ||
+ | |||
+ | The registry password for TSM node SRVWINDOWS has been updated. | ||
+ | |||
+ | |||
+ | Starting the 'TSM Client Scheduler' | ||
+ | |||
+ | The service was successfully started. | ||
+ | </ | ||
+ | |||
+ | Ejemplo de como instalar el servicio TDP para Domino | ||
+ | |||
+ | < | ||
+ | dsmcutil install / | ||
+ | </ | ||
+ | |||
+ | |||
+ | ====== Cliente TDP ====== | ||
+ | ====== Configuración de nodo TDP para Backup Online de SAP ====== | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | 1 - La base debe estar en modo ARCHIVE LOG | ||
+ | |||
+ | 2 – Instalación | ||
+ | |||
+ | Debemos correr el ejecutable del instalador | ||
+ | |||
+ | Elegir SID | ||
+ | |||
+ | Elegir Oracle_Home/ | ||
+ | |||
+ | Configurar primero el nodo en TSM server | ||
+ | |||
+ | Configurar en / | ||
+ | |||
+ | < | ||
+ | # cat dsm.opt | ||
+ | ************************************************************************ | ||
+ | * IBM Tivoli Storage Manager | ||
+ | * * | ||
+ | * Sample Client User Options file for AIX and SunOS * | ||
+ | ************************************************************************ | ||
+ | |||
+ | SErvername | ||
+ | Quiet | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | # cat dsm.sys | ||
+ | ************************************************************************ | ||
+ | * IBM Tivoli Storage Manager | ||
+ | * * | ||
+ | * Sample Client System Options file for AIX and SunOS * | ||
+ | ************************************************************************ | ||
+ | |||
+ | |||
+ | SErvername | ||
+ | COMMmethod | ||
+ | TCPPort | ||
+ | TCPServeraddress | ||
+ | |||
+ | ERRORLOGNAME / | ||
+ | </ | ||
+ | |||
+ | Crear links simbólicos en / | ||
+ | |||
+ | Configuración TDP : | ||
+ | < | ||
+ | / | ||
+ | / | ||
+ | </ | ||
+ | **ini< | ||
+ | < | ||
+ | # | ||
+ | # Statement for servers and paths. | ||
+ | # Multiple servers may be defined. | ||
+ | # | ||
+ | SERVER | ||
+ | SESSIONS | ||
+ | # to server_a | ||
+ | PASSWORDREQUIRED | ||
+ | ADSMNODE | ||
+ | BRBACKUPMGTCLASS | ||
+ | BRARCHIVEMGTCLASS | ||
+ | # TCP_ADDRESS | ||
+ | # on server_a | ||
+ | # Overrides IP address of dsm.sys | ||
+ | # USE_AT | ||
+ | # backup | ||
+ | # | ||
+ | # USE_AT : 0=Su 1=Mo 2=Tu 3=We 4=Th 5=Fr 6=Sa | ||
+ | # The valid range of USE_AT is from 0 to 6. | ||
+ | # Default: all days | ||
+ | # | ||
+ | </ | ||
+ | Podemos por ejemplo espejar el backup a dos pools | ||
+ | < | ||
+ | BRARCHIVEMGTCLASS | ||
+ | </ | ||
+ | |||
+ | Si hay problemas en que el backup no arranca verificar: | ||
+ | |||
+ | < | ||
+ | # ps -ef | grep prole | ||
+ | root 1123 26374 0 10:38 pts/1 00:00:00 grep prole | ||
+ | root | ||
+ | </ | ||
+ | |||
+ | Luego hay que inicializar el nodo por única vez con la password | ||
+ | |||
+ | Ejecutar | ||
+ | < | ||
+ | orasid # backint -p / | ||
+ | </ | ||
+ | |||
+ | Importante: verificar que el archivo / | ||
+ | |||
+ | |||
+ | Luego hay que poner en modo archive la base de datos y probar un los backup online desde SAP por medio de la **Trx. DB13**. | ||
+ | |||
+ | ====== Problemas comunes ====== | ||
+ | **Reinstalar la licencia de TSM** | ||
+ | < | ||
+ | register license file=*.lic | ||
+ | </ | ||
+ | **ANS1316E The server does not have enough recovery log space** | ||
+ | < | ||
+ | dsmserv reset logm | ||
+ | </ | ||
+ | |||
+ | ====== Problemas no comunes ====== | ||
+ | ===== Restore de una base TSM ===== | ||
+ | |||
+ | |||
+ | - Instalar el servidor TSM y todos sus parches hasta llegar a la versión que tenía el dañado. | ||
+ | - Copiar del servidor TSM viejo en la carpeta F: | ||
+ | - Ejecutar c: | ||
+ | - DSMSERV RESTORE DB DEV=FILE VOL=f: | ||
+ | - Ejecutar dsmserv auditdb fix=yes | ||
+ | - Conectarse a la consola y verificar que se vea la unidad de tape con query path y query dr. | ||
+ | - Recrear los storage pool de disco. | ||
+ | - Verificar el path de la device class FILE para que apunte a F: | ||
+ | - Ejecutar un backup de la base desde la consola de TSM **backup db t=f dev=file wait=yes**. | ||
+ | |||
+ | ===== Disaster Recovery for SAP R/3 on Oracle ===== | ||
+ | |||
+ | ===== Procedimiento para recuperar una base de datos correspondiente a una instancia SAP luego de un desastre ===== | ||
+ | |||
+ | |||
+ | Este procedimiento está basado en la nota de SAP número 96848, cualquier duda referirse a la misma. | ||
+ | |||
+ | Requisitos: | ||
+ | |||
+ | Contar con un full backup online u offline (en este procedimiento el ejemplo es con full backup online realizado con brbackup) | ||
+ | La base de datos debe estar en modo archive (lo más lógico es que esté) | ||
+ | En caso de haberse perdido todo debe instalarse previamente TSM y luego recuperarse de un backup realizado con TSM para los binarios de SAP y Oracle más todos los archivos de configuración. | ||
+ | Para utilizar el brrestore debe existir el archivo initSID.sap, | ||
+ | |||
+ | Pasos del recovery: | ||
+ | |||
+ | - Ubicar el archivo de log del último backup online bueno, el nombre figura en el archivo / | ||
+ | - Primero habría que asegurarse que ese backup se realizócorrectamente, | ||
+ | - Loguearse con el usuario ora< | ||
+ | - Recuperar todos los archive logs necesarios, esto se realiza con el comando **brrestore -a log_seq1-loq_seqN**, | ||
+ | - Luego de recuperados los archivos realizar los siguientes pasos conectandose a oracle con **sqlplus "/ as sysdba" | ||
+ | |||
+ | SQL> set autorecovery off | ||
+ | SQL> startup mount | ||
+ | SQL> recover database using backup controlfile until cancel; | ||
+ | SQL> alter database open resetlogs; | ||
+ | |||
+ | ====== Consultas SQL de Tivoli ====== | ||
+ | ===== Introducción ===== | ||
+ | La sintaxis básica de SQL es | ||
+ | <code sql> | ||
+ | SELECT ALL | DISTINCT |columnname(, | ||
+ | FROM tablename(, tablename) | ||
+ | WHERE ' | ||
+ | GROUP BY columnname | ||
+ | HAVING 'row selection conditions' | ||
+ | ORDER BY columnname ASC| DESC | ||
+ | </ | ||
+ | |||
+ | La norma de operador de SQL, ' | ||
+ | |||
+ | NOTA: El SQL de Tivoli TSM **Es un lenguaje de consulta de sólo lectura**. | ||
+ | |||
+ | TSM SQL query command does not support the full SQL language syntax. The following operations will not work: | ||
+ | Los comandos de consulta SQL de Tivoli TSM no son compatibles con toda la sintaxis de lenguaje SQL. Las siguientes operaciones no van a funcionar: | ||
+ | |||
+ | * **UNION** | ||
+ | * **INTERSECT** | ||
+ | * **EXCEPT** | ||
+ | * //Las subconsultas que devuelven varios valores// | ||
+ | * //No se puede utilizar un punto y coma como terminador de comando// | ||
+ | |||
+ | Se pueden combinar dos tablas por consulta, como por ejemplo: | ||
+ | <code sql> | ||
+ | SELECT nodes.domain_name, | ||
+ | </ | ||
+ | Se pueden también estableces alias para la consulta : | ||
+ | <code sql> | ||
+ | SELECT nn.domain_name, | ||
+ | </ | ||
+ | ==== Como son las tablas de TSM ==== | ||
+ | Para conocer las tablas que existen en TSM y lo que contienen, ejecute las siguientes consultas : | ||
+ | |||
+ | <code sql> | ||
+ | select * from syscat.tables | ||
+ | select * from syscat.columns | ||
+ | select * from syscat.enumtypes | ||
+ | </ | ||
+ | |||
+ | ^Tabla^Campo^Descripcion^ | ||
+ | |ADSM|ACTLOG|Server activity log| | ||
+ | |ADSM|ADMINS|Server administrators| | ||
+ | |ADSM|ADMIN_SCHEDULES|Administrative command schedules| | ||
+ | |ADSM|ARCHIVES|Client archive files| | ||
+ | |ADSM|AR_COPYGROUPS|Management class archive copy groups| | ||
+ | |ADSM|ASSOCIATIONS|Client schedule associations| | ||
+ | |ADSM|AUDITOCC|Server audit occupancy results| | ||
+ | |ADSM|BACKUPS|Client backup files| | ||
+ | |ADSM|BACKUPSETS|Backup Set| | ||
+ | |ADSM|BU_COPYGROUPS|Management class backup copy groups| | ||
+ | |ADSM|CLIENTOPTS|Client Options| | ||
+ | |ADSM|CLIENT_SCHEDULES|Client schedules| | ||
+ | |ADSM|CLOPTSETS|Client Option Sets| | ||
+ | |ADSM|COLLOCGROUP|Collocation groups| | ||
+ | |ADSM|CONTENTS|Storage pool volume contents| | ||
+ | |ADSM|DATAMOVERS|Data Movers| | ||
+ | |ADSM|DB|Server database information| | ||
+ | |ADSM|DBBACKUPTRIGGER|Database backup trigger information| | ||
+ | |ADSM|DBSPACETRIGGER|Database space trigger information| | ||
+ | |ADSM|DBVOLUMES|Database volumes| | ||
+ | |ADSM|DEVCLASSES|Device Classes| | ||
+ | |ADSM|DOMAINS|Policy domains| | ||
+ | |ADSM|DRIVES|Drives| | ||
+ | |ADSM|DRMCSTGPOOLS|Copy storage pools managed by the disaster recovery manager| | ||
+ | |ADSM|DRMEDIA|Physical volumes managed by move drmedia| | ||
+ | |ADSM|DRMMACHINE|Disaster recovery manager machine information| | ||
+ | |ADSM|DRMMACHINECHARS|Disaster recovery manager machine characteristics| | ||
+ | |ADSM|DRMMACHINENODE|Disaster recovery manager machine node associations| | ||
+ | |ADSM|DRMMACHINERECINST|Disaster recovery manager machine recovery instructions| | ||
+ | |ADSM|DRMMACHINERECMEDIA|Disaster recovery manager machine recovery media associations| | ||
+ | |ADSM|DRMPSTGPOOLS|Primary storage pools managed by the disaster recovery manager| | ||
+ | |ADSM|DRMRECOVERYMEDIA|Disaster recovery manager recovery media| | ||
+ | |ADSM|DRMSRPF|Recovery plan files in source server| | ||
+ | |ADSM|DRMSTANZA|Recovery plan file stanza names| | ||
+ | |ADSM|DRMSTATUS|Disaster recovery manager status information| | ||
+ | |ADSM|DRMTRPF|Recovery plan files in target server| | ||
+ | |ADSM|EVENTS|Scheduled Event Results| | ||
+ | |ADSM|FILESPACES|Client file spaces| | ||
+ | |ADSM|GROUP_MEMBER|Group Members| | ||
+ | |ADSM|LIBRARIES|Libraries| | ||
+ | |ADSM|LIBVOLUMES|Library volumes| | ||
+ | |ADSM|LICENSES|Server feature licenses| | ||
+ | |ADSM|LICENSE_DETAILS|License usage details| | ||
+ | |ADSM|LOG|Server recovery log information| | ||
+ | |ADSM|LOGSPACETRIGGER|Recovery Log space trigger information| | ||
+ | |ADSM|LOGVOLUMES|Recovery log volumes| | ||
+ | |ADSM|MEDIA|Physical volumes managed by move media| | ||
+ | |ADSM|MGMTCLASSES|Management classes| | ||
+ | |ADSM|NODEGROUP|Node Groups| | ||
+ | |ADSM|NODES|Client nodes| | ||
+ | |ADSM|OCCUPANCY|Client storage occupancy| | ||
+ | |ADSM|OPTIONS|Server Options| | ||
+ | |ADSM|PATHS|Paths| | ||
+ | |ADSM|POLICYSETS|Policy sets| | ||
+ | |ADSM|PROCESSES|Client schedule associations| | ||
+ | |ADSM|PROFILES|Profiles| | ||
+ | |ADSM|PROF_ASSOCIATIONS|Profile associations| | ||
+ | |ADSM|RECLAIM_ANALYSIS|Server reclamation analysis table| | ||
+ | |ADSM|RESTORES|Client restore operations| | ||
+ | |ADSM|SAN|SAN attached devices| | ||
+ | |ADSM|SCRIPTS|Server Command Scripts| | ||
+ | |ADSM|SCRIPT_NAMES|Server Command Script Names| | ||
+ | |ADSM|SERVERS|Remote server nodes| | ||
+ | |ADSM|SERVER_GROUP|Server Groups| | ||
+ | |ADSM|SESSIONS|Active client sessions| | ||
+ | |ADSM|SHREDSTATUS|Shred Status| | ||
+ | |ADSM|SPACEMGFILES|Client space-managed files| | ||
+ | |ADSM|STATUS|Server status| | ||
+ | |ADSM|STGPOOLS|Storage pools| | ||
+ | |ADSM|STGSPACETRIGGER|Storage Pool space trigger information| | ||
+ | |ADSM|SUBSCRIPTIONS|Subscriptions| | ||
+ | |ADSM|SUMMARY|Server Activity Summary Table| | ||
+ | |ADSM|VFSMAPPINGS|Virtual Filespace Mappings| | ||
+ | |ADSM|VOLHISTORY|Volume history information| | ||
+ | |ADSM|VOLUMES|Storage pool volumes| | ||
+ | |ADSM|VOLUMEUSAGE|SEQUENTIAL volume usage by client node| | ||
+ | |SYSCAT|COLUMNS|SQL Table Column Catalog| | ||
+ | |SYSCAT|ENUMTYPES|SQL Enumerated Types Catalog| | ||
+ | |SYSCAT|TABLES|SQL Table Catalog| | ||
+ | |||
+ | |||
+ | |||
+ | La tabla **SUMMARY** contiene una gran cantidad de entradas útiles para las estadísticas generales. Un par de los campos son **SUMMARY.ACTIVITY** Y **SUMMARY.SUCCESFUL**. El campo de la actividad contiene en la actualidad, 'TAPE MOUNT', | ||
+ | |||
+ | El campo DATE en la tabla EVENTS no admite expresiones como ' | ||
+ | ==== Formateo de consultas SQL ==== | ||
+ | Si se introduce consultas SQL desde la línea de comandos los resultados se obtendrán en formato tabular. Se puede canalizar el comando a un archivo y obtener los resultados en formato delimitado por comas para importar a una hoja de cálculo Excel o similar. | ||
+ | |||
+ | Ejemplo de como exportar los resultados a un archivo CSV con campos delimitados por comas : | ||
+ | < | ||
+ | dsmadmc -id=adminid -password=adminpassword -commadelimited ' | ||
+ | </ | ||
+ | |||
+ | Ejemplo de como direccionar la salida a archivos : | ||
+ | <code sql> | ||
+ | select * from summary > summary.txt | ||
+ | select * from summary where date> | ||
+ | </ | ||
+ | ==== Uso de columnas indexadas para acelerar consultas ==== | ||
+ | En TSM las consultas SQL se pueden ejecutar durante mucho tiempo, y utilizar una gran cantidad de recursos. Esto es generalmente debido a que están buscando en la base de datos completa para obtener los datos que desee. Puede reducir la cantidad de datos de la búsqueda mediante la selección de los datos específicos de una columna indexada utilizando una sentencia WHERE. | ||
+ | |||
+ | Para saber qué columnas están indexadas, utilice la siguiente consulta : | ||
+ | <code sql> | ||
+ | select * from syscat.columns | ||
+ | </ | ||
+ | |||
+ | Obtendremos un resultado como este : | ||
+ | < | ||
+ | | ||
+ | TABNAME: MEDIA | ||
+ | COLNAME: LRD | ||
+ | COLNO: 9 | ||
+ | | ||
+ | INDEX_ORDER: | ||
+ | | ||
+ | | ||
+ | SCALE: 0 | ||
+ | NULLS: TRUE | ||
+ | REMARKS: Last Reference Date | ||
+ | |||
+ | TABSCHEMA: ADSM | ||
+ | TABNAME: MGMTCLASSES | ||
+ | COLNAME: DOMAIN_NAME | ||
+ | COLNO: 1 | ||
+ | | ||
+ | INDEX_ORDER: | ||
+ | | ||
+ | | ||
+ | SCALE: 0 | ||
+ | NULLS: FALSE | ||
+ | REMARKS: Policy Domain Name | ||
+ | </ | ||
+ | |||
+ | Esto indica que la columna DOMAIN_NAME de la tabla de MGMTCLASSES está indexada, pero la columna LRD en la tabla MEDIA no esta indexada. Así que si usted ejecuta una consulta, como : | ||
+ | <code sql> | ||
+ | SELECT * FROM MGMTCLASSES WHERE DOMAIN_NAME = ' | ||
+ | </ | ||
+ | |||
+ | La consulta se ejecutará mas rápido. | ||
+ | |||
+ | ==== Formato de datos SQL ==== | ||
+ | El formato timestamp o marca de tiempo para consultas SQL de TSM es el siguiente: | ||
+ | |||
+ | < | ||
+ | ' | ||
+ | |||
+ | yyyy = año | ||
+ | mm = mes | ||
+ | dd = dia | ||
+ | hh = hora | ||
+ | mm = minutos | ||
+ | ss = segundos | ||
+ | nnnnnn = fracción de segundo | ||
+ | </ | ||
+ | |||
+ | ' | ||
+ | |||
+ | ==== Como combinar dos tablas en una consulta ==== | ||
+ | Es posible combinar dos tablas de TSM en una consulta, pero tenga en cuenta que la base de datos de Tivoli Storage Manager no es realmente relacional, por lo que el join toma algo de tiempo y utiliza altos recursos. Puede ser más rápido que hacer dos consultas, copiar los resultados a continuación y combinar los datos con un programa externo. Para realizar el join : | ||
+ | |||
+ | * Ambas tablas deben tener una columna que contenga los mismos datos | ||
+ | * Se debe asignar un alias a cada table en el FROM | ||
+ | * Seleccione la columna común en ambas tablas usando el nombre de aliasname.table | ||
+ | * El JOIN de datos se debe realizar con un WHERE alias1.column2=alias2.column2 | ||
+ | |||
+ | Por ejemplo | ||
+ | |||
+ | <code sql> | ||
+ | | ||
+ | vm.volume_name, | ||
+ | FROM volumes vm, | ||
+ | WHERE node_name=' | ||
+ | AND vm.volume_name=vu.volume_name | ||
+ | </ | ||
+ | |||
+ | Esto combina la columna de porcentaje de volumen utilizado a partir de la tabla de volúmenes de la columna con nombre de nodo en la tabla volumeusage, | ||
+ | |||
+ | ===== Consultas SQL ===== | ||
+ | |||
+ | ==== Consultas de Administración ==== | ||
+ | === Ver información del servidor === | ||
+ | <code sql> | ||
+ | SELECT server_name, | ||
+ | VARCHAR(version)||' | ||
+ | server_hla, server_lla, server_url, logmode, crossdefine, | ||
+ | </ | ||
+ | === Ver información general de los nodos === | ||
+ | <code sql> | ||
+ | select node_name as " | ||
+ | </ | ||
+ | <code sql> | ||
+ | select NODE_NAME as Nodo, PLATFORM_NAME as Plat, CLIENT_OS_LEVEL as Os, - | ||
+ | (concat(concat(concat(trim(cast(CLIENT_VERSION as character(4))),' | ||
+ | concat(trim(cast(CLIENT_RELEASE as character(4))),' | ||
+ | cast(cast(CLIENT_LEVEL as decimal(4, | ||
+ | tcp_address, | ||
+ | CURRENT_DATE-date(LASTACC_TIME) as Ult_Acceso from nodes order by ULT_ACCESO | ||
+ | </ | ||
+ | === Ver detalles de Copygroups de Archive === | ||
+ | <code sql> | ||
+ | SELECT DOMAIN_NAME, | ||
+ | </ | ||
+ | === Ver detalles de Copygroups de Backup === | ||
+ | <code sql> | ||
+ | SELECT DOMAIN_NAME, | ||
+ | </ | ||
+ | === Ver detalles de Management Classes === | ||
+ | <code sql> | ||
+ | SELECT DOMAIN_NAME, | ||
+ | </ | ||
+ | === Ver nodo bloqueados === | ||
+ | <code sql> | ||
+ | SELECT nodes, | ||
+ | </ | ||
+ | === Ver slots de la libreria asociados a cada cinta === | ||
+ | <code sql> | ||
+ | SELECT home_element, | ||
+ | FROM libvolumes - | ||
+ | ORDER BY home_element | ||
+ | </ | ||
+ | === Ver información de Backup de la base de datos === | ||
+ | <code sql> | ||
+ | SELECT * FROM volhistory WHERE ( type=' | ||
+ | AND date_time> | ||
+ | </ | ||
+ | === Cantidad de volúmenes Scratch permitidos por storage pool === | ||
+ | <code sql> | ||
+ | SELECT stgpool_name, | ||
+ | </ | ||
+ | === Porcentaje de uso por storage pool === | ||
+ | <code sql> | ||
+ | SELECT stgpool_name, | ||
+ | </ | ||
+ | === Uso por storage pool en MB y en cantidad de archivos === | ||
+ | <code sql> | ||
+ | SELECT stgpool_name, | ||
+ | </ | ||
+ | === Estado de los volúmenes dentro de la libreria === | ||
+ | <code sql> | ||
+ | SELECT volumes.volume_name, | ||
+ | volumes.access FROM volumes, libvolumes WHERE volumes.volume_name=libvolumes.volume_name ORDER BY stgpool_name | ||
+ | </ | ||
+ | <code sql> | ||
+ | SELECT volume_name, | ||
+ | WHERE volume_name IN ( SELECT volume_name FROM libvolumes ) | ||
+ | </ | ||
+ | === Cantidad de volúmenes por storage pool dentro de la libreria === | ||
+ | <code sql> | ||
+ | SELECT volumes.stgpool_name, | ||
+ | volumes.volume_name=libvolumes.volume_name GROUP BY stgpool_name | ||
+ | </ | ||
+ | === Número de volúmenes por libreria === | ||
+ | <code sql> | ||
+ | SELECT library_name, | ||
+ | </ | ||
+ | === Número de volúmenes con errores dentro de la libreria === | ||
+ | <code sql> | ||
+ | SELECT volumes.volume_name, | ||
+ | volumes.write_errors, | ||
+ | volumes.volume_name=libvolumes.volume_name AND ( volumes.write_errors> | ||
+ | </ | ||
+ | |||
+ | ==== Consultas rápidas rutinarias ==== | ||
+ | === Listar todas las cintas utilizadas por un nodo === | ||
+ | <code sql> | ||
+ | SELECT DISTINCT node_name, | ||
+ | </ | ||
+ | === Listar todos los nodos que utilizan cierta cinta === | ||
+ | <code sql> | ||
+ | SELECT DISTINCT node_name, | ||
+ | </ | ||
+ | === Cintas usadas hoy === | ||
+ | <code sql> | ||
+ | SELECT volume_name, | ||
+ | </ | ||
+ | === La última fecha de escritura para todas las cintas === | ||
+ | <code sql> | ||
+ | SELECT volume_name, | ||
+ | </ | ||
+ | === Litas las cintas con error y tipo de error === | ||
+ | <code sql> | ||
+ | SELECT volume_name, | ||
+ | </ | ||
+ | === Cantidad de MB respaldados las últimas 24 horas ordenado por nodo === | ||
+ | <code sql> | ||
+ | SELECT ENTITY AS "Node name", - | ||
+ | CAST(sum(bytes/ | ||
+ | SUBSTR (CAST(min (start_time) AS char(29)), | ||
+ | SUBSTR (CAST(min (start_time) AS char(29)), | ||
+ | SUBSTR(CAST(max (end_time) AS char(29)), | ||
+ | SUBSTR (CAST(max (end_time) AS char(29)), | ||
+ | FROM summary WHERE (activity=' | ||
+ | GROUP BY ENTITY order by "MB xfer" | ||
+ | </ | ||
+ | === Cantidad de MB total respaldados las últimas 24 horas === | ||
+ | <code sql> | ||
+ | SELECT CAST(sum(bytes/ | ||
+ | </ | ||
+ | === El número de cintas escritas las ultimas 24 horas === | ||
+ | <code sql> | ||
+ | SELECT count(*) AS "Tapes Used" FROM volumes WHERE (last_write_date > | ||
+ | </ | ||
+ | === Nodos que en el día anterior realizaron restauraciones === | ||
+ | <code sql> | ||
+ | SELECT entity, bytes, start_time, successful FROM summary WHERE (activity=' | ||
+ | </ | ||
+ | === Cintas en uso y máximo de scratch permitidos === | ||
+ | <code sql> | ||
+ | SELECT a.stgpool_name, | ||
+ | </ | ||
+ | === Listas de cintas en estado filling y cuanto esta lleno el storage pool === | ||
+ | <code sql> | ||
+ | SELECT a.stgpool_name AS " | ||
+ | CAST(a.EST_CAPACITY_MB AS DECIMAL(12, | ||
+ | CAST(a.PCT_UTILIZED AS DECIMAL(2, | ||
+ | count(*) AS Filling, CAST(AVG(b.PCT_UTILIZED) AS DECIMAL(2, | ||
+ | FROM stgpools a, volumes b - | ||
+ | WHERE ((a.stgpool_name = b.stgpool_name AND upper(status)=' | ||
+ | OR (a.stgpool_name = b.stgpool_name AND devclass_name=' | ||
+ | GROUP BY a.stgpool_name, | ||
+ | </ | ||
+ | === Lista paginas expiradas de la Base de datos === | ||
+ | <code sql> | ||
+ | SELECT activity, CAST((end_time) AS date) AS " | ||
+ | (examined/ | ||
+ | FROM summary WHERE activity=' | ||
+ | </ | ||
+ | === Conocer resultados de eventos === | ||
+ | <code sql> | ||
+ | SELECT SCHEDULED_START, | ||
+ | </ | ||
+ | ==== Operaciones de conteo de elementos === | ||
+ | === Consultar copias de seguridad de los pooles === | ||
+ | <code sql> | ||
+ | QUERY ACTL BEGINDATE=-30 SEARCH=ANR1214 | ||
+ | </ | ||
+ | === Consultar cantidad de filespaces por nodo === | ||
+ | <code sql> | ||
+ | SELECT node_name, count(*) AS " | ||
+ | </ | ||
+ | === Consultar cantidad de plataforma por nodo === | ||
+ | <code sql> | ||
+ | SELECT platform_name, | ||
+ | </ | ||
+ | === Consultar cantidad de usuarios administradores de algo === | ||
+ | <code sql> | ||
+ | SELECT count(*) AS " | ||
+ | </ | ||
+ | === Consultar cantidad de archivos de tipo Backup por nodo === | ||
+ | <code sql> | ||
+ | SELECT node_name, | ||
+ | </ | ||
+ | === Consultar cantidad de archivos de tipo Archive por nodo === | ||
+ | <code sql> | ||
+ | SELECT node_name, | ||
+ | </ | ||
+ | === Consultar numero de asociaciones por Schedule === | ||
+ | <code sql> | ||
+ | SELECT count(*) AS " | ||
+ | </ | ||
+ | === Consultar numero de backupsets === | ||
+ | <code sql> | ||
+ | SELECT count(*) AS " | ||
+ | </ | ||
+ | === Consultar numero de opciones de cliente === | ||
+ | <code sql> | ||
+ | SELECT count(*) AS " | ||
+ | </ | ||
+ | === Consultar numero de Collocation Groups === | ||
+ | <code sql> | ||
+ | SELECT count(*) AS " | ||
+ | </ | ||
+ | === Consultar numero de Archive CopyGroups === | ||
+ | <code sql> | ||
+ | SELECT count(*) AS " | ||
+ | </ | ||
+ | === Consultar numero de Backup CopyGroups === | ||
+ | <code sql> | ||
+ | SELECT count(*) AS " | ||
+ | </ | ||
+ | === Consultar numero de Data Movers === | ||
+ | <code sql> | ||
+ | SELECT count(*) AS " | ||
+ | </ | ||
+ | === Consultar numero de Device Classes === | ||
+ | <code sql> | ||
+ | SELECT count(*) AS " | ||
+ | </ | ||
+ | === Consultar numero de Dominios === | ||
+ | <code sql> | ||
+ | SELECT count(*) AS " | ||
+ | </ | ||
+ | === Consultar numero de Drives === | ||
+ | <code sql> | ||
+ | SELECT count(*) AS " | ||
+ | </ | ||
+ | === Consultar numero de Librerias === | ||
+ | <code sql> | ||
+ | SELECT count(*) AS " | ||
+ | </ | ||
+ | === Consultar numero de Cintas en la libreria === | ||
+ | <code sql> | ||
+ | SELECT count(*) AS " | ||
+ | </ | ||
+ | === Consultar numero de Cintas totales === | ||
+ | <code sql> | ||
+ | SELECT count(*) AS " | ||
+ | </ | ||
+ | === Consultar numero de Management Classes === | ||
+ | <code sql> | ||
+ | SELECT count(*) AS " | ||
+ | </ | ||
+ | === Consultar grupos de nodos === | ||
+ | <code sql> | ||
+ | SELECT count(*) AS " | ||
+ | </ | ||
+ | === Consultar rutas de disposivitos === | ||
+ | <code sql> | ||
+ | SELECT count(*) AS " | ||
+ | </ | ||
+ | === Consultar set de Politicas === | ||
+ | <code sql> | ||
+ | SELECT count(*) AS " | ||
+ | </ | ||
+ | === Consultar set de Schedules de clientes === | ||
+ | <code sql> | ||
+ | SELECT count(*) AS " | ||
+ | </ | ||
+ | === Consultar numero de tareas programadas === | ||
+ | <code sql> | ||
+ | SELECT count(*) AS " | ||
+ | </ | ||
+ | === Consultar numero de scripts en el servidor === | ||
+ | <code sql> | ||
+ | SELECT count(*) AS " | ||
+ | </ | ||
+ | === Consultar numero de servidores definidos === | ||
+ | <code sql> | ||
+ | SELECT count(*) AS " | ||
+ | </ | ||
+ | === Consultar numero de grupos de servidores definidos === | ||
+ | <code sql> | ||
+ | SELECT count(*) AS " | ||
+ | </ | ||
+ | === Consultar numero de storage pools definidos === | ||
+ | <code sql> | ||
+ | SELECT count(*) AS " | ||
+ | </ | ||
+ | === Cuantos clientes hay registrados por dominio === | ||
+ | <code sql> | ||
+ | SELECT domain_name, | ||
+ | </ | ||