oracle备份与恢复测试

一 逻辑备份:

   查看exp的帮助,exp help=yes

   $exp user_id/pass_word@ORACLE_SID

数据库提示1:设置缓存区的大小,可以采用缺省值

数据库提示2:导出文件路径和名称,必须定义

数据库提示3:选择导出方式,有三种选择,全库备份,用户模式备份,表模式备份,必须选一种

数据库提示4:导出表数据 , 选yes

数据库提示5:压缩导出数据,可以选择 yes或no

数据库提示6:如果按表模式导出的话,在这一步输入表名后,就会运行,导出完毕会重新要求用户输入要导出的表名,如不需要继续导出表,可以回车结束导出动作;如果是按照用户模式导出的话,在这一步必须输入用户名,输入第一个用户名后,回继续弹出提示,要求继续输入用户名,如果不需要继续导出,可以回车结束输入动作,回车后,数据库的到处动作开始。

$imp user_id/pass_word@ORACLE_SID

数据库提示1:要求输入待导入的文件的绝对路径和文件名

数据库提示2:定义缓存大小 ,可跳过

数据库提示3:是否只列出导入文件的内容,要导入表中的数据可以直接回车,也可以输入no,要是输入yes的话会导入失败。

数据库提示4:如果上步输入了yes,这里的提示是“Import entire export file (yes/no): no >”可以选yes,以开始导入动作;如果上步输入了no,会弹出“Ignore create error due to object existence (yes/no): no >”

如果用户只是用delete 命令删除了表中的内容,可以选no,如果是用drop命令删除了表,必须选yes

    Import grants (yes/no): yes > yes

Import table data (yes/no): yes > yes

Import entire export file (yes/no): no > yes

数据库执行导入动作。

二 热备份

37        热备模式:

   SQL> archive log list     (首先确认数据库工作在归档模式下)

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence     29

Next log sequence to archive   31

Current log sequence           31

SQL> alter tablespace jxy begin backup;   (打开jxy表空间的归档模式)

Tablespace altered.

打开归档模式后对jxy表空间的内容进行物理上的复制,当然是用系统的cp命令了

   SQL> alter tablespace jxy end backup;     (关闭jxy表空间的归档模式)

        Tablespace altered.

SQL> alter system archive log current;     (将当前的联机日志进行归档)

System altered.

   SQL> alter system switch logfile;

System altered.

     SQL> alter system switch logfile;     (对联机重做日志组进行切换,以为系统默认的是三个联机重做日志组,所以切换了两次)

          System altered.

     SQL> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

完成shutdown后,删除jxy.dbf,并重新启动实例

SQL> startup

ORA-32004: obsolete and/or deprecated parameter(s) specified

ORACLE instance started.



Total System Global Area  364904448 bytes

Fixed Size                  1219448 bytes

Variable Size             117441672 bytes

Database Buffers          243269632 bytes

Redo Buffers                2973696 bytes

Database mounted.

ORA-01157: cannot identify/lock data file 6 - see DBWR trace file

ORA-01110: data file 6: '/oracle/ora10/product/oradata/jxy.dbf'

     SQL> select * from v$recover_file;     (提示6号文件找不到)



                 FILE# ONLINE         ONLINE_STATUS

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

ERROR                                                                CHANGE#

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

TIME

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

            6 ONLINE         ONLINE

FILE NOT FOUND                                                             0

SQL> ALTER DATABASE DATAFILE 6 OFFLINE DROP;    (对6号文件脱机并drop)

Database altered.

SQL> alter database open;

      Database altered.

      把备份好的jxy.dbf恢复到原来的位置

SQL> recover datafile 6;    (恢复第六号文件)

ORA-00279: change 464133 generated at 12/10/2006 22:56:19 needed for thread 1

ORA-00289: suggestion :

/oracle/ora10/product/flash_recovery_area/KYC/archivelog/2006_12_10/o1_mf_1_31_%

u_.arc

ORA-00280: change 464133 for thread 1 is in sequence #31





Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

auto

Log applied.

Media recovery complete.

SQL> alter database datafile 6 online;  (改变6号文件为online状态)

Database altered.

    SQL> select   OWNER,TABLESPACE_NAME   from   all_tables   where   table_name='TY';  (测试)



OWNER

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

TABLESPACE_NAME

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

TT

JXY

三 模拟控制文件丢失

   先把所有的控制文件复制到安全的地方,再删除原来的控制文件,

   Alter database backup controlfile to trance;

   Shutdown immediate;

   先把控制文件复制到安全的地方后,再删除所有的控制文件

   #cd /opt/ora10/product/admin/orcl/udump

   #ll

找到更新时间最新的文件,把其中从starup nomount 开始到character set “字符集name“至的行,并加上一行 alter dabatase open;(注意要有分号哦)保存到oracle用户有读写权限的目录下。如:/home/oracle/creat_ctl.txt(create.txt就是新创建的文件名称了)

   #su – oracle

   $sqlplus “/as sysdba”

   sql>@/home/oracle/creat_ctl.txt

   如果有报错的话,根据提示修改了

   这样的话你的数据库的控制文件就可重新创建并启动数据库了。