Oracle系统升级基础.ppt
Welcome,俞 欣 Principle Technical Engineer Oracle Support Service,数据库升级,Oracle 系统升级基础手工升级数据库系统 应用系统的调整总结,数据库升级,Oracle数据库组成,Oracle 系统软件+数据库文件 oracle,lsnrctl,sqlplus svrmgr,exp,imp 控制文件 日志文件 数据文件 参数文件,Oracle 系统升级基础,数据库升级基础 手工升级数据库 应用系统调整 总结,Oracle 版本7.0-7.3.48.0.4-8.0.68.1.5-8.1.79.0.1-9.2.0Oracle 不同版本间的差别逻辑上的差别 功能的增强,管理上的不同,新特性物理上的差别 系统软件不同(较大的程序,不同的软件,如svrmgr,sqlplus)数据文件(head 信息),Oracle 系统升级基础,数据库升级基础 手工升级数据库 应用系统调整 总结,为什么要升级,业务扩大的需要,需要新的功能,保持系统的领先地位,需要技术支持,?.升级的费用,升级所带来的工作量,升级对系统的要求,?,Oracle 系统升级基础,数据库升级基础 手工升级数据库 应用系统调整 总结,准备工作升级测试测试 应用系统备份原来的系统数据库系统升级调整新的数据库系统,Oracle 数据库升级的一般步骤,手工升级数据库,数据库升级基础 手工升级数据库 应用系统调整 总结,环境确认:如果版本是8.0.5或更低 需要首先升级到8.0.6如果是8.0.6或更高,可以直接升级到9i操作系统环境可以安装Oracle 9i(patch,disk space,kernel)请对照 检查版本certify status.数据库系统备份:物理备份或逻辑备份备份软件,手工升级数据库,数据库升级基础 手工升级数据库 应用系统调整 总结,手工升级数据库,数据库升级基础 手工升级数据库 应用系统调整 总结,表空间需求 1.修改system rollback alter rollback segment system storage(initial 2m next 2m);2.确保system表空间有150M free space 3.确保rollback表空间足够,同时至少有一个 rollback segment 大于 70 M,检查用户Select from*dba_users where username in(MIGRATE,OUTLN);(8.0.6 only)Select from*dba_roles where role in(MIGRATE,OUTLN);(8.0.6 only)如果有,请先删除,手工升级数据库,数据库升级基础 手工升级数据库 应用系统调整 总结,Set verify off Set space 0 Set heading off Set feedback off Set pages 1000 Spool analyze.sql Select Analyze|object_type|object_name|validate structure;from dba_objects where owner=SYS and object_type in(INDEX,TABLE,CLUSTER);spool off 运行 analyze.sql.,应该没有错误返回,手工升级数据库,数据库升级基础 手工升级数据库 应用系统调整 总结,检查数据字典是否有crash:,Select distinct(trunc(last_refresh)from dba_snapshot_refresh_times;,检查snapshot刷新都已成功完成,手工升级数据库,数据库升级基础 手工升级数据库 应用系统调整 总结,停止数据库 listener lsnrctl stop确认没有数据文件进行recover Select*from v$recover_file;,确认没有悬挂的事物 Select*from dba_2pc_pending;Execute dbms_transaction.purge_lost_db_entry();停止所有的batch和cron 任务关闭数据库(shutdown immediate),手工升级数据库,数据库升级基础 手工升级数据库 应用系统调整 总结,手工升级数据库,安装9i数据库软件最好在新的ORACLE_HOME下安装可以与前面的操作同时进行在相同ORACLE_HOME下安装须注意:1.在前面的操作完成以后进行 2.备份 init.ora,listener.ora,orapw etc.3.deinstall 然后 install,数据库升级基础 手工升级数据库 应用系统调整 总结,手工升级数据库,修改init.ora 注释掉 JOB_QUEUE_PROCESSES,并设置新值为 0注释掉 AQ_TM_PROCESSES,并设置新值为 0确认USER_DUMP_DEST,BACKGROUND_DUMP_DEST and the CORE_DUMP_DEST 的目录设置 _SYSTEM_TRIG_ENABLED=false设置 OPTIMIZER_MODE=CHOOSE注释掉 SNAPSHOT_REFRESH_?参数 注释掉 COMPATIBLE 参数或设置 COMPATIBLE=8.1.x设置 REMOTE_LOGIN_PASSWORDFILE=NONE 如果是OPS,设置 CLUSTER_DATABASE=FALSE 注释掉9i 废弃的一些参数(参照附录),数据库升级基础 手工升级数据库 应用系统调整 总结,手工升级数据库,新环境设置拷贝init.ora,tnsnames.ora,listener.ora,orapw到新的$ORACLE_HOME相应目录修改用户.profile,设置新的环境变量$ORACLE_HOME,$ORA_NLS33,$LD_LIBRARY_PATH,SHLIB_PATH(hp),$ORACLE_BASE etc.如果是NT,需要删除以前的service,新建9iservice C:ORADIM80-DELETE-SID(8.0.x)C:ORADIM-DELETE-SID(8.1.x)C:ORADIM-NEW-SID-INTPWD-MAXUSERS n-STARTMODE AUTO-PFILE ORACLE_HOMEDATABASEinit.ora,数据库升级基础 手工升级数据库 应用系统调整 总结,手工升级数据库,运行升级脚本$cd$ORACLE_HOME/rdbms/admin Sqlplus/nolog SQL Connect sys/passwd_for_sys as sysdba SQL Startup restrict(9.0.1)SQL Startup migrate(9.2.0)From Only Script to Run(升级数据库)8.0.6 u0800060.sql 8.1.7 u0801070.sql 9.0.1 u0900010.sql SQL Select comp_name,version,status from dba_registry;SQL cmpdbmig.sql(升级components,9.2.0 only),数据库升级基础 手工升级数据库 应用系统调整 总结,手工升级数据库,运行升级脚本The components upgraded 包括:Jserver JAVAVM,oracle XDK for Java,Oracle 9i RAC,Oracle Data Mining,OLAP analytical Workspace,Oracle 9i Java Packages,Messaging Gateway,Oracle Workspace Manager,OLAP Catalog,Oracle Label Security.SQL Select comp_name,version,status from dba_registry;(显示结果)SQL shutdown immediateSQL startup restrictSQL utlrp(编译所有invalid objects),数据库升级基础 手工升级数据库 应用系统调整 总结,手工升级数据库,修改init.ora文件注释掉_system_trig_enable=falselog_archive_dest=/arch into log_archive_dest=/path/(if use archived log)恢复REMOTE_LOGIN_PASSWORDFILE设置重新启动数据库SQLconnect/as sysdbaSQL shutdown SQL startup restrict,数据库升级基础 手工升级数据库 应用系统调整 总结,手工升级数据库,National Character Set 重置9i 只有两种:UTF8,AL16UTF16 涉及到相应字段:NCHAR,NVARCHAR2,and NCLOB 规则:UTF8-UTF8,others-AL16UTF16SQL utlnchar.sql(upgrade)如果要转换(utf8-al16utf16),运行 SQL n_switch.sql SQL shutdown immediate,数据库升级基础 手工升级数据库 应用系统调整 总结,手工升级数据库,修改init.ora文件恢复 JOB_QUEUE_PROCESSES 设置恢复 AQ_TM_PROCESSES 设置恢复 Cluster_database 设置(RAC Only)恢复 OPTIMIZER_MODE 设置设置 compatible=9.x.x 生成 spfile SQL Create spfile from pfile;修改 listener.ora 修改 oratab,数据库升级基础 手工升级数据库 应用系统调整 总结,手工升级数据库,UPGRADING THE JAVA ENGINE(Only 9.0.1)检查是否安装了java select count(*)from dba_objects where object_type like JAVA%and owner=SYS(0)SQL startup restrict$cd$ORACLE_HOME/javavm/installSQL connect/as sysdbaSQL Spool catoutjava.log Run=8.1.5 jvmu815.sql 8.1.6 jvmu816.sql 8.1.7 jvmu817.sql,数据库升级基础 手工升级数据库 应用系统调整 总结,手工升级数据库,9i 废弃的参数 _average_dirties_half_life _lm_statistics allow_partial_sn_results always_anti_join always_semi_join arch_io_slaves b_tree_bitmap_plans backup_disk_io_slaves cache_size_threshold cleanup_rollback_entries close_cached_open_cursors compatible_no_recovery complex_view_merging cpu_count db_block_checkpoint_batch db_block_lru_extended_statisti db_block_lru_latches db_block_lru_statistics db_block_max_dirty_target temporary_table_locks text_enable,数据库升级基础 手工升级数据库 应用系统调整 总结,手工升级数据库,db_file_simultaneous_writes delayed_logging_block_cleanout discrete_transactions_enabled distributed_lock_timeout distributed_recovery_connectio fast_full_scan_enabled freeze_DB_for_fast_instance_re gc_defer_time gc_latches gc_lck_procs gc_releasable_locks gc_rollback_locks hash_multiblock_io_count instance_nodeset job_queue_interval job_queue_keep_connections large_pool_min_alloc lgwr_io_slaves lm_locks lm_procs lm_ress lock_sga_areas log_block_checksum log_files use_ism,数据库升级基础 手工升级数据库 应用系统调整 总结,手工升级数据库,log_simultaneous_copies log_small_entry_max_size ogms_home ops_admin_group ops_interconnects optimizer_percent_parallel optimizer_search_limit parallel_default_max_instances parallel_min_message_pool parallel_server_idle_time parallel_transaction_resource _ push_join_predicate row_cache_cursors sequence_cache_entries sequence_cache_hash_buckets shared_pool_reserved_min_alloc snapshot_refresh_interval snapshot_refresh_keep_connecti snapshot_refresh_processes sort_direct_writes sort_multiblock_read_count sort_read_fac sort_spacemap_size sort_write_buffer_size sort_write_buffers spin_count,数据库升级基础 手工升级数据库 应用系统调整 总结,手工升级数据库,数据库重新启动SQL startupEnable Cron and Batch job测试相应的功能sqlplusExp/imp Lsnrctl 数据库升级完成,数据库升级基础 手工升级数据库 应用系统调整 总结,升级前作全备份任何步骤出现错误,必须FIX然后再下一步.尽可能保留以前版本的软件,以便失败时返回需要有经验的DBA来完成Oracle9i大量使用auto manage技术,包括undo-tablespace,local manage tablespace等等,也支持以前的应用模式,建议用户以后逐步调整.,注意事项,手工升级数据库,数据库升级基础 手工升级数据库 应用系统调整 总结,警!,Pro*C 重新编译Java Client 调整第三方工具调整应用测试,应用系统的调整:,应用系统调整,数据库升级基础 手工升级数据库 应用系统调整 总结,总结数据库的升级过程是一个技术性较强的工作。在进行升级前,一定要做好备份。升级前应用的测试是很重要的工作手工升级数据库仅是升级数据库的办法之一,总结,数据库升级基础 手工升级数据库 应用系统调整 总结,总结,感谢您的光临!,