DBUA及手工升级,DownGrade,环境变量、PFILE及手工建库脚本。尝试过9.2.0.4,升级为10.2.0.4,降级为9.2.0.6,再手工升级为10.2.0.4----记录一下
[@more@]安装数据库9.2并创建数据库(后附环境变量及建库脚本)
安装10.2.0.1.0软件
以DBUA方式升级:
1、在9.2的profile下将主库以升级方式启动
SQL> STARTUP UPGRADE;或startup migrate(如果是大版本升级要用这个)
2、cd /u01/app/oracle/product/10.2/bin
./dbua
(在/etc/oratab确认有你要升级的库的SID及HOME信息)
提示RA-06553: PLS-213: package STANDARD not accessible
在$oraclehomeRDBMSADMIN下
把catalog.sql catproc.sql dbmsutil.sql 三个脚本执行一下。
手工升级:
准备工作:
1、拷pfile,PWD,tnslistener,tnsnames到new_ORACLE_HOME,修改listentr.ora里的home目录
2、删除10g里过期的初始化参数(archive=enable,HASH_JOIN_ENABLE=true)
3、创建初始化参数里指定的所有目录,确保权限
4、PFILE里如有IFILE,要指定新路径
开始UPDATEE:
1、将9下的库关闭
2、将环境变量设为NEWHOME
■ ORACLE_HOME
■ PATH
■ ORA_NLS10
■ LD_LIBRARY_PATH
3、cd $ORACLE_HOME/dbs/admin
sqlplus / as sydba;
SQL>startup upgrade pfile=..
SQL>create tablespace sysaux datafile '/u01/oracle/oradata/sysaux01.dbf' size 200m resuse extent management local segment space management auto online;
SQL> spool upgrade;
SQL>@catupgrd.sql
sql>@utlu102s.sql
SQL>spool off
查看upgrade.lst是否有异常
at last restart the database;
以下步骤可根据需要执行:
1、This step is only necessary if Oracle Label Security is in your
database.
SQL> @olstrig.sql
2、Run utlrp.sql to recompile any remaining stored PL/SQL and Java code.
SQL> @utlrp.sql
3、Verify that all expected packages and classes are valid:
Select count(*) from dba_objects where status=’invalid’;
Select distinct object_name from dba_objects where status=’invalid’;
降级:
最多只能降到9206,如果你装的是9204,那要先打上9206的Patch。
以10的环境变量
SQL> STARTUP DOWNGRADE
SQL> SPOOL downgrade.log
SQL> @catdwgrd.sql(10.2.10运行的是这个,而10.1降级用的是d92000.sql,即dold_release.sql)
Sql>spool off
Sql>shutdown immediate
将环境变量设置回92
在92的home里设置PFILE,PWDFILE等。
SQL> STARTUP MIGRATE
SQL> SPOOL reload.log
SQL> @catrelod.sql
SQL> SPOOL OFF
查看pool日志,有需要时你可以再运行N遍这个SQL。下面这个错可以乎略
ORA-22308: operation not allowed on evolved type errors
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP
以下这两个SQL按需要执行
1. Do this step if the database is configured for Oracle Label Security. Copy the
olstrig.sql script from the 10.2 Oracle Home to the version to which the
database will be downgraded. Run olstrig.sql to re-create DML triggers on
tables with Oracle Label Security policies. (See Oracle Database Enterprise User
Administrator's Guide for more information.)
SQL> @olstrig.sql
2. Run utlrp.sql:
SQL> @utlrp.sql
The utlrp.sql script recompiles all existing PL/SQL modules that were
previously in an INVALID state, such as packages, procedures, types, and so on.
总结:
1、有错误上metalink查,官方的说法比goole后排除来得快。
2、官方文档不同版本对于同一个操作,文档可能是不一样的。这里的降级,10.1与10.2做法就不一样。
附:
环境变量设置
[oracle@test ~]$ more .bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
# Set Linux Kernel
export LD_ASSUME_KERNEL=2.4.18
# Oracle Environment
export ORACLE_BASE=/u01/oracle
export ORACLE_HOME=/u01/oracle/product/9.2
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export NLS_LANG="AMERICAN_AMERICA.zhs16gbk"
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
#Set some variables for Manage
export PFILE=/u01/oracle/admin/orcl/pfile
export BDUMP=/u01/oracle/admin/orcl/bdump
export UDUMP=/u01/oracle/admin/orcl/udump
export TNS=/u01/oracle/product/9.2/network/admin
# Set shell search paths
export PATH=$ORACLE_HOME/bin:/sbin:/usr/sbin:$PATH
# set LANG
export LANG=en_US
export LC_ALL=en_US
# alias
alias sql='sqlplus /nolog'
alias dbasql='sqlplus "/ as sysdba"'
alias rm='rm -i'
alias alert='tail -f $BDUMP/alert*log'
alias alert2='tail -n 200 $BDUMP/alert*log'
alias df='df -h'
unset USERNAME
DISPLAY=192.168.10.107:0.0;export DISPLAY
set -o vi
初始化参数文件PFILE
[oracle@test ~]$ more $PFILE/initorcl.ora
log_archive_dest_1='LOCATION=/u03/arc/archive'
log_archive_format=%t_%s.arc
log_archive_start=true(在10g里obsolete)
instance_name=orcl
db_name=orcl
db_block_size=8192
db_cache_size=80m
pga_aggregate_target=50m
large_pool_size=10485760
shared_pool_size=12582912 (10g里要求设置97431142以上)
background_dump_dest=/u01/oracle/admin/orcl/bdump
core_dump_dest=/u01/oracle/admin/orcl/cdump
user_dump_dest=/u01/oracle/admin/orcl/udump
control_files=("/u01/oracle/oradata/control01.ctl", "/u01/oracle/oradata/control02.ct
l", "/u01/oracle/oradata/control03.ctl")
compatible=9.2.0.0.0
hash_join_enabled=TRUE (在10g里obsolete)
query_rewrite_enabled=FALSE
star_transformation_enabled=FALSE
timed_statistics=TRUE
remote_login_passwordfile=EXCLUSIVE
processes=500
parallel_max_servers=8
open_cursors=600
db_files=2000
fast_start_mttr_target=300
db_writer_processes=1
job_queue_processes=8
open_links=8
undo_management=AUTO
手工建库
create database orcl controlfile reuse
maxdatafiles 250
maxinstances 2
maxlogmembers 3
maxlogfiles 18
datafile '/u01/oracle/oradata/orcl/system.dbf' size 600m reuse
autoextend off extent management local
default temporary tablespace temp
tempfile '/u01/oracle/oradata/orcl/tbs_temp_01.dbf' size 500m reuse autoextend off
undo tablespace tbs_undo01
datafile '/u01/oracle/oradata/orcl/tbs_undo1_01.dbf' size 500m reuse autoextend off
character set zhs16gbk
logfile group 1 ('/u01/oracle/oradata/orcl/redo01_01.dbf',
'/u01/oracle/oradata/orcl/redo01_02.dbf') size 10m reuse,
group 2 ('/u01/oracle/oradata/orcl/redo02_01.dbf',
'/u01/oracle/oradata/orcl/redo02_02.dbf') size 10m reuse,
group 3 ('/u01/oracle/oradata/orcl/redo03_01.dbf',
'/u01/oracle/oradata/orcl/redo03_02.dbf') size 10m reuse;