由于数据文件改变路径相比升级的风险稍大一些,所以我们决定先开始移植数据文件,然后再对数据库进行升级操作。
一、数据文件移植到本机硬盘
1、将数据文件、控制文件、临时数据文件和重做日志文件分别先列出来
select * from v$datafile;
select * from v$controlfile;
select * from v$tempfile;
select * from v$logfile;
2、先建立临时数据文件到本机硬盘上,路径另定
create temporary tablespace "tmp" datafile 'path/tmp01.dbf' size 100m;
然后将该临时表空间设置为系统默认临时表空间
alter database default temporary tablespace "tmp";
然后删除原本的磁阵上的临时表空间
drop temporary tablespace "temp" including contents;
3、移动数据文件和日志文件,首先在本机硬盘上建立相关目录并赋予oracle写权限,然后通过以下sql取出执行语句
select 'alter database rename file '||name||'to '||name from v$logfile;
select 'alter database rename file '||name||'to '||name from v$datafile;
将得到的语句to后面的路径稍作修改
4、关闭数据库,执行数据路径改变
shutdown immediate
startup mount
然后将所有的数据文件和重做日志文件用操作系统命令移动到本机硬盘新建的目录中
完成后执行类似命令:
ALTER DATABASE RENAME FILE 'D:\ORACLE\ORADATA\ORCL\DRSYS01.DBF' TO 'E:\ORCL\DRSYS01.DBF';
ALTER DATABASE RENAME FILE 'D:\ORACLE\ORADATA\ORCL\INDX01.DBF' TO 'E:\ORCL\INDX01.DBF';
ALTER DATABASE RENAME FILE 'D:\ORACLE\ORADATA\ORCL\REDO01.LOG' TO 'E:\ORCL\REDO01.LOG';
ALTER DATABASE RENAME FILE 'D:\ORACLE\ORADATA\ORCL\REDO02.LOG' TO 'E:\ORCL\REDO02.LOG';
ALTER DATABASE RENAME FILE 'D:\ORACLE\ORADATA\ORCL\REDO03.LOG' TO 'E:\ORCL\REDO03.LOG';
ALTER DATABASE RENAME FILE 'D:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF' TO 'E:\ORCL\SYSTEM01.DBF';
ALTER DATABASE RENAME FILE 'D:\ORACLE\ORADATA\ORCL\TOOLS01.DBF' TO 'E:\ORCL\TOOLS01.DBF';
ALTER DATABASE RENAME FILE 'D:\ORACLE\ORADATA\ORCL\USERS01.DBF' TO 'E:\ORCL\USERS01.DBF';
ALTER DATABASE RENAME FILE 'D:\ORACLE\ORADATA\ORCL\XDB01.DBF' TO 'E:\ORCL\XDB01.DBF';
ALTER DATABASE RENAME FILE 'D:\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF' TO 'E:\ORCL\UNDOTBS01.DBF';
完成后启动数据库
alter database open;
如无异常表示成功
5、移动归档日志文件
首先查看归档日志文件归档目录,并确认目前只归档到一个目录
show parameter log_archive_dest_1
在本机建立相应的归档日志文件存放路径并赋予oracle写权限,然后修改归档日志文件存放路径:
alter system set log_archive_dest_1='location=path' scope=spfile;
然后关闭数据
shutdown immediate
将归档日志下的所有文件移动到新建的目录中,然后重新启动数据库
startup
启动后检查是否能够成功归档
alter system swtich logfile;
执行此命令后系统应该切换日志文件,并保存最新的归档文件到归档目录中,如正常则表示成功
6、移动控制文件
由于控制文件无法使用alter system 修改,所以必须将数据库的 spfile导出pfile,在pfile中修改后在切换回spfile,具体方法如下:
create pfile=path from spfile;
找到该pfile后修改控制文件路径,并将控制文件移动到修改的路径中,接着关闭数据库使用pfile启动
shutdown immediate
startup pfile=path
如无异常则检查
select * from v$controlfile;
使用pfile重建spfile文件
create spfile from pfile=path;
关闭数据库,使用默认spfile启动
shutdown immediate
startup
无异常则表示成功,到这里为止所有的数据文件、临时数据文件、控制文件和重做日志文件以及归档日志文件都已经成功移植到本机硬盘上,接下来对数据库进行升级操作
二、数据库升级
1、将已经有的数据库压缩包解压到硬盘上,使用vnc oracle用户登录到aix
2、关闭正在运行的数据库,关闭oracle监听进程
shutdown immediate
lsnrctl stop
3、开始升级,运行目录中的./runInstaller,安装时请注意路径和OID名称为OUIHome
4、按照提示切换root用户运行root.sh
5、升级成功后启动数据库,运行脚本
SQL> STARTUP MIGRATE
SQL> SPOOL patch.log
SQL> @?/rdbms/admin/catpatch.sql
SQL> SPOOL OFF
运行完毕后检查日志文件有无错误,如无错误继续下一步编译无效对象
6、关闭数据库,编译无效对象
SQL> SHUTDOWN
SQL> STARTUP
SQL> @?/rdbms/admin/utlrp.sql
此时数据库升级完毕,检验有无异常,如无异常则表示数据库成功升级至9208
阅读(1575) | 评论(0) | 转发(0) |