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
注: 不会在这里贴图, 所以把图全删了, 改用文字描述.
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
因为要使用10G的DBUA,所以要使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 <new tablespace name here>;
Try the upgrade again using the DBUA.
|
根据以上描述使用如下方法解决:
根据以上说明,查询原9i数据库后,发现TEMP表空间无数据文件,要修改sys和system用户使用可本地使用的临时表空间。
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:ORA-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:
|
问题2:ORA-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 immediate再startup后,问题解决!
问题3:temp表空间无数据文件
*********************************************************************
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 <tablespace_name> 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
问题4:listener.ora和tnsnames.ora
升级完成后,系统没有listener.ora和tnsnames.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))
)
)
ORA-32004: obsolete and/or deprecated parameter(s) specified
错误2: Performing Post Upgrade
ORA-32003: error occured processing parameter "hash_join_enabled"
ORA-01078: failure in processing system parameters
错误1: Performing Post Upgrade
分享到:
相关推荐
在完成了上述准备之后,我们可以正式开始使用 DBUA 进行数据库的升级。具体步骤如下: 1. **安装目标版本**:首先需要在目标服务器上安装 Oracle 19C 数据库软件。 2. **启动 DBUA**:在安装完成后,可以通过命令行...
### 数据库Oracle 9i 32位升级到Oracle 10g 64位的操作方式 #### Oracle升级概述 本文旨在提供一个详尽的指南,帮助用户将现有的Oracle 9.2.0.1版数据库(运行在32位操作系统上)升级至Oracle 10.2.0.1版数据库...
本文档详细介绍了从Oracle 9i/11g升级迁移至19c CDB的过程,包括不同环境下的升级策略和步骤,特别是在AIX到Linux的跨平台迁移过程中,提供了多种可行方案,以满足不同的需求。此外,还特别强调了字符集保留的重要性...
- **升级路径**:从Oracle 9i RAC升级到10g RAC可以通过手动运行Oracle提供的SQL升级脚本或者使用Oracle推荐的方法——Database Upgrade Assistant (DBUA)来完成。 - **DBUA介绍**:DBUA是Oracle Database 10g中新增...
另外,10g强化了数据库的自我管理能力,比如Database Configuration Assistant (DBCA)和Database Upgrade Assistant (DBUA)等工具,使得数据库的创建、配置和升级变得更加便捷。 三、SQL编程艺术 无论是9i还是10g,...
- **Oracle 8/8i/9i到10g**:而从Oracle 8/8i/9i升级到Oracle 10g则更像一个简单的升级过程,只需运行升级脚本。 5. **系统需求与资源估算** 在开始升级之前,必须确认操作系统和硬件是否满足Oracle 10g的配置...
本文档主要介绍如何从 Oracle 9i Real Application Clusters (RAC) 升级到 Oracle 10g R1 Real Application Clusters (RAC) 的过程,并重点讲解在 Linux 平台上的升级步骤及注意事项。文档详细地阐述了升级前的准备...
- 如果是从较旧版本(如9i)升级,可以使用DBUA(Database Upgrade Assistant)工具来简化过程。 - 对于新建数据库,可以直接通过DBCA(Database Configuration Assistant)完成。 3. **检查兼容性**: - 运行...
例如,使用DBUA可以将32位的Oracle 9i逐步升级到64位的Oracle 10g。在进行升级前,需要准备相应的升级环境,如文中提到的32位和64位Windows Server操作系统,以及对应版本的Oracle数据库。此外,还需要下载Oracle...
在描述中提到的“从9i转换成10g”,这是Oracle数据库从9.2.x版本升级到10.2.x版本的过程。9i是Oracle 9th generation的简称,10g则是10th generation的含义,这里的"g"代表"grid computing"(网格计算),强调Oracle...
针对Oracle9i到Oracle10G的升级,有三种方法: 1. 使用Export和Import:此方法通过导出和导入数据重整存储结构,但大型数据库(如超过150GB)可能面临长时间停机。 2. 使用Migrate脚本:快速升级,但无法回退。 3. ...
以军卫一号医院信息系统为例,涉及Oracle 8i、9i到10g R2的升级,跨越Windows 2000和Oracle Unbreakable Linux AS 4平台。通过测试各种方法,可以评估其在不同环境下的适用性和效果。 总的来说,Oracle数据库升级和...
**1.6 Oracle 10g Flashback 操作** - **定义**: 允许用户和管理员将数据库或其组件回滚到过去的某个时间点。 - **用途**: 数据恢复、错误修复。 #### 二、PL/SQL程序设计 **2.1 存储过程(Procedure)** - **定义...