一个windows平台的老数据库版本是11.2.0.1,由于不稳定,需要升级到11.2.0.4。
原数据库环境检查
首先停止应用程序,避免升级过程中应用程序尝试连接数据库造成问题。
检查系统资源是否充足
检查物理文件存放路径
select name from v$datafile
union
select member from v$logfile
union
select name from v$controlfile;
检查system、sysaux表空间中是否有业务数据,如果有要进行迁移
select * from dba_segments
where (tablespace_name='SYSTEM' or tablespace_name='SYSAUX')
and owner in('HR'...);
这里的用户名把业务中用到的所有用户名都放进去,如果没有查询到记录说明没有用户数据存放在系统表空间中,否则的话需要将对应的数据迁移到用户表空间。
数据备份
-- 实用数据泵全库备份。备份目录一定要保证有充足的磁盘空间。
SQL> create directory dump_dir as 'd:\dump';
SQL> grant read,write on directory dump_dir to public;
expdp system/dbmanager directory=dump_dir filesize=20G dumpfile=ora11g_full_%U.dmp logfile=ora11g_full.log full=y parallel=4
-- 异机恢复演练
-- 恢复时要把所有业务用户需要恢复的都写上
SQL> create directory dump_dir as 'd:\dump';
SQL> grant read,write on directory dump_dir to public;
impdp system/dbmanager directory=dump_dir dumpfile=ora11g_full_01.dmp,ora11g_full_02.dmp, ora11g_full_03.dmp, ora11g_full_04.dmp logfile=imp_ora11g_full.log schemas=hr,...
关闭数据库实例、监听及所有相关服务
SQL>shutdown immediate
lsnrctl stop
在windows的“服务”中关闭所有oracle相关服务
对数据库进行全库冷备,包括数据文件、日志文件、控制文件、参数文件、密码文件等。
根据第一步检查到的物理文件存放路径,把涉及到的所有目录都备份出来,并把参数文件和密码文件也备份出来。
执行 11.2.0.4 安装程序进行升级
检查升级后数据库数据及状态
SQL> select * from v$version;
SQL> select member,status from v$logfile;
SQL> select open_mode from v$database;
测试客户端连接是否正常
检查用户数据是否正常