Oracle数据库迁移实践与错误处理
"Oracle数据库迁移过程中涉及的步骤和命令示例" 在Oracle数据库的升级过程中,数据迁移是一项关键任务,确保原有数据在新版本数据库中能够正常运行。本部分主要聚焦于Oracle 9i到Oracle 10G的升级过程,并提供了一种分步的方法来完成数据库的迁移。 首先,数据迁移的第一步是导出(Export)。在这个例子中,使用了`exp`命令进行全库导出。以下是一个导出命令的示例: ```bash -- 1. 数据库完全导出 -- 不以sys用户执行 -- exp 'sys/oracle@MODTEST4 as sysdba' -- 参数设置: -- full=y 指定完全导出 -- log=E:\exp\1.txt 设置日志文件路径 -- file参数后面列出多个备份文件,用于分割大文件,避免单个文件过大 ``` 这里的`exp`命令用于创建一个数据库的转储文件,包含了数据库对象和数据。多个`file`参数用于将大型导出文件拆分为多个较小的部分,便于管理和传输。`log`参数指定的日志文件用于记录导出过程中的详细信息,这对于后续排查问题非常有帮助。 完成导出后,接下来是导入(Import)步骤。使用`imp`命令将导出的数据导入到新的Oracle 10G环境中: ```bash -- 2. 数据库完全导入 -- 注意,如果遇到错误ORA-01917,可能是因为表空间不足,需要预先准备足够的空间 -- imp 'sys/oracle@MODTEST4 as sysdba' -- 参数与导出类似: -- full=y 指定完全导入 -- log=E:\exp\1.txt 使用同样的日志文件 -- file参数导入之前导出的多个备份文件 ``` 在导入过程中,可能会遇到各种问题,例如表空间不足(ORA-01917)。这种情况下,需要确保目标数据库有足够的表空间供导入使用,或者在导入前调整表空间大小。同时,导入日志文件可以提供错误信息,帮助解决问题。 此外,特定用户如IFSAPP的导出和导入可能需要特别处理。例如: ```bash -- 仅针对IFSAPP用户的导出 EXP ifsapp/changer@MODTEST4 BUFFER=40960000 ROWS=Y OWNER=ifsapp log=D:\or ``` 这里,导出时指定了用户IFSAPP,使用了`OWNER`参数限制只导出该用户的对象。`BUFFER`参数设置了缓冲区大小,`ROWS=Y`表示导出数据时包含行信息。 Oracle数据库的升级迁移涉及到多个步骤,包括但不限于数据库的完全导出、检查和处理导入时的错误以及特定用户的数据处理。这个过程中,良好的文档记录和日志监控至关重要,能有效确保迁移过程的顺利进行。
--导出用户sys的所有内容
--exp 'sys/oracle@MODTEST4 as sysdba' full=y log=E:\exp\1.txt file=E:\exp\mod01.dump,file=E:\exp\mod02.dump,file=E:\exp\mod03.dump,file=E:\exp\mod04.dump,file=E:\exp\mod05.dump,file=E:\exp\mod06.dump,file=E:\exp\mod07.dump,file=E:\exp\mod08.dump,file=E:\exp\mod09.dump,file=E:\exp\mod10.dump,file=E:\exp\mod11.dump,file=E:\exp\mod12.dump,file=E:\exp\mod13.dump,file=E:\exp\mod14.dump,file=E:\exp\mod15.dump,file=E:\exp\mod16.dump
--导入有异常,导入后数据库无法连接(导入前是可以连接的)
--imp 'sys/oracle@MODTEST4 as sysdba' full=y log=E:\exp\1.txt file=E:\exp\mod01.dump,file=E:\exp\mod02.dump,file=E:\exp\mod03.dump,file=E:\exp\mod04.dump,file=E:\exp\mod05.dump,file=E:\exp\mod06.dump,file=E:\exp\mod07.dump,file=E:\exp\mod08.dump,file=E:\exp\mod09.dump,file=E:\exp\mod10.dump,file=E:\exp\mod11.dump,file=E:\exp\mod12.dump,file=E:\exp\mod13.dump,file=E:\exp\mod14.dump,file=E:\exp\mod15.dump,file=E:\exp\mod16.dump
********************
--**方法2,用户别导出,报很多ORA-01917,好像导入前得先把角色和用户建好,所以转至方法3
--导出用户IFSAPP的所有内容
EXP ifsapp/changer@MODTEST4 BUFFER=40960000 ROWS=Y OWNER=ifsapp log=D:\oracle\oradata\export-ifsapp\export-ifsapp.txt file=D:\oracle\oradata\export-ifsapp\modifsapp.dump
--导出用户webedi的所有内容
EXP webedi/webedi@MODTEST4 BUFFER=40960000 ROWS=Y OWNER=webedi log=D:\oracle\oradata\export-ifsapp\export-webedi.txt file=D:\oracle\oradata\export-ifsapp\modwebedi.dump
--导出用户sys的所有内容
EXP 'sys/oracle@MODTEST4 as sysdba' BUFFER=40960000 ROWS=Y OWNER=sys log=D:\oracle\oradata\export-ifsapp\export-sys.txt file=D:\oracle\oradata\export-ifsapp\modsys.dump
EXP "'sys/oracle@MODTEST4 as sysdba'" BUFFER=40960000 ROWS=Y OWNER=sys log=D:\oracle\oradata\export-ifsapp\export-sys.txt file=D:\oracle\oradata\export-ifsapp\modsys.dump
--通过dbca创建新数据库MODTEST4
--创建与导出库相同的临时表空间
--导入中有报ORA-01652导致索引CUSTOMER_ORDER_LINE_HIST_1_IX创建失败,考虑按如下方式修改创建语句,以允许去自动扩展
select * from dba_tablespaces;
--create temporary tablespace temp4 tempfile 'E:\oracle\oradata\MODTEST4\temp4.dbf' size 500m extent management local;
create temporary tablespace temp4 tempfile 'E:\oracle\oradata\MODTEST4\temp4.dbf' size 500m AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL;
alter database default temporary tablespace temp4;
drop tablespace temp;
select * from dba_tablespaces;
select * from v$datafile;
CREATE TABLESPACE "SYSTEM" LOGGING DATAFILE 'E:\oracle\oradata\MODTEST4\SYSTEM.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "UNDOTBS1" LOGGING DATAFILE 'E:\oracle\oradata\MODTEST4\UNDOTBS1.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "CWMLITE" LOGGING DATAFILE 'E:\oracle\oradata\MODTEST4\CWMLITE.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "DRSYS" LOGGING DATAFILE 'E:\oracle\oradata\MODTEST4\DRSYS.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "EXAMPLE" LOGGING DATAFILE 'E:\oracle\oradata\MODTEST4\EXAMPLE.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "INDX" LOGGING DATAFILE 'E:\oracle\oradata\MODTEST4\INDX.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "ODM" LOGGING DATAFILE 'E:\oracle\oradata\MODTEST4\ODM.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "TOOLS" LOGGING DATAFILE 'E:\oracle\oradata\MODTEST4\TOOLS.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "USERS" LOGGING DATAFILE 'E:\oracle\oradata\MODTEST4\USERS.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "XDB" LOGGING DATAFILE 'E:\oracle\oradata\MODTEST4\XDB.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "IFSAPP_DATA" LOGGING DATAFILE 'E:\oracle\oradata\MODTEST4\IFSAPP_DATA.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED,'E:\oracle\oradata\MODTEST4\IFSAPP_DATA1.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "IFSAPP_INDEX" LOGGING DATAFILE 'E:\oracle\oradata\MODTEST4\IFSAPP_INDEX.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "IFSAPP_REPORT_DATA" LOGGING DATAFILE 'E:\oracle\oradata\MODTEST4\IFSAPP_REPORT_DATA.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "IFSAPP_REPORT_INDEX" LOGGING DATAFILE 'E:\oracle\oradata\MODTEST4\IFSAPP_REPORT_INDEX.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "IFSAPP_ARCHIVE_DATA" LOGGING DATAFILE 'E:\oracle\oradata\MODTEST4\IFSAPP_ARCHIVE_DATA.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "IFSAPP_ARCHIVE_INDEX" LOGGING DATAFILE 'E:\oracle\oradata\MODTEST4\IFSAPP_ARCHIVE_INDEX.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
CREATE TABLESPACE "APP_DATA01" LOGGING DATAFILE 'E:\oracle\oradata\MODTEST4\APP_DATA01.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
--上面创建过了
--CREATE TABLESPACE "TEMP4" LOGGING DATAFILE 'E:\oracle\oradata\MODTEST4\TEMP4.dbf' SIZE 500M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
--创建用户名并复权
select username, default_tablespace,profile
from dba_users
where username in ('IFSAPP', 'WEBEDI');
select DISTINCT owner, tablespace_name
from dba_extents
剩余5页未读,继续阅读
- 粉丝: 8
- 资源: 20
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦