Introducción a OracleDB 5: espacio de tabla transportable

Escribir al frente

         Este artículo se reproduce de: Hablando sobre Oracle Transportable Tablespace (Parte 1)

         Porque práctico, por eso la reimpresión, gracias a los creadores .

        Tenemos muchos métodos de copia de seguridad y migración de datos en el entorno de Oracle, como exp / imp, expdp / impdp y rman. Entre estos métodos, Transportable Tablespace siempre ha sido el medio técnico de migración de datos más rápido en el sentido tradicional. Idealmente, Transportable Tablespace puede lograr una característica de velocidad similar a la de la transmisión de red directa. En este artículo, presentaremos algunos detalles de uso de la tecnología de espacio de tabla de transmisión.

1. Descripción general del espacio de tabla transportable

      Otros métodos tradicionales de migración de copia de seguridad siguen principalmente el modelo " extraer-transportar-restaurar ". Tomando expdp como ejemplo, Oracle usa un trabajo de programación interno especial para convertir los datos (Bloque Usado) que deben exportarse a un archivo de formato dmp para su almacenamiento y conservación. Después de eso, se transmite a Target Envionment a través de la red y finalmente se restaura al nuevo entorno. La optimización acelerada de este modo se refleja principalmente en la extracción y reducción, como el uso de medios paralelos y otros.

      El espacio de mesa transportable no es tal concepto en absoluto. Si lo comparas, es similar al concepto de Portable / Plugin. El espacio de tabla de la misma plataforma y juego de caracteres puede copiar archivos de datos directamente al entorno de destino. El nivel de Oracle solo necesita permitir que el diccionario de datos conozca los metadatos de estos datos.

      En comparación con otros métodos, la mayor ventaja de Transportable Tablespace es que no requiere complicados procesos de extracción y restauración , y el requisito de espacio para el entorno intermedio es muy pequeño. Demostremos a través de una serie de experimentos.

2. Preparación ambiental y requisitos previos

Oracle Transportable Tablespace (en lo sucesivo, TTS) apareció muy pronto. TTS tradicional tiene tres restricciones básicas , a saber:

  • El contenido del espacio de tabla es autónomo. El espacio de tabla (uno o más) que exportamos al mismo tiempo no puede tener objetos dependientes en otros espacios de tabla. Por ejemplo, a menudo distribuimos datos e índices de una tabla de datos en diferentes espacios de tabla, por lo que si usamos el espacio de tabla transportable, debemos exportar todos estos espacios de tabla a la vez;
  • El juego de caracteres y el juego de caracteres nacional de la base de datos de origen y de destino deben ser exactamente iguales;
  • La base de datos de origen y destino del sistema operativo requiere compatibilidad. Nota: En versiones superiores a 10g, esta restricción ha sido cancelada;

       Introduciremos estas limitaciones y comprobaremos métodos de forma más intuitiva a continuación. Debido a las limitaciones del entorno del autor, algunos experimentos solo se pueden realizar en un servidor. El experimento específico selecciona Oracle 11gR2.

SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE        11.2.0.1.0         Production

- construcción de dos mesas de experimentos

SQL> create tablespace ttstbl datafile size 10m autoextend on
  2  extent management local uniform. size 1m
  3  segment space management auto;
Tablespace created

SQL> create tablespace ttsind datafile size 10m autoextend on
  2  extent management local uniform. size 1m
  3  segment space management auto;
Tablespace created

- Usuario de prueba

SQL> create user test identified by test default tablespace ttstbl;
User created

SQL> grant resource, connect to test;
Grant succeeded

SQL> grant select_catalog_role to test;
Grant succeeded

Utilice el usuario de prueba para crear algunos objetos en el espacio de tabla.

SQL> conn test/test@ora11gp;
Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0
Connected as test

SQL> create table t tablespace ttstbl as select * from dba_objects;
Table created

SQL> create index idx_t_id on t(object_id) tablespace ttsind;
Index created

3 Check Verificación previa a la condición

Como requisito previo, primero determine la información del juego de caracteres de la base de datos de origen.

SQL> select value from nls_database_parameters where parameter='NLS_CHARACTERSET';
VALUE
--------------------
AL32UTF8

SQL> select value from nls_database_parameters where parameter='NLS_NCHAR_CHARACTERSET';
VALUE
--------------------
AL16UTF16

Espero exportar el espacio de tabla recién creado ttsind y ttstbl-view el archivo de datos.

SQL> select file_name, tablespace_name from dba_data_files where tablespace_name like 'TTS%';

FILE_NAME                                                                        TABLESPACE_NAME
-------------------------------------------------------------------------------- ------------------------------
/u01/app/oradata/ORA11G/datafile/o1_mf_ttstbl_8bmyjf3w_.dbf                      TTSTBL
/u01/app/oradata/ORA11G/datafile/o1_mf_ttsind_8bmyjz69_.dbf                      TTSIND
[oracle@bsplinux datafile]$ ls -l
total 2095500
(篇幅原因,省略部分内容)
-rw-r----- 1 oracle oinstall  10493952 Nov 19 18:04 o1_mf_ttsind_8bmyjz69_.dbf
-rw-r----- 1 oracle oinstall  20979712 Nov 19 17:59 o1_mf_ttstbl_8bmyjf3w_.dbf
-rw-r----- 1 oracle oinstall 267395072 Nov 19 18:13 o1_mf_undotbs1_7vpyc2py_.dbf
-rw-r----- 1 oracle oinstall  11804672 Nov 19 17:29 o1_mf_users_7vpyc2xd_.dbf

       Entre las limitaciones tradicionales, el sistema operativo de la plataforma del sistema operativo es un factor ineludible al utilizar TTS. Oracle divide las plataformas compatibles en dos tipos grandes, Big y Little (los extremos grande y pequeño de la CPU) . Se puede realizar una migración de espacio de tabla libre entre la misma plataforma y no se permite la migración entre diferentes plataformas. Nota: esta limitación se rompió después de Oracle 10g . Lo presentaremos en detalle más adelante.

Podemos comprobar v $ transportable_platform para determinar si los sistemas son compatibles.

SQL> col platform_name for a30;
SQL> select platform_name, ENDIAN_FORMAT from v$transportable_platform;
PLATFORM_NAME                  ENDIAN_FORMAT

------------------------------ --------------
Solaris[tm] OE (32-bit)        Big
Solaris[tm] OE (64-bit)        Big
Microsoft Windows IA (32-bit)  Little
Linux IA (32-bit)              Little
AIX-Based Systems (64-bit)     Big
HP-UX (64-bit)                 Big
HP Tru64 UNIX                  Little
HP-UX IA (64-bit)              Big
Linux IA (64-bit)              Little
HP Open VMS                    Little
Microsoft Windows IA (64-bit)  Little
IBM zSeries Based Linux        Big
Linux x86 64-bit               Little
Apple Mac OS                   Big
Microsoft Windows x86 64-bit   Little
Solaris Operating System (x86) Little
IBM Power Based Linux          Big
HP IA Open VMS                 Little
Solaris Operating System (x86- Little64)                            
Apple Mac OS (x86-64)          Little

20 rows selected

Para su propia base de datos, puede consultar la información de su propia plataforma en la vista de base de datos v $.

SQL> select PLATFORM_ID , PLATFORM_NAME from v$database;

PLATFORM_ID PLATFORM_NAME
----------- ------------------------------
         10 Linux IA (32-bit)

Después de determinar la compatibilidad de la plataforma, debemos determinar si los espacios de tabla que se van a trasplantar son "autónomos" . Oracle proporciona el método del paquete dbms_tts para la verificación.

SQL> exec dbms_tts.transport_set_check('ttstbl, ttsind',true);
PL/SQL procedure successfully completed

SQL> select * from transport_set_violations;

VIOLATIONS
--------------------------------------------------------------------------------

      Si hay un error en la verificación, podemos encontrar la información del mensaje en transport_set_violations . Solo después de resolver el problema autónomo, podemos continuar con los siguientes pasos.

4. Exportación de datos ambientales

   Para controlar los cambios en la base de datos original, necesitamos establecer el espacio de tabla en solo lectura . La declaración específica es: alter tablespace xxx solo lectura .

SQL> select tablespace_name, status from dba_tablespaces where tablespace_name like 'TTS%';
TABLESPACE_NAME                STATUS

------------------------------ ---------
TTSIND                         READ ONLY
TTSTBL                         READ ONLY

Oracle TTS necesita utilizar exp / expdp para exportar la información de metadatos del espacio de tabla como un archivo dmp, que se utiliza para describir la información del espacio de tabla. Tenga en cuenta que este tiempo de proceso es muy corto y el archivo dmp generado suele ser muy pequeño.
 

[root@bsplinux ~]# cd /
[root@bsplinux /]# mkdir transtts
[root@bsplinux /]# chown -R oracle:oinstall transtts/
[root@bsplinux /]# ls -l | grep transtts
drwxr-xr-x   2 oracle   oinstall  4096 Nov 19 18:19 transtts
[root@bsplinux /]#

Exp admite el método de trabajo TTS.

[oracle@bsplinux transtts]$ exp userid=\"/ as sysdba\" transport_tablespace=y tablespaces=ttstbl,ttsind file=ttsdmp.dmp log=res.log statistics=none


Export: Release 11.2.0.1.0 - Production on Mon Nov 19 19:32:14 2012
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Export done in AL32UTF8 character set and AL16UTF16 NCHAR character set
Note: table data (rows) will not be exported
About to export transportable tablespace metadata...
For tablespace TTSTBL ...
. exporting cluster definitions
. exporting table definitions
. . exporting table                              T
For tablespace TTSIND ...
. exporting cluster definitions
. exporting table definitions
. exporting referential integrity constraints
. exporting triggers
. end transportable tablespace metadata export
Export terminated successfully without warnings.

Después de eso, solo necesitamos copiar directamente los archivos de datos (cp, scp, etc.) .

SQL> select 'cp '||file_name ||' /transtts' from dba_data_files where tablespace_name like 'TTS%';

'CP'||FILE_NAME||'/TRANSTTS'
--------------------------------------------------------------------------------
cp /u01/app/oradata/ORA11G/datafile/o1_mf_ttstbl_8bmyjf3w_.dbf /transtts
cp /u01/app/oradata/ORA11G/datafile/o1_mf_ttsind_8bmyjz69_.dbf /transtts

[oracle@bsplinux transtts]$ cp /u01/app/oradata/ORA11G/datafile/o1_mf_ttstbl_8bmyjf3w_.dbf /transtts
cp /u01/app/oradata/ORA11G/datafile/o1_mf_ttsind_8bmyjz69_.dbf /transtts
[oracle@bsplinux transtts]$ cp /u01/app/oradata/ORA11G/datafile/o1_mf_ttsind_8bmyjz69_.dbf /transtts
[oracle@bsplinux transtts]$

5. Recuperación del entorno de datos

Necesitamos transferir el archivo de datos al servidor de la base de datos de destino a través de FTP / SFTP. El autor restaura primero el entorno de datos, porque se utiliza la misma base de datos.

SQL> drop tablespace ttstbl including contents and datafiles;
Tablespace dropped

SQL> drop tablespace ttsind including contents and datafiles;
Tablespace dropped

SQL> select file_name from dba_data_files where tablespace_name like 'TTS%';
FILE_NAME
--------------------------------------------------------------------------------

La base de datos de origen no tiene espacio de tabla TTS. A continuación, copiaremos el archivo de datos en una nueva ubicación e importaremos la información de metadatos.

[oracle@bsplinux transtts]$ cp o1_mf_ttstbl_8bmyjf3w_.dbf /u01/app/oradata/ORA11G/datafile/
[oracle@bsplinux transtts]$ cp o1_mf_ttsind_8bmyjz69_.dbf /u01/app/oradata/ORA11G/datafile/

[oracle@bsplinux datafile]$ ls -l
total 2095500
-rw-r----- 1 oracle oinstall  10493952 Jul  3 03:48 mytesttbl01.dbf
-rw-r----- 1 oracle oinstall  10493952 Jul  3 03:48 mytesttbl02.dbf
-rw-r----- 1 oracle oinstall 104865792 Nov 19 17:29 o1_mf_rman_ts_87bx5kcg_.dbf
-rw-r----- 1 oracle oinstall 838868992 Nov 19 19:46 o1_mf_sysaux_7vpyc2hb_.dbf
-rw-r----- 1 oracle oinstall 807411712 Nov 19 19:43 o1_mf_system_7vpyc1x7_.dbf
-rw-r----- 1 oracle oinstall  60825600 Nov 19 18:02 o1_mf_temp_7vpz05do_.tmp
-rw-r----- 1 oracle oinstall  10493952 Nov 19 19:47 o1_mf_ttsind_8bmyjz69_.dbf
-rw-r----- 1 oracle oinstall  20979712 Nov 19 19:46 o1_mf_ttstbl_8bmyjf3w_.dbf
-rw-r----- 1 oracle oinstall 267395072 Nov 19 19:47 o1_mf_undotbs1_7vpyc2py_.dbf
-rw-r----- 1 oracle oinstall  11804672 Nov 19 17:29 o1_mf_users_7vpyc2xd_.dbf

Importación del comando Imp .

[oracle@bsplinux transtts]$ imp userid=\'/ as sysdba\' file=ttsdmp.dmp transport_tablespace=y tablespaces=ttsind,ttstbl datafiles=/u01/app/oradata/ORA11G/datafile/o1_mf_ttstbl_8bmyjf3w_.dbf,/u01/app/oradata/ORA11G/datafile/o1_mf_ttsind_8bmyjz69_.dbf

Después de importar metadatos, Oracle puede determinar el espacio de tabla importado.

SQL> select file_name,tablespace_name from dba_data_files where tablespace_name like 'TTS%';

FILE_NAME                                                                        TABLESPACE_NAME
-------------------------------------------------------------------------------- ------------------------------
/u01/app/oradata/ORA11G/datafile/o1_mf_ttsind_8bmyjz69_.dbf                      TTSIND
/u01/app/oradata/ORA11G/datafile/o1_mf_ttstbl_8bmyjf3w_.dbf                      TTSTBL

SQL> conn test/test@ora11gp
Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0
Connected as test

SQL> select count(*) from t;

  COUNT(*)
----------
     72348

Tenga en cuenta que el espacio de tabla importado todavía está en estado de solo lectura y debe activarse .

SQL> alter tablespace ttsind read write;
Tablespace altered

SQL> alter tablespace ttstbl read write;
Tablespace altered

 Arriba hemos dado un ejemplo simple de TTS. Para TTS, todavía hay muchos detalles y escenarios de aplicación complejos, que continuarán más adelante.

Otros suplementos

  •      En aplicaciones reales, para facilitar el uso de la función de espacio de tabla transportable, es mejor especificar un nuevo espacio de tabla al crear el esquema en lugar de utilizar el espacio de tabla USER predeterminado , de modo que sea conveniente cumplir con los requisitos autónomos;
  • En el entorno de uso real del autor, el sistema operativo es de nivel virtual vmware, y la versión empresarial de redhat se construye automáticamente utilizando una plataforma en la nube basada en plantillas estándar, por lo que puede cumplir fácilmente los requisitos de juego de caracteres, juego de caracteres nacional, etc.

Supongo que te gusta

Origin blog.csdn.net/zhaogang1993/article/details/92721083
Recomendado
Clasificación