10g升11g博客(2)

2019-03-22 16:17

接着对全库做个冷备。

Step 25.

以10g的pfile为模板,并根据Step 2生成的upgrade_info.log里的建议,为11g创建一个新的pfile。

Step 26.

如果数据库原本是运行在archive模式下,最好先改为noarchive,这样可以减少升级停机时间,升级成功后再重新改回archive模式。

Step 27.

该步骤是针对Windows系统的,本例略过。

第四部分 - 升级

Step 28.

升级前的检查步骤基本上已经完成了,在跑升级脚本之前,需要把相关参数改为指向新的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:N orcl:/opt/oracle/product/11.2/db_1:N

Step 29.

前面所有的一切准备,都是为了这一步能成功执行,先把数据库起到upgrade状态: $ cd $ORACLE_HOME/rdbms/admin $ sqlplus \SQL> startup UPGRADE 接着开始跑升级脚本: SQL> set echo on SQL> SPOOL upgrade.log SQL> @catupgrd.sql SQL> spool off

这个脚本大概持续1.5个小时,脚本的最后会自动关闭数据库。升级脚本跑完之后,再跑下面这个脚本,检查数据库状态: $ sqlplus \SQL> STARTUP SQL> @utlu112s.sql

如果该报告中包含错误,请查阅相关文档解决,直到没有错误之后,再跑下面的脚本: SQL> @catuppst.sql

前面的升级脚本是运行在upgrade模式下,该脚本主要是在open模式下做些升级动作,不需要花很多时间。

接着重新编译一下无效对象: SQL> @utlrp.sql

最后,再跑一下Step 3中的dbupgdiag.sql,确保数据库是好的。

第五部分 - 升级后工作

Step 30.

修改listener.ora,使listener执行新的11g Home,然后重新启动listener: lsnrctl start

Step 31.

再次检查Step 28中设置的环境变量确实是指向了新的11g Home。

Step 32.

Timezone数据库层面的升级。

注意:该步骤是否执行是和Step 6中的检查结果相关的,只有当Timezone的版本小于14时,才需要执行该步骤。

主要参考:Updating the RDBMS DST version in 11gR2 (11.2.0.1 and up) using DBMS_DST [ID 977512.1] 1)Timezone升级前的准备工作: 先检查一下当前的timezone版本: conn / as sysdba

SELECT version FROM v$timezone_file;

SELECT PROPERTY_NAME, SUBSTR(property_value, 1, 30) value FROM DATABASE_PROPERTIES WHERE PROPERTY_NAME LIKE 'DST_%' ORDER BY PROPERTY_NAME; 一个典型的输出是:

PROPERTY_NAME VALUE

------------------------------ ------------------------------ DST_PRIMARY_TT_VERSION 4 DST_SECONDARY_TT_VERSION 0 DST_UPGRADE_STATE NONE 然后开始准备工作:

alter session set \exec DBMS_DST.BEGIN_PREPARE(14); 接着检查准备状态:

SELECT PROPERTY_NAME, SUBSTR(property_value, 1, 30) value FROM DATABASE_PROPERTIES

WHERE PROPERTY_NAME LIKE 'DST_%' ORDER BY PROPERTY_NAME; 一个典型的输出是:

PROPERTY_NAME VALUE

------------------------------ ------------------------------ DST_PRIMARY_TT_VERSION 4 DST_SECONDARY_TT_VERSION 14 DST_UPGRADE_STATE PREPARE -- truncate logging tables if they exist.

TRUNCATE TABLE SYS.DST$TRIGGER_TABLE; TRUNCATE TABLE sys.dst$affected_tables; TRUNCATE TABLE sys.dst$error_table; -- log affected data set serveroutput on BEGIN

DBMS_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 * 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 ended

SELECT PROPERTY_NAME, SUBSTR(property_value, 1, 30) value FROM DATABASE_PROPERTIES

WHERE PROPERTY_NAME LIKE 'DST_%' ORDER BY PROPERTY_NAME; 一个典型的输出是:

PROPERTY_NAME VALUE

------------------------------ ------------------------------ DST_PRIMARY_TT_VERSION 4 DST_SECONDARY_TT_VERSION 0 DST_UPGRADE_STATE NONE

2)真正开始升级Timezone conn / as sysdba shutdown immediate; startup upgrade; set serveroutput on purge dba_recyclebin;

TRUNCATE TABLE SYS.DST$TRIGGER_TABLE;

TRUNCATE TABLE sys.dst$affected_tables; TRUNCATE TABLE sys.dst$error_table;

alter session set \EXEC DBMS_DST.BEGIN_UPGRADE(14);

SELECT PROPERTY_NAME, SUBSTR(property_value, 1, 30) value FROM DATABASE_PROPERTIES

WHERE PROPERTY_NAME LIKE 'DST_%' ORDER BY PROPERTY_NAME; 一个典型的输出是:

PROPERTY_NAME VALUE

------------------------------ ------------------------------ DST_PRIMARY_TT_VERSION 14 DST_SECONDARY_TT_VERSION 4 DST_UPGRADE_STATE UPGRADE 下面这条语句应该没有返回结果:

SELECT OWNER, TABLE_NAME, UPGRADE_IN_PROGRESS FROM ALL_TSTZ_TABLES where UPGRADE_IN_PROGRESS='YES'; 重启数据库:

shutdown immediate startup

升级相关的table:

alter session set \set serveroutput on VAR numfail number BEGIN

DBMS_DST.UPGRADE_DATABASE(:numfail, parallel => TRUE, log_errors => TRUE,

log_errors_table => 'SYS.DST$ERROR_TABLE', log_triggers_table => 'SYS.DST$TRIGGER_TABLE', error_on_overlap_time => FALSE, error_on_nonexisting_time => FALSE);

DBMS_OUTPUT.PUT_LINE('Failures:'|| :numfail); END; /

如果没有错误,则结束升级: VAR fail number BEGIN

DBMS_DST.END_UPGRADE(:fail);

DBMS_OUTPUT.PUT_LINE('Failures:'|| :fail); END; /

最后一次检查:

SELECT PROPERTY_NAME, SUBSTR(property_value, 1, 30) value

FROM DATABASE_PROPERTIES

WHERE PROPERTY_NAME LIKE 'DST_%' ORDER BY PROPERTY_NAME; 典型输出是:

PROPERTY_NAME VALUE

------------------------------ ------------------------------ DST_PRIMARY_TT_VERSION 14 DST_SECONDARY_TT_VERSION 0 DST_UPGRADE_STATE NONE SELECT * FROM v$timezone_file; FILENAME VERSION -------------------- ---------- timezlrg_14.dat 14

Step 33. 该步骤可省略。

Step 34.

升级外部认证SSL用户。

由于本例是从10.2升级到11g,所以可忽略该步骤。

Step 35.

如果在Step 9中,你关闭了Vault,则必须在此步骤重新启用。

Note 453903.1- Enabling and Disabling Oracle Database Vault in UNIX

Step 36. 忽略

Step 37. 创建spfile:

SQL> create spfile from pfile;

Step 38.

锁住系统用户,可忽略。

Step 39.

升级Oracle Text,可忽略。

Step 40.

升级Oracle Clusterware,可忽略。

Step 41.

配置EM,可忽略。

最后,记得修改compatible参数:

SQL> ALTER SYSTEM SET COMPATIBLE = ’11.2.0’ SCOPE=SPFILE;


10g升11g博客(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:初中物理受力分析精华版

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: