您的位置:首页 > 数据库 > Oracle

oracle 10g的备份和还原

2015-08-13 19:21 645 查看
采用 expdp备份,impdp还原。

注意这二者不等同于exp和imp。oracle 10g以前,可以采用exp、imp,10g及以后,expdp + impdp矣。据说10g里面,如果采用exp,没有记录的空表是导不出来的。

现在,想将源服务器A的某个数据库实例中的一些schema复制到目标服务器B。

有关oracle的schma、user、tablespace的关系,可以参照以下文章:

ORACLE 中SCHEMA的概念以及数据库,表空间,数据文件等的区别(转)

1、备份

在源服务器A下:

命令行方式下,登录sqlplus


sqlplus sys/pwd@dbInstantName as sysdba



sqlplus下

sql>create directory dbbak as ‘c:\bak’;

sql> grant read,write on directory dbbak to public;

退出sqlplus,回到命令行:

Expdp ‘sys/pwd@dbInstantName as sysdba’ directory=dbbak dumpfile=bak.dmp schemas=(sde,hydg)

参数说明

Expdp 导出数据泵

system/orcl 连接参数

directory=dbbak 存放导出文件的逻辑盘,指向刚才用户创建的文件夹

dumpfile=bak.dmp 导出的DMP文件名

schemas(sde,hydg) 导出的schema

2、还原

在目标服务器下:

1)假定目标数据库还不存在相应的schema、表空间,那么创建之

--创建用户hydg及默认表空间、赋权限
create tablespace hydg datafile 'E:\chenqu\db\oracle\hydgts2\hydgts2\hydg.ora' size 500m autoextend on;

create user hydg identified by hydg default tablespace hydg;

grant connect, resource,dba to hydg;

--创建用户sde及默认表空间、赋权限
create tablespace sde datafile 'E:\chenqu\db\oracle\hydgts2\hydgts2\sde.ora' size 500m autoextend on;

create user sde identified by sde default tablespace sde;

grant connect, resource,dba to sde;


2)、impdp

将导出的dmp文件拷贝到目标服务器,比如存放在e:\temp下。同样,也要创建一个逻辑文件夹,指向此dmp文件:

登录sqlplus



注意主机字符串很别扭

SQL> create or replace directory db_bak as ‘e:\temp’;

目录已创建。

SQL> grant read,write on directory db_bak to public;

授权成功。

然后在DOS命令行方式下:

impdp ‘sys/pwd@hydgts as sysdba’ DIRECTORY=db_bak DUMPFILE=bak.dmp SCHEMAS=(sde,hydg);

然后我们就可以拿根甘蔗坐在电脑旁边啃边看结果了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: