Tag Archives: exp

EXP无法导出延迟段创建的表

对于11g中使用了延迟段创建方式创建的表,如果导出时刻表的段没有被创建,那么EXP不会导出这张表。 检查测试如下: SQL> CREATE TABLE t_defer (id NUMBER, name varchar2(30)); TABLE created. SQL> CREATE TABLE t_imme (id NUMBER, name varchar2(30)) segment creation immediate; TABLE created. SQL> SELECT TABLE_NAME, segment_created FROM user_tables; TABLE_NAME SEG —————————— — T_IMME YES T_DEFER NO 下面通过EXP进行导出: … Continue reading

Posted in ORACLE | Tagged , | Leave a comment

CRONTAB调用的备份脚本

EXP备份是DBA常规操作之一,尤其是10g以前的版本没有EXPDP,所有的逻辑备份都是通过EXP来实现。而将EXP写成SHELL脚本,使之可以调用也并没有什么特别之处。不过如果并非oracle用户执行,而是需要CRONTAB自动允许,那么备份的脚本就有一些要求了。 客户环境使用RMAN CATALOG方式备份,而RMAN的CATALOG数据库采用EXP进行逻辑备份。部署了一个每天7点运行的CRONTAB,调用执行EXP的SHELL。巡检时发现这个脚本从未真正运行过。 /app/oracle10g> crontab -l 0 7 * * * /app/oracle10g/rman_catalog_dmp/exp_by_date.sh /app/oracle10g/rman_catalog_dmp> more exp_by_date.sh export ORACLE_SID=RMANDB export ORACLE_BASE=/app/oracle10g export ORACLE_HOME=$ORACLE_BASE/product/10.2.0 export NLS_LANG=American_America.ZHS16CGB231280 EXP parfile=EXP.par file=./rman_catalog.dmp log=./rman_catalog.log 由于是CRONTAB进行调用,因此不会使用oracle用户的环境变量,这就需要在shell脚本中添加必要的环境变量的设置,这才能是的EXP命令可以正确的运行。脚本中虽然已经设置了一些环境变量,但是还是不够的。 对于CRONTAB运行SHELL时出现的错误,可以通过用户的mail来获取错误信息: /app/oracle10g/rman_catalog_dmp> mail FROM root@acap3 Thu Aug 18 07:00:01 EAT 2011 Received: … Continue reading

Posted in ORACLE | Tagged , , | 2 Comments