ImageVerifierCode 换一换
格式:DOCX , 页数:28 ,大小:20.86KB ,
资源ID:9484883      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9484883.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Oracle从10g升级到11g详细步骤.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Oracle从10g升级到11g详细步骤.docx

1、Oracle从10g升级到11g详细步骤Oracle从10g升级到11g详细步骤数据库旧版本:10.2.0.4数据库新版本:11.2.0.2OS 版本: Solaris 10参考文档:Complete Checklist for Manual Upgrades to 11gR2 ID 837570.1第一部分 - 安装11gR2软件这里对软件的安装就不详细说明了,可以参考相应的文档。这里需要注意的是:如果你想在11gr2上打上最新的PSU或CPU,可以先在软件级别上打上PSU或CPU,这样就不用跑两次catbundle.sql,减少停机时间。第二部分 - 初步检查1. 在升级之前,确保所有的组

2、件和对象都是valid:select substr(comp_name,1,40) comp_name, status, substr(version,1,10) version from dba_registry order by comp_name; -针对组件select substr(object_name,1,40) object_name,substr(owner,1,15) owner,object_type from dba_objects where status=INVALID order by owner,object_type; -针对对象如果有invalid的对象,运

3、行utlrp.sql重新编译对象。2. 确保sys和system下没有重复的对象:select object_name, object_type from dba_objects where object_name|object_type in (select object_name|object_type from dba_objects where wner = SYS) and wner = SYSTEM;上面这条语句只能返回以下4条记录:OBJECT_NAME OBJECT_TYPE- -DBMS_REPCAT_AUTH PACKAGE BODYDBMS_REPCAT_AUTH PAC

4、KAGEAQ$_SCHEDULES_PRIMARY INDEXAQ$_SCHEDULESTABLE如果有其它记录返回,则必须根据下面这篇文档把重复记录删除:How to Clean Up Duplicate Objects Owned by SYS and SYSTEM Schema ID 1030426.6第三部分 - 升级前工作Step 1.从11gR2的OracleHome下拷贝以下文件至一个临时文件夹:$ORACLE_HOME/rdbms/admin/utlu112i.sqlStep 2.登陆数据库,运行:$ sqlplus / as sysdbaSQL spool upgrade_i

5、nfo.logSQL utlu112i.sqlSQL spool offSQL生成的upgrade_info.log里的内容很重要,后续步骤要根据该文件的内容做相应的修改,因此一定要保留下来。Step 3.从下面这篇文档里可以下载到脚本dbupgdiag.sql:Script. to Collect DB Upgrade/Migrate Diagnostic Information (dbupgdiag.sql) ID 556610.1运行这个脚本:cd $ sqlplus / as sysdbasql alter session set nls_language=American;sql d

6、bupgdiag.sqlsql exit如果该脚本报告有invalid对象,运行以下命令重编译无效对象:$ cd $ORACLE_HOME/rdbms/admin$ sqlplus / as sysdbaSQL utlrp.sqlStep 4.从10.2开始,CONNECT角色的权限变少了,所以如果你是从10.2之前升级到11g的话,升级之后,需要重新授予缺少的权限,但是如果是从10.2及之后升级到11g的话,就不需要重新赋权限了,本例是从10.2.0.4升级到11g的,因此不需要该步骤。Step 5.生成重建dblink的脚本,以防万一数据库需要降级。和Step 4一样,本例是从10.2.0

7、.4升级到11g的,因此不需要该步骤。Step 6.检查Timezone版本,主要参考:Actions For DST Updates When Upgrading To Or Applying The 11.2.0.2 Patchset ID 1201253.1注意:11g的软件里已经自带了版本1-14的Timezone。先检查一下当前timezone版本:SQL conn / as sysdbaConnected.SQLSELECT version FROM v$timezone_file;根据当前timezone的版本,又分三种情况:1)等于14:这已经是11g需要的版本了,所以升级前后

8、都不需要做任何事,这种情况很罕见。2)高于14:升级前,必须得给11g软件打上该timezone版本的DST补丁,这种情况也很罕见。3)低于14:大多数都是这种情况,在升级前不需要在11g软件层面打补丁,在升级后需要再数据库层面将Timezone升级至14,具体看后面的步骤Step 7.检查国家字符集是否是UTF8或AL16UTF16:select value from NLS_DATABASE_PARAMETERS where parameter = NLS_NCHAR_CHARACTERSET;如果是,则什么都不用做;如果不是,那你就惨了,跟着下面长长的这篇文档一步一步做吧:The Nat

9、ional Character Set ( NLS_NCHAR_CHARACTERSET ) in Oracle 9i,10gand 11g ID 276914.1Step 8.收集统计信息,以减少停机时间:$ sqlplus /as sysdbaSQL EXEC DBMS_STATS.GATHER_DICTIONARY_STATS;Step 9.如果你有开启Vault,那么你需要先在11gR2软件下禁用Vault,等升级结束后,再启用Vault,否则会在升级过程中报错。Step 10.备份Enterprise Manager Database ControlData,因为本例并没有使用EM,

10、所以不需要该步骤。Step 11.配置网络ACLs,在本例中不需要配置。Step 12.使用以下语句生产分析数据字典的脚本 (as sysdba):Set verify offSet space 0Set line 120Set heading offSet feedback offSet pages 1000Spool analyze.sqlSELECT Analyze cluster |cluster_name| validate structure cascade;FROM dba_clustersWHERE wner=SYSUNIONSELECT Analyze table |tabl

11、e_name| validate structure cascade;FROM dba_tablesWHERE wner=SYSAND partitioned=NOAND (iot_type=IOT OR iot_type is NULL)UNIONSELECT Analyze table |table_name| validate structure cascade into invalid_rows;FROM dba_tablesWHERE wner=SYSAND partitioned=YES;spool off生成的脚本名称是:analyze.sql现在运行该脚本:$ sqlplus

12、/ as sysdbaSQL $ORACLE_HOME/rdbms/admin/utlvalid.sqlSQL analyze.sqlStep 13.确保所有的snapshot都已被成功刷新,且replication已被关闭:SELECT DISTINCT(TRUNC(last_refresh)FROM dba_snapshot_refresh_times;Step 14.确保当前没有文件需要介质恢复:SELECT * FROM v$recover_file;上面语句没有返回结果才是正确的。Step 15.确保当前没有文件运行在备份模式下:SELECT * FROM v$backup WHER

13、E status != NOT ACTIVE;上面语句没有返回结果才是正确的。Step 16.解决分布式事务。先查询是否还有分布式事务:SQL select * from dba_2pc_pending;如果有返回结果,则:SQL SELECT local_tran_idFROM dba_2pc_pending;SQL EXECUTE dbms_transaction.purge_lost_db_entry();SQL COMMIT;Step 17.检查是否有Standby数据库存在:SELECT SUBSTR(value,INSTR(value,=,INSTR(UPPER(value),SE

14、RVICE)+1)FROM v$parameterWHERE name LIKE log_archive_dest% AND UPPER(value) LIKE SERVICE%;如果有返回结果,则在升级之前,要保证Standby和Primary是处于同步的状态。Step 18.禁用所有的batch和cron jobsStep 19.确保用户SYS和SYSTEM的默认表空间都是SYSTEM:SQL SELECT username, default_tablespaceFROM dba_usersWHERE username in (SYS,SYSTEM);如果不是,则要用以下语句修改为SYST

15、EM:SQL ALTER user SYS default tablespace SYSTEM;SQL ALTER user SYSTEM default tablespace SYSTEM;Step 20.确保AUD$表建在SYS用户下和SYSTEM表空间下:SQL SELECT owner,tablespace_nameFROM dba_tablesWHERE table_name=AUD$;如果不是,则要做相应的修改。Step 21.检查是否有外部认证的SSL用户:SQL SELECT name FROM sys.user$WHERE ext_username IS NOT NULLAN

16、D password = GLOBAL;如果有,则在升级之后记得要做Step 34。Step 22.记下数据文件、联机日志文件和控制文件的位置:SQL SELECT name FROM v$controlfile;SQL SELECT file_name FROM dba_data_files;SQL SELECT group#, member FROM v$logfile;且备份listener.ora, tnsnames.ora, sqlnet.ora等文件。Step 23.停止listener:$ lsnrctl stop停止其它可执行程序,如dbconsole, isqlplus等$

17、emctl stop dbconsole$ isqlplusctl stopStep 24.关闭数据库:$ sqlplus /as sysdbaSQL shutdown immediate;接着对全库做个冷备。Step 25.以10g的pfile为模板,并根据Step 2生成的upgrade_info.log里的建议,为11g创建一个新的pfile。Step 26.如果数据库原本是运行在archive模式下,最好先改为noarchive,这样可以减少升级停机时间,升级成功后再重新改回archive模式。Step 27.该步骤是针对Windows系统的,本例略过。第四部分 - 升级Step 28

18、.升级前的检查步骤基本上已经完成了,在跑升级脚本之前,需要把相关参数改为指向新的11g软件:$ export ORACLE_HOME=$ export PATH=$ORACLE_HOME/bin:$PATH$ export ORACLE_BASE=接着修改oratab中的内容,使其指向新的11g Home目录:Sample /etc/oratab#orcl:/opt/oracle/product/10.2/db_1:Norcl:/opt/oracle/product/11.2/db_1:NStep 29.前面所有的一切准备,都是为了这一步能成功执行,先把数据库起到upgrade状态:$ cd

19、$ORACLE_HOME/rdbms/admin$ sqlplus / as sysdbaSQL startup UPGRADE接着开始跑升级脚本:SQL set echo onSQL SPOOL upgrade.logSQL catupgrd.sqlSQL spool off这个脚本大概持续1.5个小时,脚本的最后会自动关闭数据库。升级脚本跑完之后,再跑下面这个脚本,检查数据库状态:$ sqlplus /as sysdbaSQL STARTUPSQL utlu112s.sql如果该报告中包含错误,请查阅相关文档解决,直到没有错误之后,再跑下面的脚本:SQL catuppst.sql前面的升级

20、脚本是运行在upgrade模式下,该脚本主要是在open模式下做些升级动作,不需要花很多时间。接着重新编译一下无效对象:SQL utlrp.sql最后,再跑一下Step 3中的dbupgdiag.sql,确保数据库是好的。第五部分 - 升级后工作Step 30.修改listener.ora,使listener执行新的11g Home,然后重新启动listener:lsnrctl startStep 31.再次检查Step 28中设置的环境变量确实是指向了新的11g Home。Step 32.Timezone数据库层面的升级。注意:该步骤是否执行是和Step 6中的检查结果相关的,只有当Time

21、zone的版本小于14时,才需要执行该步骤。主要参考:Updating the RDBMS DST version in 11gR2 (11.2.0.1 and up) using DBMS_DST ID 977512.11)Timezone升级前的准备工作:先检查一下当前的timezone版本:conn / as sysdbaSELECT version FROM v$timezone_file;SELECT PROPERTY_NAME, SUBSTR(property_value, 1, 30) value FROM DATABASE_PROPERTIES WHERE PROPERTY_N

22、AME LIKE DST_% ORDER BY PROPERTY_NAME;一个典型的输出是:PROPERTY_NAME VALUE- -DST_PRIMARY_TT_VERSION 4DST_SECONDARY_TT_VERSION 0DST_UPGRADE_STATE NONE然后开始准备工作:alter session set _with_subquery=materialize;exec DBMS_DST.BEGIN_PREPARE(14);接着检查准备状态:SELECT PROPERTY_NAME, SUBSTR(property_value, 1, 30) valueFROM DA

23、TABASE_PROPERTIESWHERE PROPERTY_NAME LIKE DST_%ORDER BY PROPERTY_NAME;一个典型的输出是:PROPERTY_NAME VALUE- -DST_PRIMARY_TT_VERSION 4DST_SECONDARY_TT_VERSION 14DST_UPGRADE_STATE PREPARE- truncate logging tables if they exist.TRUNCATE TABLE SYS.DST$TRIGGER_TABLE;TRUNCATE TABLE sys.dst$affected_tables;TRUNCAT

24、E TABLE sys.dst$error_table;- log affected dataset serveroutput onBEGINDBMS_DST.FIND_AFFECTED_TABLES(affected_tables = sys.dst$affected_tables,log_errors = TRUE,log_errors_table = sys.dst$error_table);END;/下面的语句都不能有返回结果:SELECT * FROM sys.dst$affected_tables;SELECT * FROM sys.dst$error_table;SELECT *

25、 FROM sys.dst$error_table where ERROR_NUMBER= 1883;SELECT * FROM sys.dst$error_table where ERROR_NUMBER= 1878;SELECT * FROM sys.dst$error_table where ERROR_NUMBER not in (1878,1883);- end prepare window, the rows above will stay in those tables.EXEC DBMS_DST.END_PREPARE;- check if this is endedSELEC

26、T PROPERTY_NAME, SUBSTR(property_value, 1, 30) valueFROM DATABASE_PROPERTIESWHERE PROPERTY_NAME LIKE DST_%ORDER BY PROPERTY_NAME;一个典型的输出是:PROPERTY_NAME VALUE- -DST_PRIMARY_TT_VERSION 4DST_SECONDARY_TT_VERSION 0DST_UPGRADE_STATE NONE2)真正开始升级Timezoneconn / as sysdbashutdown immediate;startup upgrade;s

27、et serveroutput onpurge dba_recyclebin;TRUNCATE TABLE SYS.DST$TRIGGER_TABLE;TRUNCATE TABLE sys.dst$affected_tables;TRUNCATE TABLE sys.dst$error_table;alter session set _with_subquery=materialize;EXEC DBMS_DST.BEGIN_UPGRADE(14);SELECT PROPERTY_NAME, SUBSTR(property_value, 1, 30) valueFROM DATABASE_PROPERTIESWHERE PROPERTY_NAME LIKE DST_%ORDER BY PROPERTY_NAME;一个典型的输出是:PROPERTY_NAME VALUE

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1