CONVERT DATABASE命令(二)

yangtingkun發表於2009-07-22

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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章