CONVERT DATABASE命令(二)

RMAN新增了CONVERT命令,在前面的文章中已经介绍了如何利用CONVERT命令在不同平台间转换表空间。对于相同字节序的数据库,Oracle还提供了CONVERT DATABASE的命令。

Oracle10g新增CONVERT语法:http://yangtingkun.itpub.net/post/468/483871

利用CONVERT实现跨平台表空间迁移:http://yangtingkun.itpub.net/post/468/483949

这一篇介绍在目标数据库上打开数据库的过程。

CONVERT DATABASE命令(一):http://yangtingkun.itpub.net/post/468/487880

 

 

前两天帮junsansi解决了CONVERT DATABASE数据库过程中出现的问题,正好这几天打算测试CONVERT DATABASE的内容,于是就仿照他的例子,做了一个完整的测试。

上一篇已经执行了CONVERT DATABASE的操作,且将数据文件和初始化参数文件都发送到指定的目标数据库上。

下面在目标服务器上打开数据库:

[oracle@yans1 ytktran]$ cd /data/oradata/ytktran/
[oracle@yans1 ytktran]$ ls -l
total 2904968
-rw-r--r--  1 oracle oinstall 104865792 Jun 29 15:40 EXAMPLE01.DBF
-rw-r--r--  1 oracle oinstall      1696 Jun 29 15:54 INIT_00KIQ9S4_1_0.ORA
-rw-r--r--  1 oracle oinstall 880812032 Jun 29 15:42 MGMT.DBF
-rw-r--r--  1 oracle oinstall 104865792 Jun 29 15:42 MGMT_ECM_DEPOT1.DBF
-rw-r--r--  1 oracle oinstall 367009792 Jun 29 15:43 SYSAUX01.DBF
-rw-r--r--  1 oracle oinstall 597696512 Jun 29 15:45 SYSTEM01.DBF
-rw-r--r--  1 oracle oinstall   1056768 Jun 29 15:45 TEST01.DBF
-rw-r--r--  1 oracle oinstall 676339712 Jun 29 15:46 UNDOTBS01.DBF
-rw-r--r--  1 oracle oinstall 134225920 Jun 29 15:49 YANGTK01.DBF
-rw-r--r--  1 oracle oinstall 104865792 Jun 29 15:53 YANGTK02.DBF
[oracle@yans1 ytktran]$ more INIT_00KIQ9S4_1_0.ORA
# Please change the values of the following parameters:

  control_files            = "E:\ORACLE\ORACLE1020\DATABASE\CF_D-YTKTRAN_ID-3695768905_00KIQ9S4"
  db_recovery_file_dest    = "E:\ORACLE\ORACLE1020\DATABASE\flash_recovery_area"
  db_recovery_file_dest_size= 2147483648
  audit_file_dest          = "E:\ORACLE\ORACLE1020\DATABASE\ADUMP"
  background_dump_dest     = "E:\ORACLE\ORACLE1020\DATABASE\BDUMP"
  user_dump_dest           = "E:\ORACLE\ORACLE1020\DATABASE\UDUMP"
  core_dump_dest           = "E:\ORACLE\ORACLE1020\DATABASE\CDUMP"
  db_name                  = "YTKTRAN"
 

# Please review the values of the following parameters:

  __shared_pool_size       = 209715200
  __large_pool_size        = 4194304
  __java_pool_size         = 4194304
  __streams_pool_size      = 4194304
  __db_cache_size          = 373293056
  remote_login_passwordfile= "EXCLUSIVE"
  db_domain                = "ytk_thinkpad"
  dispatchers              = "(PROTOCOL=TCP) (SERVICE=ytk102XDB)"
 # The values of the following parameters are from source database:

  processes                = 150
  sga_target               = 603979776
  db_block_size            = 8192
  db_2k_cache_size         = 0
  compatible               = "10.2.0.1.0"
# log_archive_dest_1       = "LOCATION=E:\ORACLE\ORADATA\YTK102\ARCHIVE"
  db_file_multiblock_read_count= 16
  undo_management          = "AUTO"
  undo_tablespace          = "UNDOTBS1"
  session_cached_cursors   = 200
  job_queue_processes      = 10
  audit_trail              = "NONE"
  open_cursors             = 300
  pga_aggregate_target     = 200278016
  aq_tm_processes          = 1

[oracle@yans1 ytktran]$ export ORACLE_SID=YTKTRAN

根据具体的需要修改上面的初始化参数,并利用这个初始化参数启动数据库,修改后的初始化参数如下:

[oracle@yans1 ytktran]$ more initytktran.ora
  control_files            = "/data/oradata/ytktran/control01.ctl"
  db_recovery_file_dest    = "/data/oradata/ytktran"
  db_recovery_file_dest_size= 2147483648
  audit_file_dest          = "/opt/ora10g/admin/ytktran/adump"
  background_dump_dest     = "/opt/ora10g/admin/ytktran/bdump"
  user_dump_dest           = "/opt/ora10g/admin/ytktran/udump"
  core_dump_dest           = "/opt/ora10g/admin/ytktran/cdump"
  db_name                  = "YTKTRAN"
  remote_login_passwordfile= "EXCLUSIVE"
  sga_target               = 603979776
  db_block_size            = 8192
  compatible               = "10.2.0.1.0"
  log_archive_dest_1       = "LOCATION=/data/oradata/ytktran/archivelog"
  undo_management          = "AUTO"
  undo_tablespace          = "UNDOTBS1"
  job_queue_processes      = 10
  audit_trail              = "NONE"
  open_cursors             = 300
  pga_aggregate_target     = 200278016

创建数据库dump文件所需的目录:

[oracle@yans1 ~]$ cd $ORACLE_BASE
[oracle@yans1 ora10g]$ cd admin
[oracle@yans1 admin]$ pwd
/opt/ora10g/admin
[oracle@yans1 admin]$ mkdir ytktran
[oracle@yans1 admin]$ cd ytktran
[oracle@yans1 ytktran]$ mkdir bdump cdump adump udump

下面启动数据库:

[oracle@yans1 ytktran]$ sqlplus "/ as sysdba"

SQL*Plus: Release 10.2.0.3.0 - Production on 星期一 6 29 16:37:13 2009

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

Connected to an idle instance.

SQL> STARTUP NOMOUNT PFILE=/data/oradata/ytktran/initytktran.ora
ORACLE instance started.

Total System Global Area  603979776 bytes
Fixed Size                  2074600 bytes
Variable Size             167774232 bytes
Database Buffers          427819008 bytes
Redo Buffers                6311936 bytes
SQL> CREATE SPFILE FROM PFILE = '/data/oradata/ytktran/initytktran.ora';

File created.

SQL> STARTUP FORCE NOMOUNT
ORACLE instance started.

Total System Global Area  603979776 bytes
Fixed Size                  2074600 bytes
Variable Size             167774232 bytes
Database Buffers          427819008 bytes
Redo Buffers                6311936 bytes
SQL> CREATE CONTROLFILE REUSE SET DATABASE "YTKTRAN" RESETLOGS FORCE LOGGING ARCHIVELOG
  2      MAXLOGFILES 16
  3      MAXLOGMEMBERS 3
  4      MAXDATAFILES 100
  5      MAXINSTANCES 8
  6      MAXLOGHISTORY 292
  7  LOGFILE
  8    GROUP 1 '/data/oradata/ytktran/redo01.log'  SIZE 50M,
  9    GROUP 2 '/data/oradata/ytktran/redo02.log'  SIZE 50M,
 10    GROUP 3 '/data/oradata/ytktran/redo03.log'  SIZE 50M
 11  DATAFILE
 12    '/data/oradata/ytktran/SYSTEM01.DBF',
 13    '/data/oradata/ytktran/UNDOTBS01.DBF',
 14    '/data/oradata/ytktran/SYSAUX01.DBF',
 15    '/data/oradata/ytktran/EXAMPLE01.DBF',
 16    '/data/oradata/ytktran/YANGTK01.DBF',
 17    '/data/oradata/ytktran/MGMT.DBF',
 18    '/data/oradata/ytktran/YANGTK02.DBF',
 19    '/data/oradata/ytktran/TEST01.DBF',
 20    '/data/oradata/ytktran/MGMT_ECM_DEPOT1.DBF'
 21  CHARACTER SET ZHS16GBK
 22  ;

Control file created.

SQL> alter database open resetlogs upgrade;

Database altered.

SQL> ALTER TABLESPACE TEMP ADD TEMPFILE '/data/oradata/ytktran/temp01.dbf'
  2       SIZE 1024M AUTOEXTEND OFF;

Tablespace altered.

由于数据库的从32位变为64位,且版本都发生了变化,需要执行下面的脚本:

SQL> @?/rdbms/admin/utlip.sql

5139 rows updated.


Commit complete.

.
.
.
System altered.

SQL> @?/rdbms/admin/utlirp.sql
SQL>
SQL> WHENEVER SQLERROR EXIT;
SQL>
SQL> DOC
DOC>#######################################################################
DOC>#######################################################################
DOC>   The following statement will cause an "ORA-01722: invalid number"
DOC>   error if there the database was not opened in UPGRADE mode
DOC>
DOC>   If you encounter this error, execute "SHUTDOWN", "STARTUP UPGRADE" and
DOC>   re-execute utlirp.sql
DOC>#######################################################################
DOC>#######################################################################
DOC>#
.
.
.
SQL> Rem ===========================================================================
SQL> Rem END utlip.sql
SQL> Rem ===========================================================================
SQL>
SQL> DOC
DOC>#######################################################################
DOC>#######################################################################
DOC>   utlirp.sql completed successfully. All PL/SQL objects in the
DOC>   database have been invalidated.
DOC>
DOC>   Shut down and restart the database in normal mode and run utlrp.sql to
DOC>   recompile invalid objects.
DOC>#######################################################################
DOC>#######################################################################
DOC>#

SQL> @?/rdbms/admin/catupgrd.sql
DOC>######################################################################
DOC>######################################################################
DOC>    The following statement will cause an "ORA-01722: invalid number"
DOC>    error if the user running this script. is not SYS.  Disconnect
DOC>    and reconnect with AS SYSDBA.
DOC>######################################################################
DOC>######################################################################
DOC>#

no rows selected

.
.
.
DOC>#######################################################################
DOC>#
SQL>
SQL> Rem *********************************************************************
SQL> Rem END catupgrd.sql
SQL> Rem *********************************************************************

SQL> @?/rdbms/admin/utlrp.sql
SQL> Rem
SQL> Rem $Header: utlrp.sql 24-jul-2003.10:06:51 gviswana Exp $
SQL> Rem
SQL> Rem utlrp.sql
SQL> Rem
SQL> Rem Copyright (c) 1998, 2003, Oracle Corporation.  All rights reserved.
SQL> Rem
SQL> Rem    NAME
SQL> Rem      utlrp.sql - Recompile invalid objects
SQL> Rem
SQL> Rem    DESCRIPTION
SQL> Rem     This script. recompiles invalid objects in the database.
SQL> Rem
SQL> Rem     When run as one of the last steps during upgrade or downgrade,
SQL> Rem     this script. will validate all remaining invalid objects. It will
SQL> Rem     also run a component validation procedure for each component in
SQL> Rem     the database. See the README notes for your current release and
SQL> Rem     the Oracle Database Upgrade book for more information about
SQL> Rem     using utlrp.sql
SQL> Rem
SQL> Rem     Although invalid objects are automatically re-validated when used,
SQL> Rem     it is useful to run this script. after an upgrade or downgrade and
SQL> Rem     after applying a patch. This minimizes latencies caused by
SQL> Rem     on-demand recompilation. Oracle strongly recommends running this
SQL> Rem     script. after upgrades, downgrades and patches.
SQL> Rem
SQL> Rem   NOTES
SQL> Rem      * This script. must be run using SQL*PLUS.
SQL> Rem      * You must be connected AS SYSDBA to run this script.
SQL> Rem      * There should be no other DDL on the database while running the
SQL> Rem        script.  Not following this recommendation may lead to deadlocks.
SQL> Rem
SQL> Rem   MODIFIED   (MM/DD/YY)
SQL> Rem    gviswana    06/26/03 - Switch default to parallel if appropriate
SQL> Rem    gviswana    06/12/03 - Switch default back to serial
SQL> Rem    gviswana    05/20/03 - 2814808: Automatic parallelism tuning
SQL> Rem    rburns      04/28/03 - timestamps and serveroutput for diagnostics
SQL> Rem    gviswana    04/13/03 - utlrcmp.sql load -> catproc
SQL> Rem    gviswana    06/25/02 - Add documentation
SQL> Rem    gviswana    11/12/01 - Use utl_recomp.recomp_serial
SQL> Rem    rdecker     11/09/01 - ADD ALTER library support FOR bug 1952368
SQL> Rem    rburns      11/12/01 - validate all components after compiles
SQL> Rem    rburns      11/06/01 - fix invalid CATPROC call
SQL> Rem    rburns      09/29/01 - use 9.2.0
SQL> Rem    rburns      09/20/01 - add check for CATPROC valid
SQL> Rem    rburns      07/06/01 - get version from instance view
SQL> Rem    rburns      05/09/01 - fix for use with 8.1.x
SQL> Rem    arithikr    04/17/01 - 1703753: recompile object type# 29,32,33
SQL> Rem    skabraha    09/25/00 - validate is now a keyword
SQL> Rem    kosinski    06/14/00 - Persistent parameters
SQL> Rem    skabraha    06/05/00 - validate tables also
SQL> Rem    jdavison    04/11/00 - Modify usage notes for 8.2 changes.
SQL> Rem    rshaikh     09/22/99 - quote name for recompile
SQL> Rem    ncramesh    08/04/98 - change for sqlplus
SQL> Rem    usundara    06/03/98 - merge from 8.0.5
SQL> Rem    usundara    04/29/98 - creation (split from utlirp.sql).
SQL> Rem                           Mark Ramacher (mramache) was the original
SQL> Rem                           author of this script.
SQL> Rem
SQL>
SQL> Rem ===========================================================================
SQL> Rem BEGIN utlrp.sql
SQL> Rem ===========================================================================
.
.
.
SQL> Rem ===========================================================================
SQL> Rem END utlrp.sql
SQL> Rem ===========================================================================
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area  603979776 bytes
Fixed Size                  2074600 bytes
Variable Size             243271704 bytes
Database Buffers          352321536 bytes
Redo Buffers                6311936 bytes
Database mounted.
Database opened.
SQL> alter database datafile 'MISSING00004' offline drop;

Database altered.

至此,目标服务器上的数据库顺利打开。

 

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

转载于:http://blog.itpub.net/4227/viewspace-609946/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值