oracle迁移部分数据丢失,oracle数据迁移中的故障解决:

oracle数据迁移中的故障解决:

1、数据迁移之后,出现乱码问题

解决过程

a、使用select * from nls_database_parameters;命令查看源库中的字符集,内容可能如何。(这次故障按照下面字符集内容进行解决)

SQL> select * from nls_database_parameters;

......

......

NLS_NCHAR_CHARACTERSET

AL16UTF16

NLS_LANGUAGE

AMERICAN

PARAMETER

-------------------------------

NLS_NUMERIC_CHARACTERS

.,

NLS_CHARACTERSET

ZHS16GBK

NLS_CALENDAR

GREGORIAN

PARAMETER

------------------------------

......

b、在安装数据库实例中可以选择ZHS16GBK,简体中文字符集。

c、导出数据之前利用先在shell中执行下面命令

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

echo $NLS_LANG

d、执行了c步骤中的命令后,再用exp对数据进行备份。

e、在导入数据到新的oracle数据库之前,也在shell中执行下面命令。

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

echo $NLS_LANG

f、执行完e中的命令,再执行img导入命令

#####################################################################

2、 在导入数据库中出现下面错误:

故障类型1、

IMP-00017: following statement failed with ORACLE error 1917:

"GRANT SELECT ON "COMMENTD" TO "PORTAL3_INTERACTION""

IMP-00003: ORACLE error 1917 encountered

ORA-01917: user or role 'PORTAL3_INTERACTION' does not exist

根据上面的提示,很容易知道是不存在PORTAL3_INTERACTION这个用户,所以用下面命令进行创建用户。

create user PORTAL3_INTERACTION identified by PORTAL3_INTERACTION ;

grant connect,resource,dba to PORTAL3_INTERACTION;

######################################

故障类型2、

IMP-00017: following statement failed with ORACLE error 1917:               OMS_SOURCE

"GRANT SELECT ON "CONTENT_DISPATCH" TO "CONTENT_STATS""

IMP-00003: ORACLE error 1917 encountered

ORA-01917: user or role 'CONTENT_STATS' does not exist

根据上面的故障提示:可以知道是数据库中不存在CONTENT_STATS这个表空间。

create tablespace CONTENT_STATS logging  datafile '/data/oracle/app/oradata/CONTENT_STATS.dbf' size 5000m autoextend on next 5000m maxsize unlimited;

注意用上面的命令可以解决当前的故障,但是可能在下面还会继续提示有其他表空间你没有创建。

所以最好还是用下面命令查看你源库中存在哪些表空间,之后一次性把表空间都用上面命令创建好,再进行恢复。

select name,status from v$datafile;

######################################

故障类型3、

IMP-00058: ORACLE error 1691 encountered

ORA-01691: unable to extend lob segment OMS_BASIC.SYS_LOB0000067310C00011$$ by 1024 in tablespace OMS_BASIC

IMP-00018: partial import of previous table completed: 17188 rows imported

IMP-00017: following statement failed with ORACLE error 1658:

"CREATE INDEX "IDX_TPLCHECK_FLD" ON "TEMPLATE_CHECK" ("TPL_FLD_ID" )  PCTFRE"

"E 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 3145728 FREELISTS 1 FREELIST G"

"ROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "OMS_BASIC" LOGGING"

根据上面的故障提示:可以知道这是因为ORA-01691的错误问题,原因是表空间无法分配新的空间给表。

这个故障的原因有两种可能。

第一种:DataFile文件设定了大小,且设置不能自动增长。也就是用下面类型的命令创建表空间的。

create tablespace OMS_BASIC logging  datafile '/data/oracle/app/oradata/OMS_BASIC.dbf' size 5000m ;

第二种:DataFile设定了大小,且设置为自动增长,已经到了32G的文件最大值上限。

create tablespace OMS_BASIC logging  datafile '/data/oracle/app/oradata/OMS_BASIC.dbf' size 5000m autoextend on next 5000m maxsize unlimited;

解决办法:

针对第一种原因。我们解决的办法是利用下面命令让数据库表空间可以自动增长

create tablespace OMS_BASIC logging  datafile '/data/oracle/app/oradata/OMS_BASIC.dbf' size 5000m autoextend on next 5000m maxsize unlimited;

针对第二种原因。我们可以给表空间增加多个新的数据文件。

alter tablespace OMS_BASIC add datafile '/data/oracle/app/oradata/OMS_BASIC_01.dbf' SIZE 1000M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;

alter tablespace OMS_BASIC add datafile '/data/oracle/app/oradata/OMS_BASIC_02.dbf' SIZE 1000M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值