Sunteți pe pagina 1din 94

Modo: COMMAND LINE PROCESSOR (CLP)

Clic derecho sobre el escritorio > Open Terminal

En la consola, ingresar:

db2 (Activa el Modo CLP: Command Line Processor)

cat /etc/passwd

(passwd: es un archivo de configuración del S.O. que guarda registros de usuario, grupos, idusuario, contraseña, directorio)

(cat: comando para consultar archivos)


Revisar el usuario de la instancia de la BD DB2 (Buscar la palabra db2inst1 y verificar el directorio utilizado por el usuario)

Ejm:

db2inst1:x:1000:1000::/home/db2inst1:/bin/bash
cat .profile

(profile: archivo de perfiles que declarar variables de entorno del sistema y aplicaciones)

Nota:
Revisando el detalle del archivo .profile para el usuario del S.O. db2inst1, se puede identificar que
en la ruta:
/home/db2inst1/sqllib/db2profile

guarda el archivo db2profile que corresponde a la configuración de la instancia de bd db2inst1


para el CLP (Command Line Processor)
cat /home/db2inst1/sqllib/db2profile (Editar el archive de config. db2profile para el CLP del usuario db2inst1)

vi: comando para editar archivos.


Para salir del modo edición, pulsar botón "Esc" (se mostrará el cursor con el símbolo ":")
Luego, seleccionar la opción deseada:
1) Para guardar los cambios, ingresar "wq"
2) Para descartar los cambios, ingresar "!q"
Modo: COMANDO DEL S.O.

db2start (inicia los servicios de la instancia de BD)


db2 connect to sample (abre una conexión la base de datos SAMPLE)
db2 "select * from org"
db2 terminate (cierra la conexión actual a la base de datos)
db2stop (detiene los servicios de la instancia de BD)

Modo: Interactivo del CLP

db2 (Activa Modo CLP)


!db2start (El simbolo "!" permite ejecutar comandos del sistema operativo cuando está en modo CLP)
connect to sample
select * from org
terminate

Modo: ARCHIVO

vi myscript.db2 (pulsar tecla "i": para modificar el archivo)(crea el archivo y abre el archivo para edición)
!db2start;
connect to sample;
select * from org;
terminate;
db2 -tvf myscript.db2 (Ejecutar en la ruta donde está el archivo)

db2
!db2start
connect to sample
list tables (Lista las tablas de la BD de la conexión)
h (mostrar el historial de comandos DB2 ejecutados) (h: history)
r 3 (leer [read] la sentencia nro. 3 del historial de comandos DB2 ejecutados) (r: run o read)
select * from org (recupera la sentencia nro. 3)

e 3 (editar la sentencia nro. 3 del historial de comandos DB2 ejecutados)


Pulsar la tecla “insert” (para activar modo de edición de la sentencia elegida [nro. 3])

select * from org where ed_level > 18 (Antes de modificar)

select * from employee where edlevel > 18 (Después de modificar)

history (h)
run 3 (r 3)
edit 7 (e 7)
select * from employee where edlevel > 18
!ls –lr (Mientras está active el modo CLP, se ejecuta el comando del S.O: ls –lr)
USO DE DATASTUDIO
New database

netstat -an | grep 50000 (comando para visualizar estado de puertos)


Clic derecho sobre la BD Sample > Connect
CREACIÓN DE UNA BASE DE DATOS

Recomendación:

/apps (File system por default) --> directorios del motor de base de datos y de las instancias (CONFIG)

/data (File system nuevo o separado) --> directorios de las base de datos (DATA)

Crear previamente los directorios de los archivos de config. de la BD (Ejm: /DBSALES4) y de la data
de BD (Ejm: /DBAUTO41)

su - root
mkdir /dbsales1
mkdir /dbsales2
mkdir /dbsales3
mkdir /dbauto3
mkdir /dbsales4
mkdir /dbauto41
mkdir /dbauto42
mkdir /dbauto43

chown db2inst1 /dbsales1


chown db2inst1 /dbsales2
chown db2inst1 /dbsales3
chown db2inst1 /dbauto3
chown db2inst1 /dbsales4
chown db2inst1 /dbauto41
chown db2inst1 /dbauto42
chown db2inst1 /dbauto43

ls –ltr /
create database sales1 on /dbsales1

create database sales2 automatic storage no on /dbsales2


create database sales3 on /dbauto3 dbpath on /dbsales3

create database sales4 automatic storage yes on /dbauto41, /dbauto42,/dbauto43 dbpath on /dbsales4

* Esta sentencia es opcional (dependiendo de la versión). Si no se especifica, entonces la sentencia


elige la opción (internamente): automatic storage yes
db2set db2_clpprompt=”(Instancia:%i%n BaseDatos:%d):” (Para personalizar el prompt de DB2, modificar una variable de entorno)

db2 (Iniciar modo CLP)

connect to sales1
select * from syscat.stogroups
connect to sales2
select * from syscat.stogroups

Nota:
La base de datos SALES2 no tiene definido un Grupo de Almacenamiento (cuando se creó esta base de
datos, no se definió esto), por ello, al conectarse a esta BD y consultando la tabla SYSCAT.STOGROUPS no se
encuentra registro alguno)

STORAGE GROUP (Grupo de Almacenamiento): Gestionar DISCO DURO (espacio físico del disco).
TABLESPACE: Gestionar la SEGURIDAD (Se asigna a usuarios y cada Tablespace puede contener objetos de BD)
BUFFER POOL: Gestionar MEMORIA (Memoria Temporal) (se asigna a tablespace)
Por default, el buffer pool le asigna a un tablespace una memoria de 4K
su – root (acceder con el superusuario “root”)
mkdir /dbauto2 (Crear carpeta dbauto2, tiene permisos asociados al usuario root)
ls –ltr / (Mostrar carpetas en el directorio “/”)
chown db2inst1 /dbauto2 (Modificar propietario de la carpeta /dbauto2)
CREAR STORAGE GROUP

connect to sales2
create stogroup stgsales2 on ‘/dbauto2’
ls /dbauto2/db2inst1/NODE0000 (Mostrar contenido de este directorio)

Nota:
Luego de ejecutar el comando de creación del Grupo de Almacenamiento (STOGROUP), en la
carpeta de datos /dbauto2/, se crea una carpeta que identifica al nombre lógico de la base de
datos (SALES2)

select * from syscat.stogroups


CREAR UN TABLESPACE

create tablespace tslima using stogroup stgsales2


select * from syscat.stogroups

list tablespaces

Nota:
Para una BD, los tablespace por defecto o del sistema que se generan son: SYSCATSPACE,
TEMPSPACE, USERSPACE y son del tipo SYSTEM MANAGED SPACE y no pueden ser modificados u
optimizados
Los tablespace creados manualmente son del tipo: DATABASE MANAGED SPACE si pueden ser
optimizados. Para SALES2, se muestra el tablespace creado manualmente TSLIMA.
connect to sales1
list tablespaces
connect to sales2
list tablespaces show detail

Nota:
El parámetro PAGE SIZE (BYTES): 4096 (4K) es lo que se asigna a los BUFFER POOL por default.
mkdir /dbauto2a
mkdir /dbauto2b
chown db2inst1 /dbauto2a
chown db2inst1 /dbauto2b
ls –ltr /

alter stogroup stgsales2 add ‘/dbauto2a’, ‘/dbauto2b’ (Comando para adicionar mas rutas de almacenamiento a un storage group)

alter tablespace tslima rebalance


ls /dbauto2a/db2inst1/NODE0000/
ls /dbauto2b/db2inst1/NODE0000/

rename stogroup stgsales2 to discoAZYTI (Cambiar de nombre a un storage group)


select * from syscat.stogroups (Verificar que STGSALES2 ha sido modificado por DISCOAYZTI)

mkdir /dbauto2new
chown db2inst1 /dbauto2new
ls –ltr /

db2
connect to sales2
create stogroup discoANC on ‘/dbauto2new’
select * from syscat.stogroups

list tablespaces show detail


alter tablespace tslima using stogroup discoANC
select VARCHAR(STORAGE_GROUP_NAME,30) AS STOGROUP,
VARCHAR(DB_STORAGE_PATH,40) AS STORAGE_PATH
from TABLE (ADMIN_GET_STORAGE_PATHS(‘ ‘,-1) AS T (Para listar de rutas de Storage Group)
CATALOGAR UNA BASE DE DATOS

Para acceder en forma remota a una base de datos, se requiere catalogarla.

db2 set (Muestra el tipo de comunicación utilizada: TCPIP)


db2 get dbm cfg | grep SVCENAME (Muestra los servicios de la instancia de BD)

cat /etc/services | grep db2c (Muestra los puertos que utilizan los servicios del S.O. de Linux)

CONFIGURACION DE BASE DE DATOS

db2 get db cfg (config. de una BD [db: database])


db2 get dbm cfg (config. de la instancia (dbm: database manager])
Paginación: unidad de medida de almacenamiento del Tablespace

CREAR UN BUFFERPOOL

select * from syscat.bufferpools (Listar los bufferpools)


create bufferpool bpnew pagesize 8192 (Crear un nuevo bufferpool bpnew de tamaño 8192)
select * from syscat.bufferpools

create schema lima authorization db2inst1 (crear un nuevo esquema)


create schema pisco authorization db2inst1
select schemaname from syscat.schemata (Listar esquemas)

select * from syscat.tablespaces


create regular tablespace mitbsp pagesize 8 k bufferpool bpnew (Crear tablespace y vincular a Bufferpool)

list tablespaces (listar tablespaces)


TABLAS, ESQUEMAS, VISTAS, INDICES, ALIAS

Crear tablas con esquemas:


create table lima.employee (
id integer, name varchar(20),
profession varchar(20),
join_date date,
salary integer)

create table pisco.employee (


id integer, name varchar(20),
profession varchar(20),
join_date date,
salary integer)
select tabname, tabschema, tbspace from syscat.tables where tabname = ‘EMPLOYEE’
Nota:
Los objetos: LIMA.EMPLOYEE y PISCO.EMPLOYEE son tablas diferentes (que coinciden con la
misma estructura de tabla)
create table lima.customer (custid integer not null, fullname varchar(100), phone char(10)
implicity hidden)

insert into lima.customer (custid, fullname, phone) values (100, ‘Silvana’, ‘9876543210’)
insert into lima.customer (custid, fullname, phone) values (101, ‘Hanny’, ‘9876511111’)
insert into lima.customer (custid, fullname, phone) values (102, ‘Carmen’, ‘9876522222’)
select * from lima.customer

describe table lima.customer (para visualizar estructura de una tabla, incluyendo campos ocultos)
create alias lim_cust for lima.customer
select * from lima.customer
select * from lim_cust
create table pisco.sales (id bigint not null, itemname varchar(40) not null, qty int not null, price
double not null)
create unique index sales1 on pisco.sales(id) include (itemname)
create sequence sales_seq as int start with 1 increment by 1 (Campo incremental)

create trigger sales_trigger no cascade before insert on pisco.sales referencing new as obj for each
row set obj.id=nextval for sales_se

insert into pisco.sales (itemname, qty, price) values (‘ATUN FILETE’, 100, 24.00)
insert into pisco.sales (itemname, qty, price) values (‘ATUN TROZO’, 150, 24.00)
select * from pisco.sales
values previous value for sales_seq (Verificando el valor del contador incremental)
values next value for sales_seq

insert into pisco.sales (itemname, qty, price) values (‘ATUN SOLIDO’, 200, 240.00)
values previous value for sales_seq
select * from pisco.sales
delete from pisco.sales where id = 2
values previous value for sales_seq

delete from pisco.sales where id = ‘3’


values previous value for sales_seq
select * from pisco.sales
insert into pisco.sales (itemname, qty, price) values (‘ATUN ABC’, 300, 240.00)
select * from pisco.sales

create view view_sales (id, itemname, qty, price) as select id, itemname, qty, price from
pisco.sales
select * from view_sales
CREACION DE UNA NUEVA INSTANCIA DE BD

su – root (se tendrá que ingresar la contraseña respectiva del superusuario root)

cd /opt/ibm/db2/V10.5/instance (Ubicarse sobre el directorio del motor de BD)


./db2icrt –u db2fenc1 clase23 (Crear una nueva instancia)
./db2ilist (Listar las instancias de BD)

Nota1:
Para crear una nueva instancia de BD2:
1) Crear un usuario del S.O.
(Ejm: db2inst2, Se creará un carpeta de perfil de usuario en la ruta: /home/db2inst2)
2) Crear el directorio donde se almacenara la instancia
(Ejm: mkdir /instancia2, Se creará una carpeta en la ruta: /instancia2)
3) Asignar permisos al usuario del S.O. para que sea propietario del directorio
(Ejm: chown db2inst2 /instancia2)

Nota2:
- Las instancias de BD tienen que ser creadas con el usuario administrador (Linux: root)
- Crear un usuario en el sistema operativo (clase23) y agregarlo al grupo de db2
su – clase23 (cambiar al usuario clase23)
ls -ltr

Nota:
Luego de crear la instancia, se crea una carpeta "sqllib" en el directorio /home/clase23

cat .profile (consultar el archivo profile)

Nota:

En el archivo .profile (ubicado en el directorio /home/clase23/), al consultarlo, se visualizará que


se declara una referencia al archivo de config. (profile) de la instancia de BD
db2start (Iniciar la instancia de BD “clase23”)

quit (Salir del modo CLP)

Nota:

ps -ef (consultar procesos de Linux<> administrador de tareas/proceso de Windows)

kill -9 id_proceso (eliminar un proceso determinado)

df -k (Consultar tamaño del file system del sistema operativo)


Alternativa 1 para crear usuarios (Interfaz Gráfica):

Yast > Security and Users > User and Group Management

boton Add

Pestaña User Data


Registrar usuario (username, user’s full name: isim70)

Pestaña Details:
Home Directory: /home/isim70
Default Group: db2grp1
Additional Groups: db2grp1, users, dialout (opcional)

Pulsar OK

Alternativa 2 para crear usuarios (Comandos):


su - root
useradd -u 2000 -g db2grp1 -m -d /home/isim70 isim70 -p 123456

sintaxis:
useradd -u <ID> -g <groupname> -m -d <path user location> <user name> -p <password>

vi /etc/group (Para modificar los miembros de un grupo y verificar que los IDs de los grupos no existen en el
sistema operativo)
vi /etc/passwd (Para modificar el grupo por defecto de un usuario y verificar que <ID> de usuario no existe
en el sistema operativo)
Grupo de Administradores de DB2 (Permite ejecutar comandos):
db2grp1 o
db2iadm1

cd /home/isim70
ls
mkdir isim70
chown isim70 /home/isim70/isim70/
chgrp db2grp1 /home/isim70/isim70
ls -ltr

Nota:
Crear carpeta de la instancia ("isim70" dentro de /home/isim70) y modificar los permisos para que
el usuario isim70 sea propietario de la carpeta
su – root (Crear la instancia con el usuario root)
cd /opt/ibm/db2/V10.5/instance (Ruta de instalación del motor de BD)
./db2icrt -u db2fenc1 isim70 (db2fenc1: Usuario de | isim70: usuario propietario de la instancia)

Nota:
db2licm -l: Comando para consultar licencia del motor de base de datos
./db2icrt db2admin2 –s ese –u db2admin2 (Windows)

netstat –an | grep 50002


hostname (Devuelve el valor ‘db2awse’)
telnet db2awse 50002

Nota:
Verificar que el puerto que se desea definir a la instancia esté disponible (50002) (no debería
obtenerse una respuesta si es que está libre)
netstat -an | grep nro_puerto
o
telnet host_name nro_puerto

vi /etc/services (Editar el archivo /etc/services .Por seguridad, sacar una copia al archivo services)

Ingresar ":/db2" (para filtrar los nombre que empiecen con db2)
Pulsar tecla "i" (insertar) y definir el nombre del servicio y el puerto asociado
Registrar: db2c_isim70 50002/tcp

Nota:
Recomendación: db2c_nombre_instancia puerto_instancia/tcp

cat /etc/services | grep db2 (Consultar archivo /etc/services y verificar registro)


su – isim70 (Iniciar sesión con usuario propietario de la instancia [isim70])

Nota:

(Verificar el nombre del usuario si existe, consultando con: cat /etc/passwd)

db2 update dbm cfg using svcename db2c_isim70 (Asigna el servicio que utilizará la instancia)
db2 set DB2COMM=tcpip (Asigna el tipo de comunicación que utilizará la instancia)
db2 get dbm cfg | grep db2_isim70 (Para validar el servicio asignado a la instancia)
db2start (Iniciar la instancia)
db2stop (Detener la instancia)
BACKUPS y RESTORE DE BD
db2 list application (para revisar conexiones a las diferentes bases de datos de la instancia)
db2 "force application (nro_handle)" (para cerrar una conexión en base al nro_handle)

db2 terminate (detiene el servicio de una base de datos a la cual se está conectado. Previamente
se estableció una conexión con: db2 connect to sales2)

db2 deactivate database simple (para guardar [vaciar] todos los datos del buffer del log [BUFFER
LOG] hacia el archivo log en disco para la base de datos SAMPLE)

db2 backup database SAMPLE to /home/db2inst1 (para generar un backup de la base de datos
SAMPLE y guardarlo en /home/db2inst1)

Nota:
db2 “force applications all” (cierra todas las conexiones)

db2 get db cfg for SAMPLE | grep LOGARCH (Para revisar si BD SAMPLE trabaja con archivos LOG)
mkdir /backup
ls –ltr

chown db2inst1: db2grp1 /backup

ls –ltr /

ls –ltr /backup/
db2 update database configuration for SAMPLE using LOGARCHMETH1 ‘/backup/ArchivoDest’
o
db2 update db cfg for sample using LOGARCHMETH1 'DISK:/backup/ArchivoDest'
(para actualizar la config. de la base de datos SAMPLE y se pueda modificar a una ruta específica el
LOG PRINCIPAL [First Log Archive Method])

db2 get db cfg for SAMPLE | grep LOGARCH

db2 terminate
db2 deactivate database SAMPLE
db2 backup database SAMPLE to /home/db2inst1
ls –ltr /home/db2inst1/
db2 restore database SAMPLE from /home/db2inst1/ taken at 20160906151900
(Ejecuta un restore de data)
db2 rollforward db SAMPLE to end of logs and stop
(Ejecuta un restore de logs, como complemento al restore de data [db2 backup database...])
db2 connect to SAMPLE

db2 list tables

db2 describe table employee

db2 “select empno, firstname, lastname, sex from employee”


db2 “update employee set sex = ‘M’ where empno = ‘000010’

db2 “select empno, firstname, lastname, sex from employee”

db2 list application


db2 “force application (2423)”
db2 terminate
db2 deactivate database SAMPLE
ls –ltr /home/db2inst1/

db2 restore database SAMPLE from /home/db2inst1/ taken at 20160906151900

El backup resaltado tiene el empleado 00010 con valor para el campo SEX=F
db2 connect to SAMPLE

db2 rollforward db SAMPLE to end of logs and stop

db2 connect to SAMPLE

db2 “select empno, firstname, lastname, sex from employee”


SEGURIDAD (AUTORIZACIÓN VS AUTENTICACIÓN, PRIVILEGIOS, ROLES)
AUNTENTICACIÓN: valida el SISTEMA OPERATIVO
AUTORIZACIÓN: valida la BASE DE DATOS
La AUTENTICACIÓN y AUTORIZACIÓN son procesos independientes
Las buenas prácticas recomiendan que para la autenticación, los usuarios deben ser consultados
desde un LDAP (el Sistema Operativo [por lo general un Linux para DB2] debe estar en el dominio
corporativo de red)

AUTORIZACIÓN

db2 connect to SAMPLE


db2 “select varchar(grantee, 12) as grantee, varchar(grantor, 12) as grantor, connectauth,
loadauth, dbadmauth, securityadmauth from syscat.dbauth”
db2 grant secadm on database to user pamela
db2 “select varchar(grantee, 12) as grantee, varchar(grantor, 12) as grantor, connectauth,
loadauth, dbadmauth, securityadmauth from syscat.dbauth”

db2 grant secadm on database to user Milton


db2 “select varchar(grantee, 12) as grantee, varchar(grantor, 12) as grantor, connectauth,
loadauth, dbadmauth, securityadmauth from syscat.dbauth”

Por ejm: se puede asignar permisos (AUTORIZACIÓN) al usuario milton, pero no permitirá
conectarse a la base de datos SAMPLE (AUTENTICACIÓN) con este mismo usuario, debido a que no
está creado en el Sistema Operativo
AUTENTICACIÓN

usuario: scsample
password: 123456
db2 grant secadm on database to user scsample
db2 “select varchar(grantee, 12) as grantee, varchar(grantor, 12) as grantor, connectauth,
loadauth, dbadmauth, securityadmauth from syscat.dbauth”
CREAR ROLES

db2 connect to SAMPLE user scsample using 123456


db2 create role viewsample
db2 grant role viewsample to user eric
db2 grant dbadm on database to role viewsample

usuario: eric
password: 123456

db2
connect to SAMPLE user eric using 123456 (Conectado con el usuario eric a la BD SAMPLE)
list tables

db2
connect to SAMPLE user scsample using 123456 (Conectado con el usuario scsample a la BD SAMPLE)

grant select on table db2inst1.emp to role viewsample

select * from db2inst1.emp (Probamos con el usuario eric si podemos hacer un select a la tabla EMP)
grant select, update on table db2inst1.org to role viewsample
(con el usuario scsample, asignamos privilegios al rol viewsample)

BACKUP

db2 connect to SAMPLE


db2look –d SAMPLE –a –e –x –o SAMPLE.txt
-d: base de datos
-t: tabla
-z: esquema
-a: objetos de cualquier usuario
-e: genera DDL de objetos de la BD
-x: genera DDL de autorización
-l: genera TABLESPACE, GRUPOS DE ALMACENAMIENTO y GRUPOS DE PARTICIONES
-o: salida

db2look –d SAMPLE –t EMPLOYEE –a –e –x –o EMPLOYEE.txt


db2 connect to SAMPLE
db2look –d SAMPLE –a –e –x –o SAMPLE.txt

pwd
(para ello, verificar con pwd cual es la ubicacion actual)

Genera el archivo de salida SAMPLE.txt en la ruta donde se está ejecutando la orden

db2look –d SAMPLE –t EMPLOYEE –a –e –x –o EMPLOYEE.txt


Nota:
Esta sentencia exporta la tabla EMPLOYEE de la base de datos SAMPLE (la tabla la exporta del
esquema del usuario conectado a la BD sample, para el caso DB2INST1)

Genera el archivo de salida EMPLOYEE.txt en la ruta donde se está ejecutando la orden

db2look –d SAMPLE –t EMPLOYEE –z MIESQUEMA –a –e –x –o MIESQUEMA-EMPLOYEE.txt

Exporta desde la base de datos SAMPLE, tabla EMPLOYEE y desde el esquema MIESQUEMA
Para abrir un archivo plano, se puede utilizar el comando MORE
more /home/db2inst1/Desktop/EMPLOYEE.txt
(Se avanza pulsando ENTER y se sale pulsando con "q")

gedit /home/db2inst1/Desktop/EMPLOYEE.txt

Genera el archivo de salida EMPLOYEE.txt en la ruta donde se está ejecutando la orden


mkdir /home/db2inst1/BDSAMPLE
cd /home/db2inst1/BDSAMPLE
db2move SAMPLE export
ls –ltr

cat db2move.lst

mkdir /backup/simple/
cd /backup/simple
cp /home/db2inst1/BDSAMPLE/* .
db2move SAMPLE import
TALLER DE CREACIÓN DE UNA INSTANCIA DE BD / BACKUP / RESTORE
Ejecutar el sgte comando con privilegios de administrador (usuario: root):
useradd -u <ID> -g <groupname> -m -d <path user location> <user name> -p <password>

useradd -u 2000 -g db2grp1 -m -d /home/maxtest db2test -p db2inst2


useradd -u 2001 -g db2grp1 -m -d /home/maxprod db2prod -p db2inst2
useradd -u 2002 -g db2grp1 -m -d /home/maxdess db2dess -p db2inst2

vi /etc/group (Para modificar los miembros de un grupo y verificar que los IDs de los grupos no
existen en el sistema operativo)
vi /etc/passwd (Para modificar el grupo por defecto de un usuario y verificar que <ID> de usuario
no existe en el sistema operativo)

Grupo de Administradores de DB2 (Permite ejecutar comandos):


db2grp1
o
db2iadm1

Nota:
No es necesario que el directorio home del usuario exista (si ya existe, se consultará si se desea
reemplazar)

Verificar que los puertos no estén usados:

netstat -an | grep 60004

netstat -an | grep 60005

netstat -an | grep 60006

Verificar que los puertos no estén registrados en el archivo /etc/services (Con estos comandos, no
debe encontrarse resultados de coincidencias)

cat /etc/services | grep 60004

cat /etc/services | grep 60005

cat /etc/services | grep 60006

Registramos los puertos deseados en el archivo /etc/services (para poder acceder en forma
remota a las instancias, es necesario registrarlas como servicios)

vi /etc/services
(Una vez abierto el archivo /etc/services con el comando vi, para activar el modo edición, pulsar
tecla "Insertar" y para buscar la sección de registros similares dentro del archivo, ingresar
"/nombre_deseado" y pulsar Enter)

db2c_db2test 60004/tcp

db2c_db2prod 60005/tcp

db2c_db2dess 60006/tcp

Ubicarse en el directorio del motor de base de datos y verificar las instancias registradas

cd /opt/ibm/db2/V10.5/instance# ./db2ilist

Ubicarse en el directorio del motor de base de datos y crear la instancia

cd /opt/ibm/db2/V10.5/instance# ./db2icrt -s ese -u <usuario admin de la instancia> <nombre de la instancia de BD>

cd /opt/ibm/db2/V10.5/instance# ./db2icrt -s ese -u db2test db2test

cd /opt/ibm/db2/V10.5/instance# ./db2icrt -s ese -u db2prod db2prod

cd /opt/ibm/db2/V10.5/instance# ./db2icrt -s ese -u db2dess db2dess

1er db2test: usuario administrador de la instancia de la BD

2do db2test: nombre de la instancia de la BD

su - db2test

db2start

db2 update database manager configuration using svcename db2c_db2test

db2set DB2COMM=tcpip

db2stop
db2start

db2sampl (Opcional: Comando para crear la base de datos SAMPLE en la instancia DB2TEST)

su - db2prod

db2start

db2 update database manager configuration using svcename db2c_db2prod

db2set DB2COMM=tcpip

db2stop

db2start

db2sampl (Opcional: Comando para crear la base de datos SAMPLE en la instancia DB2PROD)

su - db2dess

db2start

db2 update database manager configuration using svcename db2c_db2dess

db2set DB2COMM=tcpip

db2stop

db2start

db2sampl (Opcional: Comando para crear la base de datos SAMPLE en la instancia DB2DESS)

db2pd -inst | head -2


cp /home/maxtest/backup/* .

Comando para copiar archivos:

Origen: /home/maxtest/backup/* ("*" indica todo los archivos del origen)

Destino: . ("." indica hacia la carpeta actual)

Comando para cambiar de nombre: mv <nombre_inicial> <nombre_modificado>

Se ha modificado el archivo backup para que tenga asociado el nombre de la instancia DB2PROD
(inicialmente estaba asociado DB2TEST)
Comando para restaurar backup de una BD de otra instancia:

db2 restore database sample from /home/maxprod/restore on /home/maxprod

from /home/maxprod/restore: Directorio origen del archivo backup que se desea restaurar

on /home/maxprod: Directorio destino de la instancia sobre la que se restaurará la BD*

* Si no se indica el destino, el archivo backup (por defecto) tratará de restaurar al directorio


original del archivo backup (es decir: /home/maxtest)

Nota:

Como la base de datos SAMPLE fue creada con el usuario DB2TEST (al ser creada con el usuario
DB2TEST, se convierte en propietario de la BD. Es sólo coincidencia que el usuario DB2TEST, al
mismo tiempo, es el usuario Admin. de la Instancia DB2TEST, podría ser otro usuario), al ser
restaurada y cuando se intenta acceder con el usuario DB2PROD, no es posible ver la base de
datos debido a que DB2PROD no tiene permisos para acceder a SAMPLE.

Para ello, será necesario en la instancia DB2PROD, conectarse a la bd SAMPLE usando el usuario
DB2TEST, ya que este usuario es el propietario de la BD. Podría posteriormente cambiarse los
privilegios para utilizar el usuario DB2PROD para conectarse a SAMPLE.

Opcional:

En caso no se recuerde el password del usuario de la instancia (por ejm: db2test), se le puede
resetear la contraseña de la siguiente forma:

Ejm:

user: db2test

pass: db2inst2
RESTAURAR CON EXPORT
Para revisar, por comando, el contenido del archivo sample.sql

#more sample.sql
Sobre el directorio /HOME/MAXTEST/EXPORT, se ha realizado lo siguiente:

db2look -d sample -a -e -o sample.sql: Exporta el script DLL de la BD SAMPLE al archivo


SAMPLE.SQL (ubicado en /HOME/MAXTEST/EXPORT)

db2move SAMPLE export: Exporta DATA (en forma de archivos encriptados) (ubicado en
/HOME/MAXTEST/EXPORT)
#db2 -tvf /home/maxtest/export/sample.sql
conectarse a la bd SAMPLE con el usuario propietario de la BD en el ambiente original, es decir,
db2test (si se intenta conectar por defecto a la bd SAMPLE, se tratará de conectar con el usuario
admin de la instancia, para el ejm: db2dess, el cual no tiene permisos sobre el BD del ambiente
original)
Para verificar que se pueda acceder y ver todos los objetos de la BD SAMPLE (en la instancia
MAXDESS), ejecutar la sentencia DB2 LIST TABLES para revisar las tablas de la BD

Para verificar adicionalemente, intentar realizar un SELECT * FROM DB2TEST.EMP, sino se puede
es porque al momento de generar el script SAMPLE.SQL falta agregar un parametro adicional para
exportar el script; en este caso, es necesario ejecutar un comando para agregar privilegios al
usuario DB2TEST
db2 connect reset (se cierra la conexión del usuario db2test)

db2 connect to sample (se conecta con el usuario admin. de la instancia, es decir: db2dess)

db2 GRANT DBADM, CREATETAB, BINDADD, CONNECT, CREATE_NOT_FENCED_ROUTINE,


IMPLICIT_SCHEMA, LOAD, CREATE_EXTERNAL_ROUTINE, QUIESCE_CONNECT, SECADM ON
DATABASE TO USER db2test .... (es necesario ejecutar este comando con el usuario admin. de la
instancia (db2dess) para agregar permisos a otros usuarios: db2test)

Después de modificar permisos, se podrá consultar a una tabla de la base de datos SAMPLE
Borrando la bd SAMPLE de la instancia DB2DESS (debido que en este ambiente, cuando se quiso
restaurar la bd SAMPLE backupeado de DB2TEST, se originaron errores o algunas tablas no fueron
creadas)

Borrando el archivo sample.sql de la carpeta /home/db2test/export


Generando nuevamente el script sample.sql dentro de la carpeta /home/maxtest/export

Creando una carpeta import en el home de db2dess (/home/maxdess/import) y copiando el


archivo sample.sql generado en /home/maxtest/export hacia el directorio /home/maxdess/import
Creando la base de datos SAMPLE en la instancia db2dess (db2 create database SAMPLE)

Conectarse a la bd SAMPLE por defecto (se conectará con el usuario admin. de la instancia:
db2dess), luego se asigna permisos al usuario db2test en la bd SAMPLE
Ejecutar el script sample.sql para crear la estructura (tablas, vistas, objetos) de la bd SAMPLE

Conectarse a la bd SAMPLE con el usuario db2test y verificar si se crearon todas las tablas (en total
en el ambiente original: db2test, eran 47 tablas)

Nota: Sólo se crearon 24 tablas (Tipo: T: tabla, A: Alias, S, V: Vista)


MONITOREO

S-ar putea să vă placă și