当前位置:文档之家› oracle10g升级到11g

oracle10g升级到11g

用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-161、实验配置实验环境Redhat Enterprise 5.4.升级对象oracle10.2.0.1 升级到oracle11.2.0.12、实验步骤一、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 nomountSQL> alter system set java_pool_size=120M scope=spfile;SQL> alter system set shared_pool_size=120M scope=spfile;需要执行如下脚本SQL> startup upgradeSQL> spool patch.logSQL> @?/rdbms/admin/catupgrd.sqlSQL> spool offSQL> startup(数据库可以正常启动) 在运行下面的脚本(重新编译PL/SQL包,使其能够被使用)SQL> @?/rdbms/admin/utlrp.sql关闭数据库在.bash_profile 引入oracle11g 的oracle_home 我的变量如下:export ORACLE_BASE=/u01/app/oracleexport ORACLE_SID=ora10export ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1export PA TH=$ORACLE_HOME/bin:$PA TH注销以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:$PA TH[oracle@oracle ~]$ sqlplus / as sysdbaSQL> purge dba_recyclebin 这样就可以了接着yes 如下图:接下来选下一步其余默认在下一步如下图接下来需要很长的一段时间至此使用dbua升级数据库已经完成用sql语句使ORACLE10G升级到ORACLE11G1、实验配置实验环境Redhat Enterprise 5.4.升级对象oracle10.2.0.1 升级到oracle11.2.0.12、实验步骤一、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 fromdba_registry order by comp_name; (针对组件)Select object_name, object_type,status ,owner from dba_objects order byowner,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 TABLEAQ$_SCHEDULES_PRIMARY INDEXDBMS_REPCAT_AUTH PACKAGEDBMS_REPCAT_AUTH PACKAGE BODY如果有其它记录返回则必须删除接下来登录数据库运行下面的脚本:SQL> spool upgrade.logSQL> @/u01/app/oracle/product/11.2.0/db_1/rdbms/admin/utlu112i.sqlSQL> spool offUpgrade.log 很有用的,后面编写pfile 需要他接下来在调用脚本SQL> @dbupgdiag.sql三、检查Timezone版本,主要参考:注意:11g的软件里已经自带了版本1-14的Timezone。

先检查一下当前timezone版本:SQL> conn / as sysdbaConnected.SQL>SELECT version FROM v$timezone_file;根据当前timezone的版本,又分三种情况:1)等于14:这已经是11g需要的版本了,所以升级前后都不需要做任何事,这种情况很罕见。

2)高于14:升级前,必须得给11g软件打上该timezone版本的DST补丁,这种情况也很罕见。

3)低于14:大多数都是这种情况,在升级前不需要在11g软件层面打补丁,在升级后需要再数据库层面将Timezone升级至14,具体看后面的步骤四、检查国家字符集是否是UTF8或AL16UTF16:SQL> select value from nls_database_parameters whereparameter='NLS_NCHAR_CHARACTERSET';如果不上述所说的则用下面的语句修改:五、收集统计信息,减少停机时间SQL> EXECUTE dbms_stats.gather_dictionary_stats;六如果你有开启Vault,那么你需要先在11gR2软件下禁用Vault,等升级结束后,再启用Vault,否则会在升级过程中报错。

七备份Enterprise Manager Database Control Data,因为本例并没有使用EM,所以不需要该步骤。

八配置网络ACL's,在本例中不需要配置。

久:使用以下语句生产分析数据字典的脚本(as sysdba):Set verify offSet space 0Set line 120Set heading offSet feedback offSet pages 1000Spool analized.sqlSELECT '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';Spool off生成的脚本名称是:analized.sql现在运行该脚本:$ sqlplus "/ as sysdba"SQL> @$ORACLE_HOME/rdbms/admin/utlvalid.sqlSQL> @analized.sql十、确保所有的快照都已经刷新且repliaction已被关闭SQL> select distinct(trunc(last_refresh)) from dba_snapshot_refresh_times;十一、确保当前没有文件需要介质恢复Select * from v$recover_file;十二、.确保用户SYS和SYSTEM的默认表空间都是SYSTEM:SQL> select default_tablespace from dba_users where username in ('SYS','SYSTEM')如果不是则需要修改语句如下:Allter user sys default tablespace system;Alter user system default tablespace system;十三、对数据库做一个全备份:十四、以10g的pfile为模板,并根据Step 2生成的upgrade_info.log里的建议,为11g创建一个新的pfile。

相关主题