基本概念

备份(Backup)——是对存储在数据库里的数据的一个拷贝,分为物理备份和逻辑备份。物理备份是对于文件在某个时间点的一个拷贝;逻辑备份是提取数据到一个特定格式的文件。

恢复(Restore)——从存储媒体中将提取和恢复备份的文件。

还原(Recovery)——根据数据文件、日志将数据库完全或者恢复到指定时间点。

备份工具

imp/exp

Oracle配备的标准工具。可以跨版本,跨平台。imp/exp为客户端工具,可以在服务器及客户端使用。

$ export NLS_LANG="Simplified Chinese_CHINA".AL32UTF8

如果NLS_LANG设置不正确,会出现EXP-00091错误。

$ exp system/password@iotiap file=iotiap-10.1.1.10-$(date +%Y%m%d%-H%M%S).dmp owner=IOTIAP

注意Oracle在数据库中存在的空表默认没有分配空间,导出时不会导出这些空表,如果要在导出中保留这些空表,需要先分配空间给这些空表,可以批量生成数据库修改语句,如下,完成后全部执行再次导出就可以了。

select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 or num_rows is null

impdb/expdb

称为数据泵,是Oracle 10g开始提供的一种新的导入导出方式。大幅提升了导入导出效率,对于版本要求较严格,必须版本一致。impdp/expdp为服务器端工具,仅在Oracle服务器端的机器上使用。

0)注意事项:

  • 这种方式是在服务器端进行的,所以只能导出文件至本机。
  • 要处理别名、序列、表空间、表
  • 表空间需要预先建立对应的表空间

1)准备工作

要先建立dump目录和授权

mkdir \home\oracle\dump

sqlplus / as sysdba

SQL> create or replace directory dump_dir as '\home\oracle\dump';
SQL> grant read,write on directory dump_dir to hunter;

查看dump目录

select * from dba_directories

注意:要确认操作系统中存在这个实际的目录,创建语句不会创建目录,语句使用system用户执行;

2)执行导出

[11g]

$ expdp surfing_vbox/db.2.0708@192.168.15.21:1521/surfing dumpfile=surfing_vbox-15.21-20101021-0918.dmp schemas=SURFING_VBOX

3)执行导入

[11g]

$ impdp surfing_vbox/ocs_test directory=dump_dir dumpfile=surfing_vbox-15.21-20101021-0918.dmp schemas=SURFING_VBOX TABLE_EXISTS_ACTION=TRUNCATE

4)并行导出

parallel=4 dumpfile=dbdata_%U.dmp

rman

参考资料

Database Restore and Recovery with RMAN: Overview

[ 编辑 | 历史 ]
最近由“jilili”在“2018-03-07 14:26:11”修改