ITPub博客

首页 > 数据库 > Oracle > 使用文件复制的方式进行数据库版本升级

使用文件复制的方式进行数据库版本升级

原创 Oracle 作者:djb1008 时间:2012-11-05 10:40:19 0 删除 编辑

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)

[@more@]

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博客 ” ,链接:http://blog.itpub.net/32980/viewspace-1059711/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-07-27

  • 博文量
    175
  • 访问量
    695257