问:公司里的oracle数据库有20g之大(这是一个方案的大小.原来这个方案有30g,我已经把能删的数据都删了),怎么备份?感觉备份一次好慢啊.专家有什么指导一下的吗?(另:20g的数据库是不是备份也要20g这样?)我希望能每周备份一次,最好每天一次.
答:方法一:首选需要在unix下创建一个管道(只创建一次即可):
$mknod ./exp_pipe p
$ ls -l exp_pipe
prw-rw-r-- 1 report group 0 mar 17 05:20 exp_pipe
然后通过管道,将exp导出的数据直接压缩,注意:下面二行要写在同一个shell脚本中。
compress < ./exp_pipe > ./tmp_now.dmp.z &
exp user/passwd@数据库连接串 file=./exp_pipe direct=y compress=no log=./exp.log
20g的dmp文件,压缩后的大小在4g左右。
方法二:考虑到机器的速度和效率的问题,一般不建议使用exp对数据量大的数据库进行备份,因为比较慢。oracle的rman备份可以支持增量备份,你可以自己设置一个备份策略,好比每周日做一次数据库全备份(level 0 级的备份),然后周一周二做增量备份(level 1 级的备份),周三在做一次数据库全备份(level 0),最后周四、周五、周六做数据库的增量备份(level 1)。这样既可以保证你的备份在大部分时间内比较快,而且也可一保证在需要恢复时较快。具体的备份策略要根据你的要求而定,我只是举个例子。
介绍一下什么是oracle的rman备份:
oracle 的rman备份- -
查看那当前使用那个spfile文件 :
sql> select name,value from v$parameter where name='spfile';
1。检查数据库的归档方式。如果不是规定方式,则要修改数据库为归档方式。
1.1 以dba帐号登陆,
$ sqlplus '/as sysdba'; |
1.2 如果第一步为 no archive mode ,则将数据库修改修改为归档方式
1.2.1 建立存档路径.
$mkdir /oracle/bakram/log_archive
1.2.2 在/oracle/oraclehome/dbs/建立一文件 firstspfile.ora
文件内容为:
spfile="/oracle/oraclehome/dbs/spfileorcyehoo.ora" # 实例名称 |
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器