Logical Recovery - Schema RefreshPrerequisite to check on Before Export ON SOURCE SIDE 1. Check the Schema Exist or Not. Schema must be there in source database : col username for a10 col account_status for a10 col created for a20 select username, account_status, created from dba_users where username='TES'; USERNAME ACCOUNT_ST CREATED ---------- ---------- -------------------- TES OPEN 18-NOV-232. Check the schema size : SQL> select sum(bytes/1024/1024) "in MB" from dba_segments where owner='TES'; in MB ---------- 4.06253. Check the privileges and roles : system privilege set pagesize 0 set linesize 200 select 'grant '||privilege||' to '||grantee||' ; ' from dba_sys_privs where grantee in ('TES'); no rows selectedObject Privilege : select 'grant '||privilege||' on '||OWNER||'.'||table_name||' to '||grantee||' ; ' from dba_tab_privs WHERE OWNER in ('TES'); no rows selectedRoles : set pagesize 0 set linesize 200 select 'grant '||granted_role||' to '||grantee||' ; ' from dba_role_privs where grantee in ('TES') 'GRANT'||GRANTED_ROLE||'TO'||GRANTEE||';' -------------------------------------------------------------------------------- grant CONNECT to TES ; grant RESOURCE to TES ;4. Have to check the default tablespace of user : col username for a10 col default_tablespace for a20 col temporary_tablespace for a20 select username,default_tablespace,temporary_tablespace from dba_users where username='TES' USERNAME DEFAULT_TABLESPACE TEMPORARY_TABLESPACE ---------- -------------------- -------------------- TES TEST TEMP5.To Check where the schema data are present across available tablespaces : select distinct tablespace_name,sum(bytes)/(1024*1024) MB from dba_segments where owner = 'TES' group by tablespace_name TABLESPACE_NAME MB ------------------------------ ---------- USERS .25 TEST 3.81255.Quotas : SQL> select * from dba_ts_quotas where username='TES'; TABLESPACE_NAME USERNAME BYTES MAX_BYTES BLOCKS ------------------------------ ---------- ---------- ---------- ---------- MAX_BLOCKS DRO ---------- --- USERS TES 262144 52428800 32 6400 NO TEST TES 3997696 52428800 488 6400 NO6. Check the objects count of user : select object_type,count(*) from dba_objects where owner='TES' group by object_type OBJECT_TYPE COUNT(*) ----------------------- ---------- PROCEDURE 4 TABLE 7 INDEX 27. Before going to take the export : Thing you have to check is mount point size where you’re going to store the export dumpfile, if mount point doesn’t have sufficient space export job gets fail. 8. Create directory : Before creating directory make sure the directory exists in os level. SQL> create directory test_dump_dir as '/home/oracle/test'; Directory created.9. Create Directory Object and Grant Read and Write Privileges on The Directory : Directory object is a pointer pointing over a directory(which is created above) which you want your expdp utility to use when storing all exported files. SQL> grant read,write on DIRECTORY test_dump_dir to tes; Grant succeeded.(grant read,write permission to user you want to perform export. Above I mentioned ‘tes’ user for example) 10. Now you can start the actual export operation for schema : For single schema : expdp tes/tes directory=test_dmp_dir SCHEMAS=tes dumpfile=user.dmp logfile=user.log parallel=4 Export: Release 12.2.0.1.0 - Production on Sat Nov 18 12:43:47 2023 Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved. Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production Starting "TES"."SYS_EXPORT_SCHEMA_01": tes/******** directory=test_dump_dir SCHEMAS=tes dumpfile=user.dmp logfile=user.log Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS Processing object type SCHEMA_EXPORT/STATISTICS/MARKER Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA Processing object type SCHEMA_EXPORT/TABLE/TABLE Processing object type SCHEMA_EXPORT/TABLE/COMMENT Processing object type SCHEMA_EXPORT/PROCEDURE/PROCEDURE Processing object type SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT . . exported "TES"."T3" 932.3 KB 87001 rows . . exported "TES"."T1" 639.5 KB 60000 rows . . exported "TES"."T2" 327.4 KB 30001 rows . . exported "TES"."EMP" 8.773 KB 14 rows . . exported "TES"."ACCOUNTS" 8.492 KB 7 rows . . exported "TES"."U20" 5.992 KB 5 rows . . exported "TES"."TXN" 0 KB 0 rows Master table "TES"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded ****************************************************************************** Dump file set for TES.SYS_EXPORT_SCHEMA_01 is: /home/oracle/test/user.dmp Job "TES"."SYS_EXPORT_SCHEMA_01" successfully completed at Sat Nov 18 12:44:23 2023 elapsed 0 00:00:35 for exporting multiple schema Move the DUMPFILES to TARGET using scp server where you want to import Note: Dont give password in above command instead mention it during runtime.mkdirOn TARGET SIDE 1. Check the mount point size, it should be more than schema size. [oracle@sdbt ~]$ df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 829M 0 829M 0% /dev tmpfs 847M 0 847M 0% /dev/shm tmpfs 847M 34M 813M 4% /run tmpfs 847M 0 847M 0% /sys/fs/cgrhhhhoup /dev/sda2 56G 46G 11G 82% / tmpfs 170M 44K 170M 1% /run/user/543212. Create Directory Object ad Grant Read and Write Privileges on The Directory for import purpose : SQL> create directory test_dump_dir as '/home/oracle/test'; Directory created. SQL> grant read,write on DIRECTORY test_dump_dir to public; Grant succeeded.3. Now we can start import : [oracle@sdbt test]$ impdp directory=test_dump_dir dumpfile=user.dmp logfile=user1.log Import: Release 12.2.0.1.0 - Production on Sat Nov 18 15:28:11 2023 Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved. Username: / as sysdba Connected to: Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production Master table "SYS"."SYS_IMPORT_FULL_01" successfully loaded/unloaded Starting "SYS"."SYS_IMPORT_FULL_01": /******** AS SYSDBA directory=test_dump_dir dumpfile=user.dmp logfile=user1.log Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA Processing object type SCHEMA_EXPORT/TABLE/TABLE Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA . . imported "TES"."T3" 932.3 KB 87001 rows . . imported "TES"."T1" 639.5 KB 60000 rows . . imported "TES"."T2" 327.4 KB 30001 rows . . imported "TES"."EMP" 8.773 KB 14 rows . . imported "TES"."ACCOUNTS" 8.492 KB 7 rows . . imported "TES"."U20" 5.992 KB 5 rows . . imported "TES"."TXN" 0 KB 0 rows Processing object type SCHEMA_EXPORT/PROCEDURE/PROCEDURE Processing object type SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS Processing object type SCHEMA_EXPORT/STATISTICS/MARKER ORA-39082: Object type PROCEDURE:"TES"."Q1" created with compilation warnings Job "SYS"."SYS_IMPORT_FULL_01" completed with 1 error(s) at Sat Nov 18 15:30:03 2023 elapsed 0 00:01:354. After import Compare the Object Count with source database : SQL> select object_type,count(*) from dba_objects where owner='TES' group by object_type; OBJECT_TYPE COUNT(*) ----------------------- ---------- PROCEDURE 4 TABLE 7 INDEX 25. Check for invalid objects count : Run UTLRP script to recompile invalid objects if necessary @?/rdbms/admin/utlrp.sql « Previous Next Topic » (Logical Recovery - Schema Refresh to an existing schema) |