everythingOracle.bizhat.com

 

'Everything you wanted
to know about Oracle'

Training References Syntax Tell A Friend Contact Us

 

 

DBA Fundamentals

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
<< Previous

Chapter # 37

Next >>


 

User-Managed Logical Backup and recovery

 

Introduction

You, as a DBA, are responsible to perform a logical backup using the EXP tool. Notice that if the loss of data since the last time of backup is not significant then a logical backup is a good option to use. Or you may use it to organized the table or relocate data from one database to another. You are also responsible to use the IMP tool to restore data to the same or a different destination. Your job responsibilities dictate that you should be at least informed of the following basic fundamental subjects:

 

Performing an Oracle Logical Backup and recovery

Using the EXP tool

Using the IMP tool

Dropping a table

Using the V$DATABASE view

Creating a table

Performing a logical backup

HOST EXP system/manager FILE=�xx� TABLES=(xx)

Restoring a logical table

Commands:

DROP TABLE

HOST EXP

HOST IMP

 

Hands-on

In this exercise you will learn how to perform the Oracle Logical Backup and recovery. We will use the EXPORT and IMPORT utilities to backup a table, then we'll drop the table to symbolize a table problem or crash and import it into its proper user.

Connect to the SCHOOL database as the SYSTEM/MANAGER user.
SQL> CONNECT system/manager

Since you have two databases in your machine, you need to verify that we are in the YOURDBNAME database.
SQL> SELECT name FROM v$database
/
You should see the SCHOOL database.
 

Perform Logical backup

A logical backup is one of a database recovery steps that is performed based on a database logical layout.


Create a table in the USERS tablespace and name it GUIDEME.
SQL> CREATE TABLE guideme
(col1 NUMBER,
col2 VARCHAR2(100))
TABLESPACE users
/

Write a procedure to insert at least 100 records into the newly created GUIDEME table.
SQL> BEGIN
SQL> FOR i IN 1..100 LOOP
SQL> INSERT INTO guideme
SQL> VALUES(i,'AAAAA' || i*100);
SQL> END LOOP;
SQL> COMMIT;
SQL> END;
SQL> /

List the last 10 records from the GUIDEME table.
SQL> SELECT *
FROM guideme
WHERE col1 >
(SELECT MAX(col1) - 10 FROM guideme)
/

Get the logical backup of the populated table in the GUIDEME.DMP file and save it in the NEWFOLDER directory.

SQL> HOST EXP system/manager -

FILE=c:.dmp TABLES=(system.guideme)
OR

MS-DOS> EXP system/manager -

FILE=c:.dmp TABLES=(system.guideme)

Drop the GUIDEME table.
SQL> DROP TABLE guideme
/

Check to see if the table exists.
SQL> SELECT * FROM gudieme
/
as you can see the GUIDEME table cannot be accessed.
 

Restore Logical backup
Restore the GUIDEME table from the exported dump file. Remember, you named c:.DMP the export dump file. This time we are using the IMPORT utility interactively.
SQL> HOST IMP
OR

MS-DOS> IMP

The IMPORT utility, will ask you to enter your USERID and PASSWORD. Type SYSTEM/MANAGER. Make sure that you are in the right database. Use the SET command to see the default database value (ORACLE_HOME). The ORACLE_HOME value should be SCHOOL. If it is a different value then it means that we are in a different database.

In the �Import file: EXPDAT.DMP>� prompt, type �C:.DMP.�

In the �Enter insert buffer size (minimum is 8192) 30720>� prompt, press enter key. The default value is 30720.

In the �List contents of import file only (yes/no): no >� prompt, press enter key. The default value is no. You will use the �Yes� option if you only want to see the contents of your exported file.

In the �Ignore create error due to object existence (yes/no): no >� prompt, press enter key. The default value is no. Use only YES if user users have truncated tables and you want to ignore when they get the error messages for objects exist.

In the �Import grants (yes/no): yes >� prompt, press enter key to use the default �yes.� This option will import all grants with an imported table.

In the �Import table data (yes/no): yes >� prompt, press enter key to use the default �yes.� This option will import all records in an imported table.

In the �Import entire export file (yes/no): no >� prompt, press enter key to use the default �no.� Use the �Yes� option, if you want to import the entire export file. In this hands-on, you are going to import only one table.

In the �Username� prompt, type the user name that you wish to import its table. In the �Enter table (T) or partition (T: P) name. Null list means all tables for user

Enter table (T) or partition (T: P) name or . if done:� prompt, you can enter table name one after the other and once it is done then type period (.). If you the press enter key, you will import all the objects for that user. In the hands-on, type GUDEME to import only that table; and then period to terminate the import process.

At the end, you get a message to indicate that your import was successful or not.

 

Verify restore process
Now, check to see if the GUIDEME table was recovered, by listing the last 10 records from the GUIDEME table.
SQL> SELECT * FROM guideme
WHERE col1 > (SELECT MAX(col1) - 10 FROM guideme)
/
Note this time that you have no loss of data. The logical restore action was successful! Remember that any additional records after the EXPORT action was taken will be lost.

Drop the GUIDEME table.
SQL> DROP TABLE guideme
/
You drop the table so you can repeat this hands-on, if you wish.

The following are some examples of different way you can use the exp and imp utilities:

exp scott/tiger file=myexport.dmp log=emp.log tables=emp rows=yes indexes=no

exp scott/tiger file= myexport.dmp tables=(emp,dept)

imp scott/tiger file= myexport.dmp full=yes

imp scott/tiger file= myexport.dmp fromuser=scott touser=scott tables=dept

exp userid=scott/tiger@orcl parfile=export.txt

... where export.txt contains:

BUFFER=100000

FILE=account.dmp

FULL=n

OWNER=scott

GRANTS=y

COMPRESS=y

$ exp help=y

You can let Export prompt you for parameters by entering the EXP

command followed by your username/password:

Example: EXP SCOTT/TIGER

Or, you can control how Export runs by entering the EXP command followed

by various arguments. To specify parameters, you use keywords:

Format: EXP KEYWORD=value or KEYWORD=(value1,value2,...,valueN)

Example: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)

or TABLES=(T1:P1,T1:P2), if T1 is partitioned table

USERID must be the first parameter on the command line.

Keyword Description (Default) Keyword Description (Default)

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

USERID username/password FULL export entire file (N)

BUFFER size of data buffer OWNER list of owner usernames

FILE output files (EXPDAT.DMP) TABLES list of table names

COMPRESS import into one extent (Y) RECORDLENGTH length of IO record

GRANTS export grants (Y) INCTYPE incremental export type

INDEXES export indexes (Y) RECORD track incr. export (Y)

DIRECT direct path (N) TRIGGERS export triggers (Y)

LOG log file of screen output STATISTICS analyze objects (ESTIMATE)

ROWS export data rows (Y) PARFILE parameter filename

CONSISTENT cross-table consistency(N) CONSTRAINTS export constraints (Y)

OBJECT_CONSISTENT transaction set to read only during object export (N)

FEEDBACK display progress every x rows (0)

FILESIZE maximum size of each dump file

FLASHBACK_SCN SCN used to set session snapshot back to

FLASHBACK_TIME time used to get the SCN closest to the specified time

QUERY select clause used to export a subset of a table

RESUMABLE suspend when a space related error is encountered(N)

RESUMABLE_NAME text string used to identify resumable statement

RESUMABLE_TIMEOUT wait time for RESUMABLE

TTS_FULL_CHECK perform full or partial dependency check for TTS

VOLSIZE number of bytes to write to each tape volume

TABLESPACES list of tablespaces to export

TRANSPORT_TABLESPACE export transportable tablespace metadata (N)

TEMPLATE template name which invokes iAS mode export

Export terminated successfully without warnings.

assetcnt: /u01/app/oracle $

$ imp help=y

You can let Import prompt you for parameters by entering the IMP

command followed by your username/password:

Example: IMP SCOTT/TIGER

Or, you can control how Import runs by entering the IMP command followed

by various arguments. To specify parameters, you use keywords:

Format: IMP KEYWORD=value or KEYWORD=(value1,value2,...,valueN)

Example: IMP SCOTT/TIGER IGNORE=Y TABLES=(EMP,DEPT)

FULL=N or TABLES=(T1:P1,T1:P2), if T1 is partitioned table

USERID must be the first parameter on the command line.

Keyword Description (Default) Keyword Description (Default)

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

USERID username/password FULL import entire file (N)

BUFFER size of data buffer FROMUSER list of owner usernames

FILE input files (EXPDAT.DMP) TOUSER list of usernames

SHOW just list file contents (N) TABLES list of table names

IGNORE ignore create errors (N) RECORDLENGTH length of IO record

GRANTS import grants (Y) INCTYPE incremental import type

INDEXES import indexes (Y) COMMIT commit array insert (N)

ROWS import data rows (Y) PARFILE parameter filename

LOG log file of screen output CONSTRAINTS import constraints (Y)

DESTROY overwrite tablespace data file (N)

INDEXFILE write table/index info to specified file

SKIP_UNUSABLE_INDEXES skip maintenance of unusable indexes (N)

FEEDBACK display progress every x rows(0)

TOID_NOVALIDATE skip validation of specified type ids

FILESIZE maximum size of each dump file

STATISTICS import precomputed statistics (always)

RESUMABLE suspend when a space related error is encountered(N)

RESUMABLE_NAME text string used to identify resumable statement

RESUMABLE_TIMEOUT wait time for RESUMABLE

COMPILE compile procedures, packages, and functions (Y)

STREAMS_CONFIGURATION import streams general metadata (Y)

STREAMS_INSTANITATION import streams instantiation metadata (N)

VOLSIZE number of bytes in file on each volume of a file on tape

The following keywords only apply to transportable tablespaces

TRANSPORT_TABLESPACE import transportable tablespace metadata (N)

TABLESPACES tablespaces to be transported into database

DATAFILES datafiles to be transported into database

TTS_OWNERS users that own data in the transportable tablespace set

Import terminated successfully without warnings.

/u01/app/oracle $

 

Questions:

Q: What is a physical backup?

Q: What is a logical backup?

Q: How do you perform a logical backup?

Q: How do you perform a logical restore?

Q: You, as a DBA, are responsible to perform a logical backup using the EXP tool. Notice that if the loss of data since the last time of backup is not significant then a logical backup is a good option to use. Scott lost its EMP table and you have been tasked to restore it using the IMP utility.

     Reviews and Templates for FrontPage
     

Copyright � everythingOracle.bizhat.com 2006 All Rights Reserved.