1. In PROD Database (Source Database name: Prod1)
1.1 CHECK THE NUMBER OF OBJECTS IN THE SOURCE DATABASE:
1.1 CHECK THE NUMBER OF OBJECTS IN THE SOURCE DATABASE:
SQL> select OWNER,OBJECT_TYPE,COUNT(OBJECT_TYPE) FROM DBA_OBJECTS WHERE OWNER ='PROD_USER123' GROUP BY OWNER,OBJECT_TYPE;
OWNER
OBJECT_TYPE
COUNT(OBJECT_TYPE)
------------------------------ -------------------
------------------
PROD_USER123
TABLE
45
PROD_USER123
INDEX
120
PROD_USER123
VIEW
1
PROD_USER123
TRIGGER 5
PROD_USER123
SEQUENCE
10
PROD_USER123
LOB
19
6 rows selected.
1.2 CHECK THE INVALID OBJECTS IN THE SOURCE DATABASE:
SQL> select owner,object_name,object_type,status from dba_objects where status <>'VALID' and OWNER='PROD_USER123';
no rows selected
1.3 TAKE EXPORT BACKUP OF PROD_USER123 SCHEMA FROM THE SOURCE DATABASE:
exp userid=system/xxxxxxx file=/p02/app/oracle/export/prod1.exp_PROD_USER123_11DEC.dmp log=/p02/app/oracle/export/prod1.exp_PROD_USER123_11DEC.log owner=PROD_USER123 rows=y indexes=y grants=y constraints=y
1.4 TAKE THE REQUIRED INFORMATION FROM THE SOURCE DATABASE:
SQL> set line 1000
1.3 TAKE EXPORT BACKUP OF PROD_USER123 SCHEMA FROM THE SOURCE DATABASE:
exp userid=system/xxxxxxx file=/p02/app/oracle/export/prod1.exp_PROD_USER123_11DEC.dmp log=/p02/app/oracle/export/prod1.exp_PROD_USER123_11DEC.log owner=PROD_USER123 rows=y indexes=y grants=y constraints=y
1.4 TAKE THE REQUIRED INFORMATION FROM THE SOURCE DATABASE:
SQL> set line 1000
SQL> select
username,password,default_tablespace,temporary_tablespace,profile from
dba_users where username ='PROD_USER123';
USERNAME PASSWORD DEFAULT_TABLESPACE TEMPORARY_TABLESPACE PROFILE
---------------
---------- -------------------- ---------------------- --------
PROD_USER123 USERDATA TEMP DEFAULT
SQL> select * from dba_role_privs where grantee in('PROD_USER123');
SQL> select * from dba_role_privs where grantee in('PROD_USER123');
no rows selected
SQL> select * from dba_sys_privs where grantee in('PROD_USER123');
SQL> select * from dba_sys_privs where grantee in('PROD_USER123');
GRANTEE PRIVILEGE ADM
------------------------------
---------------------------------------- ---
PROD_USER123 CREATE TRIGGER NO
PROD_USER123 CREATE PROCEDURE NO
PROD_USER123 CREATE SEQUENCE NO
PROD_USER123 CREATE SESSION NO
PROD_USER123 GLOBAL QUERY REWRITE NO
PROD_USER123 CREATE MATERIALIZED
VIEW NO
PROD_USER123 CREATE DATABASE LINK NO
PROD_USER123 ALTER SESSION NO
PROD_USER123 CREATE INDEXTYPE NO
PROD_USER123 CREATE OPERATOR NO
PROD_USER123 CREATE SYNONYM NO
PROD_USER123 CREATE TABLE NO
PROD_USER123 CREATE TYPE NO
PROD_USER123 CREATE VIEW NO
PROD_USER123 CREATE CLUSTER NO
15 rows selected.
SQL> select * from dba_ts_quotas where username='PROD_USER123';
SQL> select * from dba_ts_quotas where username='PROD_USER123';
TABLESPACE_NAME USERNAME BYTES
MAX_BYTES BLOCKS MAX_BLOCKS DRO
----------------
--------------- ---------- ---------- ---------- ---------- ---
USERDATA PROD_USER123 12582912
-1 1536
-1 NO
USERINDX PROD_USER123 4980736
-1 608
-1 NO
1.4 SEND THE FULL EXPORT BACKUP TO THE TARGET DATABASE SERVER:
1.4 SEND THE FULL EXPORT BACKUP TO THE TARGET DATABASE SERVER:
[oracle@proddb1 export]$ scp
prod1.exp_PROD_USER123_11DEC.dmp oracle@devdb1:/d02/app/oracle/export
***********************************Target Database-Start********************************************************
***********************************Target Database-Start********************************************************
2. In
wmdevdb1 DEV Database server:(dev1)
2.1 CHECK THE NUMBER OF OBJECTS IN THE TARGET DATABASE :
SQL> select OWNER,OBJECT_TYPE,COUNT(OBJECT_TYPE) FROM DBA_OBJECTS WHERE OWNER ='DEV_USER123' GROUP BY OWNER,OBJECT_TYPE;
2.1 CHECK THE NUMBER OF OBJECTS IN THE TARGET DATABASE :
SQL> select OWNER,OBJECT_TYPE,COUNT(OBJECT_TYPE) FROM DBA_OBJECTS WHERE OWNER ='DEV_USER123' GROUP BY OWNER,OBJECT_TYPE;
OWNER OBJECT_TYPE COUNT(OBJECT_TYPE)
------------------------------
------------------- ------------------
DEV_USER123 TRIGGER 5
DEV_USER123 SEQUENCE 3
DEV_USER123 LOB 12
DEV_USER123 INDEX 65
DEV_USER123 VIEW 1
DEV_USER123 TABLE 26
6 rows selected.
2.2 CHECK THE INVALID OBJECTS IN THE TARGET DATABASE:
2.2 CHECK THE INVALID OBJECTS IN THE TARGET DATABASE:
SQL> select
owner,object_name,object_type,status from dba_objects where status
<>'VALID' and OWNER ='DEV_USER123';
no rows selected
2.3 TAKE EXPORT BACKUP OF DEV_USER123 SCHEMA FROM THE TARGET DATABASE :
2.3 TAKE EXPORT BACKUP OF DEV_USER123 SCHEMA FROM THE TARGET DATABASE :
[oracle@devdb1 export]$ exp
userid=system/xxxxxx file=/d02/app/oracle/export/exp_DEV_USER123_11DEC.dmp
log=/d02/app/oracle/export/exp_DEV_USER123_11DEC.log owner=DEV_USER123 rows=y
indexes=y grants=y constraints=y
2.4 TAKE THE REQUIRED INFORMATION FROM THE TARGET DATABASE:
SQL> set line 1000
SQL> select username,password,default_tablespace,temporary_tablespace,profile from dba_users where username ='DEV_USER123';
USERNAME PASSWORD
DEFAULT_TABLESPACE TEMP_TABLESPACE PROFILE
----------- ----------
------------------ --------------- ------------
DEV_USER123 USERDATA TEMP DEV_USER123_DEFAULT
SQL> select * from
dba_role_privs where grantee in ('DEV_USER123');
no rows selected
SQL> select * from
dba_sys_privs where grantee in ('DEV_USER123');
GRANTEE PRIVILEGE ADM
------------------------------
---------------------------------------- ---
DEV_USER123 CREATE OPERATOR NO
DEV_USER123 CREATE MATERIALIZED
VIEW NO
DEV_USER123 CREATE TYPE NO
DEV_USER123 CREATE SEQUENCE NO
DEV_USER123 CREATE TABLE NO
DEV_USER123 GLOBAL QUERY REWRITE NO
DEV_USER123 CREATE INDEXTYPE NO
DEV_USER123 ALTER SESSION NO
DEV_USER123 CREATE SESSION NO
DEV_USER123 CREATE DATABASE LINK NO
DEV_USER123 CREATE SYNONYM NO
DEV_USER123 CREATE PROCEDURE NO
DEV_USER123 CREATE VIEW NO
DEV_USER123 CREATE CLUSTER NO
DEV_USER123 CREATE TRIGGER NO
15 rows selected.
SQL> select * from
dba_ts_quotas where username='DEV_USER123';
TABLESPACE_NAME USERNAME BYTES
MAX_BYTES BLOCKS MAX_BLOCKS DRO
---------------- ---------------
---------- ---------- ---------- ---------- ---
USERDATA DEV_USER123 38928384
-1 4752 -1 NO
USERINDX DEV_USER123 8847360
-1 1080
-1 NO
2.5 DROP THE DEV_USER123 USERS FROM THE TARGET DATABASE:
SQL> drop user DEV_USER123 cascade;
2.6 CREATE THE DEV_USER123 USER AS PER THE SOURCE DATABASE :
SQL> create user DEV_USER123 identified by DEV_USER123
default tablespace USERDATA
temporary tablespace TEMP
profile DEV_USER123_DEFAULT
quota unlimited on USERDATA
quota unlimited on USERINDX;
2.7 GRANT THE PRIVILAGES TO THE PRODAPP USER AS PER SOURCE DATABASE :
SQL> grant connect,resource to DEV_USER123;
SQL> grant CREATE TABLE,CREATE SESSION,CREATE TRIGGER,CREATE SEQUENCE,UNLIMITED TABLESPACE,SELECT ANY DICTIONARY,CREATE VIEW to DEV_USER123;
2.8 IMPORT THE DATA TO THE TARGET DATABASE FROM THE SOURCE DATABASE :
[oracle@devdb1 export]$ imp userid=system/xxxxxxx file=/d02/app/oracle/export/prod1.exp_PROD_USER123_11DEC.dmp
2.7 GRANT THE PRIVILAGES TO THE PRODAPP USER AS PER SOURCE DATABASE :
SQL> grant connect,resource to DEV_USER123;
SQL> grant CREATE TABLE,CREATE SESSION,CREATE TRIGGER,CREATE SEQUENCE,UNLIMITED TABLESPACE,SELECT ANY DICTIONARY,CREATE VIEW to DEV_USER123;
2.8 IMPORT THE DATA TO THE TARGET DATABASE FROM THE SOURCE DATABASE :
[oracle@devdb1 export]$ imp userid=system/xxxxxxx file=/d02/app/oracle/export/prod1.exp_PROD_USER123_11DEC.dmp
log=/d02/app/oracle/export/prod1.exp_PROD_USER123_11DEC_imp.log
fromuser=PROD_USER123 touser=DEV_USER123
ignore=y
2.9 CHECK THE NUMBER OF OBJECTS IN THE TARGET DATABASE :
SQL> select OWNER,OBJECT_TYPE,COUNT(OBJECT_TYPE) FROM DBA_OBJECTS WHERE OWNER ='DEV_USER123' GROUP BY OWNER,OBJECT_TYPE;
2.9 CHECK THE NUMBER OF OBJECTS IN THE TARGET DATABASE :
SQL> select OWNER,OBJECT_TYPE,COUNT(OBJECT_TYPE) FROM DBA_OBJECTS WHERE OWNER ='DEV_USER123' GROUP BY OWNER,OBJECT_TYPE;
OWNER OBJECT_TYPE COUNT(OBJECT_TYPE)
-----------------------------
------------------- ------------------
DEV_USER123 TABLE 45
DEV_USER123 INDEX 120
DEV_USER123 VIEW 1
DEV_USER123 TRIGGER 5
DEV_USER123 SEQUENCE 10
DEV_USER123 LOB 19
6 rows selected.
Note: Output of above command should be same as production.
2.10 CHECK THE INVALID OBJECTS IN THE TARGET DATABASE :
SQL> select owner,object_name,object_type,status from dba_objects where status <>'VALID' and OWNER ='DEV_USER123';
Note: Output of above command should be same as production.
2.10 CHECK THE INVALID OBJECTS IN THE TARGET DATABASE :
SQL> select owner,object_name,object_type,status from dba_objects where status <>'VALID' and OWNER ='DEV_USER123';
2.11 IF ANY INVALID OBJECTS THEN RUN UTLRP.SQL
SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql
**********************************END**********************************
SQL> @$ORACLE_HOME/rdbms/admin/utlrp.sql
**********************************END**********************************