lunes, 5 de mayo de 2014

Oracle 12c Guía de Instalación y Manejo de PDB's

GRUPO DE UNO

Guía de Instalación y Manejo de PDB's 
Base de Datos Oracle12c
Versión: 12.1.0.1



30-ABRIL-2014


Elaborado por:
José Fabre
                                                                     Oracle Certified Associate
                     Jose.fc182@gmail.com
                                                              @josefabrec


Índice General






1.       Arquitectura de 12c


2.       Datos generales

Sistema Operativo

Oracle Linux Server release 6.4  

Instaladores del software Oracle 12c 

*Para descargar los instaladores se debe crear una cuenta en Oracle http://www.oracle.com/ y descargar los  paquetes de 12.1.0.1 para Linux

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

Una vez los paquetes descargados copiar en la partición o en la partición donde se tenga espacio para instalar la base.

/u01/database/


3.       Instalación Software Oracle

Una vez iniciado el SO abrimos una terminal y ejecutamos la siguiente sentencia.
[oracle@docec database]$ sh /u01/database/runInstaller




Se levanta el Oracle Universal Installer
Nota: Las Primeras dos opciones saltar
Escogemos la opción de instalar solo el software de Oracle
Clic Siguiente.



Seleccionamos la opción de instancia simple de base de datos
Clic Siguiente.



Idioma: Ingles (En este caso la instalación sera en ingles)
Clic Siguiente.

Escogemos Enterprise Edition ya que solo en Enterprise existe el concepto de multitenant con varias PDBs
Clic Siguiente.


La ruta en la que se va instalar
Oracle Base: /u01/app/Oracle
Software Location: /u01/app/Oracle/product/12.1.0/dbhome_1
Clic Siguiente.

Privilegios de SYS todo dba

Clic Siguiente.





Comienza el avance del proceso de instalación.
Nota: De existir problemas en los pre-requisitos de la instalación tomar en cuenta todos esos inconvenientes y solventarlos ya que eso depende el rendimiento de nuestra base si son paquetes instalar con yum -y <Nombre Paquete>



Una vez que termina la instalación del software se debe ejecutar el fichero que indica el asistente de instalación esta acción se debe hacer como root.. Abrimos una terminal nueva

Nota: Lo que hace estos archivos es cambiar el propietario a los ficheros de oracle.a todas las opciones dejarlas por defecto aplicar con la tecla enter

[oracle@docec database]$ sh /u01/app/oracle/product/12.1.0/dbhome_1/root.sh




4.       Instalación del Listener

Para la instalación del listener utilizamos el utilitario propio de oracle netca (Net Configuration Assistant)


                Abrimos una terminal y ejecutamos

      [oracle@docec database]$netca

               Seleccionamos configuración de listener

Clic siguiente.






               Seleccionamos Agregar un nuevo listener
Clic siguiente.


               Colocamos el nombre del Listener en este caso es LISTENER
Clic siguiente.


               Seleccionamos TCP para permitir conexiones de este tipo a la base
Clic siguiente.

                Usamos el puerto por defecto 1521
Clic siguiente.



Iniciar (lsnrctl start) o revisar (lsnrctl status) el servicio del Listener ejecutando en la terminal

[oracle@docec database]$lsnrctl status


5.       Instalación de CDBs y PDBs

Nota: Realizar  este pasó dos veces para instalar los dos conteiner

Para la instalación de CDBs utilizamos el utilitario dbca (Database Configure Assistant)

Abrimos una termina y ejecutamos

[oracle@docec database]$dbca

               Crear una base de datos
Clic siguiente.


               Seleccionamos el modo Avanzado esto nos permite crear más PDBs y un CDB.
Clic siguiente.

Base de datos de propósito general o transaccional
Clic siguiente.
Digitamos el nombre del CDB
Global Database Bame: container1.rfcg.com y container2.rfcg.com
Seleccionamos en Crear como una base de datos Container
Seleccionamos en Crear un Container con una o más PDBs
Nota: En la instalación del segundo conteiner seleccionar Crear solo el Container
PDB Name: pdb_1
Clic siguiente.

Seleccionar Configurar Enterprise Manager Database Express en este caso no se necesita el Cloud Control
Clic siguiente.


Ingresamos la contraseña para SYS y SYSTEM
Clave: oracle_4U
Clic siguiente.

Seleccionar el Listener que se configuro anteriormente
Clic siguiente.


Tipo de almacenamiento File System 
Nota:Se puede también instalar en +ASM
Clic siguiente.

Tamaño de Memoria 40%

Máximo número de procesos: 300  
Clic siguiente.

Juego de caracteres: AL32UTF8
Clic siguiente.


Clic siguiente.

Seleccionar Crear base de datos
Clic en siguiente.

Resumen de la configuración con la que se instalara el CDB y PDB



Avance del Proceso de instalación.


6.       Crear una PDB a partir del SEED

Se crea las carpetas para la nueva PDB dentro del container pata los datafile y tempfile para esto abrimos una terminal y ejecutamos.

[oracle@docec ~]$ mkdir –p /u01/app/oracle/oradata/container1/pdb_mktg/DATAFILE

[oracle@docec ~]$ mkdir -p /u01/app/oracle/oradata/container1/pdb_mktg/TEMPFILE

A continuación se digita la sentencia para crear una PDB como base la SEED$PDB

[oracle@docec ~]$. oraenv
ORACLE_SID = [container1] ? container1
[oracle@docec ~]$ sqlplus / as sysdba

SQL> CREATE PLUGGABLE DATABASE pdb_mktg
ADMIN USER pdb_mktg_admin IDENTIFIED BY password
DEFAULT TABLESPACE pdb_mktg_users_tbs
DATAFILE '/u01/app/oracle/oradata/container1/pdb_mktg/DATAFILE/pdb_mktg_users_tbs_01.dat'
SIZE 1g
FILE_NAME_CONVERT=('/u01/app/oracle/oradata/container1/pdbseed/','/u01/app/oracle/oradata/container1/pdb_mktg/')
STORAGE (MAXSIZE 10g MAX_SHARED_TEMP_SIZE 10g)
PATH_PREFIX='/u01/app/oracle/oradata/container1/pdb_mktg/';

7.       Crear una PDB usando CLONE

Se crea las carpetas para la nueva PDB dentro del container1 pata los datafile y tempfile para esto abrimos una terminal y ejecutamos.

[oracle@docec ~]$ mkdir –p /u01/app/oracle/oradata/container1/pdb_mktg_dev/DATAFILE

[oracle@docec ~]$ mkdir -p /u01/app/oracle/oradata/container1/pdb_mktg_dev/TEMPFILE

A continuación se digita la sentencia para crear una PDB usando CLONE

     [oracle@docec pdb_1_dev]$ . oraenv

ORACLE_SID = [container1] ? container1

[oracle@docec ~]$ sqlplus / as sysdba

SQL>ALTER PLUGGABLE DATABASE pdb_mktg OPEN;
SQL>ALTER PLUGGABLE DATABASE pdb_mktg CLOSE IMMEDIATE;
SQL>ALTER PLUGGABLE DATABASE pdb_mktg OPEN READ ONLY;

SQL>CREATE PLUGGABLE DATABASE pdb_mktg_dev
from pdb_mktg
STORAGE (MAXSIZE 15g MAX_SHARED_TEMP_SIZE 15g)
FILE_NAME_CONVERT=('/u01/app/oracle/oradata/container1/pdb_mktg/','/u01/app/oracle/oradata/container1/pdb_mktg_dev/')
 PATH_PREFIX='/u01/app/oracle/oradata/container1/pdb_mktg_dev/';

8.       Conectar y Desconectar una PDB


[oracle@docec ~]$ mkdir -p /u01/app/pdbs

[oracle@docec ~]$ chmod ugo+rw /u01/app/pdbs

       [oracle@docec pdb_1_dev]$ . oraenv

       ORACLE_SID = [container1] ? container1

[oracle@docec ~]$ sqlplus / as sysdba

SQL> select host_name,instance_name,version,status from v$instance;

HOST_NAME           INSTANCE_NAME    VERSION        STATUS
------------------------- ---------------- ----------------- ------------
docec               container1         12.1.0.1.0          OPEN

SQL>select b.con_id,a.pdb_name,a.status,b.open_mode
from dba_pdbs a,v$pdbs b
where a.pdb_name=b.name
order by b.con_id;

    CON_ID PDB_NAME     STATUS            OPEN_MODE
---------- ------------ ------------- ----------
       2 PDB$SEED NORMAL            READ ONLY
       3 PDB_1    NORMAL            READ WRITE
     
SQL> spool /u01/app/pdbs/pdb_1_files.txt
SQL> select name from v$datafile where con_id=3;

NAME
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
/u01/app/oracle/oradata/container1/pdb_1/system01.dbf
/u01/app/oracle/oradata/container1/pdb_1/sysaux01.dbf
/u01/app/oracle/oradata/container1/pdb_1/pdb_1_users01.dbf

SQL> spool off

SQL> alter pluggable database pdb_1 unplug into '/u01/app/pdbs/pdb_1.xml';
alter pluggable database pdb_1 unplug into '/u01/app/pdbs/pdb_1.xml'
*
ERROR at line 1:
ORA-65025: Pluggable database PDB_1 is not closed on all instances.


SQL> alter pluggable database pdb_1 close immediate;

Pluggable database altered.

SQL> select b.con_id,a.pdb_name,a.status,b.open_mode
from dba_pdbs a,v$pdbs b
where a.pdb_name=b.name
order by b.con_id;

    CON_ID PDB_NAME     STATUS            OPEN_MODE
---------- ------------ ------------- ----------
       2 PDB$SEED NORMAL            READ ONLY
       3 PDB_1    NORMAL            MOUNTED
     

SQL> alter pluggable database pdb_1 unplug into '/u01/app/pdbs/pdb_1.xml';

Pluggable database altered.

SQL> select b.con_id,a.pdb_name,a.status,b.open_mode
from dba_pdbs a,v$pdbs b
where a.pdb_name=b.name
order by b.con_id;

    CON_ID PDB_NAME     STATUS            OPEN_MODE
---------- ------------ ------------- ----------
       2 PDB$SEED NORMAL            READ ONLY
       3 PDB_1    UNPLUGGED     MOUNTED
     
SQL> alter pluggable database pdb_1 open read write;
alter pluggable database pdb_1 open read write
*
ERROR at line 1:
ORA-65086: cannot open/close the pluggable database

SQL> exit


[oracle@docec ~]$ ls -lh /u01/app/pdbs/
total 8.0K
-rw-r--r--. 1 oracle oinstall 1.1K Apr 29 19:40 pdb_1_files.txt
-rw-r--r--. 1 oracle oinstall 4.0K Apr 29 19:43 pdb_1.xml

[oracle@docec ~]$ vim /u01/app/pdbs/pdb_1_files.txt

[oracle@docec pdbs]$ cp /u01/app/oracle/oradata/container1/pdb_1/system01.dbf /u01/app/pdbs/                                                                                                                                                 
[oracle@docec pdbs]$ cp /u01/app/oracle/oradata/container1/pdb_1/sysaux01.dbf /u01/app/pdbs/                                                                                                                                                  
[oracle@docec pdbs]$ cp /u01/app/oracle/oradata/container1/pdb_1/pdb_1_users01.dbf /u01/app/pdbs/

Incluir en la copia al temp
[oracle@docec pdbs]$ cp /u01/app/oracle/oradata/container1/pdb_1/temp01.dbf /u01/app/pdbs/

[oracle@docec pdbs]$ ls -lh /u01/app/pdbs/
total 906M
-rw-r--r--. 1 oracle oinstall  645 Apr 29 19:51 pdb_1_files.txt
-rw-r-----. 1 oracle oinstall 5.1M Apr 29 19:59 pdb_1_users01.dbf
-rw-r--r--. 1 oracle oinstall 4.0K Apr 29 19:43 pdb_1.xml
-rw-r-----. 1 oracle oinstall 641M Apr 29 19:59 sysaux01.dbf
-rw-r-----. 1 oracle oinstall 261M Apr 29 19:53 system01.dbf

SQL> exit

[oracle@docec pdb_1_dev]$ . oraenv
ORACLE_SID = [container1] ? container2
[oracle@docec ~]$ sqlplus / as sysdba

SQL> select host_name,instance_name,version,status from v$instance;

HOST_NAME                                       INSTANCE_NAME      VERSION       STATUS
---------------------------------------------------------------- ---------------- ----------------- ------------
docec                                          container2   12.1.0.1.0          OPEN

SQL> create pluggable database pdb_1_dev AS CLONE using '/u01/app/pdbs/pdb_1.xml'  FILE_NAME_CONVERT = ('/u01/app/oracle/oradata/container1/pdb_1/','/u01/app/oracle/oradata/container2/pdb_1_dev/');

Pluggable database created.

SQL> select b.con_id,a.pdb_name,a.status,b.open_mode
from dba_pdbs a,v$pdbs b
where a.pdb_name=b.name
order by b.con_id;

    CON_ID PDB_NAME     STATUS            OPEN_MODE
---------- ------------ ------------- ----------
       2 PDB$SEED NORMAL            READ ONLY
       3 PDB_1_DEV      NEW         MOUNTED

SQL> alter pluggable database pdb_1_dev open read write;

Pluggable database altered.

SQL> exit

[oracle@docec pdb_1_dev]$ . oraenv
ORACLE_SID = [container1] ? container1
[oracle@docec ~]$ sqlplus / as sysdba

SQL> select b.con_id,a.pdb_name,a.status,b.open_mode
from dba_pdbs a,v$pdbs b
where a.pdb_name=b.name
order by b.con_id;

    CON_ID PDB_NAME     STATUS            OPEN_MODE
---------- ------------ ------------- ----------
       2 PDB$SEED NORMAL            READ ONLY
       3 PDB_1    UNPLUGGED     MOUNTED
       4 PDB_MKTG NORMAL            READ ONLY
       5 PDB_MKTG_DEV NEW           MOUNTED

SQL> drop pluggable database pdb_1;

Pluggable database dropped.

SQL> select b.con_id,a.pdb_name,a.status,b.open_mode
from dba_pdbs a,v$pdbs b
where a.pdb_name=b.name
order by b.con_id;

    CON_ID PDB_NAME     STATUS            OPEN_MODE
---------- ------------ ------------- ----------
       2 PDB$SEED NORMAL            READ ONLY
       4 PDB_MKTG NORMAL            READ ONLY
       5 PDB_MKTG_DEV NEW           MOUNTED

   CONCLUSIONES

Después de revisar y realizar toda esta práctica usted debe ser capaz de:

Instalar el software de oracle 12c 
Configurar 2 container 
Crear Pluggable Dabaste de 3 formas

       - A partir de la PDB SEED
       -Utilizando CLONE
       -Conectar y Desconectar (Unplug and Plug) 



No hay comentarios:

Publicar un comentario