项目上对数据库进行备份,服务器的剩余空间不足,试过插移动硬盘,但是总掉电,导致移动硬盘老是自动挂掉。也试过增加网络磁盘,但是速度太慢,比正常的备份要慢3-4倍。
后来采用的方法是拆分备份,每次只备份一部分表,这就要用到expdp中include参数。
以下是尝试的方法。
1、直接执行
(1)备份以B字母开头的表
INCLUDE=table:\"LIKE\'B%\'\"
成功。
(2)备份以B或C字母开头的表
INCLUDE=table:\"LIKE\'B%\'\", table:\"LIKE \'C%\'\"
不成功。百度了一下,有人说是exclude可以支持多个,但是include不支持多个。
(3)建立了个表存储要备份的表名,备份的时候从表里查询。
Create table exp_table(table_type varchar2(20),table_name
varchar2(100));
先尝试了一下不加条件的。
include=TABLE:\"in\(select table_name from exp_table\)\"
不成功,网上有人提供了这种方法,但是备份的时候提示找不到表exp_table。
(4)从dba_tables查询要备份的表
include=TABLE:\"in\(select table_name from dba_tables where
owner=\’XXX\’\)\"
不成功。