用dbua使ORACLE10G升级到ORACLE11G
编写:肖小明 日期:2012-11-16
审核:肖小明 日期:2012-11-16
批准:严磊 日期:2012-11-16
受控状态: 是
发布版次:10.0.2 日期:2012-11-16
编号:MDS20121116-2514
变更记录
日期 | 原版本 | 变更后版本 | 作者 |
2012/11/16 | oracle10.2.0 | Oracle11.2.0 | 肖小明 |
签字确认
职务 | 姓名 | 签字 | 日期 |
组长 | 2012-11-16 | ||
1、实验配置
实验环境 Redhat Enterprise 5.4.
升级对象 oracle10.2.0.1 升级到 oracle11.2.0.1
2、实验步骤
一、oracle11.2.0.1软件的安装(由于oracle11安装比较智能就不加以讲解了(是在不懂请参阅oracle11g安装文档))
二、oracle11g软件安装好后,以oracle用户登陆 输入dbua 即可
如下图:
选择你所要升级的数据库 下一步
出现上述情况,经过一番资料的查阅,终于到原因,原来是oracle10.2.0.,不可以直接升级到 oracle11.2.0
现让oracle10.2.0升级到10.2.5 步骤如下
先把升级包解压 unzip 包名
修改权限 chown -R oracle:oinstall /oradisk 我的包名在/oradisk 下解压的
chmod -R 775 /oradisk/
注销 一 oracle用户登录 后并运行该指令 [oracle@oracle Disk1]$ ./runInstaller
跟oracle10g安装差不多就不过多的解释了
路径一定要跟原来oracle10.2.0安装的主目录一致
若出现下面的错误:
数据库实例已经开启了,需要关闭 并重试
关闭数据库 shutdown immediate 启动到nomount 状态下 startup nomount
SQL> alter system set java_pool_size=120M scope=spfile;
SQL> alter system set shared_pool_size=120M scope=spfile;
需要执行如下脚本
SQL> startup upgrade
SQL> spool patch.log
SQL> @?/rdbms/admin/catupgrd.sql
SQL> spool off
SQL> startup(数据库可以正常启动) 在运行下面的脚本(重新编译PL/SQL包,使其能够被使用)
SQL> @?/rdbms/admin/utlrp.sql
关闭数据库
在 .bash_profile 引入oracle11g 的oracle_home 我的变量如下:
export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=ora10
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH
注销以oracle 用户登录 输入 dbua
接下来就会出现
需要运行 purge dba_recyclebin
[oracle@oracle ~]$ export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1
[oracle@oracle ~]$ export PATH=$ORACLE_HOME/bin:$PATH
[oracle@oracle ~]$ sqlplus / as sysdba
SQL> purge dba_recyclebin 这样就可以了
接着 yes 如下图:
接下来选
下一步
其余默认
在下一步 如下图
接下来需要很长的一段时间
至此使用dbua升级数据库已经完成
用sql语句使ORACLE10G升级到ORACLE11G
1、实验配置
实验环境 Redhat Enterprise 5.4.
升级对象 oracle10.2.0.1 升级到 oracle11.2.0.1
2、实验步骤
一、oracle11.2.0.1软件的安装(由于oracle11安装比较智能就不加以讲解了(是在不懂请参阅oracle11g安装文档))
数据库不能有10.2.0.0升级到11.2.0.0 oracle版本至少要10.2.0.2 以上才可以直接升级到11.2.0.0 (数据库中间升级不在讲述不懂请参阅上面的文档)
第一部分数据库升级的准备
二 、在升级之前,确保所有的组件和对象都是valid:
select substr(comp_name,1,40) comp_name,status,substr(version,1,10) version from dba_registry order by comp_name; (针对组件)
Select object_name, object_type,status ,owner from dba_objects order by owner,object_type;(针对对象)
select object_name,object_type from dba_objects where object_name||object_type in (select object_name||object_type from dba_objects where owner='SYS') AND owner='SYSTEM';
结果如下:
OBJECT_NAME OBJECT_TYPE
------------------------------ -------------------
AQ$_SCHEDULES TABLE
AQ$_SCHEDULES_PRIMARY INDEX
DBMS_REPCAT_AUTH PACKAGE
DBMS_REPCAT_AUTH PACKAGE BODY
如果有其它记录返回 则必须删除
接下来登录数据库 运行下面的脚本:
SQL> spool upgrade.log
SQL> @/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/utlu112i.sql
SQL> spool off
Upgrade.log 很有用的,后面编写pfile 需要他
接下来在调用脚本
SQL> @dbupgdiag.sql
3、检查Timezone版本,主要参考:
注意:11g的软件里已经自带了版本1-14的Timezone。
先检查一下当前timezone版本:
SQL> conn / as sysdba
Connected.
SQL>SELECT version FROM v$timezone_file;
根据当前timezone的版本,又分三种情况:
1)等于14:这已经是11g需要的版本了,所以升级前后都不需要做任何事,这种情况很罕见。
2)高于14:升级前,必须得给11g软件打上该timezone版本的DST补丁,这种情况也很罕见。
3)低于14:大多数都是这种情况,在升级前不需要在11g软件层面打补丁,在升级后需要再数据库层面将Timezone升级至14,具体看后面的步骤
注意:11g的软件里已经自带了版本1-14的Timezone。
先检查一下当前timezone版本:
SQL> conn / as sysdba
Connected.
SQL>SELECT version FROM v$timezone_file;
根据当前timezone的版本,又分三种情况:
1)等于14:这已经是11g需要的版本了,所以升级前后都不需要做任何事,这种情况很罕见。
2)高于14:升级前,必须得给11g软件打上该timezone版本的DST补丁,这种情况也很罕见。
3)低于14:大多数都是这种情况,在升级前不需要在11g软件层面打补丁,在升级后需要再数据库层面将Timezone升级至14,具体看后面的步骤
4、检查国家字符集是否是UTF8或AL16UTF16:
oracle10g客户端安装步骤
SQL> select value from nls_database_parameters where parameter='NLS_NCHAR_CHARACTERSET';
如果不上述所说的则用下面的语句修改:
5、收集统计信息,减少停机时间
SQL> EXECUTE dbms_stats.gather_dictionary_stats;
六
如果你有开启Vault,那么你需要先在11gR2软件下禁用Vault,等升级结束后,再启用Vault,否则会在升级过程中报错。
七
备份Enterprise Manager Database Control Data,因为本例并没有使用EM,所以不需要该步骤。
如果你有开启Vault,那么你需要先在11gR2软件下禁用Vault,等升级结束后,再启用Vault,否则会在升级过程中报错。
七
备份Enterprise Manager Database Control Data,因为本例并没有使用EM,所以不需要该步骤。
八
配置网络ACL's,在本例中不需要配置。
配置网络ACL's,在本例中不需要配置。
久:
使用以下语句生产分析数据字典的脚本 (as sysdba):
Set verify off
Set space 0
Set line 120
Set heading off
Set feedback off
Set pages 1000
Spool analized.sql
Set space 0
Set line 120
Set heading off
Set feedback off
Set pages 1000
Spool analized.sql
SELECT 'Analyze cluster "'||cluster_name||'" validate structure cascade;' FROM dba_clusters WHERE owner='SYS' UNION SELECT 'Analyze table "'||table_name||'" validate structure cascade;' FROM dba_tables WHERE owner='SYS'AND partitioned='NO' AND (iot_type='IOT' OR iot_type is NULL) UNION SELECT 'Analyze table "'||table_name||'" validate structure cascade into invalid_rows;' FROM dba_tables WHERE owner='SYS' AND partitioned='YES';
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论