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命令的過程。
前兩天幫junsansi解決了CONVERT DATABASE資料庫過程中出現的問題,正好這幾天打算測試CONVERT DATABASE的內容,於是就仿照他的例子,做了一個完整的測試。
登陸資料庫,檢查資料庫支援的可傳輸平臺:
SQL> SELECT * FROM V$TRANSPORTABLE_PLATFORM;
PLATFORM_ID PLATFORM_NAME ENDIAN_FORMAT
----------- -------------------------------------------------- --------------
1 Solaris[tm] OE (32-bit) Big
2 Solaris[tm] OE (64-bit) Big
7 Microsoft Windows IA (32-bit) Little
10 Linux IA (32-bit) Little
6 AIX-Based Systems (64-bit) Big
3 HP-UX (64-bit) Big
5 HP Tru64 UNIX Little
4 HP-UX IA (64-bit) Big
11 Linux IA (64-bit) Little
15 HP Open VMS Little
8 Microsoft Windows IA (64-bit) Little
9 IBM zSeries Based Linux Big
13 Linux 64-bit for AMD Little
16 Apple Mac OS Big
12 Microsoft Windows 64-bit for AMD Little
17 Solaris Operating System (x86) Little
18 IBM Power Based Linux Big
已選擇17行。
下面可以執行CONVERT DATABASE命令了,這個命令要求源資料庫和目標資料庫的編碼字元序一致。且要求執行CONVERT DATABASE的源資料庫處於只讀狀態:
RMAN> convert database
2> new database ytktran
3> skip offline
4> transport script. 'e:\trans_script.sql'
5> to platform. 'Linux 64-bit for AMD'
6> db_file_name_convert ('e:\oracle\oradata\ytk102\', 'e:\oracle\backup\')
7> ;
啟動 convert 於 29-6月 -09
使用通道 ORA_DISK_1
在資料庫中找到外部表 SH.SALES_TRANSACTIONS_EXT
在資料庫中找到外部表 YANGTK.T_EXTERNAL
在資料庫中找到外部表 YANGTK.T_EXTERNAL2
在資料庫中找到目錄 SYS.AUDIT_DIR
在資料庫中找到目錄 SYS.D_OUTPUT1
在資料庫中找到目錄 SYS.D_OUTPUT
在資料庫中找到目錄 SYS.SUBDIR
在資料庫中找到目錄 SYS.XMLDIR
在資料庫中找到目錄 SYS.MEDIA_DIR
在資料庫中找到目錄 SYS.LOG_FILE_DIR
在資料庫中找到目錄 SYS.DATA_FILE_DIR
在資料庫中找到目錄 SYS.WORK_DIR
在資料庫中找到目錄 SYS.ADMIN_DIR
在資料庫中找到目錄 SYS.DATA_PUMP_DIR
在資料庫中找到 BFILE PM.PRINT_MEDIA
在口令檔案中找到使用者 SYS (具有 SYSDBA and SYSOPER 許可權)
在口令檔案中找到使用者 YANGTK (具有 SYSDBA 許可權)
跳過離線檔案4
RMAN-06060: 警告: 跳過資料檔案將影響表空間 USERS 的恢復
通道 ORA_DISK_1: 啟動資料檔案轉換
輸入資料檔案 fno=00007 name=E:\ORACLE\ORADATA\YTK102\MGMT.DBF
已轉換的資料檔案 = E:\ORACLE\BACKUP\MGMT.DBF
通道 ORA_DISK_1: 資料檔案轉換完畢, 經過時間: 00:01:35
通道 ORA_DISK_1: 啟動資料檔案轉換
輸入資料檔案 fno=00002 name=E:\ORACLE\ORADATA\YTK102\UNDOTBS01.DBF
已轉換的資料檔案 = E:\ORACLE\BACKUP\UNDOTBS01.DBF
通道 ORA_DISK_1: 資料檔案轉換完畢, 經過時間: 00:01:05
通道 ORA_DISK_1: 啟動資料檔案轉換
輸入資料檔案 fno=00001 name=E:\ORACLE\ORADATA\YTK102\SYSTEM01.DBF
已轉換的資料檔案 = E:\ORACLE\BACKUP\SYSTEM01.DBF
通道 ORA_DISK_1: 資料檔案轉換完畢, 經過時間: 00:01:06
通道 ORA_DISK_1: 啟動資料檔案轉換
輸入資料檔案 fno=00003 name=E:\ORACLE\ORADATA\YTK102\SYSAUX01.DBF
已轉換的資料檔案 = E:\ORACLE\BACKUP\SYSAUX01.DBF
通道 ORA_DISK_1: 資料檔案轉換完畢, 經過時間: 00:00:45
通道 ORA_DISK_1: 啟動資料檔案轉換
輸入資料檔案 fno=00006 name=E:\ORACLE\ORADATA\YTK102\YANGTK01.DBF
已轉換的資料檔案 = E:\ORACLE\BACKUP\YANGTK01.DBF
通道 ORA_DISK_1: 資料檔案轉換完畢, 經過時間: 00:00:15
通道 ORA_DISK_1: 啟動資料檔案轉換
輸入資料檔案 fno=00005 name=E:\ORACLE\ORADATA\YTK102\EXAMPLE01.DBF
已轉換的資料檔案 = E:\ORACLE\BACKUP\EXAMPLE01.DBF
通道 ORA_DISK_1: 資料檔案轉換完畢, 經過時間: 00:00:15
通道 ORA_DISK_1: 啟動資料檔案轉換
輸入資料檔案 fno=00008 name=E:\ORACLE\ORADATA\YTK102\YANGTK02.DBF
已轉換的資料檔案 = E:\ORACLE\BACKUP\YANGTK02.DBF
通道 ORA_DISK_1: 資料檔案轉換完畢, 經過時間: 00:00:16
通道 ORA_DISK_1: 啟動資料檔案轉換
輸入資料檔案 fno=00010 name=E:\ORACLE\ORADATA\YTK102\MGMT_ECM_DEPOT1.DBF
已轉換的資料檔案 = E:\ORACLE\BACKUP\MGMT_ECM_DEPOT1.DBF
通道 ORA_DISK_1: 資料檔案轉換完畢, 經過時間: 00:00:15
通道 ORA_DISK_1: 啟動資料檔案轉換
輸入資料檔案 fno=00009 name=E:\ORACLE\ORADATA\YTK102\TEST01.DBF
已轉換的資料檔案 = E:\ORACLE\BACKUP\TEST01.DBF
通道 ORA_DISK_1: 資料檔案轉換完畢, 經過時間: 00:00:01
在目標平臺上執行 SQL 指令碼 E:\TRANS_SCRIPT.SQL 以建立資料庫
編輯 init.ora 檔案 E:\ORACLE\ORACLE1020\DATABASE\INIT_00KIQ9S4_1_0.ORA。此 PFILE
將用於在目標平臺上建立資料庫據
要重新編譯所有 PL/SQL 模組, 請在目標平臺上執行 utlirp.sql 和 utlrp.sql
要更改內部資料庫識別符號, 請使用 DBNEWID 實用程式
完成 backup 於 29-6月 -09
利用DBMS_FILE_TRANSFER包或ftp,完成資料檔案和初始化引數檔案的傳輸工作。
而且利用CONVERT DATABASE命令還得到了在目標資料庫上載入開啟資料庫的指令碼:E:\TRANS_SCRIPT.SQL,內容如下:
-- The following commands will create a new control file and use it
-- to open the database.
-- Data used by Recovery Manager will be lost.
-- The contents of online logs will be lost and all backups will
-- be invalidated. Use this only if online logs are damaged.
-- After mounting the created controlfile, the following SQL
-- statement will place the database in the appropriate
-- protection mode:
-- ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE
STARTUP NOMOUNT PFILE='E:\ORACLE\ORACLE1020\DATABASE\INIT_00KIQ9S4_1_0.ORA'
-- Create SPFILE
CREATE SPFILE FROM PFILE = 'E:\ORACLE\ORACLE1020\DATABASE\INIT_00KIQ9S4_1_0.ORA';
STARTUP FORCE NOMOUNT
CREATE CONTROLFILE REUSE SET DATABASE "YTKTRAN" RESETLOGS FORCE LOGGING ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 'E:\ORACLE\ORACLE1020\DATABASE\ARCH_D-YTKTRAN_ID-3695768905_S-491_T-1_A-630194893_00KIQ9S4' SIZE 50M,
GROUP 2 'E:\ORACLE\ORACLE1020\DATABASE\ARCH_D-YTKTRAN_ID-3695768905_S-492_T-1_A-630194893_00KIQ9S4' SIZE 50M,
GROUP 3 'E:\ORACLE\ORACLE1020\DATABASE\ARCH_D-YTKTRAN_ID-3695768905_S-493_T-1_A-630194893_00KIQ9S4' SIZE 50M
DATAFILE
'E:\ORACLE\BACKUP\SYSTEM01.DBF',
'E:\ORACLE\BACKUP\UNDOTBS01.DBF',
'E:\ORACLE\BACKUP\SYSAUX01.DBF',
'E:\ORACLE\BACKUP\EXAMPLE01.DBF',
'E:\ORACLE\BACKUP\YANGTK01.DBF',
'E:\ORACLE\BACKUP\MGMT.DBF',
'E:\ORACLE\BACKUP\YANGTK02.DBF',
'E:\ORACLE\BACKUP\TEST01.DBF',
'E:\ORACLE\BACKUP\MGMT_ECM_DEPOT1.DBF'
CHARACTER SET ZHS16GBK
;
-- Database can now be opened zeroing the online logs.
ALTER DATABASE OPEN RESETLOGS;
-- Files in normal offline tablespaces are now named.
ALTER DATABASE RENAME FILE 'MISSING00004'
-- WARNING! This command can not be completed because the file
-- needs to be renamed to a real file name.
-- Commands to add tempfiles to temporary tablespaces.
-- Online tempfiles have complete space information.
-- Other tempfiles may require adjustment.
ALTER TABLESPACE TEMP ADD TEMPFILE 'E:\ORACLE\ORACLE1020\DATABASE\DATA_D-YTKTRAN_I-3695768905_TS-TEMP_FNO-2_00KIQ9S4'
SIZE 1024M AUTOEXTEND OFF;
-- End of tempfile additions.
--
set echo off
prompt ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
prompt * Your database has been created successfully!
prompt * There are many things to think about for the new database. Here
prompt * is a checklist to help you stay on track:
prompt * 1. You may want to redefine the location of the directory objects.
prompt * 2. You may want to change the internal database identifier (DBID)
prompt * or the global database name for this database. Use the
prompt * NEWDBID Utility (nid).
prompt ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SHUTDOWN IMMEDIATE
STARTUP UPGRADE
@@ ?/rdbms/admin/utlirp.sql
SHUTDOWN IMMEDIATE
STARTUP
-- The following step will recompile all PL/SQL modules.
-- It may take serveral hours to complete.
@@ ?/rdbms/admin/utlrp.sql
set feedback 6;
利用這個檔案中給出的指令碼就可以在目標伺服器上開啟資料庫。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-609855/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- CONVERT DATABASE命令(三)Database
- CONVERT DATABASE命令(二)Database
- Convert a Physical Standby Database into a Snapshot Standby DatabaseDatabase
- RMAN CONVERT DATABASE 的限制Database
- Can Tapes Be Used For RMAN Convert Database (Doc ID 563816.1)Database
- To use Rman to duplicate database be careful of db_file_name_convertDatabase
- oracle rconfig convert single instance to rac databaseOracleDatabase
- oracle 9i single instance convert to rac databaseOracleDatabase
- 利用RMAN Convert database特性進行跨平臺遷移資料Database
- oracle10g_rman_cross os_同位元組序_convert databaseOracleROSDatabase
- Linux圖片處理 -- ddjvu和convert命令Linux
- db2 create database 命令DB2Database
- DATA GUARD 中alter database 命令Database
- Oracle DBA命令參考——alter databaseOracleDatabase
- PHP 每日一函式 — 字串函式 convert_uuencode () & convert_uudecode ()PHP函式字串
- 理解RMAN backup database plus archivelog命令DatabaseHive
- 手動create database 的可用命令Database
- Oracle 10g新增DROP DATABASE命令Oracle 10gDatabase
- duplicate命令中有pfile、logfile、*_file_name_convert、nofilenamecheck的案例
- Convert object/bean to mapObjectBean
- sql server convert用法SQLServer
- 理解RMAN backup database plus archivelog delete all input命令DatabaseHivedelete
- db_file_name_convert和log_file_name_convert詳解
- Abp框架之執行Update-Database 命令系列錯誤框架Database
- Convert.ToInt32( null or "")Null
- json convert to stringJSON
- How to Convert Subversion Repo to GitGit
- Convert Array of Objects to Data TableObject
- SQL Server CONVERT() 函式SQLServer函式
- DocTo convert doc(x) to pdf
- Convert型別轉換型別
- flashback database的一點總結Database
- PHP 每日一函式 — 字串函式 convert_cyr_string ()PHP函式字串
- 一個有用的函式-實現dump函式的convert!函式
- 使用Duplicate target database命令恢復線上oracle datagard備庫DatabaseOracle
- koa-convert原始碼分析原始碼
- java convert timestamp to date and timeJava
- Convert a Characteristic into a Key Figure (BEx)