导出语句:exp name/passwd file=F:/xxx.dmp OWNER=name
导入语句:imp name/passwd FILE=/usr/local/beifen/xxx.dmp full=y log=/usr/local/oradata/xxx.log ignore=y BUFFER=3000000 commit=y
1.
cboh_ordr_3ch这个表拥有2200多万条数据
每次导入这个表提示tns断开,导库完成后查询此表存在,没数据。再次导入时查看cpu80多,怀疑系统资源占用过多导致崩溃,降低buffer值,导入成功。
2、
多次导入CBOH_FOLIOSAVEPAY_3CH表时报异常退出信息,经查询此表拥有300多万数据,小于之前导入的500多万条数据,怀疑文件损坏问题,重新导出dmp文件后成功。
3.
导出数据所在oracle库与导入数据所在oracle库安装时候的字符编码不同导致所占字节不同以致字段长度过长,导入产生错误。修改方案:1.搜索相关更改字符集方法进行修改。2.重新安装数据库,在安装时配置文件里写与导入库一样的字符集。由于各种原因,本人当时采取的是第二种方案。
4.
表空间不足,无法分配最小盘区。解决方案增加表空间大小。1.创建表空间时给予足够大的表空间,本人采取这种方法
CREATE TABLESPACE choice datafile '/usr/local/oracle/oradata/orcl/choice.dbf' size 30000M autoextend on next 200M maxsize unlimited;
2.增加表空间大小
Meathod1:给表空间增加数据文件
ALTER TABLESPACE app_data ADD DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF' SIZE 50M;
Meathod2:新增数据文件,并且允许数据文件自动增长
ALTER TABLESPACE app_data ADD DATAFILE
'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP04.DBF' SIZE 50M
AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
Meathod3:允许已存在的数据文件自动增长
ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP03.DBF'
AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
Meathod4:手工改变已存在数据文件的大小
ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\EDWTEST\APP02.DBF'
RESIZE 100M;
5.默认缓冲区buffer值过小,由于表数据量过大无法导入。解决方案在imp语句中指定buffer,增加buffer值。
6.导入数据量大的表占用cpu过高,导入失败。解决方案在imp语句中添加commit=y,分批量提交,降低buffer值。
7.视图导入失败,经勘查空表没有导出,在oracle11g中空表不创建segment。解决方案:先执行下列语句再重新导库。
Oracle11G数据库空表导不出来
--修改oracle11的系统参数,使用户的表可以进行导出
alter system set deferred_segment_creation=false;
--查询当前用户下哪些表是不会导出的
Select 'alter table ' || table_name || ' allocate extent;' AS SQLSTR From user_tables where segment_created= 'NO' ;
--复制上一句的运行结果,修改不能导出的表的属性,使其可以导出
alter table MESSAGE allocate extent;
alter table POSITN allocate extent;
alter table ROLE_POSITN allocate extent;
alter table SPCODEEXM allocate extent;
alter table WEEKSET allocate extent;
8.安装Oralce软件时提示正确安装,安装oracle数据库时提示oracle不可用。
查看hosts文件:more /etc/hosts
看是否添加主机名与外网IP对应记录,若未添加便添加上
格式: IP 主机名 实例:139.129.165.111 iZ28qx18hd7Z