oracle数据迁移案例从oracle 8.1.7.4到oracle 9.2.0.8

教程发布:风哥 教程分类:ITPUX技术网 更新日期:2022-02-12 浏览学习:425

旧数据库环境 操作系统为alpha 数据库版本为8.1.7.4 用户名 oracle ip地址 192.168.1.1 数据库实例名为orcl
需要迁移到IBM aix 5308 数据库版本为 oracle 9.2.0.8 用户名为oracle ip地址为192.168.1.12数据库实例名为orcl
迁移完成后,需要改回原先用的ip地址

迁移大概步骤:

第一步:数据迁移
旧库:
1。收集信息(包括表空间脚本 需要在新库创建同样表空间用到,包括大小)
2。通知客户停旧库相关的应用
3。停listener listener stop
4。检查job参数 停相关job
show parameter job
已经为0
5。停数据库,再启动一次数据库,检查是否还有session连接,用以下sql检查
select username,count(*) from v$session group by username; 无的话 进行下步数据导出
6。vi exp.sh
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
exp system/password full=y file=/oldxz/exp_full_xz1022.dmp log=/oldxz/exp_full_xz1022.log buffer=4096000 feedback=5000 compress=n recordlength=65535
nohup ./exp.sh & 放到后台进行 注意按回车
7。导出完成后 检查log 是否正常 通过检查 导出16G数据文件 花了三个多小时
8。拷贝tnsnames.ora到/oldxz目录

新库: 因为是新机器,需要安装 oracle软件,打补丁,创建数据库需要用到的lv裸设备,创建数据库,创建原库需要用到的表空间
1.安装oracle软件
2.打9.2.0.8补丁
3.创建lv 裸设备
4.创建数据库,生成建库脚本 --注意字符集要和原库一致
5.创建表空间
6.导入数据
imp system/password full=y file=/oldxz/exp_full_xz1022.dmp log=/oldxz/imp_full_xz1022.log buffer=4096000 feedback=5000 commit=y
recordlength=65535 ignore=y 导入时间用了一个小时左右 因为是新存储,速度比较块 每秒达到100多M
7.导入完成后 检查log 是否正常
8.编译无效对象
cd $ORACLE_HOME/rdbms/admin/utrlp.sql
sqlplus "/as sysdba"
@ utlrp.sql
9.拷贝/oldxz/下的tnsnames.ora到$ORACLE_HOME/network/admin目录下
10.配置listener
11.检查两边失效对象是否一致,也可用toad工具进行检查
SELECT OWNER,OBJECT_NAME,OBJECT_TYPE FROM DBA_OBJECTS WHERE STATUS='INVALID' ORDER BY OWNER,OBJECT_NAME ;
要是旧库正常 ,而新库不正常 就要在新库解决这些失效的对象
这次遇到的问题 是sys的权限在新库中没有赋予对应的用户,因为是用system用户导出和导入
用以下sql在原库进行进行检查
SELECT * FROM dba_tab_privs WHERE GRANTOR='SYS';
查出来后,在新库赋予权限给对应的用户
GRANT SELECT ON V_$DATAFILE to test;
GRANT SELECT ON V_$FILESTAT to test;
GRANT SELECT ON V_$LATCH to test;
GRANT SELECT ON V_$LIBRARYCACHE to test;
GRANT SELECT ON V_$LOCK to test;
GRANT SELECT ON V_$LOCKED_OBJECT to test;
GRANT SELECT ON V_$PARAMETER to test;
GRANT SELECT ON V_$PROCESS to test;
GRANT SELECT ON V_$ROLLNAME to test;
GRANT SELECT ON V_$ROLLSTAT to test;
GRANT SELECT ON V_$ROWCACHE to test;
GRANT SELECT ON V_$SESSION to test;
GRANT SELECT ON V_$SGA to test;
GRANT SELECT ON V_$SQLTEXT to test;
GRANT SELECT ON V_$SYSSTAT to test;
12.在新库检查db_link用到的相关tns,用tnsping测试是否正常连接
和相关用户登录进去,看连接到 dblink 看是否能正常查询
dblink视图名称dba_db_links
conn test/aaa
select * from tab@dblinkname
13.启监听和数据库
14.通知客户测试下应用在新库临时ip 192.168.1.2 下是否正常 测试通过

第二步 切换ip,生产正式启用到新ip上
旧库操作:
shutdown 数据库
和关掉主机
新库操作
停 lsnrctl 和数据库

smitty tcp/ip 由192.168.1.2改为192.168.1.1
改完后 启动数据库和监听

完成切换 正式启用
继续观察应用看是否正常

本文标签:
网站声明:本文由风哥整理发布,转载请保留此段声明,本站所有内容将不对其使用后果做任何承诺,请读者谨慎使用!
【上一篇】
【下一篇】