提高oracle系统import系统

上传人:第*** 文档编号:30570141 上传时间:2018-01-30 格式:DOCX 页数:7 大小:20.20KB
返回 下载 相关 举报
提高oracle系统import系统_第1页
第1页 / 共7页
提高oracle系统import系统_第2页
第2页 / 共7页
提高oracle系统import系统_第3页
第3页 / 共7页
提高oracle系统import系统_第4页
第4页 / 共7页
提高oracle系统import系统_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《提高oracle系统import系统》由会员分享,可在线阅读,更多相关《提高oracle系统import系统(7页珍藏版)》请在金锄头文库上搜索。

1、Import 和 Export 是 ORACLE 数据库系统的两个配套的实用程序,Export 把数据库中的数据卸出到操作系统文件中,而 Import 实用程序则把 Export 卸出的数据恢复到数据库中。import 过程有时要花费几个小时甚至几天时间才能成功地完成。不幸的是,在许多情况下,import 需要对数据库进行故障的恢复,这时对时间的要求比较高,因而这种性能是不能胜任的。笔者在从事 ORACLE 7 系统管理工作两年期间,总结出有几个基本的参数改变可以减少 import 所需的时间。一、 系统级别的改变1 在重建数据库时尽可能增大 DB_BLOCK_SIZ 参数。块的大小越大,所需

2、IO 循环的次数就越少。这种改变是永久性的,因此在修改它的时候应考虑到各种可能的影响。2 建立并使用一个大的 rollback 段,同时将其他 rollback 段关闭(offline)。一个 rollback 段大约需要最大的表(table)的 50的大小就足够了。3 在 import 完成之前将数据库置于 NOARCHIVELOG 模式。这将减少创建和管理 archive 日志的时间。4 与 rollback 段一样,创建几个大的重做日志文件(redo log files),越大越好。关闭一些小的重做日志文件。重做日志文件越大,所需的日志切换的次数就越少。检查警告日志信息如“Thread

3、1 cannot allocate new log,sequence 17,Checkpoint not complete”,这就意味着日志文件需要扩大或数量需增加。5 如果可能,尽量将 rollback 段、表数据和重做日志文件分布在不同的硬盘上。这样可以减少 IO 冲突的可能性。二、 intr.ora 参数的改变1 将 LOG_CHECKPOINT_INTERVAL 的值置为大于重做日志文件的大小。这个值通常以操作系统的块大小来定义(UNIX 系统大多是 512 字节)。这样可以将检查点 checkpoint)减小到最少(仅在日志切换时执行)。2 增大 SORT_AREA_SIZE 的值。

4、这种增加取决于机器中其他活动进程的状况以及还有多少可用的空闲内存。我们可以试 510 次来寻找一个最佳值。若机器开始交换(swapping)及页面(paging)切换,说明值设置得太大。三、 import 选项改变1 置 COMMIT=N。这将导致 import 在每个对象(如 table)结束之后提交(commit),而非缓冲区满提交。这就是我们为什么需要一个大的 rollback 段。2 采用一个大的 BUFFER 值。这个值要视系统活动状况、数据库大小等情况而定。通常几兆字节就够了,但是若有足够的内存这个值还可更大些。同样,我们可以查看页面和交换的情况来确定这个值是否太大。这将减少 im

5、port 进程到文件中读取数据的次数(每次它将读取一个 buffer 大小的数据)。3 置 INDEXES=N。这将加快导入无索引表的速度。采用 INDEXFILE 选项,在数据导入完成后建立索引。建立索引时 SORT_AREA_SIZE 值要足够大。为何我的导出文件只有 500K,导入时却占用了 700M 的空间? 软件环境: 1、Windows NT4.0+ORACLE 8.0.42、ORACLE 安装路径为:C:ORANT 解释原因: 1、一般情况下,用 export 导出来的 dmp 文件中,包含表的storage 信息,如果导出的是一个很大的表,比如有 1000 万条记录,则此表的

6、storage 默认初始大小已达到上百兆,这样如果你使用 rows=n 选项,即使导出来的 dmp 文件大小只有不到一兆,导入时,系统会按 storage 默认初始大小来分配表空间,所以一下就占用了很多的空间,如果剩余表空间不够,并且没有设置成自动扩展(数据文件),还会发生导入错误。自动备份 oracle 数据库一、导出数据库 export 命令将数据库中的数据备份成一个二进制文件,它通常有三种模式:用户模式、表模式和整个数据库模式。本文拟采用用户模式,备份之前,应先建立一个备份目录,以容纳备份文件,比如可建一个/backup 目录。接着我们可在 UNIX 的 Oracle目录下(也可以是其它

7、目录)分别建立两个文件 orabackup,tarbackup 。需要说明的是,前一个文件需要对 Oracle 的参数进行初始化,为了方便起见,我们不妨将初始化命令放到一个文件中(文件名姑且定为 oraenv),再由第一个文件调用它。 1. oraenv 文件对 Oracle 的参数进行初始化,其内容如下: ORACLEHOME=ORACLE HOME;export ORACLEHOME ORACLESID=ora73;export ORACLESID ORACLETERM=sun;export ORACLETERM LD LIBRARYPATH=ORACLE HOME/lib;export

8、LDLIBRARYPATH ORANLS32=ORACLE HOME/ocommon/nls/admin/data;export ORANLS PATH=.:/usr/ccs/bin:/usr/ucb:ORACLEHOME/bin:PATH;export PATH DISPLAY=host1:0;export DISPLAY NLSLANG=americanamerica.zhs16cgb231280;export NLSLANG 2. orabackup 文件对数据库做 export 导出,导出的文件名可以任意定,本文定为字母“xx”加当天日期,即假如当天日期是 12 月 10 号,则导出的

9、文件名为“xx1210.dmp”,以区别于其它日期的备份文件。 orabackup 文件内容: ./oracle/oraenv 初始化 Oracle 数据库 rq=date md 把当天日期赋予变量 rq rm /backup/ 清空 /backup 目录 exp test/test file=/backup/xxrq.dmp log=/backup/xxrq.log 本命令用于在提示符下,导出 test 用户的数据(其口令亦为 test),导出文件及日志均放在/backup 目录下。 二、磁带备份 tarbackup 文件将用 export 命令导出的数据文件拷贝到磁带上。 tarbacku

10、p 文件内容: tar rvf /dev/rmt/0n/backup/ 本命令可将/backup 目录下当天产生的文件备份到磁带上。本文件中,tar 命令使用了三个参数,其中 r 选项表示向磁带上拷入文件而不破坏磁带原来内容,v 选项表示在拷贝过程中显示文件信息,f 选项后面加上磁带设备名,指定文件向何处拷贝,n 选项表示磁带机不倒带。/dev/rmt/0 表示 UNIX 主机第一个磁带驱动器,同理,/dev/rmt/1 则表示 UNIX 主机第二个磁带驱动器,依此类推。 oraenv、orabackup、tar backup 文件编写完成后,分别使用下述命令: chmod 755 oraen

11、v chmod 755 orabackup chmod 755 tarbackup 这样,三个文件就都变成了可执行文件。 三、异地备份 我们知道,通常可用 FTP 命令在两台主机间传输数据,但一般是通过交互方式实现的,即需要手工输入目标主机的 IP 地址、用户名、口令等。显然,这不符合自动备份的要求。所幸的是,我们可以通过编写一个.netrc 的文件来达到目标。这一文件必须命名为.netrc,且必须存放在启动 FTP 命令的机器上的用户注册目录中,该文件的权限应禁止组内或其它用户进行读访问。这样,当用户使用 FTP 命令的时候,系统将会在该用户的注册目录中寻找.netrc 文件,如果能够寻找到

12、,将会首先执行该文件,否则,会交互式地提示用户输入用户名、口令等。 在使用 FTP 命令之前,应先在另一台作备份用的 UNIX 机器上建一目录,以容纳备份文件,本文建的目录是/pub 。需要指出的是,为了加快备份速度,两台主机之间的传输速率应尽可能的高,最好位于同一局域网上。 .netrc 文件内容如下: machine host2 host2 为作备份用的主机名 login oracle oracle 为备份主机上的一个用户 password oracle oracle 用户的口令为 oracle macdef init 定义一个名为 init 的宏,它将在自动注册进程的最后被执行 bin

13、文件的传输方式设为二进制 lcd /backup 进入本地工作目录/backup cd /pub 进入备份主机目录/pub mput 将/backup 目录下的所有文件传输至备份主机 bye 退出 FTP 会话进程 .netrc 文件编写完成后,使用下述命令: chmod 600 .netrc 这样,.netrc 文件就只能被该用户所访问。 四、启动备份进程 Cron 是一个永久进程,它由/etc/rc.local 启动执行。Cron 检查/var/spool/cron/crontabs/ 目录中的文件,找到所要执行的任务和执行任务的时间。 Crontab 文件的每一行由六个域 (minute

14、s、hours、day of month、month 、day of week、 command)组成,域之间用空格或 Tab 分开,其中: minutes:分钟域,值的范围是 0 到 59 hours:小时域,值的范围是 0 到 23 day of month:日期,值的范围是 1 到 31 month:月份,值的范围是 1 到 12 day of week:星期,值的范围是 0 到 6,星期日值为 0 command:所要运行的命令 如果一个域是 ,表明命令可以在该域所有可能的取值范围内执行。 如果一个域是由连字符隔开的两个数字,表明命令可以在两个数字之间的范围内执行(包括两个数字本身)。

15、 如果一个域是由逗号隔开的一系列值组成的,表明命令可以在这些值组成的范围内执行。 如果日期域和星期域都有值,则这两个域都有效。 现在,我们编写一个文件,用以启动自动备份进程。值得注意的是,该文件只能在 Oracle 用户名下用 crontab e 命令来编辑,否则将不会被定时执行,文件名定为Oracle,文件将放在/var/spool/cron/crontabs 目录下。编辑完成后,可以在 Oracle 的提示符下,用 crontab l 命令来查看。 Oracle 文件内容: 0 23 /oracle/orabackup 每天 23 点对数据库执行备份 0 2 /oracle/tarbackup 每天 2 点将文件备份到磁带上 0 4 ftp i host2 每天 4 点将文件备份到另一台主机上 经过以上的操作后,系统每天晚上将自动产生一个备份,并且自动将备份文件分别拷贝到磁带上和另一台主机上。系统管理员需要做的是,隔几天换一盘磁带(更换磁带的周期取决于备份文件的大小和磁带的容量)和清理备份目录。这样,他们就可以从备份数据的繁琐中解脱出来,去做其它更有意义的工作。而数据库既实现了磁带备份,又实现了异地备份,相应的安全性也大大提高了。作 Export 或 Import 时,如何记录 LOG 信息? 软件环境: 1、Windows NT4.0+OR

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号