USERID 用户名/口令 如: USERID=duanl/duanl
FULL 导出整个数据库 (N)
BUFFER 数据缓冲区的大小
OWNER 所有者用户名列表,你希望导出哪个用户的对象,就用owner=username
FILE 输出文件 (EXPDAT.DMP)
TABLES 表名列表 ,指定导出的table名称,如:TABLES=table1,table2
COMPRESS 导入一个extent (Y)
RECORDLENGTH IO 记录的长度
GRANTS 导出权限 (Y)
INCTYPE 增量导出类型
INDEXES 导出索引 (Y)
RECORD 跟踪增量导出 (Y)
ROWS 导出数据行 (Y)
PARFILE 参数文件名,如果你exp的参数很多,可以存成参数文件.
CONSTRAINTS 导出约束 (Y)
CONSISTENT 交叉表一致性
LOG 屏幕输出的日志文件
STATISTICS 分析对象 (ESTIMATE)
DIRECT 直接路径 (N)
TRIGGERS 导出触发器 (Y)
FEEDBACK 显示每 x 行 (0) 的进度
FILESIZE 各转储文件的最大尺寸
QUERY 选定导出表子集的子句
下列关键字仅用于可传输的表空间
TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)
TABLESPACES 将传输的表空间列表
IMP的所有参数(括号中为参数的默认值):
USERID 用户名/口令
FULL 导入整个文件 (N)
BUFFER 数据缓冲区大小
FROMUSER 所有人用户名列表
FILE 输入文件 (EXPDAT.DMP)
TOUSER 用户名列表
SHOW 只列出文件内容 (N)
TABLES 表名列表
IGNORE 忽略创建错误 (N)
RECORDLENGTH IO 记录的长度
GRANTS 导入权限 (Y)
INCTYPE 增量导入类型
INDEXES 导入索引 (Y)
COMMIT 提交数组插入 (N)
ROWS 导入数据行 (Y)
PARFILE 参数文件名
LOG 屏幕输出的日志文件
CONSTRAINTS 导入限制 (Y)
DESTROY 覆盖表空间数据文件 (N)
INDEXFILE 将表/索引信息写入指定的文件
SKIP_UNUSABLE_INDEXES 跳过不可用索引的维护 (N)
ANALYZE 执行转储文件中的 ANALYZE 语句 (Y)
FEEDBACK 显示每 x 行 (0) 的进度
TOID_NOVALIDATE 跳过指定类型 id 的校验
FILESIZE 各转储文件的最大尺寸
RECALCULATE_STATISTICS 重新计算统计值 (N)
下列关键字仅用于可传输的表空间
TRANSPORT_TABLESPACE 导入可传输的表空间元数据 (N)
TABLESPACES 将要传输到数据库的表空间
DATAFILES 将要传输到数据库的数据文件
TTS_OWNERS 拥有可传输表空间集中数据的用户
实
2 导出、导入(Export、Import)
利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去,这是人们最常用,也是比较可靠的一种备份恢复方法。在数据库的版本升级时一般采用这种方法。Oracle支持三种方式类型的输出,下面举例说明(jnth是用户名,thpassword是用户密码, oracle是数据库服务命名, yxgl_a、yxgl_b, yxgl_c是表名):
2.1 表方式(T方式),将指定表的数据导出
备份某个用户模式下指定的对象(表)。业务数据库通常采用这种备份方式,若备份到本地文件,使用如下命令:
exp jnth/thpassword@oracle rows=y indexes=n compress=n buffer=50000000 file=080813.dmp log=080813.log tables= yxgl_a,yxgl_b,yxgl_c
2.2 用户方式(U方式),将指定用户的所有对象及数据导出
备份某个用户模式下的所有对象。业务数据库通常采用这种备份方式,若备份到本地文件,使用如下命令:
exp jnth/thpassword@oracle owner=jnth rows=y indexes=n compress=n buffer=50000000 file=080813.dmp log=080813.log
2.3 全库方式(Full方式),将数据库中的所有对象导出
备份完整的数据库,备份命令为:
exp system/manager@oracle rows=y indexes=n compress=n buffer=50000000 full=y file=080813.dmp log=080813.log
数据导入(Import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。
2.4 恢复备份数据中的指定表
若从本地文件恢复,使用如下命令:
imp jnth/thpassword@oracle fromuser=jnth touser=jnth rows=y indexes=n commit=y buffer=50000000 ignore=n file=080813.dmp log=080813.log tables=yxgl_a,yxgl_b,yxgl_c
2.5 按照用户模式备份的数据进行恢复
A. 恢复备份数据的全部内容
若从本地文件恢复,使用如下命令:
imp jnth/thpassword@oracle fromuser=jnth touser=jnth rows=y indexes=n commit=y buffer=50000000 ignore=n file=080813.dmp log=080813.log
B. 恢复备份数据中的指定表
若从本地文件恢复,使用如下命令:
imp jnth/thpassword@oracle fromuser=jnth touser=jnth rows=y indexes=n commit=y buffer=50000000 ignore=n file=080813.dmp log=080813.log tables=yxgl_a,yxgl_b,yxgl_c
2.6 如果备份方式为完全模式,采用下列恢复方法
若从本地文件恢复,使用如下命令:
imp system/manager@oracle rows=y indexes=n commit=y buffer=50000000 ignore=y full=y file=080813.dmp log=080813.log
导出、导入(Export、Import)的优点:
●简单易行;
●可靠性高;
●不影响数据库的正常运行。
缺点:
●只能提供到“某一时间点上”的恢复,不能最大可能的恢复数据;
●数据量大时,恢复较慢。
3 冷备份
冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份时将关键性文件拷贝到另外的位置的一种说法。对于备份Oracle信息而言,冷备份是最快和最安全的方法。
3.1 冷备份中必须拷贝的文件包括
所有数据文件
所有控制文件
所有联机REDO LOG文件
Init.ora文件(可选)
值得注意的是冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的。
3.2下面是做冷备份的完整例子
3.2.1 关闭数据库
sqlplus /nolog
sql>connect /as sysdba
sql>shutdown normal;
3.2.2 用拷贝命令备份全部的数据文件、重做日志文件、控制文件、初始化参数文件
可以通过命令select v$tablespace.name,v$datafile.name from v$tablespace, v$datafile where v$tablespace.ts#= v$datafile.ts#;查看相关文件的具体位置。或通过查看Enterprise Manager Console 的初始化参数知道这些文件的具体位置。
3.2.3 重启Oracle数据库
sql>startup
3.3 冷备份的优点
●非常快速、容易的备份方法,只需简单拷贝文件;
●非常容易恢复到某个时间点上,只需将文件再拷贝回去;
●能与归档方法相结合,做数据库“最佳状态”的恢复;
●低度维护,高度安全。
3.4 缺点
●单独使用时,只能提供到“某一时间点上”的恢复;
●实施冷备份的全过程中,数据库必须是关闭状态,因此会影响正常工作;
●不能按表或按用户恢复。
4 热备份
热备份是在数据库运行的情况下,采用archivelog mode方式备份数据库的方法。
4.1 查看归档模式
SQL> archive log list;
数据库日志模式 存档模式
自动存档 启用
存档终点 c:\oracle\ora92\RDBMS
最早的概要日志序列 11
下一个存档日志序列 13
当前日志序列 13
SQL>
4.2 如数据库在非归档模式下的,如下命令更改非归档模式为归档模式
SQL> shutdown immediate; (立即关闭数据库)
SQL> startup mount (启动实例并加载数据库,但不打开)
SQL> alter database archivelog; (更改数据库为归档模式)
SQL> alter database open; (打开数据库)
SQL> alter system archive log start; (启用自动归档)
SQL> exit (退出)
4.3 一旦数据库运行在archivelog状态下,就可以做备份了热备份的命令文件由三部分组成
4.3.1 数据文件的备份
(1) 设置表空间为备份状态
SQL>alter tablespace rlgl begin backup;
表空间已更改。
(2) 备份表空间的数据文件
用操作系统的复制拷贝数据文件。
(3) 回复表空间为正常状态
SQL> alter tablespace sysbs end backup
表空间已更改。
4.3.2 备份归档日志文件
在sqlplus上执行alter system switch logfile命令来强迫日志切换,以便所有的日志都被归档。通过在执行archive log list命令获取当前的日志顺序号,从最早的概要日志序列到当前日志序列的联机redo日志都应该拷贝出来。
4.3.3 使用alter database backup controlfile to trace;命令获得控制文件的一个备份,可以到%oracle_base%\admin\ %oracle_sid%\ ump目录中寻找最新的跟踪文件,其中有重建控制文件的全部命令。
4.4 恢复实例,假设表空间JNTH中的数据文件jinth1.dbf损坏
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
ORA-01157: 无法标识/锁定数据文件 8 - 请参阅 DBWR 跟踪文件
ORA-01110: 数据文件 8: ’E:\ORACLE\ORADATA\ JNTH1.DBF’
恢复过程:
(1)可以先将损坏的表空间文件脱机。
SQL> alter database datafile ’e:\oracle\oradata\jnth1.dbf’ offline;
数据库已更改。
(2)打开数据库。
SQL> alter database open;
数据库已更改。
(3)将拷贝的文件jnth1.dbf拷贝回先前的文件夹E:\ORACLE\ORACLEDATA。
(4)恢复数据库文件。
SQL>recover datafile ’e:\oracle\oradata\jnth1.dbf’;
介质恢复完成。
(5)关闭数据库。
SQL>shutdown immediate;
(6)重新打开数据库。
SQL> startup;
4.5 热备份的优点
●可在表空间或数据库文件级备份,备份的时间短;
●备份时数据库仍可使用;
●可以恢复到某一时间点上;
●恢复快速。
4.6 缺点
●不能出错,否则将不能正常恢复数据;
●维护较困难,需要一定的oracle数据库知识。
5 RMAN ( Recovery Manager, 恢复管理器 )备份恢复
RMAN ( Recovery Manager, 恢复管理器 )是从Oracle8开始提供的一套用于备份和恢复的有利工具,它有两种使用界面:GUI(图形用户界面)和CLI(命令行界面)。使用RMAN可以完成Oracle 数据库备份和恢复的各种任务。现在许多oracle 备份恢复软件的内核实际上就是RMAN(例如 VERITAS NetBackup 备份软件)。
5.1 切换服务器归档模式
C:\sqlplus /nolog (启动sqlplus)
SQL> conn / as sysdba (以DBA身份连接数据库)
SQL> archive log list (查看是否是归档模式,更改归档模式在热备份时已介绍)
5.2 连接
C:\rman target=rman/rman@oracle (启动恢复管理器,oracle是服务名,根据自己的实际情况设定)
5.3 基本设置
RMAN> configure default device type to disk; (设置默认的备份设备为磁盘)
RMAN> configure device type disk parallelism 2; (设置备份的并行级别,通道数)
RMAN> configure channel 1 device type disk format 'e:\backup1\backup_%U'; (设置备份的文件格式,只适用于磁盘设备)
RMAN> configure channel 2 device type disk format 'e:\backup2\backup_%U'; (设置备份的文件格式,只适用于磁盘设备)
RMAN> configure controlfile autobackup on; (打开控制文件与服务器参数文件的自动备份)
RMAN> configure controlfile autobackup format for device type disk to 'e:\backup1\ctl_%F'; (设置控制文件与服务器参数文件自动备份的文件格式)
5.4 查看所有参数设置
RMAN> show all;
5.5 查看数据库方案报表
RMAN> report schema;
5.6 备份全库及控制文件、服务器参数文件与所有归档的重做日志,并删除旧的归档日志
RMAN> backup database plus archivelog delete input;
5.7 备份表空间及归档的重做日志,并删除旧的归档日志
RMAN> backup tablespace system plus archivelog delete input;
5.8 备份归档日志
RMAN> backup archivelog all delete input;
5.9 复制数据文件
RMAN> copy datafile 1 to 'e:\backup1\datafile\1.ora';
5.10 查看备份和文件复本
RMAN> list backup;
5.11验证备份
RMAN> validate backupset 3;
5.12从自动备份中恢复服务器参数文件
RMAN> shutdown immediate; (立即关闭数据库)
RMAN> startup nomount; (启动实例到nomount 状态)
RMAN> restore controlfile to '/backup1' from autobackup; (从自动备份中恢复控制文件)
5.13 恢复和复原全数据库
RMAN> shutdown immediate; (立即关闭数据库)
RMAN> exit (退出)
将数据文件jnth1.ora,
C:\ ren E:\oracle\oradata\oracle\jnth1.ora jnth1.bak;
C:\ ren E:\oracle\oradata\oracle\jnth2.ora jnth2.bak;
C:\rman target=rman/rman@oracle (启动恢复管理器)
RMAN> startup pfile=C:\oracle\admin\oracle\pfile\ initoracle.ora (指定初始化参数文件启动数据库)
RMAN> restore database; (还原数据库)
RMAN> recover database; (恢复数据库)
RMAN> alter database open; (打开数据库)
5.14 Rman备份的优点
●支持在线热备份;
●支持多级增量备份;
●减小所需要备份量;
●备份,恢复使用简单。
5.15 Rman备份的缺点
●维护较复杂,需要一定的专业知识。