OCP課程60:管理Ⅰ之管理資料庫空間

stonebox1122發表於2017-04-17

課程目標:

  • 4-KB扇區磁碟概念及使用
  • 使用可傳輸表空間
  • 可傳輸資料庫概念

1、資料庫儲存

clipboard

資料庫儲存

資料庫包括物理結構和邏輯結構。由於物理結構和邏輯結構是分開的,因此管理資料的物理儲存時不會影響對邏輯儲存結構的訪問。

磁碟是資料庫的主要儲存介質,目前主要有512 位元組的扇區,而擁有4 KB 大扇區的磁碟即將上市,它們可以用較低的開銷提供更高的儲存容量。Oracle DB 可以透過特定於平臺的裝置驅動程式訪問硬碟。(資料庫寫程式和日誌寫程式[和ASM 程式] 可直接向磁碟進行寫入,無需透過作業系統。)

Oracle Database 11gR2 檢測磁碟扇區大小並使用高容量磁碟且不會導致效能下降(原因之一是內部最佳化減少了可能會發生的重做空間浪費,具有許多短時事務處理的應用程式,如郵件系統,可能會發生重做空間浪費)。


2、支援4-KB扇區磁碟

clipboard[1]

4 KB 扇區磁碟有物理扇區(以灰色顯示)和邏輯扇區(以藍色顯示)。有二種型別的4 KB 扇區磁碟:模擬模式和本機模式。

? 模擬模式下的4 KB 扇區磁碟每一個物理扇區具有八個邏輯扇區,如示例所示。這類磁碟維護有一個到4 KB 物理扇區的512 位元組介面-即邏輯塊地址(LBA) 引用磁碟上的512 位元組。

在模擬模式中效能可能會降低,因為磁碟驅動器將4 KB 扇區讀取到磁碟快取記憶體記憶體中,更改512 位元組部分,並將整個4 KB 扇區回寫到磁碟。

? 本機模式下的4 KB 扇區磁碟每一個物理扇區具備一個邏輯扇區,如示例中所示。

因此,只有4 KB 介面。也就是說,LBA 引用磁碟上的4,096 位元組。


3、使用4-KB扇區磁碟

clipboard[2]

模擬模式:

? 建議為日誌使用4 KB 塊大小

? 建議為資料檔案使用4 KB塊大小(或更大)

不受影響:

? 控制元件檔案塊大小:16 KB

本機模式:

? 日誌必須使用4 KB 塊大小

? 資料檔案必須使用4 KB 塊大小(或更大)

在Oracle Database 11gR2 中,4 KB 扇區磁碟主要影響重做日誌檔案。這包括聯機重做日誌,備用重做日誌和歸檔日誌。Oracle 建議在4 KB 模擬模式磁碟上建立4 KB 塊大小的日誌。在4 KB 本機模式磁碟上,必須建立4 KB 塊大小的日誌。

也就是說,重做塊大小必須與物理磁碟扇區大小相匹配(對於512 位元組和4 KB 本機模式磁碟)。否則,你會收到ORA-1378 錯誤。對於4 KB 模擬模式磁碟,重做塊大小可以是512 或4,096 位元組。4 KB 是首選塊大小。在4 KB 模擬磁碟上建立大小為512 位元組的塊時,預警日誌中會寫入一條警告,指明塊大小不匹配將導致效能下降。ASM 磁碟組也是如此。

4 KB 扇區磁碟還會影響Oracle 資料檔案。Oracle DB 允許你在512 位元組扇區磁碟上建立2 KB 塊大小的資料檔案。使用4 KB 扇區磁碟時,Oracle 建議你在4 KB 模擬模式磁碟上建立4 KB(或更大)塊大小的資料檔案。在4 KB 本機模式磁碟上,必須建立4 KB(或更大)塊大小的日誌。

控制檔案塊大小已經為16 KB。因此,4 KB 扇區磁碟不影響控制檔案。

例子:檢視控制檔案,資料檔案和日誌檔案的塊大小

SQL> select name,block_size,file_size_blks from v$controlfile;

NAME                                               BLOCK_SIZE FILE_SIZE_BLKS

-------------------------------------------------- ---------- --------------

+DATA/stone/controlfile/current.260.906387137           16384            604

+FRA/stone/controlfile/current.256.907584321            16384            604

SQL> select file#,block_size from v$datafile;

     FILE# BLOCK_SIZE

---------- ----------

         1       8192

         2       8192

         3       8192

         4       8192

         5       8192

         6       8192

         7       8192

         8       8192

         9       8192

        10       8192

        11       8192

     FILE# BLOCK_SIZE

---------- ----------

        12       8192

        13       8192

13 rows selected.

SQL> select group#,blocksize from v$log;

    GROUP#  BLOCKSIZE

---------- ----------

         1        512

         2        512

         3        512


4、指定磁碟扇區大小

clipboard[3]

使用以下命令的SECTOR_SIZE和BLOCKSIZE子句:

? CREATE DISKGROUP

? ALTER DATABASE

? CREATE DATABASE

? CREATE CONTROL FILE

CREATE DATABASE sample NORESETLOGS FORCE LOGGING

ARCHIVELOG

LOGFILE

GROUP 1 '$ORACLE_BASE/oradata/sample/redo01.log'

SIZE 100MBLOCKSIZE 4096,

GROUP 2 '$ORACLE_BASE/oradata/sample/redo02.log'

SIZE 100MBLOCKSIZE 4096

DATAFILE

...

指定磁碟扇區大小

在自動儲存管理(ASM) 環境下,你可以為磁碟組設定SECTOR_SIZE屬性。該屬性只能在建立磁碟組時設定(透過使用CREATE DISKGROUP命令)。

你可以使用以下命令的新增BLOCKSIZE子句指定日誌檔案的大小:

? ALTER DATABASE

? CREATE DATABASE

? CREATE CONTROL FILE

與在512 位元組磁碟上新建資料庫相比,在4 KB 扇區磁碟上新建資料庫沒有額外的工作。在GUI 環境中沒有更改。

你可以選擇在CREATE DATABASE命令中使用BLOCKSIZE子句,如示例中所示。如果未指定塊大小,Oracle DB 將檢查底層磁碟扇區大小,並在建立重做日誌時使用該磁碟扇區大小作為塊大小。因此,預設情況下,重做日誌塊大小是磁碟扇區大小,而不是之前的512 位元組扇區大小。

例子:在非4KB扇區磁碟建立4KB塊大小日誌檔案報錯

SQL> alter database add logfile group 4 size 51200K blocksize 4096;

alter database add logfile group 4 size 51200K blocksize 4096

*

ERROR at line 1:

ORA-01378: The logical block size (4096) of file +DATA is not compatible with the disk sector size (media sector size is 512 and host sector size is 512)


5、傳輸表空間

clipboard[4]

? 可跨平臺移動的表空間:

– 簡化資料倉儲和資料集市之間的資料移動

– 允許從一個平臺向另一個平臺遷移資料庫

? 支援的平臺包括:

移動表空間

使用可移動表空間是在兩個Oracle DB 之間移動大量資料的最快方式。使用可移動表空間,可以將Oracle 資料檔案(包含表資料、索引和幾乎其它所有Oracle DB 物件)從一個資料庫移動到另一個資料庫。而且,與匯入和匯出類似,可移動表空間除了移動資料以外,還提供了一種移動後設資料的機制。

可以使用可移動表空間功能跨平臺移動資料。此功能簡化了從資料倉儲環境向資料集市(資料集市通常在較小的平臺上執行)分發資料的過程。此功能還允許透過重建字典並移動使用者表空間的方式,將資料庫從一個平臺遷移到另一個平臺。

對於相同資料而言,使用可移動表空間移動資料比執行匯入/匯出或解除安裝/載入的速度要快得多。這是因為,包含所有實際資料的資料檔案只是被複制到目標位置,只有表空間物件的後設資料透過資料泵傳送到新資料庫。

為了能夠將資料檔案從一個平臺移動到另一個平臺,必須確保源系統和目標系統都在支援的平臺上執行。

注:可跨平臺移動的表空間功能要求兩個平臺使用相同的字符集。


6、概念:最小相容等級

clipboard[5]

? 源資料庫和目標資料庫都必須將COMPATIBLE設定為10.0.0或更高。

? 資料檔案頭是可識別平臺的。

? 在移動前,請確保所有隻讀檔案和離線檔案是可識別平臺的。

源資料庫和目標資料庫都需要先將其資料庫COMPATIBLE初始化引數提高到10.0.0或更高,才能使用可跨平臺移動的表空間功能。

COMPATIBLE設定為10.0.0(或更高)時,在Oracle Database 10g或11g下首次開啟資料檔案時,資料檔案將成為可識別平臺的。這在圖表中體現為複選標記。每個檔案都可以確定其所屬的平臺。這些檔案在磁碟上有相同的檔案頭塊格式,這些格式用於檔案標識和驗證。只讀檔案和離線檔案只有在變為讀/寫狀態或變為聯機之後才能提高其相容性。這意味著,在Oracle Database 10g版本之前的資料庫中,處於只讀狀態的表空間必須至少變為讀/寫狀態一次才能使用可跨平臺移動的功能。


7、最小相容等級

clipboard[6]

最低相容級別

建立可移動表空間集時,Oracle DB 會計算執行目標資料庫必須滿足的最低相容級別。這稱為可移動集的相容級別。從Oracle Database 11g開始,始終可將某個表空間移動到具有相同或更高相容性設定的資料庫,而不管目標資料庫是基於相同的平臺,還是基於不同的平臺。如果可移動集的相容級別高於目標資料庫的相容級別,則資料庫將發出錯誤訊息。

上表顯示了不同情形下源表空間和目標表空間的最低相容性要求。源資料庫和目標資料庫不需要具有相同的相容性設定。

在第一次開啟資料檔案後,每個檔案都可以確定其所屬的平臺。這些檔案在磁碟上有相同的檔案頭塊格式,這些格式用於檔案標識和驗證。只讀檔案和離線檔案只有在變為讀/寫狀態或變為聯機之後才能提高其相容性。


8、傳輸表空間過程

clipboard[7]

要將表空間從一個平臺移動到另一個平臺(源到目標),必須將表空間集內的資料檔案轉換為目標資料庫可以理解的格式。雖然使用Oracle DB 時磁碟結構符合通用格式,但源平臺和目標平臺仍有可能使用不同的endian 格式(位元組順序)。轉至不同的endian 平臺時,必須使用RMAN 實用程式的CONVERT命令來轉換位元組順序。可以在源平臺或目標平臺上執行此操作。對於endian 格式相同的平臺,則不需要轉換。

示例中的圖形描述了從源平臺向目標平臺移動表空間可能用到的步驟。但是,也可以在將檔案傳送到目標平臺後執行轉換。必須在目標平臺上執行最後兩步。

一般情況下,此過程與使用Oracle DB Server 的舊發行版時的過程相同,除非兩個平臺使用不同的endian 格式。此處假定兩個平臺都支援跨平臺移動。

注:讀寫資料時,位元組順序會影響結果。例如,雙位元組整數值1在big-endian 系統(如Sun SPARC Solaris)上寫為0x0001,而在little-endian 系統(如相容Intel 的PC)上寫為0x0100。


9、確定平臺的endian format

clipboard[8]

SELECT tp.endian_format

FROM v$transportable_platform tp, v$database d

WHERE tp.platform_name = d.platform_name;

確定平臺的Endian 格式

可以查詢V$TRANSPORTABLE_PLATFORM來確定兩個平臺的endian 順序是否相同。

V$DATABASE有兩個列可以用於確定你自己的平臺名稱和平臺識別符號。

執行下面的查詢可獲得受支援的平臺及其endian 格式的完整列表:

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

19 HP IA Open VMS Little

20 Solaris Operating System (AMD64) Little

例子:檢視當前資料庫的Endian格式

SQL> SELECT tp.endian_format

  2  FROM v$transportable_platform tp, v$database d

  3  WHERE tp.platform_name = d.platform_name;

ENDIAN_FORMAT

--------------

Little


10、使用RMAN的CONVERT命令

clipboard[9]

RMAN:

? 將表空間、資料檔案或資料庫轉換為目標平臺的格式

? 不更改輸入檔案

? 將轉換的檔案寫入到輸出目標

CONNECT TARGET SYS@orcl

RMAN>

SQL 'ALTER TABLESPACE hr READ ONLY';

CONVERT TABLESPACEhr

TO PLATFORM 'Solaris[tm] OE (64-bit)'

FORMAT '/tmp/transport_to_solaris/%U';;


使用RMAN 的CONVERT命令

在執行跨平臺傳輸的準備工作期間,使用RMAN CONVERT命令,將表空間、資料檔案或資料庫轉換為目標平臺的格式。CONVERT不改變輸入檔案,因為轉換不是原地執行的。

RMAN 將轉換的檔案寫入到指定的輸出目標。

CONVERT TABLESPACE示例:

? 假設你在Linux 32 位平臺上有一個ORCL資料庫,你想將其傳輸到Solaris 64 位平臺上。

? 作為TARGET 連線至源資料庫(已裝載或已開啟的)。

? 轉換時,表空間必須是隻讀的。

? 結果是/tmp/transport_to_solaris/目錄中的一組轉換的資料檔案,其中的資料以適合Solaris 64 位平臺的正確endian 順序排列。

限制:CONVERT命令不處理需要endian 轉換的使用者資料型別。如果資料庫建立在底層型別(這些型別以平臺特定的格式儲存資料)之上,要在資料庫之間傳輸物件,可以使用資料泵匯入和匯出實用程式。

例子:轉換Endian

RMAN> sql 'alter tablespace ts read only';

sql statement: alter tablespace ts read only

RMAN> convert tablespace ts to platform 'Solaris[tm] OE (64-bit)'

2> format '/home/oracle/trans/%U';

Starting conversion at source at 31-MAR-16

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=58 device type=DISK

channel ORA_DISK_1: starting datafile conversion

input datafile file number=00011 name=+DATA/stone/datafile/ts.261.907752919

converted datafile=/home/oracle/trans/data_D-STONE_I-3016613505_TS-TS_FNO-11_2nr1sjrp

channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:01

Finished conversion at source at 31-MAR-16

Starting Control File and SPFILE Autobackup at 31-MAR-16

piece handle=+FRA/stone/autobackup/2016_03_31/s_907956091.271.907956093 comment=NONE

Finished Control File and SPFILE Autobackup at 31-MAR-16

[ ~]$ ls trans/

data_D-STONE_I-3016613505_TS-TS_FNO-11_2nr1sjrp


11、使用EM進行可傳輸表空間

clipboard[10]

可使用Oracle Enterprise Manager 來實施可移動表空間。在“Database(資料庫)”主頁中,單擊“Data Movement(資料移動)”資料夾選項卡,然後單擊“Move Database Files(移動資料庫檔案)”部分下的“Transport Tablespaces(移動表空間)”。選擇“Generate a transportable table set(生成一個可移動表集)”,並提供oracle使用者的登入身份證明,然後單擊“Continue(繼續)”。在“Select Tablespaces(選擇表空間)”頁上,單擊“Tablespace(表空間)”按鈕從顯示的列表中新增要移動的表空間。在接近頁面底部的位置,選擇要在處理表空間之前完成的封閉性檢查的級別(必須選擇一項)。封閉性檢查會檢查表空間中的物件依賴關係。完成後,單擊“Next(下一步)”。在封閉性檢查執行過程中,等待一會兒。如果該項檢查發現任何問題,請先解決問題然後再繼續。


12、使用EM進行可傳輸表空間

clipboard[11]

在“Destination Characteristics(目標特徵)”頁上,必須提供目標平臺和字符集。在“Destination Database Platform(目標資料庫平臺)”部分下,從下拉選單中選擇目標計算機的作業系統。如果目標平臺與源平臺不同,Oracle Enterprise Manger 會執行資料轉換。

繼續轉到該頁的“Destination Character Set(目標字符集)”部分,從下拉選單中選擇目標字符集和國家字符集。這些字符集必須與源字符集相容。單擊“Next(下一步)”繼續時,Oracle Enterprise Manager 會檢查字符集的相容性。如果選擇的字符集被標記為不相容,則會返回到“Destination Characteristics(目標特徵)”頁以便你更正所做的選擇。


13、使用EM進行可傳輸表空間

clipboard[12]

在“Schedule(排程)”頁上,為預設作業名稱提供有意義的說明。可以選擇立即啟用作業,也可以排程作業以後執行。完成了選擇後,單擊“Next(下一步)”按鈕繼續操作。在複查頁上,可以驗證您的選擇,然後提交作業以便執行。如果各個條目都正確,則單擊“Submit Job(提交作業)”按鈕。單擊“Back(上一步)”按鈕以更正任何不正確的條目。

例子:使用EM傳輸表空間

clipboard[13]

clipboard[14]

clipboard[15]
clipboard[16]

clipboard[17]

clipboard[18]

clipboard[19]

clipboard[20]

clipboard[21]

例子:使用SQL進行傳輸表空間

源端檢視位元組順序:

SQL> SELECT tp.endian_format FROM v$transportable_platform tp, v$database d WHERE tp.platform_name = d.platform_name;

ENDIAN_FORMAT

--------------

Little

目的端檢視位元組順序:

SQL> SELECT tp.endian_format FROM v$transportable_platform tp, v$database d WHERE tp.platform_name = d.platform_name;

在源端建立測試表空間和表:

SQL> create tablespace tts01;       

Tablespace created.

SQL> create table emp01 tablespace tts01 as select * from hr.employees;

Table created.

確認源端和目的端的目錄物件:

SQL> select * from dba_directories where directory_name='DATA_PUMP_DIR';

OWNER      DIRECTORY_NAME                 DIRECTORY_PATH

---------- ------------------------------ ----------------------------------------

SYS        DATA_PUMP_DIR                  /u01/app/oracle/admin/stone/dpdump/

SQL> select * from dba_directories where directory_name='DATA_PUMP_DIR';

OWNER      DIRECTORY_NAME                 DIRECTORY_PATH

---------- ------------------------------ ----------------------------------------

SYS        DATA_PUMP_DIR                  /u01/app/oracle/admin/stone/dpdump/

檢測源端表空間的自包含:

SQL> exec dbms_tts.transport_set_check('TTS01');

PL/SQL procedure successfully completed.

SQL> select * from transport_set_violations;

no rows selected

將源端的表空間設定為readonly

SQL> alter tablespace tts01 read only;

Tablespace altered.

匯出源端的後設資料

[ ~]$ expdp dumpfile=tts01.dmp logfile=tts01.log transport_tablespaces=tts01

Export: Release 11.2.0.4.0 - Production on Thu Aug 25 22:31:25 2016

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

Username: / as sysdba

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

Starting "SYS"."SYS_EXPORT_TRANSPORTABLE_01":  /******** AS SYSDBA dumpfile=tts01.dmp logfile=tts01.log transport_tablespaces=tts01

Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK

Processing object type TRANSPORTABLE_EXPORT/TABLE

Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK

Master table "SYS"."SYS_EXPORT_TRANSPORTABLE_01" successfully loaded/unloaded

******************************************************************************

Dump file set for SYS.SYS_EXPORT_TRANSPORTABLE_01 is:

  /u01/app/oracle/admin/stone/dpdump/tts01.dmp

******************************************************************************

Datafiles required for transportable tablespace TTS01:

  /u01/app/oracle/oradata/STONE/datafile/o1_mf_tts01_cvxz0p42_.dbf

Job "SYS"."SYS_EXPORT_TRANSPORTABLE_01" successfully completed at Thu Aug 25 22:32:54 2016 elapsed 0 00:01:21

將dump檔案和表空間對應的資料檔案複製到目的端相應目錄:

[ ~]$ scp /u01/app/oracle/admin/stone/dpdump/tts01.dmp oracle@192.168.247.142:/u01/app/oracle/admin/stone/dpdump

[ ~]$ scp /u01/app/oracle/oradata/STONE/datafile/o1_mf_tts01_cvxz0p42_.dbf oracle@192.168.247.142:/u01/app/oracle/oradata/STONE/datafile/

在目的端匯入後設資料

[ ~]$ impdp dumpfile=tts01.dmp transport_datafiles=/u01/app/oracle/oradata/STONE/datafile/o1_mf_tts01_cvxz0p42_.dbf

Import: Release 11.2.0.4.0 - Production on Thu Aug 25 23:08:08 2016

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

Username: / as sysdba

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

Master table "SYS"."SYS_IMPORT_TRANSPORTABLE_01" successfully loaded/unloaded

Starting "SYS"."SYS_IMPORT_TRANSPORTABLE_01":  /******** AS SYSDBA dumpfile=tts01.dmp transport_datafiles=/u01/app/oracle/oradata/STONE/datafile/o1_mf_tts01_cvxz0p42_.dbf

Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK

Processing object type TRANSPORTABLE_EXPORT/TABLE

Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK

Job "SYS"."SYS_IMPORT_TRANSPORTABLE_01" successfully completed at Thu Aug 25 23:08:21 2016 elapsed 0 00:00:06

在目的端檢視錶空間狀態並置為讀寫

SQL> select tablespace_name,status from dba_tablespaces where tablespace_name='TTS01';

TABLESPACE_NAME                STATUS

------------------------------ ---------

TTS01                          READ ONLY

SQL> alter tablespace tts01 read write;

Tablespace altered.

SQL> select tablespace_name,status from dba_tablespaces where tablespace_name='TTS01';

TABLESPACE_NAME                STATUS

------------------------------ ---------

TTS01                          ONLINE

SQL> select count(*) from emp01;

  COUNT(*)

----------

       107


14、傳輸資料庫

clipboard[22]

? 概述可移動表空間功能。

? 可以輕鬆地從資料倉儲環境向資料集市(資料集市通常在較小的平臺上執行)分發資料子集。

? 資料庫可以非常迅速地從一個平臺遷移到另一個平臺。

可以使用可移動表空間功能將一個資料庫遷移到另一個平臺,方法是在目標平臺上建立一個新資料庫,然後移動所有使用者表空間。不能移動SYSTEM表空間。因此,諸如序列、PL/SQL 程式包以及依賴於SYSTEM表空間的其它物件均不會被移動。必須在目標資料庫上手動建立這些物件,或者使用資料泵移動不能透過可移動表空間移動的物件。要從一個平臺向另一個平臺移動資料庫,必須確保源系統和目標系統都執行於V$TRANSPORTABLE_PLATFORM中列出的平臺上,並且具有相同的endian 格式。例如,可以將在Linux IA(32 位)上執行的資料庫移動到一個Windows 平臺上。如果兩個資料庫中至少有一個使用自動儲存管理(ASM),則可能需要使用DBMS_FILE_TRANSFER程式包來將檔案上傳到FTP。

此功能與可移動表空間不同,可移動表空間有一個可以插入資料的目標資料庫,而此功能將在目標平臺上建立新的資料庫。新建立的資料庫中包含的資料與源資料庫中相同。除了資料庫名、例項名和檔案位置等,新資料庫與源資料庫的設定也相同。

注:移動資料庫比使用資料泵移動資料的速度快。


15、資料庫傳輸過程:源系統轉換

clipboard[23]

資料庫移動過程:源系統轉換

必須先以只讀模式開啟資料庫,然後才能移動該資料庫。然後使用RMAN 轉換資料庫的必要資料檔案。

在源平臺上執行轉換時,RMAN 命令CONVERT DATABASE將生成一個包含正確的CREATE CONTROLFILE RESETLOGS命令的指令碼,此命令用於在目標系統上建立新資料庫。然後CONVERT DATABASE命令將轉換識別出的所有資料檔案,以便這些檔案可以在目標系統上使用。接著,你需要將已轉換的資料檔案和生成的指令碼傳送到目標平臺。透過在目標平臺上執行生成的指令碼,建立資料庫的新副本。

注:源資料庫必須在COMPATIBLE初始化引數設為10.0.0或更高的條件下執行。自COMPATIBLE設定為10.0.0或更高版本以來,識別出的所有表空間必須至少已被讀寫過一次。


16、資料庫傳輸過程:目標系統轉換

clipboard[24]

資料庫移動過程:目標系統轉換

必須先以只讀模式開啟資料庫,然後才能移動該資料庫。然後使用RMAN 轉換資料庫的必要資料檔案。

在目標平臺上執行轉換時,(在源系統上執行的)CONVERT DATABASE命令只生成兩個指令碼,用於在目標系統上轉換資料檔案以及重新建立新資料庫的控制檔案。然後,請將識別出的資料檔案和兩個指令碼都傳送到目標平臺。完成後,請按正確的順序執行這兩個指令碼。

第一個指令碼使用現有的CONVERT DATAFILERMAN 命令來進行轉換,第二個指令碼對已轉換的資料檔案發出CREATE CONTROLFILE RESETLOGS SQL 命令來建立新資料庫。

注:源資料庫必須在COMPATIBLE初始化引數設為10.0.0或更高的條件下執行。自COMPATIBLE設定為10.0.0或更高版本後,識別出的所有表空間至少已被讀寫過一次。


17、資料庫傳輸:注意事項

clipboard[25]

? 在目標平臺上建立口令檔案。

? 移動在源資料庫中使用的BFILE。

? 生成的PFILE 和移動指令碼使用OMF。

? 使用DBNEWID更改DBID。

資料庫移動:注意事項

重做日誌、控制檔案和臨時檔案不會移動。將在目標平臺上為新資料庫重新建立這些檔案。因此,目標平臺上的新資料庫必須用RESETLOGS選項開啟。

使用口令檔案時,不會移動該檔案,需要你在目標平臺上建立該檔案。這是因為口令檔案支援的檔名型別是特定於作業系統的。但是,CONVERT DATABASE命令的輸出將列出所有使用者名稱及其系統許可權,並且建議在目標平臺上重新建立口令檔案併為這些使用者新增條目。

CONVERT DATABASE命令列出源資料庫中的所有目錄物件以及使用BFILE資料型別或外部表的物件。可能需要用新的目錄名和檔名來更新這些物件。如果在資料庫中使用了BFILE,則必須移動BFILE。

生成的PFILE 和移動指令碼將Oracle Managed Files (OMF) 用於資料庫檔案。如果不想使用OMF,則必須修改PFILE 和移動指令碼。

移動的資料庫與源資料庫具有相同的DBID。可以使用DBNEWID實用程式來更改DBID。

在移動指令碼以及CONVERT DATABASE命令的輸出中,系統將提示你使用DBNEWID實用程式來更改資料庫ID。

參考:http://blog.csdn.net/rlhua/article/details/13613603


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28536251/viewspace-2137393/,如需轉載,請註明出處,否則將追究法律責任。

相關文章