sábado, 8 de enero de 2022

ORACLA y CONTENEDORES 12C

 

Creación de un cdb pdb de 12c para múltiples inquilinos

1.1 crear declaración de base de datos conectable para crear pdb

Clon basado en semilla de pdbseed
Pasos de creación:
(a) Utilice la declaración create pdb:

SQL> create pluggable database pdborcl admin user pdbadmin identified by oracle  file_name_convert=('pdbseed','pdborcl');
  • 1

Observaciones:
1. Si el parámetro de conversión no está configurado, pdb usará el método de administración omf para ver el estado
2. Cuando existe db_create_file_dest (es decir, usando el método OMF), no es necesario agregar file_name_convert. En este momento, se usará el método de nomenclatura omf para generar el archivo de datos.
3. En el entorno rac, la estructura del directorio de archivos se puede crear de antemano en el grupo de discos asm. Si se usa omf, use file_name_convert para convertir la ruta y especifique explícitamente la ruta absoluta de pdbseed (sistema, sysaux, temp). Por ejemplo, cree una base de datos conectable pdborcl admin usuario admin identificado por oracle file_name_convert = ('+ DATA / ORCL / 77408ECCA64E8959E0530B0410AC5685 / DATAFILE / system.267.988496155', '+ DATA / pdborcl / system.dbf', '+ DATAECDCADCADATA / 775408 .268.988496159 ',' + DATA / pdborcl / sysaux.dbf ',' + DATA / ORCL / 77408ECCA64E8959E0530B0410AC5685 / TEMPFILE / temp.269.988496161 ',' + DATA / pdborcl / temp.dbf ');

(b) Consulta cdb, estado de pdb

SQL> select pdb_name,status from cdb_pdbs;

PDB_NAME   STATUS
---------- ----------
PDB$SEED   NORMAL
PDBORCL    NORMAL


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

© Abrir pdb

SQL> alter pluggable database pdborcl open;

Pluggable database altered.

  • 1
  • 2
  • 3
  • 4

(d) Verificar el estado

SQL> show pdbs;

    CON_ID CON_NAME   OPEN MODE  RESTRICTED
---------- -------------- 
         2 PDB$SEED     READ ONLY  NO
         3 PDBORCL      READ WRITE NO

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

(e) Ver el nombre del servicio


SQL> select name from v$services;

NAME
-------------------------------------
orclXDB
orcl
SYS$BACKGROUND
SYS$USERS
pdborcl


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

También puede especificar la ruta del archivo de datos a través del parámetro PATH_PREFIX, y Oracle creará automáticamente el directorio, de la siguiente manera:

SQL> create pluggable database cs admin user admin identified by oracle PATH_PREFIX='/u01/app/oracle/oradata/orcl/cs/' file_name_convert=('pdbseed','cs');

Pluggable database created.

SQL> select name from v$datafile;
/u01/app/oracle/oradata/orcl/cs/system01.dbf
/u01/app/oracle/oradata/orcl/cs/sysaux01.dbf
/u01/app/oracle/oradata/orcl/cs/undotbs01.dbf
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

SQL> create pluggable database test admin user admin identified by oracle file_name_convert=(‘pdbseed’,‘test’);
create pluggable database test admin user admin identified by oracle file_name_convert=(‘pdbseed’,‘test’)
*
ERROR at line 1:
ORA-65005: missing or invalid file name pattern for file -
+DATA/ORCL/FD9AC20F64D244D7E043B6A9E80A2F2F/DATAFILE/system.266.987717117

1.2 instrucción dbca crea pdb

[oracle@orcldb ~]$ dbca -silent -createPluggableDatabase -sourceDB orcl -pdbName pdborcl -createPDBFrom default -pdbadminusername padmin -pdbadminpassword oracle -pdbdatafiledestination /u01/app/oracle/oradata/orcl/pdborcl
Creating Pluggable Database
2% complete
6% complete
11% complete
20% complete
46% complete
Completing Pluggable Database Creation
53% complete
Executing Post Configuration Actions
100% complete
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/orcl/pdborcl/orcl.log" for further details.


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

Nota: El parámetro después de -sourceDB es un nombre único para la base de datos RAC o SID

Dos, 12c de mantenimiento diario

2.1 Crear un usuario en cdb

Creación de usuarios en cdb
create user c##cdbadmin identified by oracle;
 Autorización
grant dba to c##cdbadmin;

  • 1
  • 2
  • 3
  • 4
  • 5

2.2 Conectarse a pdb

Hay dos formas de conectarse a pdb

(A) Cambiar dentro de sqlplus
select name,open_mode from v$pdbs;
alter session set container='';
 Crea usuarios de la forma habitual
 (B) Conéctese a través de tnsname
sqlplus sys/oracle@pdborcl

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

Abra todos los pdb a la vez

alter pluggable database all open;

 Inicie pdb en estado de solo lectura
alter pluggable database pdborcl open read only;
  • 1
  • 2
  • 3
  • 4

Cerrar todos los pdbs a la vez

alter pluggable database all close immediate;
  • 1

2.3 Cambiar el nombre de la base de datos pdb

Operar en pdb

SQL> alter session set container=pdborcl;

Session altered.

SQL> startup restrict;
Pluggable Database opened.

SQL> alter pluggable database pdborcl rename global_name to pdborclnew;

Pluggable database altered.

SQL> show con_name

CON_NAME
------------------------------
PDBORCLNEW

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

2.4 Limitar el tamaño total del disco que puede usar pdb

Ejecutar en pdb

alter pluggable database pdborcl storage(maxsize 10G);
  • 1

2.5 Ver el historial de operaciones de pdb

select db_name,con_id,pdb_name,operation,op_timestamp,cloned_from_pdb_name from cdb_pdb_history;
  • 1

## 2.6 Desactivar la función RESULT CACHE
Bug 20985596 : ORA-00600[KPP_CONCATQ:2] OCCURS WHEN SQL EXECTING
alter system set result_cache_mode=manual;
alter system set result_cache_max_size=0;
alter system set “_optimizer_ads_use_result_cache”=false;

Tres, clon pdb

12c r1 12c r2 diferencia:
Al clonar en Oracle 12.1, la biblioteca debe cerrarse y debe iniciarse en estado de solo lectura
En Oracle 12.2, no es necesario cerrar la biblioteca, puede clonar directamente en línea

3.1 método de clonación dbca gui

step 1

step 2

step 3

step 4

step 5

step 6

Nota: El pdb clonado en modo interfaz gráfica de usuario creará el espacio de tabla de los usuarios de forma predeterminada, y el pdb se abrirá automáticamente después de que se complete la creación.

3.2 Clon del comando create pluggable

Pasos:
Ejecutar en cdb:

create pluggable database pdborclclone from pdborcl 
file_name_convert=('pdborcl','pdborclclone')
service_name_convert=('pdborcl','pdborclclone');
  • 1
  • 2
  • 3

Al crear un PDB, solo puede clonar el modelo de definición de datos de la base de datos sin datos (los datos de la tabla o índice creado por el usuario se descartan) y especificar NO DATA al crearlo.

create pluggable database pdb2 from pdb1 no data;
  • 1

3.3 Clonar pdb de forma remota

1. Cree un dblink en el nuevo host de cdb

SQL> create database link pdbclone connect to pdbadmin2 identified by oracle using '172.16.4.110:1521/pdborclnew';
  • 1

2. Clonar el pdb de origen

SQL> create pluggable database pdborclnew3 from pdborclnew@pdbclone file_name_convert=('/u01/app/oracle/oradata/orcl/pdborclnew','/u01/app/oracle/oradata/orcl/pdborclnew3');
  • 1

3. Abra pdb en el nuevo host de cdb.

SQL> alter pluggable database all open;
  • 1

Observaciones: el permiso del usuario pdbadmin2 en dblink es pdb_dba

Cuatro, pdb eliminar

4.1 eliminación gráfica de dbca

step1

step2

step3
eliminado

4.2 soltar comando borrar

1 cerrar pdb

alter pluggable database pdborclclone close immediate;
  • 1

2 eliminar pdb
Si el pdb no está desconectado, se puede eliminar mediante la inclusión de archivos de datos

drop pluggable database pdborclclonbe including datafiles;
  • 1

Cinco, pdb marcar

5.1 Desenchufe dbca gráficamente

step 1

step 2

step 3

Después de desconectar, el archivo de datos se borrará

5.2 Desenchufe por comando

Cierre pdb primero

alter pluggable database pdborclclone2 close immediate;
  • 1
Luego ejecute el comando de desconexión 
alter pluggable database pdborclclone2 unplug into '/unplug/pdborclclone2.xml';

  • 1
  • 2
  • 3

Necesito eliminar pdb en cdb después de desconectar

drop pluggable database pdborclclone2;
  • 1

El archivo de datos original de pdb eliminado por el comando seguirá existiendo y el archivo temporal se eliminará

Seis, inserto pdb

6.1 inserción gráfica dbca

step 1

step 2

step 3

step 4

6.2 Insertar en modo sqlplus

step 1
Comprueba la compatibilidad

set serveroutput on
declare
compatiable constant varchar2(3) :=
case dbms_pdb.check_plug_compatibility(
pdb_descr_file => '/unplug/pdborclclone.xml',
pdb_name => 'pdborclclone')
when true then 'yes'
else 'no'
end;
begin
dbms_output.put_line(compatiable);
end;
/
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
 select message,action from pdb_plug_in_violations;
   Compruebe si el resultado devuelto es sí
  • 1
  • 2

step 2
ejecutar pdb insert

 create pluggable database pdborclclone3 using '/unplug/pdborclclone2.xml' nocopy;--Si se inserta la ruta de la base de datos
  • 1

Observaciones: 1 pdb creado por este método. La ruta del archivo de datos utilizada sigue siendo la anterior
2 La versión de base de datos 12c r2 no se puede insertar en 12c r1 y probar, y la declaración de verificación de compatibilidad devuelve no

6.3 Insertar el pdb de una máquina extranjera

(1) Extraiga pdb en la base de datos de origen y genere un archivo xml
(2) Copie los archivos de datos y los archivos xml de la base de datos pdb de origen en el host de destino
(3) Comprobación de compatibilidad

set serveroutput on
declare
compatiable constant varchar2(3) :=
case dbms_pdb.check_plug_compatibility(
pdb_descr_file => '/unplug/pdborcl2.xml',
pdb_name => 'pdborcl2')
when true then 'yes'
else 'no'
end;
begin
dbms_output.put_line(compatiable);
end;
/
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

(4) Creación de declaraciones
Las observaciones que utilizan el parámetro nocopy significan que no es necesario copiar el archivo de datos de la tabla temporal

SQL> create pluggable database pdborcl3 using '/unplug/pdborcl2.xml' 
file_name_convert=('/u01/app/oracle/oradata/orcl/pdborcl2','/u01/app/oracle/oradata/orcl/pdborcl3');


create pluggable database pdborcl using '/unplug/pdborcl.xml' nocopy;
  • 1
  • 2
  • 3
  • 4
  • 5

Observaciones: no hay problema para insertar después de eliminar pdb

Siete, copia de seguridad y recuperación de cdb y pdb

7.1 cdb de copia de seguridad rman

La copia de seguridad en cdb hará una copia de seguridad de todas las bases de datos, incluido pdb

7.2 pdb de copia de seguridad rman

Dos caminos
(a) pdb se conecta a rman a través de tns
Igual que el método de respaldo sin múltiples inquilinos
(b) Hacer una copia de seguridad de pdb en cdb
Conéctese directamente a cdb para hacer una copia de seguridad de pdb

 backup pluggable database pdborcl format '/u01/rman/pdborcl_full_%U.bak';
  • 1

7.3 Utilice rman para restaurar cdb y pdb

La base de datos pdb se puede restaurar en el estado de montaje de cdb

restore pluggable database pdborclclone3;
recover pluggable database pdborclclone3;
  • 1
  • 2

Puede restaurar pdb en el estado abierto de cdb

restore pluggable database pdborclclone3;
recover pluggable database pdborclclone3;
  • 1
  • 2

Ocho, 12c em manager se conecta a pdb

El número de puerto se puede asignar en pdb y el pdb se puede conectar solo a través de em
exec dbms_xdb_config.sethttpsport(5501);

No hay comentarios: