Copia de seguridad y recuperación de la base de datos Oracle en Linux (comandos emp e imp)

                                      Copia de seguridad y recuperación de la base de datos Oracle en Linux (comandos emp e imp)

En comparación con MySQL, los comandos de copia de seguridad y restauración de Oracle son más poderosos, el comando de copia de seguridad es emp y el comando de restauración es imp. El archivo lógico utilizado suele tener el sufijo dmp, archivo de copia de seguridad lógica de Oracle, que a menudo se utiliza para la copia de seguridad lógica de la base de datos, la migración de la base de datos y otras operaciones.

 

La herramienta de exportación exp comprime la copia de seguridad de datos en la base de datos en un archivo de sistema binario. Se puede migrar entre diferentes sistemas operativos

Tiene tres modos:
       a. Modo de usuario: exporta todos los objetos del usuario y los datos en el objeto;
       b. Modo de tabla: exporta todas las tablas o tablas especificadas del usuario;
       c. Base de datos completa: exporta todos los objetos en la base de datos.

La herramienta de importación de imp tiene tres modos:
       a. Modo de usuario: importa todos los objetos del usuario y los datos en el objeto;
       b. Modo de tabla: importa todas las tablas o tablas especificadas del usuario;
       c. Toda la base de datos: importa todos los objetos en la base de datos.

Los pasos realizados por imp: 
   (1) crear tabla (2) insertar datos (3) crear índice (4) crear disparadores, restricciones-crear una tabla, insertar datos, generar índices, crear nuevos disparadores y varias restricciones.

Cabe señalar que solo los usuarios con permisos IMP_FULL_DATABASE y DBA pueden realizar la importación completa de la base de datos 

Problemas que pueden ocurrir al usar la herramienta de importación imp:

(1) El objeto de la base de datos ya existe en 
general, las tablas, secuencias, funciones / procedimientos, disparadores, etc. bajo los datos de destino deben eliminarse por completo antes de importar los datos; la   
base de datos el objeto ya existe, presione el valor predeterminado, la importación de los parámetros imp fallará 
si el parámetro ignore = y, se introduce en el contenido del archivo de datos expira 
si una tabla tiene restricciones de clave única, las condiciones no deseadas no se introducirán en 
la restricción si la tabla no es de claves únicas, causará registros duplicados 

(2) Cuando el objeto de la base de datos tiene restricciones de clave primaria y externa que 
      no cumplen con las restricciones de clave primaria y externa, los datos no se podrán importar.  
      Solución: Primero
importe la tabla primaria , luego importe la tabla dependiente  deshabilite las restricciones de clave primaria y externa del objeto de importación de destino, importe Después de los datos, habilítelos 
(3) Permisos insuficientes 
Si desea importar los datos del usuario A al usuario B, el usuario A debe tener el permiso imp_full_database 

(4) Al importar tablas grandes (más de 80 M), la asignación de almacenamiento falla. Cuando el 
      valor predeterminado EXP, compress = Y, es decir, comprime todos los datos en un bloque de datos. Al 
      importar, si no hay un bloque de datos grande continuo, la importación fallará. Al 
      exportar una tabla grande por encima de 80M, recuerde que compress = N, no causará este tipo de error. 

(5) El juego de caracteres usado por imp y exp es diferente. 
      Si el juego de caracteres es diferente, el la importación fallará. Puede cambiar la variable de entorno de Unix o la información relacionada con NLS_LANG en el registro de NT. 
      Vuelva a cambiarlo después de que se complete la importación. 

seleccione * de v $ nls_parameters donde parámetro = 'NLS_CHARACTERSET'; - Consultar el conjunto de caracteres utilizado por el sistema actual

seleccionar * de v $ nls_parameters; - Consultar todos los parámetros relacionados con el juego de caracteres

Modifique el juego de caracteres del sistema:

Antes de Oracle 8, puede modificar directamente los accesorios de la tabla del diccionario de datos $ para cambiar el juego de caracteres de la base de datos. Sin embargo, después de oracle8, hay al menos tres tablas del sistema que registran la información del juego de caracteres de la base de datos. Solo cambiar la tabla de props $ no está completo y puede causar graves consecuencias. El método de modificación correcto es el siguiente

Si el servidor de la base de datos se inicia en este momento, primero ejecute el comando SHUTDOWN IMMEDIATE para apagar el servidor de la base de datos y luego ejecute el siguiente comando:
  SQL> STARTUP MOUNT;
  SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
  SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 0;
  SQL> ALTER SYSTEM SET AQ_TM_PROCESSES = 0;
  SQL> ALTER DATABASE OPEN;
  SQL> ALTER DATABASE CHARACTER SET INTERNAL_USE ZHS16GBK; // Omitir detección de supersubconjunto AL32UTF8;
  SQL> ALTER DATABASE national CHARACTER SET INTERNAL ZHS16GBK; AL32UTF8;

El proceso anterior es: cerrar la base de datos, iniciar la base de datos para montar el estado e ingresar al modo de mantenimiento de la base de datos.En este momento, solo los usuarios del sistema y del sistema pueden iniciar sesión en la base de datos. Cierre el programador de DBMS y las tareas de programación de DBMS, cierre el inicio automático de la tarea, omita la verificación del súper subconjunto de caracteres, configure el juego de caracteres del sistema, cierre la base de datos y reinicie la base de datos.



(6) Las versiones Imp y exp no pueden ser compatibles con versiones posteriores. 
Imp puede importar archivos generados por versiones inferiores de exp, pero no puede importar archivos generados por versiones superiores de exp. 
Según la situación, podemos utilizar

 

 

La diferencia entre exp e imp y bomba de datos expdp e impdp:

1、exp和imp是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用。exp在客户端使用,要受到网速的影响,因此会比较慢。
2、expdp和impdp是服务端的工具程序,他们只能在Oracle服务端使用,不能在客户端使用。
3、imp只适用于exp导出的文件,不适用于expdp导出文件;impdp只适用于expdp导出的文件,而不适用于exp导出文件。
4、对于10g以上的服务器,使用exp通常不能导出0行数据的空表,而此时必须使用expdp导出。
5,数据泵expdp和impdp导出可以使用parallel属性指定并行任务导出,parallel=2就是并行2个任务导出。当然,这个并不是越多越好,需要考虑服务器的性能和cpu的个数等等因素。还可以通过导出多个文件的方式提高性能,即使用dumpfile=expdp.dp1,expdp.dp2这种方式提高性能。需要用户根据实际情况设置
6,exp导出时读取的是sql,通过加载sql查询结果到缓存,然后在写进目标文件,而expdp是直接读取的数据块,直接从数据块写进目标文件。

 

Comencemos con un ejemplo simple, exporte la tabla emp del usuario zsk e importe la tabla emp.

a, exportar la tabla emp del usuario zsk

Explique que el usuario zsk es un usuario nuevo y que la tabla emp se crea por sí mismo. Después de crear la tabla, exporte la tabla emp como un archivo, luego elimine la tabla emp y restaure la tabla emp en el archivo de importación.

b, cree un usuario zsk y otorgue los permisos adecuados

Ingrese sqlplus, use el usuario sys para iniciar sesión en la base de datos, cree un nuevo usuario zsk, otorgue permisos para crear tablas, insertar datos y eliminar tablas.

crear usuario zsk identificado por zsk; otorgar crear sesión a zsk; otorgar espacio de tabla ilimitado a zsk; otorgar crear cualquier tabla a zsk; - permisos de base de datos de conexión, leer permisos de espacio de tabla, permisos de nueva tabla, solo estos permisos son suficientes, y la contraseña de usuario de zsk es zsk.

c. Cree una tabla de muestra, emp. La declaración SQL para crear la tabla es la siguiente, insertando 14 registros:

create table EMP
(
empno NUMBER(4),
ename VARCHAR2(10),
job VARCHAR2(9),
mgr NUMBER(4),
hiredate DATE,
sal NUMBER(7,2),
comm NUMBER(7,2),
deptno NUMBER(2)
)
;
insert into EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
values (1, 'dog', 'code', 7369, to_date('05-06-2018', 'dd-mm-yyyy'), 5000, 5000, 10);
insert into EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
values (7369, 'SMITH', 'CLERK', 7902, to_date('17-12-1980', 'dd-mm-yyyy'), 800, null, 20);
insert into EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
values (7499, 'ALLEN', 'SALESMAN', 7698, to_date('20-02-1981', 'dd-mm-yyyy'), 1600, 300, 
30);
insert into EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
values (7521, 'WARD', 'SALESMAN', 7698, to_date('22-02-1981', 'dd-mm-yyyy'), 1250, 500, 30);
insert into EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
values (7566, 'JONES', 'MANAGER', 7839, to_date('02-04-1981', 'dd-mm-yyyy'), 2975, null, 
20);
insert into EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
values (7654, 'MARTIN', 'SALESMAN', 7698, to_date('28-09-1981', 'dd-mm-yyyy'), 1250, 1400, 
30);
insert into EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
values (7698, 'BLAKE', 'MANAGER', 7839, to_date('01-05-1981', 'dd-mm-yyyy'), 2850, null, 
30);
insert into EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
values (7788, 'SCOTT', 'ANALYST', 7566, to_date('19-04-1987', 'dd-mm-yyyy'), 3000, null, 
20);
insert into EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
values (7839, 'KING', 'PRESIDENT', null, to_date('17-11-1981', 'dd-mm-yyyy'), 5000, null, 
10);
insert into EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
values (7844, 'TURNER', 'SALESMAN', 7698, to_date('08-09-1981', 'dd-mm-yyyy'), 1500, 0, 30);
insert into EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
values (7876, 'ADAMS', 'CLERK', 7788, to_date('23-05-1987', 'dd-mm-yyyy'), 1100, null, 20);
insert into EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
values (7900, 'JAMES', 'CLERK', 7698, to_date('03-12-1981', 'dd-mm-yyyy'), 950, null, 30);
insert into EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
values (7902, 'FORD', 'ANALYST', 7566, to_date('03-12-1981', 'dd-mm-yyyy'), 3000, null, 20);
insert into EMP (empno, ename, job, mgr, hiredate, sal, comm, deptno)
values (7934, 'MILLER', 'CLERK', 7782, to_date('23-01-1982', 'dd-mm-yyyy'), 1300, null, 10);
commit;

d, exporta la tabla emp

Bajo el usuario de Oracle, ingrese el comando exp para ingresar interactivo

[oracle@centos11 ~]$ exp

Export: Release 11.2.0.1.0 - Production on Tue Jan 19 20:13:43 2021

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.


Username: zsk
Password: 

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Enter array fetch buffer size: 4096 > 

Export file: expdat.dmp > 

(2)U(sers), or (3)T(ables): (2)U > T

Export table data (yes/no): yes > 

Compress extents (yes/no): yes > 

Export done in US7ASCII character set and AL16UTF16 NCHAR character set
server uses AL32UTF8 character set (possible charset conversion)

About to export specified tables via Conventional Path ...
Table(T) or Partition(T:P) to be exported: (RETURN to quit) > emp

. . exporting table                            EMP         14 rows exported
Table(T) or Partition(T:P) to be exported: (RETURN to quit) > 

Export terminated successfully without warnings.

El archivo guardado se encuentra en el directorio de Oracle bajo el directorio de usuarios de Oracle. Lo anterior es el predeterminado. Ingrese el nombre de la tabla a respaldar después de la línea RETURN para salir, y luego presione Enter hasta el final. La exportación anterior es para habilitar la compresión de forma predeterminada y exportar los datos de la tabla, y la entrada T significa exportar una sola tabla. El segundo RETORNO para salir se ingresa cuando desea exportar la segunda tabla. Si no desea exportar, simplemente presione Enter.

e, importe la base de datos emp.

Primero, sqlplus inicia sesión en zsk y elimina la tabla emp. drop table emp;

Luego ejecute el comando: imp  zsk / zsk @ test file = / home / oracle / expdat.dmp

El nombre de la base de datos es prueba, así que escriba prueba después de @ e ingrese lo siguiente como de costumbre:

[oracle@centos11 ~]$ imp zsk/zsk@test file=/home/oracle/emp.dmp

Import: Release 11.2.0.1.0 - Production on Tue Jan 19 20:25:06 2021

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 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

Export file created by EXPORT:V11.02.00 via conventional path
import done in US7ASCII character set and AL16UTF16 NCHAR character set
import server uses AL32UTF8 character set (possible charset conversion)
. importing ZSK's objects into ZSK
. importing ZSK's objects into ZSK
. . importing table                         "EMPS"         14 rows imported
Import terminated successfully without warnings.

Si la tabla original se importa sin eliminarse, se informará que existe un objeto de error y el error se informará de la siguiente manera, aunque también es correcto:

[oracle@centos11 ~]$ imp zsk/zsk@test file=/home/oracle/expdat.dmp

Import: Release 11.2.0.1.0 - Production on Tue Jan 19 20:27:24 2021

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 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

Export file created by EXPORT:V11.02.00 via conventional path
import done in US7ASCII character set and AL16UTF16 NCHAR character set
import server uses AL32UTF8 character set (possible charset conversion)
. importing ZSK's objects into ZSK
. importing ZSK's objects into ZSK
IMP-00015: following statement failed because the object already exists:
 "CREATE TABLE "EMPS" ("EMPNO" NUMBER(4, 0), "ENAME" VARCHAR2(10), "JOB" VARC"
 "HAR2(9), "MGR" NUMBER(4, 0), "HIREDATE" DATE, "SAL" NUMBER(7, 2), "COMM" NU"
 "MBER(7, 2), "DEPTNO" NUMBER(2, 0))  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRA"
 "NS 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 FREELISTS 1 FREELIST"
 " GROUPS 1 BUFFER_POOL DEFAULT)                    LOGGING NOCOMPRESS"
Import terminated successfully with warnings.

 

 

 


    
   I

 

Supongo que te gusta

Origin blog.csdn.net/alwaysbefine/article/details/112757991
Recomendado
Clasificación