Para realizar un back up de una base en particular en forma remota desde un Windows con las client tools instaladas podemos usar el DB2CMD desde un bat:

hacerbk.bat

DB2CMD.EXE -c -w -i DB2 -tf daf_backup.db2 -l D:\temp\db2\daf_backup.log -r D:\temp\db2\daf_backup.rpt

Contenido de daf_backup.db2

CONNECT TO DAF USER YYYYYY USING XXXXXX ;
QUIESCE DATABASE IMMEDIATE FORCE CONNECTIONS;
CONNECT RESET;
BACKUP DATABASE DAF USER YYYYYY USING XXXXXX TO “/backups/nuevo” WITH 2 BUFFERS BUFFER 1024 PARALLELISM 1;
CONNECT TO DAF USER YYYYYY USING XXXXXX ;
UNQUIESCE DATABASE;
CONNECT RESET;
TERMINATE ;

El script resguarda una base de nombre DAF, lo hace con el usuario YYYYYY cuya clave es XXXXXX, siendo este el dueño de la isntancia de db2 (SYSADM, SYSCTRL o SYSMAINT minimo)

Verificar los permisos del usuarios que realiza el back up sobre /backups/nuevo

Séptima entrega.

Muestra los primeros diez registros de la tabla de permisos de tablas

db2 “select * from syscat.tabauth  fetch first 10 rows only”

Muestra los primeros diez registros de la tabla de permisos de la base

db2 “select * from syscat.dbauth  fetch first 10 rows only”

Muestra las tablas del usuario en la base:

select * from syscat.tables where owner <> ‘SYSIBM’

Aunque es mejor ejecutar este comando desde el control center ya que el recordset no entra en ningún putty

Muestra los permisos del usuario sobre las tablas especificas

select * from syscat.tabauth where grantee = ‘DAFADMIN’

Este comando también es más practico desde el control center.

Ante un select fallido por permisos hago un grant y pruebo

dafapp@aixdesa:/home/dafapp>  db2 “select * from DAFADMIN.TDEPT”

SQL0551N  “DAFAPP” does not have the required authorization or privilege to

perform operation “SELECT” on object “DAFADMIN.TDEPT”.  SQLSTATE=42501

El grant que permite el acceso a la tabla:

db2 “GRANT SELECT ON DAFADMIN.TDEPT TO DAFAPP”

La misma consulta, ahora exitosa.

dafapp@aixdesa:/home/dafapp>  db2 “select * from DAFADMIN.TDEPT”

DEPTNO DEPTNAME                             MGRNO  ADMRDEPT

—— ———————————— —— ——–

0 record(s) selected.

Creo una segunda tabla con dafapp

db2 “CREATE TABLE TDEPTAPP (DEPTNO CHAR (3) NOT NULL, DEPTNAME VARCHAR (36) NOT NULL, MGRNO CHAR (6), ADMRDEPT CHAR (3) NOT NULL, PRIMARY KEY (DEPTNO) )”

Veo como quedo, la primera en un esquema y la segunda en otro. Como siempre, cuando son muchas columnas es mejor usar el control center.

select * from syscat.tabauth

Para Salir o desconectarse de una base de datos usar el comando TERMINATE ya sea attach o connect.

Para ver el espacio ocupado por una carpeta se utiliza du –m o –s para sumarizar opcional a du –sm esto es importante a la hora de buscar donde guardar los archivos de imagen de back up.

 

Ingresando con ROOT, utilizar su – db2db01 para acceder al perfil del usuario SA de SQL.

 

Durante la configuración de las bases y para setear el modeo de logging, se utilizan:

 

Para ver la config: db2 get db cfg for databasename |more

Para cambiar un valor: db2 update cfg for databasename using nombreparámetro nuevovalor

Estos valores toman efecto, como en MSSQL, luego de reiniciar el servicio db2: db2stop y db2start

 

La parte del back up de las bases se puede hacer con:

db2 backup databse databasename online to /path/destino sin poner el nombre del archivo de salida. Este es generado por el mismo motor y no puede renombrarse ya que el restore lo utiliza asi. El archivo de back up es 1:1 con el tamaño de la base.

 

Por otro lado, algunos tips de comandos:

 

Set o –vi habilita la utilización de comandos vi en la línea de comandos. Y de ahí en más utilzarla tipo bash: por ejemplo con [ESC] + * completa la palabra, con K y J presenta el comando anterior y siguiente. Con la barra / permite buscar y con la n rota dentro de los resultados de la búsqueda.

Una vez creada la base de datos, necesito crear un usuario del sistema operativo a quien le voy a asignar los permisos que necesite sobre la bd. El usuario en la parte del sistema operativo no necesita permisos particulares pero sí que el profile cargue las librerías de sql de db2.

 

Smit users

 

 

Creación del .profile (parado en el home del usuario):

 

Vi .profile

SHIFT + I

 

# The following three lines have been added by IBM DB2 instance utilities.

if [ -f /db2db01/sqllib/db2profile ]; then

. /db2db01/sqllib/db2profile

fi

set -o vi

LANG=en_US

 

ESC

:wq!

 

Ahora asignamos el usuario como administrador de la base nueva.

 

Con el SA, db2db01, le granteo los permisos de dbaadm

 

db2 connect to daf

db2 “grant dbadm on database to user dafadmin”

db2 “grant use of tablespace USERSPACE1 to user dafadmin”

 

db2 “CREATE TABLE TDEPT (DEPTNO CHAR (3) NOT NULL, DEPTNAME VARCHAR (36) NOT NULL, MGRNO CHAR (6), ADMRDEPT CHAR (3) NOT NULL, PRIMARY KEY (DEPTNO) )”

Creación de base de datos:

La creación de una base normal sería así: db2 create database daf automatic storage yes dejando ilimitado el crecimiento. Si quiero dividir los tablespaces puedo hacer algo así:

 

db2 “create database siebeldb

on /db2db01/db2db01

using CODESET 1252 TERRITORY LAT COLLATE USING IDENTITY

CATALOG TABLESPACE MANAGED BY SYSTEM USING   (‘/db2db01/db2db01/CATALOG’)

TEMPORARY TABLESPACE MANAGED BY SYSTEM USING (‘/db2db01/db2db01/TEMP’)

USER TABLESPACE MANAGED BY DATABASE USING    (‘/db2db01/db2db01/USER’)”

 

Notar el MANAGED BY DATABASE para poder administrar el crecimiento y poder anexar luego otros archivos (tipo ndf o mdf)

 

Con  db2pd -d daf –logs podemos ver la estructura de archivos de log. Luego con db2top -d daf –a podemos ver las sesiones acitvas de la base DAF

Para poder ver todos los agentamientos de AIX Crontab –l los lista.

 

Después de cambiar la configuración de la base de datos por los logs, el primer backup de la misma debe ser hecho sin el modificador online.

Primera entrega:

 

Para ver los procesos de X de vnc: ps –ef | grep vnc

Desde el cliente clásico de Windows poner la IP del server y un dos  puntos + el número de sesión (parámetro xvnc del comando anterior)

 

Para iniciar una sesión X para el usuario que estas utilizando ejecutar: vncserver

Para detener una sesión X, cualquiera: vncserver –kill :2 donde 2 es el id de la sesión a detener

 

Para ver si funciona el Shell grafico se puede usar el comando Wsm desde la misma consola grafica.

 

Para buscar un archivo en cualquier parte del server: find / -name archivo*

Para buscar un archivo en la carpeta donde estoy parado: find . -name archivo*

 

Para ver el uso del espacio en disco: df –m para ver la data en megas o –g para verla en gigas

 

Para apagar el equipo, tratar de no usar reboot , sino shutdown –Fr El primero es forzado y el segundo ordenado.

 

Para ver la fecha del ultimo reinicio del equipo usar who –r