首页 > 数据库 > Oracle > 使用文件复制的方式进行数据库版本升级
1.软硬件环境描述
本文涉及的都是linux+oracle 10g的环境.
有一个已经升级到10.2.0.5的数据库,该环境将作为模板,需要升级的数据库的版本有10.2.0.1,10.2.0.3,10.2.0.4.
本文下面的操作能正常运行有几个前提条件:
A. 目标数据库和模板的操作系统版本位数应该一致(32位还是64位).(uname -a)
B. 目标数据库和模板的ORACLE_HOME 应该一致.(echo $ORACLE_HOME)
2.在不停止模板数据库运行情况下,整理数据库环境,使用tar,对数据库运行目录进行打包.
如果可以,先删除$ORACLE_BASE/admin/*dump/ 目录下的日志文件,减少tar文件的数量和容量.
tar -cvf /oracle_product_10205.tar /oracle/product
3. 创建pfile,防止spfile错误(optional)
su - oracle
sqlplus / as sysdba
create pfile from spfile;
4.备份目标库的运行环境和相关运行配置文件.
本例ORACLE_HOME=/oracle/product/10.2.0/db_1.
mkdir -p /ora_bak/network_admin
mkdir -p /ora_bak/dbs
cp /oracle/product/10.2.0/db_1/network/admin/* /ora_bak/network_admin/
cp /oracle/product/10.2.0/db_1/dbs/* /ora_bak/dbs/
chown -R oracle:dba /ora_bak
chmod -R 755 /ora_bak
5.停止目标数据库运行
$sqlplus / as sysdba
SQL>alter system checkpoint;
SQL>shutdown immediate;
SQL>exit
$lsnrctl stop listener
6. 备份目标数据库运行目录(强烈建议,万一升级失败或者误操作,可以回退)
su - oracle
tar -cvf /oracle_product_10204.tar /oracle/product
备份完成后,直接删除$ORACLE_BASE目录下的product,本例为/oracle/product;删除前,先检查一下数据库数据文件是否在$ORACLE_BASE/product目录中,如果在,请先备份下来.
rm -rf /oracle/product
7. ftp 模板到目标数据库(或者通过nfs去访问模板,推荐),然后使用tar进行解包
ftp...( or nfs access)
su - oracle
cd /
tar -xvf /mnt/oracle_product_10205.tar
8. 目标库复制相关配置文件到相应的目录
su - oracle
cp /ora_bak/network_admin/* $ORACLE_HOME/network/admin/
cp /ora_bak/dbs/* $ORACLE_HOME/dbs
9. 数据库的版本升级
sqlplus / as sysdba
SQL>startup upgrade
SQL>alter system set shared_pool_size=600m scope=memory;
SQL>@?/rdbms/admin/catupgrd.sql
SQL>shutdown immediate;
SQL>startup
SQL>@?/rdbms/admin/utlrp.sql
10.启动监听器.
$lsnrctl start listener
到此,数据库升级完成,通过这个方法升级数据库,比运行补丁安装程序,跑java图形安装界面要快一半的速度.笔者使用这个方法升级,1个数据库30分钟可以搞定.
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/32980/viewspace-1059711/ ,如需转载,请注明出处,否则将追究法律责任。