Oracle 备份与还原

一、exp 备份还原

1、备份

exp tomma/123456@orcl file=/tmp/oracledata/$(date +%Y%m%d).dmp 

2、还原

imp scott/scott123@orcl file=/tmp/oracledata/20200312.dmp

二、expdp 备份

Oracle10g提出的数据泵技术,在以下几个方面优于exp/imp命令:

1、数据泵工具运行于服务器端,相比客户端的exp/imp其性能更好,并能实现exp/imp的全部功能。

2、通过使用exclude,include,content等参数,数据泵可以为数据及数据对象提供更细微级别的选择性。

3、通过设定数据库版本号,数据泵可以兼容老版本的数据库系统。

4、并行执行。

5、通过estimate_only参数,数据泵可以预估导出作业所需的磁盘空间。

6、支持分布式环境中通过数据库连接实现导入\导出。

7、支持导入时重新映射功能(即将对象导入到新的目标数据文件、架构及表空间等)。

8、支持元数据压缩及数据采样。

1、创建 directory 目录

create directory dumpfile as '/tmp/oracledata/';

# 查看目录
select * from dba_directories;

2、授权目录读写权限给用户

grant read,write on directory dumpfile to tomma;

 3、创建备份的目录

mkdir -p /tmp/oracledata/

chown -R oracle:oinstall /tmp/oracledata/

4、备份

# 用普通用户 tomma 导出 自己的数据库
# 普通用户授权目录读写权限
expdp tomma/123456 directory=dumpfile dumpfile=test_$(date +%Y%m%d).dmp logfile=test_$(date +%Y%m%d).log

# 用管理员账号导出 用户 tomma 的数据库
# 管理员账号不用授权目录读写权限

expdp system/oracle schemas=tomma 
directory=dumpfile dumpfile=test_$(date +%Y%m%d).dmp logfile=test_$(date +%Y%m%d).log

5、导入

# 在imp中导入不同用户使用fromuser,touser进行说明
# 但在impdp中,则需要使用remap_schema
# 目录还要授权给导入的用户

grant read,write on directory dumpfile to mshxuyi;

impdp mshxuyi/123456 directory=dumpfile dumpfile=test_20200312.dmp
logfile=test_20200312.log remap_schema=tomma:mshxuyi


# 如果是导出数据的用户与登入用户不同
# 还要加入 schemas=tomma
impdp system/oracle schemas=tomma directory=dumpfile 
dumpfile=test_20200313.dmp logfile=test_20200313.log remap_schema=tomma:mshxuyi

三、oracle 创建 dblink 备份远程数据库

由于expdp只能在服务端进行本地备份写入,受限比较大,这个时候可以考虑用 expdp 的 network_link 方式进行远程导出或直接导入,下面是这个方案的详细介绍:

1、本地库创建dblink指向远程库

# 授权
grant create database link to tomma;


# 语法
create database link link_name connect to user identified by passwd using 'ip:port/SERVICE_NAME';


# 参数 
link_name  自定义链接
user       指远程数据库的用户名
passwd     指远程数据库的密码
ip:port/SERVICE_NAME  远程 IP/端口号/服务名

# 范例
create database link link_ecs connect to tomma identified by "123456" using '192.168.2.16:1521/ecs';


# 查看链接
select * from dba_db_links;

# 删除链接
drop database link name;  

2、创建 directory 目录

create directory dumpfile as '/oracledata/dumpfile/';

3、导出

expdp system/oracle network_link=link_ecs schemas=tomma directory=dumpfile dumpfile=ecs_$(date +%Y%m%d)

# 参数
system/oracle     # 指本地的用户名和密码
network_link     # 前面创建的自定义链接名
schemas=tomma     # 导出的tomma的所有数据

# 注意
# 远程服务器的用户要先授权
SQL> grant exp_full_database to tomma;

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值