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;

时间: 2024-12-28 00:19:23

oracle数据迁移中的故障解决:的相关文章

Oracle数据迁移expdp/impdp

Oracle数据迁移expdp/impdp目的:指导项目侧自行进行简单的数据泵迁移工作. 本文实验环境:Oracle 11.2.0.4,利用数据库自带的scott示例用户进行试验测试. 1.首先需要创建Directory 2.使用expdp导出用户数据 2.1 只导出scott用户的元数据,且不包含统计信息: 2.2 只导出scott用户的数据: 2.3 只导出scott用户下的emp,dept表及数据: 2.4 只导出scott用户下的emp,dept表结构: 2.5 导出scott用户下所有

Oracle DBA的神器: PRM恢复工具,可脱离Oracle软件运行,直接读取Oracle数据文件中的数据

PRM 全称为ParnassusData Recovery Manager ,由 诗檀软件自主研发,拥有独立的软件著作权. PRM可以独立于Oracle软件运行,直接从Oracle数据文件中抽取表上的数据. 当以下几种场景中,都可以用上PRM: 无备份或者备份不可用情况下,数据表被意外truncate掉或者DROP掉 由于数据库损坏,导致的数据打不开 无法OPEN 数据块存在损坏,Oracle无法读取出数据 数据文件存在损坏,或者数据文件头信息不一致 等等 以上这些问题中,用户均可以考虑使用PR

详解Oracle数据货场中三种优化:分区、维度和物化视图

转 xiewmang 新浪博客 本文主要介绍了Oracle数据货场中的三种优化:对分区的优化.维度优化和物化视图的优化,并给出了详细的优化代码,希望对您有所帮助. 我们在做数据库的项目时,对数据货场的优化,大约的原理只有两个:一是数据分块储藏,便于数据的转储和管教:二是其中处理,长进数据供给的速度.本文主要介绍了Oracle数据货场中的三种优化:对分区的优化.维度优化和物化视图的优化,基上面两个大约的原理,借助于数据货场的观念,罗列数据库的优化措施:1.分区在数据货场中,事实表,索引表,维度表分

Oracle 数据迁移

oracle 数据库迁移 ######################################################################################## ######################################################################################## 在源库中导出数据(备份) exp OMS_lvnain01/OMS_lvnain01 owner=OMS_lvnain

Oracle数据迁移至MySQL

ORACLE DB: 11.2.0.3.0 MYSQL DB: 5.5.14 因项目需求,需要将ORACLE生产中数据迁移至MYSQL数据库中作为初始数据,方法有如下几种: 1.ORACLE OGG 2.通过手动编写select “insert into”脚本 3.工具,本次我就是使用了工具(sqluldr2),工具下载地址可以到www.anysql.net去下载 使用方法:将sqluldr2.bin工具上传到oracle的bin目录下,[[email protected] bin]# chow

数据迁移中的数据测试

很久没有写自己的blog了.自动化测试项目结束后,又参加了一些新项目,有些和测试自动化无关.目前做的是数据迁移测试,即把一个老系统的业务数据,迁移到新系统中.大部分测试都集中在数据的测试,主要根据BMD测试数据字段的对应关系.测试用例都是用SQL脚本写的.为了调用这些测试用例,也写了一个简单的测试框架,思路如下: Main.sql 这个文件有两部分, 1) 生成一个TestResult表,记录每一个测试用例的结果,如: IF EXISTS (SELECT * FROM sys.objects W

Oracle数据表中的死锁情况解决方法

不知道干了啥,把数据表锁住了,没法update. 百度了各种方法,总结如下. 查看被锁住的表(两句都可以): select * from v$session t1, v$locked_object t2 where t1.sid=t2.SESSION_ID   select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode from v$locked_object

Oracle 数据迁移(从Oracle11G高版本迁移到Oracle10G低版本)

1,数据库状况    生产环境是11G,linux系统,测试环境是10G,windows系统,需要从生产环境导出一个用户下所有的数据,导入测试环境中.    因为数据量比较小,准备采用EXP和IMP工具来做. 2,在生产环境上导出用户数据    命令:       exp \'system/syspl as sysdba\' owner=PLAS buffer=10240000 FILE=/tmp/PLAS_20141113.DMP 执行过程:[[email protected] ~]$  ex

Oracle 数据迁移(从Oracle11G迁移到更高的版本号Oracle10G低版本号)

1.数据库状况    生产环境是11G,linux系统,測试环境是10G,windows系统,须要从生产环境导出一个用户下全部的数据,导入測试环境中. 由于数据量比較小,准备採用EXP和IMP工具来做. 2,在生产环境上导出用户数据    命令:       exp \'system/syspl as sysdba\' owner=PLAS buffer=10240000 FILE=/tmp/PLAS_20141113.DMP 运行过程:[[email protected] ~]$  exp \