使用Oracle可傳輸表空間的特性複製資料(5)實戰CONVERT
設定:
源資料庫:JSSWEB ,Oracle10.2.0.1 ,Windows 2003(32-bit)
目標資料庫:JSSCON ,Oracle10.2.0.1 ,RHEL U2 (32-bit),已安裝好資料庫軟體。
注:我知道,我明白,我理解,位元組順序相同,按照前面說的應該不需要使用CONVERT轉換的嘛!沒錯你說的對,我們這是演示,你別當真,更別糊塗,相同位元組順序是不需要convert,但convert database例外的嘛。
一、啟動資料庫到read only狀態
首先連線到源資料庫。
E:\ORA10G>set oracle_sid=jssweb
E:\ORA10G>sqlplus "/ as sysdba"
啟動到read only狀態
SQL> startup mount
ORACLE 例程已經啟動。
Total System Global Area 113246208 bytes
Fixed Size 1247564 bytes
Variable Size 92276404 bytes
Database Buffers 12582912 bytes
Redo Buffers 7139328 bytes
資料庫裝載完畢。
SQL> alter database open read only;
資料庫已更改。
二、檢查資料庫是否支援傳輸,主要檢查平臺
SQL> set serveroutput on
SQL> declare
2 db_ready boolean;
3 begin
4 db_ready := dbms_tdb.check_db('Linux IA (32-bit)');
5 end;
6 /
PL/SQL 過程已成功完成。
無輸出,說明支援平臺間轉換,然後檢查是否存在外部物件。
SQL> declare
2 external boolean;
3 begin
4 external := dbms_tdb.check_external;
5 end;
6 /
The following directories exist in the database:
SYS.DATA_PUMP_DIR
Sys使用者下有一個directory,記錄下來。
三、執行CONVERT命令,假設我們希望在源平臺執行轉換操作。
首先連線到RMAN管理器中。
E:\ora10g>rman target /
選擇在源平臺執行轉換操作(注意下列中的加粗部分)
RMAN> convert database new database 'jsscon'
2> transport script 'e:\oratmp\script\ts.sql'
3> to platform 'Linux IA (32-bit)'
4> db_file_name_convert 'E:\ora10g\oradata\jssweb' 'e:\oratmp\oradata';
啟動 convert 於 16-11月-07
使用通道 ORA_DISK_1
在資料庫中找到目錄 SYS.DATA_PUMP_DIR
在口令檔案中找到使用者 SYS (具有 SYSDBA and SYSOPER 許可權)
通道 ORA_DISK_1: 啟動資料檔案轉換
輸入資料檔案 fno=00001 name=E:\ORA10G\ORADATA\JSSWEB\SYSTEM01.DBF
已轉換的資料檔案 = E:\ORATMP\ORADATA\SYSTEM01.DBF
通道 ORA_DISK_1: 資料檔案轉換完畢, 經過時間: 00:00:25
通道 ORA_DISK_1: 啟動資料檔案轉換
輸入資料檔案 fno=00002 name=E:\ORA10G\ORADATA\JSSWEB\UNDOTBS01.DBF
已轉換的資料檔案 = E:\ORATMP\ORADATA\UNDOTBS01.DBF
通道 ORA_DISK_1: 資料檔案轉換完畢, 經過時間: 00:00:16
通道 ORA_DISK_1: 啟動資料檔案轉換
輸入資料檔案 fno=00004 name=E:\ORA10G\ORADATA\JSSWEB\JSSWEB.DBF
已轉換的資料檔案 = E:\ORATMP\ORADATA\JSSWEB.DBF
通道 ORA_DISK_1: 資料檔案轉換完畢, 經過時間: 00:00:15
通道 ORA_DISK_1: 啟動資料檔案轉換
輸入資料檔案 fno=00003 name=E:\ORA10G\ORADATA\JSSWEB\SYSAUX01.DBF
已轉換的資料檔案 = E:\ORATMP\ORADATA\SYSAUX01.DBF
通道 ORA_DISK_1: 資料檔案轉換完畢, 經過時間: 00:00:15
通道 ORA_DISK_1: 啟動資料檔案轉換
輸入資料檔案 fno=00005 name=E:\ORA10G\ORADATA\JSSWEB\USERS01.DBF
已轉換的資料檔案 = E:\ORATMP\ORADATA\USERS01.DBF
通道 ORA_DISK_1: 資料檔案轉換完畢, 經過時間: 00:00:03
在目標平臺上執行 SQL 指令碼 E:\ORATMP\SCRIPT\TS.SQL 以建立資料庫
編輯 init.ora 檔案 E:\ORA10G\PRODUCT\10.2.0\DB_1\DATABASE\INIT_00J16HQT_1_0.ORA。此 PFILE 將用於在目標平臺上建立資料庫據
要重新編譯所有 PL/SQL 模組, 請在目標平臺上執行 utlirp.sql 和 utlrp.sql
要更改內部資料庫識別符號, 請使用 DBNEWID 實用程式
完成 backup 於 16-11月-07
遮蔽輸出中提供了二處指令碼所在路徑,記錄下來。
四、複製檔案到目標平臺
複製源庫中資料檔案到目標平臺,從上述遮蔽輸出中看到共涉及E:\ORATMP\ORADATA\目錄中5個資料檔案(臨時表空間資料檔案不需要轉換,可以目標資料庫重新建立),E:\ORATMP\SCRIPT目錄中的TS.SQL指令碼檔案,以及E:\ORA10G\PRODUCT\10.2.0\DB_1\DATABASE\INIT_00J16HQT_1_0.ORA客戶端初始化引數檔案,複製到目標平臺的適當位置,此處我們將複製到/opt/oratmp目錄中。
提示:資料檔案複製完成後即可以將源資料庫置為read-write狀態了。
建立相關目錄:
[oracle@jsslinux oradata]$ mkdir /opt/ora10g/oradata/jsscon -p
[oracle@jsslinux oradata]$ mkdir /opt/ora10g/admin/jsscon -p
[oracle@jsslinux oradata]$ cd /opt/ora10g/admin/jsscon
[oracle@jsslinux jsscon]$ mkdir adump bdump cdump dpdump pfile udump
五、修改指令碼檔案和初始化引數檔案
再次著重提示,oracle生成的指令碼檔案,僅供參考有些引數還需要你自己手工調整,特別是檔案複製到目標平臺後,如果路徑有變化,一定要記的修改指令碼檔案中對應的引數。
INIT_00J16HQT_1_0.ORA為客戶端初始化引數檔案,需要注意其中db_name, xxx_dest,control_files等引數,為便於輸入,複製到目標平臺時將其更新為inittmp.ora。
TS.SQL為建立控制檔案指令碼,需要注意各資料檔案路徑。
六、執行指令碼,建立資料庫。
你可以開啟指令碼檔案,按照語句手工一步步執行,也可以直接呼叫該指令碼檔案。此處我們是第一次執行,穩妥期間還是手工一步一步來吧:)))
首先指定SID(如果是windows系統,就不只是export這麼簡單了,還需要oradim重建一個service,前面的文章有中具體示例,這裡不詳述了):
[oracle@jsslinux jsscon]$ export ORACLE_SID=jsscon
[oracle@jsslinux jsscon]$ sqlplus "/ as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 11月 16 11:10:07 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已連線到空閒例程。
從客戶端初始化引數檔案啟動到nomount模式
SQL> STARTUP NOMOUNT PFILE='/opt/oratmp/scripts/INIT_00J14FQ2_1_0.ORA'
ORACLE 例程已經啟動。
Total System Global Area 109051904 bytes
Fixed Size 1217980 bytes
Variable Size 92277316 bytes
Database Buffers 12582912 bytes
Redo Buffers 2973696 bytes
建立控制檔案
SQL> CREATE CONTROLFILE REUSE SET DATABASE "JSSCON" RESETLOGS NOARCHIVELOG
2 MAXLOGFILES 16
3 MAXLOGMEMBERS 3
4 MAXDATAFILES 100
5 MAXINSTANCES 8
6 MAXLOGHISTORY 292
7 LOGFILE
8 GROUP 1 '/opt/ora10g/oradata/jsscon/redo01.log' SIZE 20M,
9 GROUP 2 '/opt/ora10g/oradata/jsscon/redo02.log' SIZE 20M,
10 GROUP 3 '/opt/ora10g/oradata/jsscon/redo03.log' SIZE 20M
11 DATAFILE
12 '/opt/oratmp/oradata/SYSTEM01.DBF',
13 '/opt/oratmp/oradata/UNDOTBS01.DBF',
14 '/opt/oratmp/oradata/SYSAUX01.DBF',
15 '/opt/oratmp/oradata/JSSWEB.DBF',
16 '/opt/oratmp/oradata/USERS01.DBF'
17 CHARACTER SET ZHS16GBK
18 ;
控制檔案已建立。
以resetlogs模式開啟資料庫
SQL> ALTER DATABASE OPEN RESETLOGS;
資料庫已更改。
建立臨時表空間
SQL> ALTER TABLESPACE TEMP ADD TEMPFILE '/opt/ora10g/oradata/jsscon/TEMP01.DBF'
2 SIZE 200M;
表空間已更改。
注意:下面的操作就很關鍵了。
SQL> set echo off
SQL> SHUTDOWN IMMEDIATE
資料庫已經關閉。
已經解除安裝資料庫。
ORACLE 例程已經關閉。
啟動到升級模式
SQL> STARTUP UPGRADE PFILE='/opt/oratmp/scripts/inittmp.ora'
ORACLE 例程已經啟動。
Total System Global Area 109051904 bytes
Fixed Size 1217980 bytes
Variable Size 92277316 bytes
Database Buffers 12582912 bytes
Redo Buffers 2973696 bytes
資料庫裝載完畢。
資料庫已經開啟。
重新編譯資料庫物件。
SQL> @@ ?/rdbms/admin/utlirp.sql
....
....
DOC>#######################################################################
DOC>#######################################################################
DOC> utlirp.sql completed successfully. All PL/SQL objects in the
DOC> database have been invalidated.
DOC>
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7607759/viewspace-145401/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用Oracle可傳輸表空間的特性複製資料(7)實戰RMAN備份傳輸表空間Oracle
- 使用Oracle可傳輸表空間的特性複製資料(3)跨平臺的傳輸實踐Oracle
- 使用Oracle可傳輸表空間的特性複製資料(1)基礎概念Oracle
- 使用Oracle可傳輸表空間的特性複製資料(2)操作步驟Oracle
- 使用RMAN實現可傳輸的表空間
- Oracle可傳輸表空間測試Oracle
- 【傳輸表空間】使用 EXPDP/IMPDP工具的傳輸表空間完成資料遷移
- oracle可傳輸表空間TTS小結OracleTTS
- 【傳輸表空間】使用 EXPDP/IMPDP工具的傳輸表空間完成資料遷移[轉]
- 利用可傳輸表空間跨平臺遷移 -RMAN CONVERT
- Oracle 表空間傳輸Oracle
- oracle表空間傳輸Oracle
- Oracle傳輸表空間Oracle
- 使用可傳輸表空間向rac環境遷移資料
- 關於oracle可傳輸表空間的總結Oracle
- Oracle 10g的可傳輸表空間操作Oracle 10g
- 聊聊Oracle可傳輸表空間(Transportable Tablespace)(上)Oracle
- 聊聊Oracle可傳輸表空間(Transportable Tablespace)(中)Oracle
- 聊聊Oracle可傳輸表空間(Transportable Tablespace)(下)Oracle
- 基於可傳輸表空間的表空間遷移
- 5.7 mysql的可傳輸表空間MySql
- 實戰RMAN備份傳輸表空間
- 用可傳輸表空間實現Oracle跨平臺移植Oracle
- 傳輸表空間操作-OracleOracle
- Oracle傳輸表空間(TTS)OracleTTS
- Oracle 傳輸表空間-RmanOracle
- 【實驗】利用可傳輸表空間技術實現資料的高效遷移
- RMAN跨平臺可傳輸表空間和資料庫資料庫
- 【資料遷移】使用傳輸表空間遷移資料
- Oracle傳輸表空間學習Oracle
- Oracle 傳輸表空間-EXPDP/IMPDPOracle
- Oracle 傳輸表空間-EXP/IMPOracle
- Oracle表空間傳輸詳解Oracle
- 複製建立已有資料庫使用者、表空間、許可權的指令碼資料庫指令碼
- 利用oracle 傳輸表空間來實現歷史資料分離的方案Oracle
- 使用EXPDP IMPDP傳輸不同資料庫的不同表空間(新增網路傳輸)資料庫
- readwrite狀態下實現可傳輸表空間
- oracle表空間傳輸的限制條件Oracle