• 博客访问: 13426
  • 博文数量: 9
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-04 16:33
个人简介

暂无介绍

文章存档

2011年(9)

我的朋友

分类: Linux操作系统

2011-05-08 23:54:19

ORACLE备份和恢复

<1>逻辑备份
  不用去拷贝数据库的物理文件
  备份逻辑上的结构
  外部的工具:导出和导入的工具
  DOS下的命令 cmd下执行
    导出exp  export缩写形式

查看帮助 exp help=y

    使用参数文件导出
     exp parfile=c:\abc.par
  >>>abc.par的内容
a)scott用户连接导出自己的所有对象   
      userid=scott/tiger --连接的用户scott
      file=c:\a1.dmp  --导出的文件的名字a1.dmp
          --导出了scott用户的所有对象

b)用system连接来导出scott下的所有对象 
     exp parfile=c:\sys.par
      >>>>sys.par的内容
       userid=system/manager
       file=c:\b1.dmp
       wner=(scott)  --导出scott用户的所有对象
  导出多个用户的数据
  建立一个测试用户 test
  
    grant connect,resource
     to test identified by t123;
  
    alter user test
       default tablespace users
       temporary tablespace temp;
 
    create table student(
      stu_id number(4) primary key,
      stu_name varchar2(20),
      stu_score number(2)
   );
   insert into student values (1000,
      'Mike',95);
   insert into student values (1001,
      'John',90);

 导出scott和test下的所有对象????
 >>>userid=system/manager
    file=c:\st.dmp
    wner=(scott,test)

 导出scott下的emp,dept表????
 >>>userid=system/manager
    file=c:\st.dmp
    tables=(scott.emp,scott.dept,test.student)

 导出整个数据库(备份整个数据库)
  必须用超级用户 system ,sys
exp system/manager file=c:\system.dmp full=y feedback=1000
或者
exp parfile=c:\sys.par
>>>sys.par
 userid=system/manager
 file=c:\system.dmp
 full=y 

比较全的一个导出的参数文件
>>>sys.par
   userid=system/manager
   file=c:\aa.dmp
   buffer=1024000  --缓冲
   rows=y          --是否导出记录
   compress=y      --extent是否压缩
   grants=y        --grant语句是否导出
   indexes=y       --导出索引
   full=y          --全库导出
   feedback=3      --显示导出进度每3行

导出表scott.dept中部门编号是40的记录
 >>>sys.par
   userid=system/manager
   file=c:\sys.dmp
   tables=(scott.emp)
   query="where deptno=10"

导出表scott.emp中的记录
 >>>sys.par
   userid=system/manager
   file=c:\sys.dmp
   tables=(scott.emp)
   feedback=3  --每3行记录显示一个点进度

如何把导出的数据导入到数据库中进行恢复??
  imp    import缩写形式
  dos命令
   imp help=y 查看帮助

 <1>把scott下的表emp导出 ,
 然后删除表中的内容(truncate table emp),
 利用导出的文件来恢复??
  a)导出
   exp parfile=c:\sys.par
  >>> sys.par
   userid=system/manager
   file=c:\emp.dmp
   tables=(scott.emp)
 
  b)删除
   truncate table emp;  --删数据
   或者
   drop table emp;  --删除结构

  ( delete from emp;  --删数据可以恢复)

  c)恢复
  imp prafile=c:\im.par;
  >>>im.par
   userid=system/manager
   file=c:\emp.dmp
   fromuser=scott    --从哪个用户来恢复
   show=y            --显示导入文件中的SQL语句

 <2>scott下的对象全部复制到test用户下
  (克隆用户scott)
  a)导出scott用户
   exp parfile=c:\sys.par
   >>>sys.par
     userid=system/manager
     file=c:\scott.dmp
     wner=(scott)

  b)导入scott.dmp文件中的内容到test用户下
    imp parfile=c:\im.par
    >>>im.par
     userid=system/manager
     file=c:\scott.dmp
     fromuser=scott
     touser=test

  <3>scott用户导出数据后
     用户scott被删除了
     怎么来恢复??????
   a)导出scott用户
     exp parfile=c:\sys.par
     >>>sys.par
      userid=system/manager
      file=c:\scott.dmp
      wner=(scott)
  
  b)删除scott用户
   drop user scott cascade; 


  c)恢复
   先建立用户scott
   grant connect,resource to scott
    identified by tiger;
 
   alter user scott
     default tablespace users
     temporary tablespace temp;

   然后导入
  imp parfile=c:\im.par
  >>im.par
   userid=system/manager
   file=c:\scott.dmp
   fromuser=scott

<4>如何进行全库导入
  imp system/manager
file=c:\all.dmp full=y ignore=y
  full   ---全库
  ignore  ---忽略导入过程中的错误

阅读(1725) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册