使用DBUA升级数据库从9i到10G

使用DBUA升级数据库从9i到10G

OS: HP-UX 11.23

# uname -a
HP-UX RX3600-3 B.11.23 U ia64 1955595348 unlimited-user license

ORACLE 9.2.0.6

ORACLE 10.2.0.1

注: 不会在这里贴图, 所以把图全删了, 改用文字描述.

[@more@] 1. 使用和 9i 相同的用户来安装 Oracle10G ,安装时选择不同的 ORACLE_HOME 目录,并且取消建库选择项。

在安装Oracle10G的时,安装程序检查出HP-UX有不符合的条件:

Checking for PHSS_33278; found Not found. Failed <<<<

Checking for PHSS_33279; found Not found. Failed <<<<

Checking for PHSS_33277; found Not found. Failed <<<<

Checking for PHSS_33279; found Not found. Failed <<<<

Checking for maxssiz_64bit=1073741824; found maxssiz_64bit=268435456. Failed <<<<

Checking for maxswapchunks=16384; found no entry. Failed <<<<

Checking for maxuprc=3687; found maxuprc=256. Failed <<<<

Checking for msgmap=4098; found msgmap=514. Failed <<<<

Checking for msgmni=4096; found msgmni=512. Failed <<<<

Checking for msgseg=32767; found msgseg=8192. Failed <<<<

Checking for msgtql=4096; found msgtql=1024. Failed <<<<

Checking for semmap=4098; found no entry. Failed <<<<

Checking for shmmni=512; found shmmni=400. Failed <<<<

Checking for vps_ceiling=64; found vps_ceiling=16. Failed <<<<

Check complete. The overall result of this check is: Failed <<<<

Problem: The kernel parameters do not meet the minimum requirements (see above).

Recommendation: Perform operating system specific instructions to update the kernel parameters.

上面提示的补丁没理,只修改了要求的系统参数(不加参数则表示参数立刻生效)

kctune -h maxssiz_64bit="1073741824"

kctune -h maxswapchunks=16384"

kctune -h maxuprc="3687"

kctune -h msgmap="4098"

kctune -h msgmni="4096"

kctune -h msgseg="32767"

kctune -h msgtql="4096"

kctune -h semmap="4098"

kctune -h shmmni="512"

kctune -h vps_ceiling="64"

2. 确认/etc/oratab文件里含有要升级的数据库的条目,在此文件的配置里,要使用9i的环境变量,dbua会自动更新该文件,如下:

*:/oracle/oracle/product/9.2.0:N

gxsi:/oracle/oracle/product/9.2.0:N

dbua程序执行过程中即更新该文件:

*:/oracle/oracle/product/9.2.0:N

gxsi:/oracle/oracle/product/10.2.0:N

3. 设置环境变量以准备执行dbua

#su – oracle

因为要使用10GDBUA,所以要使ORACLE_HOME变量的为10G的目录:

export ORACLE_BASE=/oracle/oracle

export ORACLE_HOME=/oracle/oracle/product/10.2.0/

export PATH=$ORACLE_HOME/bin:$PATH

export DISPLAY=10.154.249.5:1.0

可以使用xclock来测试。

4. 执行DBUA启动升级过程

启动DBUA,出现DBUA的安装界面,是一些关于DBUA升级的说明.

5. 点击next出现如下图,选择要升级的数据库。如果上面第2步没有做,则在下图的 Available Database选择框里无法出现内容。

注:此处画面显示的是当前Oracle里所包含的库列表.

6. 在上图中选择好要升级的数据库后,点击next下一步.

在此处出现了一个错误:

问题1

For input string: ""

Upgrade configuration file

/oracle/SND/102_64/cfgtoollogs/dbua/SND/upgrade2/upgrade.xml is not a valid xml file

在另一窗口查看该文件,发现该文件正是DBUA升级程序自身产生的,每执行一次则产生一个upgrade*目录。

在网上查找此问题,发现如下原因:

While trying to run the DBUA to upgrade an Oracle 9.2 database to 10.2 I get the error:

For input string: ""

Upgrade configuration file

/oracle/SND/102_64/cfgtoollogs/dbua/SND/upgrade2/upgrade.xml

is not a valid xml file

and the DBUA does not run. Please help as this is my first Oracle upgrade ever!

There have been reported issues when using the DBUA to upgrade to a 10.2 database if the SYS user's temporary tablespace in the Oracle 9.2 database is dictionary managed rather than locally managed. Check to see if this is the case by first querying the DBA_USERS view to determine which tablespace has been defined as temporary for SYS:

select temporary_tablespace from dba_users where username='SYS';

Then check to see whether this tablespace is locally or dictionary managed:

select tablespace_name, extent_management from dba_tablespaces;

If the temporary tablespace defined for the SYS user is a dictionary managed tablespace, try creating another locally managed tablespace and assign it to be the temporary tablespace for SYS as follows:

alter user sys temporary tablespace ;

Try the upgrade again using the DBUA.

根据以上描述使用如下方法解决:

根据以上说明,查询原9i数据库后,发现TEMP表空间无数据文件,要修改syssystem用户使用可本地使用的临时表空间。

SQL> select temporary_tablespace from dba_users where username='SYS';

TEMPORARY_TABLESPACE

------------------------------------------------------------

TEMP

SQL> desc dba_temp_files;

Name Null? Type

----------------------------------------- -------- ----------------------------

FILE_NAME VARCHAR2(513)

FILE_ID NUMBER

TABLESPACE_NAME NOT NULL VARCHAR2(30)

……

SQL> select file_name from dba_temp_files;

no rows selected

SQL> create temporary tablespace temp2 tempfile '/oradata/gxsi/temp02.dbf' size 100M;

Tablespace created.

SQL> alter user sys temporary tablespace temp2;

User altered.

SQL> alter user system temporary tablespace temp2;

User altered.

7. 然后在第5步里点下一步,没有再出现错误,DBUA继续执行.

接下来的几个配置画面里有:

SYSAUX表空间的配置;

Recompile invalid objects at the end of upgrade;

may need to backup database;

configure the database with entherprise manager;

must specify passwords for the user accounts;

Database upgrade Summary;

开始执行升级,等待中...

在更新程序升级"Upgrading Oracle Server"序升时出现错误:

ORA-25138: HASH_JOIN_ENABLED initialization parameter has been made obsolete.

此错误是在执行”Upgrading Oracle Server”步骤时出现的,因为上不了网,没法查看此错误的原因,点Ignore继续。

查到错误原因了,因为在9i里的部分参数,在10G里已经不适用,所以系统提示此错误,在这里是“HASH_JOIN_ENABLED”参数不适用,此问题待升级完成后用SQLPLUS来修改,如问题2

下面的2个错误提示也均是因为“HASH_JOIN_ENABLED”参数所致。

错误1: Performing Post Upgrade

ORA-01078: failure in processing system parameters

ORA-32003: error occured processing parameter "hash_join_enabled"

错误2: Performing Post Upgrade

ORA-32004: obsolete and/or deprecated parameter(s) specified

问题1ORA-01102

-bash-3.2$ env | grep ORA

ORACLE_SID=gxsi

ORACLE_BASE=/oracle/oracle

ORACLE_HOME=/oracle/oracle/product/10.2.0/

-bash-3.2$ sqlplus "/as sysdba"

SQL*Plus: Release 10.2.0.1.0 - Production on Sun May 25 21:53:09 2008

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Connected to an idle instance.

SQL> startup

ORA-32004: obsolete and/or deprecated parameter(s) specified

ORACLE instance started.

Total System Global Area 1010827264 bytes

Fixed Size 1998744 bytes

Variable Size 469762152 bytes

Database Buffers 536870912 bytes

Redo Buffers 2195456 bytes

ORA-01102: cannot mount database in EXCLUSIVE mode

SQL>exit

More $ORACLE_BASE/admin/gxsi/bdump/Alert_gxsi.log

……

Sun May 25 21:51:06 2008

sculkget: failed to lock /oracle/oracle/product/10.2.0//dbs/lkGXSI exclusive

sculkget: lock held by PID: 13995

……

-bash-3.2$ cd $ORACLE_HOME/dbs

-bash-3.2$ ls

hc_gxsi.dat initdw.ora lkGXSI

init.ora initgxsi.ora orapwgxsi

-bash-3.2$ fuser lk*

lkGXSI: 14023o 14001o 13997o 14013o 14005o 13995o 13989o 14019o 13999o 13991o 13993o 14007o 14003o 14009o 15844o

-bash-3.2$ fuser -k lk*

lkGXSI: 14023o 14001o 13997o 14013o 14005o 13995o 13989o 14019o 13999o 13991o 13993o 14007o 14003o 14009o 15844o

-bash-3.2$ fuser lk*

lkGXSI:

问题2ORA-32004

查看$ORACLE_HOME/admin/gxsi/alert_gxsi.log

Obsolete system parameters with specified values:

hash_join_enabled

End of obsolete system parameter listing

more $ORACLE_HOME/dbs/initgxsi.ora

background_dump_dest=/oracle/oracle/admin/gxsi/bdump

compatible=9.2.0.0.0

control_files=/oradata/gxsi/ora_control01, /oradata/gxsi/ora_control02, /oradata/gxsi/ora_control03

core_dump_dest=/oracle/oracle/admin/gxsi/cdump

db_block_size=8192

db_cache_size=536870912

db_domain=""

db_file_multiblock_read_count=16

db_name=gxsi

fast_start_mttr_target=300

#hash_join_enabled=TRUE

instance_name=gxsi

java_pool_size=0

large_pool_size=16777216

open_cursors=300

pga_aggregate_target=471859200

processes=200

query_rewrite_enabled=FALSE

remote_login_passwordfile=EXCLUSIVE

sga_max_size=1008159928

shared_pool_size=419430400

sort_area_size=524288

star_transformation_enabled=FALSE

timed_statistics=FALSE

undo_management=AUTO

undo_retention=10800

undo_tablespace=UNDOTBS1

user_dump_dest=/oracle/oracle/admin/gxsi/udump

job_queue_processes=1

因为数据库启动用的是pfile,在库里无法使用ALTER SYSTEM RESET log_archive_start SCOPE=SPFILE SID='*'; 来修改,所以直接vi编辑initgxsi.ora文件,将其中的#hash_join_enabled=TRUE参数注释掉,然后再将数据库shutdown immediatestartup后,问题解决!

问题3temp表空间无数据文件

*********************************************************************

WARNING: The following temporary tablespaces contain no files.

This condition can occur when a backup controlfile has

been restored. It may be necessary to add files to these

tablespaces. That can be done using the SQL statement:

ALTER TABLESPACE ADD TEMPFILE

Alternatively, if these temporary tablespaces are no longer

needed, then they can be dropped.

Empty temporary tablespace: TEMP

(SQL> drop tablespace temp问题解决)

*********************************************************************

Database Characterset is US7ASCII

问题4listener.oratnsnames.ora

升级完成后,系统没有listener.oratnsnames.ora,需要使用netca来创建,创建好后需要手动编辑listener.ora来添加gxsi监听:

-bash-3.2$ more tnsnames.ora

# tnsnames.ora Network Configuration File: /oracle/oracle/product/10.2.0/network/admin/tnsnames.ora

# Generated by Oracle configuration tools.

GXSI =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.154.249.23)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = gxsi)

)

)

EXTPROC_CONNECTION_DATA =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

)

(CONNECT_DATA =

(SID = PLSExtProc)

(PRESENTATION = RO)

)

)

-bash-3.2$ more listener.ora

# listener.ora Network Configuration File: /oracle/oracle/product/10.2.0/network/admin/listener.ora

# Generated by Oracle configuration tools.

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /oracle/oracle/product/10.2.0)

(PROGRAM = extproc)

)

(SID_DESC =

(SID_NAME = gxsi)

(ORACLE_HOME = /oracle/oracle/product/10.2.0)

(SID_NAME = gxsi)

)

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.154.249.23)(PORT = 1521))

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

)

)

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/266238/viewspace-1005123/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/266238/viewspace-1005123/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值