DAY 14 - LOGICAL BACKUP | DATAPUMP UTILITY


q  Oracle DATAPUMP utility – Expdp | Impdp

q  Data pump (EXPDP & IMPDP) utilities are used to take Import and Export of Oracle databases.

 

& Following levels of Data Pump Export | Import is possible:

 

v  Database Level

v  Schema Level

v  Table Level

v  Row Level

v  Tablespace Level

& We can Export and Import from two users; one is the user who owns the object & another is the SYS user. In real time it is always good to perform export & import using SYS user. You don't have to bother about this permission and all

 

q  DATA PUMP [SERVER-SIDE UTILITY/INFRASTRUCTURE FAST DATA MOVEMENT BETWEEN ORACLE DATABASE]

 

v  EXPDP

v  IMPDP

 

 

q  DATAPUMP UTILITY USES STREAMS POOL SIZE MEMORY AREA

 

SQL> show parameter streams;

 

NAME                                          TYPE         VALUE

------------------------------------ ----------- ------------------------------

streams_pool_size                      big integer 0

 

SQL> alter system set STREAMS_POOL_SIZE=200M scope=both; [CURRENTLY AUTOMATIC MEMORY MANAGEMENT]

 

q  Create Directory at OS level

 

[oracle@dbserver]$ export ORACLE_PDB_SID=maxpdb

[oracle@dbserver]$ mkdir -p /u01/backup

 

[oracle@dbserver]$ sqlplus / as sysdba

 

SQL*Plus: Release 19.0.0.0.0 - Production on Mon Oct 2 21:47:11 2023

Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

Connected to:

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

Version 19.3.0.0.0

 

SQL> show con_name

 

CON_NAME

------------------------------

MAXPDB

 

q  To Create Directory on Database level

 

SQL> create or replace directory datapump as '/u01/backup';

 

Directory created.

 

q  To view Directory Information

 

SQL> select OWNER, DIRECTORY_NAME, DIRECTORY_PATH from dba_directories where DIRECTORY_NAME='DATAPUMP';

 

OWNER                          DIRECTORY_NAME                 DIRECTORY_PATH

------------------------------ ------------------------------ ------------------------------

SYS                            DATAPUMP                       /u01/backup

 

q  Check Estimate Export Time

[oracle@dbserver] expdp estimate_only=y schemas=hr

Username: / as sysdba

Password: oracle

 

q  To take DATABASE Level export

[oracle@dbserver]$ expdp \"sys/oracle@maxpdb as sysdba\" directory=datapump dumpfile=fullprod.dmp logfile=fullprod.log full=y

 

[oracle@dbserver]$ expdp directory=datapump dumpfile=fullprod.dmp logfile=fullprod.log full=y

Export: Release 19.0.0.0.0 - Production on Wed Jan 31 20:03:58 2024

Version 19.3.0.0.0

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

Username: / as sysdba

Password: oracle

 

q  To Import a Database

[oracle@dbserver]$ impdp directory=datapump dumpfile=fullprod.dmp logfile=fullprod_imp.log full=y

 

 

q  To taka SCHEMA level export

[oracle@dbserver]$ expdp directory=datapump dumpfile=hr.dmp logfile=hr.log schemas=hr

Export: Release 19.0.0.0.0 - Production on Wed Jan 31 21:01:14 2024

Version 19.3.0.0.0

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

Username: / as sysdba

Password: oracle

 

SQL> grant read, write on directory datapump to hr;

 

[oracle@dbserver]$ expdp \"hr/hr@maxpdb\" directory=datapump dumpfile=hr.dmp logfile=hr.log schemas=hr

 

[oracle@dbserver]$ expdp directory=datapump dumpfile=hr.dmp logfile=hr.log schemas=hr

Export: Release 19.0.0.0.0 - Production on Wed Jan 31 21:27:56 2024

Version 19.3.0.0.0

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

Username: hr/hr@maxpdb

 

q  To Import a Schema

[oracle@dbserver]$ impdp directory=datapump dumpfile=hr.dmp logfile=hr_imp.log

Import: Release 19.0.0.0.0 - Production on Wed Jan 31 23:37:06 2024

Version 19.3.0.0.0

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

Username: / as sysdba

Password: oracle

 

[oracle@dbserver]$ impdp \"hr/hr@maxpdb\" directory=datapump dumpfile=hr.dmp logfile=hr_imp.log remap_schema=hr:xy

 

q  To taka schema level export using CONTENT

[oracle@dbserver]$ expdp directory=datapump dumpfile=hr_content.dmp logfile=hr_content.log schemas=hr content=METADATA_ONLY

 

q  To Import a Schema using Content

[oracle@dbserver]$ impdp directory=datapump dumpfile=hr_content.dmp logfile=hr_content_imp.log schemas=hr content=METADATA_ONLY

q  To taka schema level export using QUERY

[oracle@dbserver]$ expdp directory=datapump dumpfile=hr_content.dmp logfile=hr_content.log schemas=hr content=DATA_ONLY

 

q  To Import a Schema using Query

[oracle@dbserver]$ impdp directory=datapump dumpfile=hr_content.dmp logfile=hr_content_imp.log schemas=hr content=DATA_ONLY

 

q  TABLE_EXISTS_ACTION=[SKIP|APPEND|TRUNCATE|REPLACE] using IMPDP

 

q  To taka Schema level export using ENCRYPTION

[oracle@dbserver]$ expdp directory=datapump dumpfile=hr_enc_pass.dmp logfile=hr_enc_pass.log encryption=all encryption_mode=password encryption_password=hrpass123 schemas=hr

 

q  To Import a Schema using Encryption

[oracle@dbserver]$ impdp directory=datapump dumpfile=hr_enc_pass.dmp logfile=hr_enc_pass.log encryption=all encryption_mode=password encryption_password=hrpass123 schemas=hr

 

q  To taka Schema level export using COMPRESSION

[oracle@dbserver]$ expdp directory=datapump dumpfile=hr_compress.dmp logfile=hr_compress.log schemas=hr compression=all compression_algorithm=high

 

q  To Import a Schema using compression

[oracle@dbserver]$ impdp directory=datapump dumpfile=hr_compress.dmp logfile=hr_compress_imp.log schemas=hr compression=all compression_algorithm=high

 

q  To taka Schema level export using PARALLEL

[oracle@dbserver]$ expdp directory=datapump dumpfile=hr.dmp logfile=hr.log schemas=hr parallel=4

 

q  To Import a Schema using Parallel

[oracle@dbserver]$ impdp directory=datapump dumpfile=hr.dmp logfile=hr_imp.log schemas=hr parallel=4

 

q  To take table level export

[oracle@dbserver]$ expdp directory=datapump dumpfile=hr_emp.dmp logfile=hr_emp.log tables=hr.employees

 

Export: Release 19.0.0.0.0 - Production on Mon Oct 2 21:53:35 2023

Version 19.3.0.0.0

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

 

Username: / as sysdba

Password: oracle

 

q  To import table level

[oracle@dbserver]$ impdp directory=datapump dumpfile=hr_emp.dmp logfile=hr_emp_imp.log tables=hr.employees

[oracle@dbserver]$ impdp directory=datapump dumpfile=hr_emp.dmp logfile=hr_emp_imp.log remap_table=hr.employees:emp

 

q  To take table level export using Include

[oracle@dbserver]$ expdp directory=datapump dumpfile=hr_emp_include.dmp logfile=hr_emp_include.log  schemas=hr include=TABLE:\""IN ('employees')\""

 

q  To Import a Table using Include

[oracle@dbserver]$ impdp directory=datapump dumpfile=hr_emp_include.dmp logfile=hr_emp_include_imp.log  schemas=hr include=TABLE:\""IN ('employees')\""

 

q  To take table level export using Exclude

[oracle@dbserver]$ expdp directory=datapump dumpfile=hr_emp_exclude.dmp logfile=hr_emp_exclude.log  schemas=hr exclude=TABLE:\""IN ('employees')\""

 

q  To Import a Table using Exclude

[oracle@dbserver]$ impdp directory=datapump dumpfile=hr_emp_exclude.dmp logfile=hr_emp_exclude_imp.log  schemas=hr exclude=TABLE:\""IN ('employees')\""

 

q  To taka row level export

[oracle@dbserver]$ expdp directory=datapump dumpfile=emprows.dmp logfile=emprows.log tables=hr.employees query=\"where department_id=10\"

 

q  To Import a Row

[oracle@dbserver]$ impdp directory=datapump dumpfile=emprows.dmp logfile=emprows_imp.log tables=hr.employees query=\"where department_id=10\"

 

q  To taka tablespace level export

[oracle@dbserver]$ expdp directory=datapump dumpfile=userstbs.dmp logfile=userstbs.log tablespaces=users

 

q  To Import a tablespace

[oracle@dbserver]$ impdp directory=datapump dumpfile=userstbs.dmp logfile=userstbs_imp.log tablespaces=users

[oracle@dbserver]$ impdp directory=datapump dumpfile=userstbs.dmp logfile=userstbs_imp.log remap_tablespace=users:xyz

 

q  To Export | Import Transportable Tablespaces

Transportable Tablespaces (TTS) is a feature in Oracle databases that allows to move large amounts of data between databases quickly by transporting entire tablespaces.

v  SOURCE Database: 192.168.56.33

 

[oracle@dbserver]$ sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Thu Oct 5 18:42:27 2023

Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

Connected to:

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

Version 19.3.0.0.0

 

v  Switching the Tablespace to read only mode

 

SQL> ALTER TABLESPACE SRTBS READ ONLY;

Tablespace altered.

 

q  Export the tablespace MetaData

[oracle@dbserver u01]$ expdp directory=datapump transport_tablespaces=SRTBS dumpfile=SRTBS_Transport.dmp logfile=SRTBS_Transport.log

 

Export: Release 19.0.0.0.0 - Production on Thu Oct 5 18:44:42 2023

Version 19.3.0.0.0

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

 

Username: / as sysdba

Password: oracle

 

Datafiles required for transportable tablespace SRTBS:

/data/oradata/MAXCDB/maxpdb/srtbs01.dbf

 

[oracle@dbserver]$ cd /u01/backup/

[oracle@dbserver backup]$ ls

                                      SRTBS_Transport.dmp  

                                      SRTBS_Transport.log

 

[oracle@dbserver backup]$ scp /u01/backup/SRTBS_Transport.dmp oracle@192.168.56.98:/u01/backup/

The authenticity of host '192.168.56.98 (192.168.56.98)' can't be established.

ECDSA key fingerprint is SHA256:03rpoIcbmOdnzUsNLdt49TS76MexJny3nw+ayshne1o.

ECDSA key fingerprint is MD5:7b:0c:36:29:68:83:9a:6f:d9:6c:19:c4:85:83:d2:71.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added '192.168.56.98' (ECDSA) to the list of known hosts.

oracle@192.168.56.98's password:

SRTBS_Transport.dmp                           100%  532KB  44.8MB/s   00:00

[oracl

 

[oracle@dbserver backup]$ scp /data/oradata/MAXCDB/maxpdb/srtbs01.dbf oracle@192.168.56.98:/u01/app/oracle/oradata/MAXCDB/maxpdb/

oracle@192.168.56.98's password:

srtbs01.dbf                                   100%  100MB  27.2MB/s   00:03

 

v  Switching back the Tablespace to read/write mode

 

SQL> ALTER TABLESPACE SRTBS READ WRITE;

Tablespace altered.

 

v  TARGET Database: 192.168.56.98

 

[oracle@19c]$ export ORACLE_PDB_SID=maxpdb

 

[oracle@19c]$ sqlplus / as sysdba

 

SQL*Plus: Release 19.0.0.0.0 - Production on Thu Oct 5 19:36:32 2023

Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

Connected to:

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

Version 19.3.0.0.0

 

SQL> CREATE USER shohan IDENTIFIED BY oracle;

 

User created.

 

SQL> GRANT CONNECT, RESOURCE, DBA TO shohan;

 

Grant succeeded.

 

[oracle@19c maxpdb]$ impdp directory=datapump dumpfile=SRTBS_Transport.dmp logfile=SRTBS_Transport_imp.logtransport_datafiles='/u01/app/oracle/oradata/MAXCDB/maxpdb/srtbs01.dbf'

 

Import: Release 19.0.0.0.0 - Production on Thu Oct 5 19:50:16 2023

Version 19.3.0.0.0

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

 

Username: / as sysdba

Password: oracle

 

Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

Master table "SYS"."SYS_IMPORT_TRANSPORTABLE_01" successfully loaded/unloaded

Starting "SYS"."SYS_IMPORT_TRANSPORTABLE_01":  /******** AS SYSDBA directory=datapump dumpfile=SRTBS_Transport.dmp logfile=SRTBS_Transport_imp.log transport_datafiles=/u01/app/oracle/oradata/MAXCDB/maxpdb/srtbs01.dbf

Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK

Processing object type TRANSPORTABLE_EXPORT/TABLE

Processing object type TRANSPORTABLE_EXPORT/CONSTRAINT/CONSTRAINT

Processing object type TRANSPORTABLE_EXPORT/INDEX/STATISTICS/INDEX_STATISTICS

Processing object type TRANSPORTABLE_EXPORT/CONSTRAINT/REF_CONSTRAINT

Processing object type TRANSPORTABLE_EXPORT/STATISTICS/TABLE_STATISTICS

Processing object type TRANSPORTABLE_EXPORT/STATISTICS/MARKER

Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK

Job "SYS"."SYS_IMPORT_TRANSPORTABLE_01" successfully completed at Thu Oct 5 19:50:38 2023 elapsed 0 00:00:16

 

v  Switching back the Tablespace to read/write mode

 

SQL> ALTER TABLESPACE SRTBS READ WRITE;

Tablespace altered.

 

q  EXPORT | IMPORT using PARFILE [Parameter]

 

v  EXPORT as PAR file

 

[oracle@19c u01]$ vi /u01/tab.par

 

DIRECTORY=datapump

DUMPFILE=hr_exp_par.dmp

LOGFILE=hr_exp_par.log

SCHEMAS=hr

 

[oracle@19c u01]$ expdp parfile=/u01/tab.par

 

Export: Release 19.0.0.0.0 - Production on Sun Sep 3 10:35:07 2023

Version 19.3.0.0.0

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

 

Username: sys/oracle@maxpdb as sysdba

 

v  IMPORT as PAR file

 

[oracle@19c u01]$ vi /u01/imp_tab.par

 

DUMPFILE=hr_exp_par.dmp 

LOGFILE=xy_imp_par.log  

REMAP_SCHEMA=hr:xy

 

[oracle@19c u01]$ impdp directory=datapump parfile=imp_tab.par

 

Import: Release 19.0.0.0.0 - Production on Sun Sep 3 12:11:42 2023

Version 19.3.0.0.0

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

 

Username: sys/oracle@maxpdb as sysdba

 

SQL> select CHECKPOINT_CHANGE#, CURRENT_SCN, ARCHIVELOG_CHANGE# from v$database;

 

CHECKPOINT_CHANGE# CURRENT_SCN ARCHIVELOG_CHANGE#

------------------ ----------- ------------------

               2137910     2202280                          2137910

 

SQL> select FILE#, CHECKPOINT_CHANGE#, CHECKPOINT_TIME from v$datafile;

 

     FILE# CHECKPOINT_CHANGE# CHECKPOIN

---------- ------------------ ---------

             9               2137910 24-MAR-23

            10              2137910 24-MAR-23

            11              2137910 24-MAR-23

            12              2139676 24-MAR-23

 

SQL> desc v$backup

 Name                                                    Null?    Type

 ----------------------------------------- -------- ----------------------------

 FILE#                                                                 NUMBER

 STATUS                                                             VARCHAR2(18)

 CHANGE#                                                         NUMBER

 TIME                                                                  DATE

 CON_ID                                                             NUMBER

 

 

q  NETWORK_LINK - EXPORT - IMPORT OVER THE NETWORK | DB LINK

DB Link (Database Link):

 Database Link (DB Link) like a bridge between two databases. It allows one Oracle database to connect to and access objects (like tables, views, etc.) in another Oracle database—as if they were part of the same system.

Two types of Database links:

·         Private DB Links (Only user who created the link)

CREATE DATABASE LINK dblink_name CONNECT TO remote_db_user IDENTIFIED BY password USING ‘tnsnames_entry’;

·         Public DB Links (All the database users)

CREATE PUBLIC DATABASE LINK dblink_name CONNECT TO remote_db_user IDENTIFIED BY password USING ‘tnsnames_entry’;

Dictionary View - DBA_DB_LINKS

v  Local Database [20.20.20.21]

[oracle@local admin]$ cat tnsnames.ora

MAXPDB =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 20.20.20.21)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = maxpdb)

    )

  )

 

v  Remote Database [20.20.20.23] – where I want to access table from Local Database [20.20.20.21]

Ñ      Require information from Local Database [20.20.20.21]

·        Username

·        Password

·        TNS details

[oracle@remote admin]$ vi tnsnames.ora

LOCALPDB =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 20.20.20.21)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = maxpdb)

    )

  )

[oracle@remote ~]$ sqlplus sys/oracle@maxpdb as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Tue Apr 15 20:40:49 2025

Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

Connected to:

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

Version 19.3.0.0.0

 

SQL> show con_name

 

CON_NAME

------------------------------

MAXPDB

 

SQL> CREATE DATABASE LINK testdb CONNECT TO hr IDENTIFIED BY hr USING 'LOCALPDB';

 

Database link created.

 

----------------------------------------------------------------------------------------------------

CREATE DATABASE LINK testdb CONNECT TO hr IDENTIFIED BY hr USING '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=20.20.20.21)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=maxpdb)))';

-----------------------------------------------------------------------------------------------------

 

SQL> SELECT * FROM employees@testdb;


v  Drop Database Link

 

SQL> DROP DATABASE LINK testdb;

Database link dropped.


NETWORK_LINK is a parameter used with the impdp (Data Pump Import) utility that allows you to import data directly from a remote database over the network — without needing to create or copy .dmp files. It relies on a database link (DB LINK) to connect the target database (where you're running impdp) to the source database (where the data lives).


#Source (Local) Database:

 

Step 1: Create schema source side

 

SQL> create user ocp identified by ocp quota unlimited on users;

SQL> grant connect, resource to ocp;

 

Connect with OCP users and create a table and then insert some records.

 

SQL> conn ocp/ocp

SQL> create table t1 (id number, name varchar2(10));

 

SQL> insert into t1 values(10,'AARAV');

SQL> insert into t1 values(20,'SHRIPAL');

SQL> insert into t1 values(30,'SACHIN');

SQL> insert into t1 values(40,'VIKRAM');

SQL> insert into t1 values(50,'VIKASH');

SQL> commit;

 

Step 2: Grant export and import privileges OCP schema

 

Using the below query grants privileges to the user.

 

SQL> grant imp_full_database, exp_full_database to ocp;

 

Grant succeeded.

 

Step 3: Copy source TNS entry at target side

copy source tns entry and past it at target side in tnsnames.ora file.

 

My Source TNS Entry:

 

REMOTE =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 20.20.20.21)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = maxpdb)

    )

  )

 

#Target (remote) Database:

 

Step 1: Adding TNS entry in tnsnames.ora

 

After adding the tns entry, my tnsnames.ora file looks like below:

 

REMOTE =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 20.20.20.21)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = maxpdb)

    )

  )

 

Step 2: Create a directory

 

Create a directory for the export backup on the target side.

 

SQL> create directory dump_dir as '/u01/EXPORT_BKP';

 

Directory created.

 

Step 3: Create DB Link

 

It's time to create a DB Link using the source service name and schema name, which you want to move in another database like OCP.

 

SQL> CREATE DATABASE LINK testdb CONNECT TO hr IDENTIFIED BY hr USING 'REMOTE';

 

Database link created.

  

Step 4: Import schema using a DB link

 

The below command helps us to import schemas directly from the source Database. Datapump with network_link.

 

$ impdp directory=dump_dir logfile=imp_ocp.log network_link=testdb schemas=ocp

 

Import: Release 12.2.0.1.0 - Production on Sun Dec 26 12:54:34 2021

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

 

Username: / as sysdba

Previous Post Next Post

نموذج الاتصال