Oracle 11G 不能导出空表的解决方法

Oracle 11G不能导出空表的解决方法

在源库

1、创建DIRECTORY
create directory dir_dp as '/opt/';
2、授权
Grant read,write on directory dir_dp to SBXTAX;
//查看目录及权限
SELECT privilege, directory_name, DIRECTORY_PATH FROM user_tab_privs t, all_directories d
 WHERE t.table_name(+) = d.directory_name ORDER BY 2, 1;
3、执行导出
expdp SBXTAX/SBXTAX@novadb schemas=SBXTAX directory=dir_dp dumpfile =SBXTAX.dmp logfile=SBXTAX.log;

在此过程中你会看到控制台上面会打印出来 records纪录为0的表的导出信息。

4、copy备份集合到目标库

传输备份文件到这里

scp SBXTAX.dmp ......

在目标库:

5、开始迁移导入数据
/*第1步:创建数据表空间  */
create directory dir_dp as '/u01/app/';
Grant read,write on directory dir_dp to SBXTAX;

/*第2步:创建数据表空间  */
create tablespace SBXTAX 
logging 
datafile '/u01/app/data/NOVADB/datafile/SBXTAX.dbf'
size 50m 
autoextend on 
next 50m maxsize 10480m 
extent management local; 

/*第3步:创建用户并指定表空间  */
drop user SBXTAX cascade;
CREATE USER "SBXTAX" PROFILE "DEFAULT"     IDENTIFIED BY "SBXTAX" DEFAULT TABLESPACE "SBXTAX"     ACCOUNT UNLOCK;
grant connect,resource to SBXTAX;
grant create view to SBXTAX;
Grant read,write on directory dir_dp to SBXTAX;

/*第4步:impdp导入数据  */
-- PS:按用户导入(可以将用户信息直接导入,即如果用户信息不存在的情况下也可以直接导入)
impdp SBXTAX/SBXTAX    dumpfile=SBXTAX.dmp logfile=SBXTAX.log directory=dir_dp

/*第5步:检查表的个数以及名字  */

PS:删除用户下面所有资源包括数据文件等等: drop user SBXTAX cascade;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,针对你的问题,我可以给出以下解决方案: 1. 检查数据库权限:首先,确认导出的用户是否拥有数据导出的权限。你可以使用如下命令确认: ``` SELECT * FROM USER_SYS_PRIVS WHERE PRIVILEGE LIKE 'EXP%'; ``` 如果结果为空,则表示该用户没有数据导出的权限。你可以授权该用户使用数据导出命令,如下所示: ``` GRANT EXP_FULL_DATABASE TO <用户>; ``` 2. 检查数据库大小限制:如果你要导出的数据库比较大,可能会超出 Oracle 数据库的默认大小限制。你可以检查数据库大小限制的值,如下所示: ``` SELECT * FROM V$PARAMETER WHERE NAME LIKE '%SIZE%'; ``` 如果结果中的值较小,则需要增加数据库大小限制的值。你可以使用如下命令修改数据库大小限制: ``` ALTER SYSTEM SET db_block_size=<size> SCOPE=SPFILE; ALTER SYSTEM SET sga_max_size=<size> SCOPE=SPFILE; ``` 其中,`<size>` 表示你希望设置的大小值。 3. 检查数据库表空间:如果你要导出的表所在的表空间已满,也会导致导出失败。你可以检查表空间使用情况,如下所示: ``` SELECT TABLESPACE_NAME, USED_SPACE, TABLESPACE_SIZE FROM DBA_TABLESPACES; ``` 如果你发现某个表空间已满,你可以使用如下命令增加表空间大小: ``` ALTER DATABASE DATAFILE '<datafile>' AUTOEXTEND ON MAXSIZE UNLIMITED; ``` 其中,`<datafile>` 表示需要增加大小的数据文件名。 希望以上解决方案能够对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值