《Oracle数据库备份和恢复操作手册.pdf》由会员分享,可在线阅读,更多相关《Oracle数据库备份和恢复操作手册.pdf(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1Oracle 数据库数据备份和恢复操作手册1.1.ORACLE 参数设置进入 CMD 操作界面,使用sqlplus 连接数据库,图例 1 数据库连接操作连接语法: sqlplus system/Oracle2013orcl 参数说明参数说明备注sqlplus 语法命令system 数据库管理员用户名Oracle2013 system 用户密码orcl 数据库连接标示符数据库安装目录的tnsnames.ora 文件中可以找到Oracle11G 目录:C:appAdministratorproduct11.2.0dbhome_1NETWORKADMIN 图例 2 成功连接数据库环境变量设置 (在
2、 Sqlplus 中执行 ) create or replace directory as c:tmpdir ; 参数说明参数说明备注dir_name 路径名称c:tmpdir 文件路径也可以是另外的随意目录,用单引号括起来。图例 3 环境变量设置1.2.数据备份备份脚本: expdp system/Oracle2013orcl directory=file_path dumpfile=ARADMIN.dat logfile=ARADMIN.log schemas=ARADMIN 参数说明参数说明备注expdp 语法命令system 数据库管理员用户名Oracle2013 system 用户密
3、码orcl 数据库连接标示符数据库安装目录的tnsnames.ora 文件中可以找到Oracle11G 目录:C:appAdministratorproduct11.2.0dbhome_1NETWORKADMIN directory 文件目录名称导出数据库文件的存放目录dumpfile 数据库文件名称导出数据库文件的文件名logfile 数据库日志文件名称导出数据库的日志文件名称schemas 数据库用户操作:图例 4 数据库备份操作成功导出。图例 5 成功导出1.3.数据恢复1.3.1. 删除 ARADMIN 用户1.连接数据库 sqlplus system/Oracle2013orcl 图
4、例 6 连接数据库2.删除目标数据库中的ARADMIN 用户drop user ARADMIN cascade; 图例 7 成功删除目标数据库中的ARADMIN用户1.3.2. 重新创建 ARADMIN 用户1.连接数据库sqlplus system/Oracle2013orcl 图例 8 连接数据库2.创建 ARADMIN 用户create user ARAdmin identified by AR#Admin# default tablespace ARSYSTEM temporary tablespace ARTMPSPC quota unlimited on arsystem; 图例
5、9 创建 ARADMIN用户3.赋予数据库权限grant alter session,create cluster,create database link,create sequence,create session,create synonym,create table,create view,create procedure,create trigger,query rewrite to ARAdmin; 图例 10 赋予数据库权限1.3.3. 数据库导入导入命令: impdp system/Oracle2013orcl directory=file_path dumpfile= ARA
6、DMIN20130606.DAT logfile= ARADMIN20130614.log schemas=ARADMIN 图例 11 数据库导入导入完成1.4.EXP/IMP与 EXPDP/IMPDP 对比17.0.1 运行位置不同17.0.2 EXP/IMP 不同模式原理 : exp/imp 默认会是传统路径,这种模式下,是用SELECT 加数据查询出来 ,然后写入 buffer cache, 在将这些记录写入evaluate buffer. 最后传到Export 客户端,在写入dump文件。直接路径模式下,数据直接从硬盘读取,然后写入PGA, 格式就是 export 的格式,不需要转换,
7、数据再直接传到export 客户端,写入dump 文件.这种模式没有经过evaluation buffer 。 少了一个过程,导出速度提高也是很明显. 17.0.3 EXPDP/IMPDP 不同模式原理 : expdp/impdp 默认就是使用直接路径的,所以expdp 要比 exp 快。 Network Link这种模式很方便,但是速度是最慢的,因为它是通过insert ,select + dblink 来实现的。速度慢也由此可见了。17.0.4 网络和磁盘影响expdp/impdp 是服务端程序,影响它速度的只有磁盘IO。exp/imp 可以在服务端,也可以在客户端。所以,它受限于网络和磁
8、盘。17.0.5 功能上的区别更换表空间,用exp/imp 的时候,要想更改表所在的表空间,需要手工去处理一下,如 alter table xxx move tablespace_new之类的操作。用 impdp 只要用 remap_tablespace=tabspace_old:tablespace_new - 当指定一些表的时候,使用exp/imp时,tables 的用法是tables=(table1,table2,table3)。expdp/impdp用法是 tables=table1,table2,table3 - 是否要导出数据行 exp (ROWS=Y 导出数据行, ROWS=N
9、不导出数据行 ) expdp content(ALL: 对象导出数据行,DATA_ONLY:只导出对象,METADATA_ONLY:只导出数据的记录) = 17.0.6 使用中的优化事项EXP 和 DIRECT=Y 配合使用的是RECORDLENGTH参数,它定义了Export I/O缓冲的大小,作用类似于常规路径导出使用的BUFFER 参数。建议设置RECORDLENGTH参数为最大 I/O 缓冲,即 65535(64kb) 。其用法如下:如: exp userid=system/manager full=y direct=y recordlength=65535 file=exp_full
10、.dmp log=exp_full.log -直接路径不能使用在tablespace-mode -直接路径不支持query 参数,query 只能在 conventional path模式下使用。- buffer 选项只对 conventional path exp 有效。 对于直接路径没有影响。对直接路径,应该设置 RECORDLENGTH 参数。- 对于直接路径下,RECORDLENGTH参数建议设成64k(65535) 。这个值对性能提高比较大- IMP Oracle Import进程需要花比Export 进程数倍的时间将数据导入数据库。某些关键时刻,导入是为了应对数据库的紧急故障恢复。
11、为了减少宕机时间,加快导入速度显得至关重要(1) 避免 I/O 竞争Import 是一个 I/O 密集的操作,避免I/O 竞争可以加快导入速度。如果可能,不要在系统高峰的时间导入数据,不要在导入数据时运行job 等可能竞争系统资源的操作。(2) 增加排序区 Oracle Import进程先导入数据再创建索引,不论INDEXES 值设为 YES或者 NO,主键的索引是一定会创建的。创建索引的时候需要用到排序区,在内存大小不足的时候,使用临时表空间进行磁盘排序,由于磁盘排序效率和内存排序效率相差好几个数量级。增加排序区可以大大提高创建索引的效率,从而加快导入速度。(3) 调整 BUFFER选项 I
12、mp 参数 BUFFER定义了每一次读取导出文件的数据量,设的越大,就越减少Import 进程读取数据的次数,从而提高导入效率。BUFFER 的大小取决于系统应用、数据库规模,通常来说,设为百兆就足够了。其用法如下: imp user/pwd fromuser=user1 touser=user2 file=/tmp/imp_db_pipe1 commit=y feedback=10000 buffer=10240000 (4) 使用 COMMIT=Y 选项 COMMIT=Y 表示每个数据缓冲满了之后提交一次,而不是导完一张表提交一次。这样会大大减少对系统回滚段等资源的消耗,对顺利完成导入是有
13、益的。(5) 使用 INDEXES=N 选项前面谈到增加排序区时,说明Imp 进程会先导入数据再创建索引。导入过程中建立用户定义的索引,特别是表上有多个索引或者数据表特别庞大时,需要耗费大量时间。某些情况下,需要以最快的时间导入数据,而索引允许后建,我们就可以使用INDEXES=N 只导入数据不创建索引,从而加快导入速度。我们可以用INDEXFILE 选项生成创建索引的DLL 脚本,再手工创建索引。我们也可以用如下的方法导入两次,第一次导入数据,第二次导入索引。其用法如下:imp user/pwd fromuser=user1 touser=user2 file=/tmp/imp_db_pip
14、e1 commit=y feedback=10000 buffer=10240000 ignore=y rows=y indexes=n - imp user/pwd fromuser=user1 touser=user2 file=/tmp/imp_index_pipe1 commit=y feedback=10000 buffer=10240000 ignore=y rows=n indexes=y (6) 增加 LARGE_POOL_SIZE 如果在 init.ora 中配置了 MTS_SERVICE ,MTS_DISPATCHERS等参数,tnsnames.ora 中又没有 (SERV
15、ER=DEDICATED) 的配置,那么数据库就使用了共享服务器模式。在MTS 模式下, Exp/Imp操作会用到LARGE_POOL ,建议调整LARGE_POOL_SIZE 到 150M。 检查数据库是否在MTS 模式下: SQLselect distinct server from v$session; 如果返回值出现none 或 shared ,说明启用了MTS - EXPDP 据泵与 exp/imp 来说性能有很大的提高,其中影响最大的就是paralle 。可以这么来看 : expdp/impdp=exp/imp+direct moe + paralle. 所以, 使用数据泵,要想提
16、高速度,就要设置并行参数 expdp full=y directory=dump dumpfile=orcl_%U.dmp parallel=4 那么 expdp 将为 parallel 创建 4 个文件: ORCL_01.DMP,RCL_02.DMP ,ORCL_03.DMP,RCL_04.DMP。每个进程一个文件。这样的话,每个文件的大小会因进程而不同。可以某个文件很大,某个文件却很小。 要解决这个问题,就是设置filesize 参数。 来指定每个文件的最大值。这样当一个文件达到最大值的之后,就会创建一个新的文件一般 parall 参数值等于 CPU 的个数。而且要小于dump 文件的个数 sql show parameter cpu - IMPDP 注意事项 : (1) 导入的时候可能会停在某个地方,比如在创建索引的时候,可能在一个地方停了十几分钟。这个时候切记不要中断过程。这个时候可能是需要导入的数据比较多。可以在不同时段观察下表空间大小的变化。如果表空间一直在变化,说明还在导入,这个时候耐心等待就好。