95
Oracle10gへのアップグレード

Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

Oracle10gへのアップグレード

Page 2: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

2

はじめに

当資料では、Oracle8、Oracle8i から Oracle10gへのアップグレード作業手順を具体的に解説しています。

実際のアップグレードを行う際は、マニュアルを実際のアップグレードを行う際は、マニュアルを必ず参照してください。必ず参照してください。

–– 「「OracleOracleデータベース アップグレード・ガイドデータベース アップグレード・ガイド 1010gg リリースリリース1(10.1)1(10.1)」」

オラクル・サポート・サービスの契約は必須です。オラクル・サポート・サービスの契約は必須です。

Page 3: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

3

AGENDA

1. 基本知識と用語

2. アップグレードに必要な準備

3. アップグレード作業手順DBUA

- DBUAの使用によるアップグレード

- アップグレード後の処理

Export/Import- Export/Import の使用手順

- 表領域移行(TTS) の使用手順

4. アプリケーションのアップグレード

Page 4: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

4

バージョンとリリースの番号

Oracleプラットフォーム製品の番号ルール

1010..11..00..33..00バージョン番号

データベースのメンテナンス・リリース番号

アプリケーション・サーバーのリリース番号

コンポーネント固有のリリース番号

プラットフォーム固有のパッチ・セット番号

3桁目までは製品バージョン

4桁目以降はパッチ・バージョン

Page 5: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

5

Oracle8i

Oracle9i

Oracle8

“移行”と“アップグレード”の違いOracle7 とOracle8以降のバージョンでは、内部アーキテクチャが大きく異なります。

Oracle7

移行

アップグレード

Oracle10g

Page 6: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

6

“移行”と“アップグレード”の違い

Oracle7 をOracle10gにするためには、移行処理が必要です。

Oracle8/Oracle8i/Oracle9i のOracle10gへのアップグレードには、移行処理が必要ありません。– スクリプトを実行するだけのアップグレード処理です。

ダウングレード– 以前のバージョン、リリースへ変換する処理

– 例)Oracle9i 9.2.0 を Oracle9i 9.0.1 へ“ダウングレード”する

Page 7: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

7

AGENDA

1. 基本知識と用語

2. アップグレードに必要な準備

3. アップグレード作業手順DBUA

- DBUAの使用によるアップグレード

- アップグレード後の処理

Export/Import- Export/Import の使用手順

- 表領域移行(TTS) の使用手順

4. アプリケーションのアップグレード

Page 8: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

8

アップグレードに必要な準備

A) Oracle Database 10g の新機能の理解

B) 10g へのアップグレード・パスの決定

C) アップグレード方法の選択

D) 新しいOracle ホーム・ディレクトリの選択

E) バックアップ計画の準備

F) テスト計画の作成

事前準備一覧

Page 9: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

9

Oracle 10g 新機能の理解

最初に10gの新機能を理解する必要があります。– 参照するマニュアル:

「 OracleDatabase新機能 10g リリース1(10.1)」(B12471-01)

– 各コンポーネントについては、それぞれ固有のドキュメントの中にバージョンによる差分が記述されています。

10gの新機能を正しく理解し、ニーズに応えられるアプリケーション構築を行って下さい。

Page 10: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

10

システム要件の確認とリソースの見積

以下の項目について、確認を行います– OSとハードウェアの両方の構成要件

– 既存の本番データベースのサイズ

– Oracle10g に関連するファイルに対して、割り当てるこ

とのできるディスクの空きサイズ

Page 11: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

11

Oracle Database 10g システム要件

Solaris SPARC (64-bit) HP-UX PA-RISC (64-bit)

Solaris8Solaris9

HP-UX 11i(11.11)

ソフトウェア 1.5GB 2.5GBデータベース 1.2GB 1.2GB

512MB以上 512MB以上

AIX-BASED 5L Windows (32-bit)

AIX 5L(5.2) ML1 以上AIX5L (5.3)

Windows NT 4.0 SP6a以上Windows 2000 SP1以上

Windows XP Professional (32-bit)Windows Server 2003

Windows Small Business Server 2003ソフトウェア 3GB 100MBデータベース 1.2GB 1.5GB

512MB以上 256MB以上

対応OS

ディスク

メモリー

ディスク

対応OS

メモリー

Page 12: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

12

Oracle Database 10g デフォルト・ポート

Oracle Database 10gで使用される各コンポーネントの必要なポート

一覧とデフォルトのポート範囲は以下のとおりです。

※ポートは変更することができます。

コンポーネント ポート用途 ポート範囲

Enterprise Manager Agent HTTP 1830 - 1849

HTTP 5500 - 5519

RMI 5520 - 5539

JMS 5540 - 5559

HTTP 5560 - 5579

RMI 5580 - 5599

JMS 5600 - 5619

HTTP 5620 - 5639

RMI 5640 - 5659

JMS 5660 - 5679

Enterprise Manager Database Control

iSQL*Plus

Ultra Search

Page 13: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

13

アップグレード手順の概要

元データベース環境の記録元データベース環境の記録

  元データベースのバックアップ  元データベースのバックアップ

((OSOSのアップグレードのアップグレード))

1010ggデータベースのバックアップデータベースのバックアップ

運用再開運用再開

DBUADBUAExport / ImportExport / Import

Unload&LoadUnload&Loadデータコピーデータコピー

DBUA: Database Upgrade Assistant

Page 14: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

14

アップグレード方法の選択

データベース全体のアップグレード– Database Upgrade Assistant(DBUA)

– アップグレード・ユーティリティ

データの移行 (中間ファイルを生成)– エクスポート & インポート

– 表領域移行(TTS)– アップロード& アンロード

データの移行 (中間ファイルなし)– データ・コピー

Page 15: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

データベース全体のアップグレード

Database Upgrade Assistant (DBUA)– GUI画面を使用し、ウィザードに従ったアップグレード

– 内部的にアップグレード・ユーティリティを使用。各処理のログはすべて残る

– 手順ミスの可能性が少なく安全

– オラクル推奨の方法

アップグレード・ユーティリティ– コマンドラインからアップグレード・ユーティリティ(SQLスクリプト及びユ

ーティリティ)を使用してのアップグレード

VLDBでは、DISKや時間の制約により全体移行を選択することが多い

Page 16: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

データの移行(中間ファイルあり)Export/Import

– Export/Importユーティリティを使用

– スキーマ定義、権限を含めて、データを移動

Transportable TableSpace(TTS)– 表領域のメタデータのExport/Importと、表領域を構成するファイルの

COPYにより、データを別のOracleに移動。上位バージョンへのみ可能。表領域をExportする機能を持つのは、8i以降のEnterprise Editionのみ

Unload&Load– Select文にてデータをCSVファイルなどに出力。

– 出力ファイルを、SQL*Loader or カスタム・プログラムにてInsert

『ファイル』

Page 17: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

データの移行(中間ファイルなし)

データ・コピー– データベースリンク経由でのデータコピー。SQLを変更することにより、

表定義の変更やデータのクレンジングが可能

Create Table ASコマンド、Insert Selectコマンド

SQL*PLUSのCOPYコマンド

Database LinkDatabase Link

SQL文

3バイトの文字コードを持つデータベースへの移行時には、データ量が増える可能性があります

Page 18: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

18

各移行方法の長所と短所

・Unloadファイルのための大容量ディスクが必要

・容量に比例して時間がかかる。

・断片化を解消可能。

・異なる H/W、OS への移行が可能

Unload &Load

・容量に比例して時間がかかる。

・ネットワーク経由の処理

・操作中は両方のデータベースが同時に使用可能である必要がある。

・断片化を解消可能。

・異なる H/W、OS への移行が可能データコピー

・データファイルのための大容量ディスクが必要

・容量に比例して時間がかかる。

・上位Versionへの移行のみ可能

・移行元のOracleは8i以上であることが必要

・メタデータ以外は、ファイルのCOPYでよいため高速

・異なる H/W、OS への移行が可能(RMANが必要)TTS

・ダンプファイルのための大容量ディスクが必要

・容量に比例して時間がかかる。

・Oracle のバージョンに依存しない移行。

・断片化を解消可能。

・異なる H/W、OS への移行が可能

Exp / Imp

・DB 全体のみの移行。

・アップグレード可能なバージョンが限定される。

・DB サイズに関係なく比較的高速。

・移行に必要なディスク領域は少量。

アップグレード

ユーティリティ

・DB 全体のみの移行。

・アップグレード可能なバージョンが限定される。

・GUI ベースで簡単に処理を実行可能。

・DB サイズに関係なく比較的高速。

・移行に必要なディスク領域は少量。

DBUADBUA((推奨推奨))

短所長所

Page 19: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

19

移行方法一覧

表領域

DB/ユーザ

/表

DB

DB

移行の対象

・データCOPY(読み取り一貫性によりTXを止める必要はな

いが、データの整合性を保つ仕組みがない場合は、サービスを停止することとなる。)・索引の作成

・表の統計情報解析

・データのUnload・ファイルの移動

・データのLoad・索引の作成

・表の統計情報解析

・表領域の読み取り専用化&COPY・メタデータのExport・ファイルの移動

(・必要な場合にはRMANによるファイルの変換)・メタデータのImport・表領域の書き込み可能化

・データExport(読み取り一貫性によりTXを止める必要はな

いが、データの整合性を保つ仕組みがない場合は、サービスを停止することとなる。)・ファイルの移動

・データImport(Import時に統計情報収集も可能)

・バックアップ作成(Onlineでも可能ですが、時間的なリスクを考えるとCold BackupがBetter)・アップグレード

・バックアップ作成(Onlineでも可能ですが、時間的なリスクを考えるとCold BackupがBetter)・アップグレード

システム停止時間

・データベース・リンク経由

・ネットワーク環境の影響あり。途中で処理が失敗した場合の対処に注意

・断片化の解消が可能

・文字コード変換が可能

・移動の際に、表構成やデータの変更が可能

・断片化の解消が可能

・文字コード変換が可能

高速。(メタデータのみExp/Imp)。

・大容量の場合にはダンプファイルの分割も可能。

・断片化の解消が可能

・文字コード変換が可能

・データ・ファイル・ヘッダーのみを変更します。

・GUI・パラメータ等のチェック機能があります。

・データ・ファイル・ヘッダーのみを変更します。

その他

×

×

×

表の再編成

必要なし

必要なし

必要なし

必要なし

必要

必要

バックアップの必要性

○必要Unload&Load

○なしデータ・コピー

○(10gよりRMANを

利用して可能。EE

のみ)

必要(メタデータExp file)

TTS

○必要exp/imp

×なしアップグレード・ユーティリティ

×なしDBUA

他OSへ

の移行中間ファイルの作成

Page 20: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

20

新しいORACLE_HOMEの選択

Oracle 10gソフトウェアのインストールのために、新しい独立したORACLE_HOMEを作成します

– 既存のバージョンのORACLE_HOMEにはインストールできません

– 既存のORACLE_HOMEは、新しいORACLE_HOMEを作成した後でも

残しておくことができます

ORACLE_BASE 既存 ORACLE_HOME

1010gg用用 ORACLE_HOMEORACLE_HOME

データファイルHOME

CREATE!CREATE!

Page 21: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

21

バックアップ/テスト計画の作成

バックアップ計画立案の際の考慮点

– 本番データベースの実行不可能状態の時間的な許容範囲

– 可用性要件を満たすためのバックアップ計画

– 過去のアーカイブ・セットをいくつまで保持するか

– バックアップのリストア所要時間

– リカバリ手順の十分なテスト

Page 22: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

22

バックアップ/テスト計画の作成

アップグレードに必要な一連のテスト1. データベース・アップグレード・テスト

– テスト・データベース同士により試行する

2. 最小テスト– アプリケーションの一部のみを移植して試行する

3. 新機能テスト– 新機能と既存機能の動作確認

4. 統合テスト– ネットワークを含めたテスト(SQL*Net と Net8 等)

5. パフォーマンス・テスト

6. ボリューム/ロード・ストレス・テスト– 様々なボリューム・ロードでシミュレート

Page 23: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

23

アップグレード手順の概要

元データベース環境の記録元データベース環境の記録

  元データベースのバックアップ  元データベースのバックアップ

((OSOSのアップグレードのアップグレード))

1010ggデータベースのバックアップデータベースのバックアップ

運用再開運用再開

DBUADBUAExport / ImportExport / Import

Unload&LoadUnload&Loadデータコピーデータコピー

Page 24: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

24

データベース環境の記録

「データベース環境の記録」を取得する目的は、ファイル位置、初期化パラメータ等、バックアップやアップグレードの対象や、そこに必要な情報を把握することにあります。

情報収集には、OTNからダウンロードできる「データベー

ス管理ツール」を使用できます。– データベース管理ツールは、Unix(Linux)でのDBA作業をメインとした方

が効率良く作業できることを目的として作成されたShellスクリプトおよびSQLスクリプトです。

– サポートのないフリーツールです

– DBA用のディクショナリやチューニング等で検索する情報を画面やログ

として確認できます。

– OTNへのアクセスには事前登録(無料)が必要です。

Page 25: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

25

参考:OTNからのDB管理ツールの取得

http://http://otnotn.oracle.co..oracle.co.jpjp/sample_code/tech//sample_code/tech/dbadba/index.html/index.html

TOPページ → サンプルコード → Others(データベース運用/保守)

Page 26: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

26

データベース環境の記録

データベース管理ツールコマンド一覧

ora : 現在設定されている,ORACLEに関係する環境変数の表示。

sid : 現在の ACTIVEデータベース(SID)&Listenerの表示。

alive : 現在接続している DBの SESSION(USERのみ)情報の表示。

sp : INIT.ORAの情報の提示。(“SQL> show parameter“と同じ)

dbo (p) : データベースオブジェクトのディクショナリ。

plan (m) : SQL文のPATH表示 (Explain Plan)。

tkp [l/a] : トレースファイルの情報 (tkprof)。

Page 27: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

27

管理ツールコマンド“dbo” 使用イメージ

Show Database Configration

(*) shows many Query Pattern.

[ 1: Database Information ]

[ 2: Control File Information ]

[ 3: Redo log File Information ]

[ 4: Database File Information ]

[ 5: Tablespace Information ]

[ 6: Rollback Segment Information ]

[ 7: User Information ]

[ 8: Object Information (*)]

[ 9: Extent Information (*)]

[10: Table Information (*)]

[ q: Exit ]

Please Select Number :

Page 28: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

28

データベース環境の記録

取得すべきデータベース情報

– データベース・ファイル

– 制御ファイル

– REDOログファイル

– 移行対象スキーマ

– 移行対象オブジェクト

– 初期化パラメータ (INITファイルのコピー)

– tnsnames.ora、listener.ora

Page 29: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

29

AGENDA

1. 基本知識と用語

2. アップグレードに必要な準備

3. アップグレード作業手順DBUA

- DBUAの使用によるアップグレード

- アップグレード後の処理

Export/Import- Export/Import の使用手順

- 表領域移行(TTS) の使用手順

4. アプリケーションのアップグレード

Page 30: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

30

アップグレード手順の概要

元データベース環境の記録元データベース環境の記録

  元データベースのバックアップ  元データベースのバックアップ

((OSOSのアップグレードのアップグレード))

1010ggデータベースのバックアップデータベースのバックアップ

運用再開運用再開

DBUADBUAExport / ImportExport / Import

Unload&LoadUnload&Loadデータコピーデータコピー

Page 31: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

31

データベースのバックアップ

方法その1:コールド・バックアップの取得

– 移行の途中で何があっても復旧できるように、事前にバックアップを必ず取得します。

コールド・バックアップを推奨

– DBUAを使用する場合、ウィザードからRMANによる

事前バックアップが可能ですが、可能であれば別途OSコマンド(tar等) により、$ORACLE_HOME以下

の全ファイル、および全データベース・ファイルの取得することをお勧めします。

Page 32: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

32

データベースのバックアップ

方法その2:Full Export– 全体エクスポートによるバックアップの取得方法

– Export/Importによる移行の際には、この時点で取得したダンプフ

ァイルを使用できます。

– テープデバイスへの直接のExportは避けてください。

% exp system/<パスワード>  full=Y file=<ダンプファイル名> log=<LOGファイル名>

例:$ exp system/manager file=all806.dup log=all806.log full=Y

構文:

Page 33: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

33

AGENDA

1. 基本知識と用語

2. アップグレードに必要な準備

3. アップグレード作業手順DBUA

- DBUAの使用によるアップグレード

- アップグレード後の処理

Export/Import- Export/Import の使用手順

- 表領域移行(TTS) の使用手順

4. アプリケーションのアップグレード

Page 34: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

34

アップグレード手順の概要

元データベース環境の記録元データベース環境の記録

  元データベースのバックアップ  元データベースのバックアップ

((OSOSのアップグレードのアップグレード))

1010ggデータベースのバックアップデータベースのバックアップ

運用再開運用再開

DBUADBUAExport / ImportExport / Import

Unload&LoadUnload&Loadデータコピーデータコピー

Page 35: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

35

DBUA の内部処理

ターミナル・リリースへの

アップグレード

OS/Databaseの要件チェック

元データベースの起動

DBUAによるアップグレード処理

ログファイル確認

後処理

Database Upgrade Assistant でのアップグレード

ターミナル・リリース : 各メジャー・バージョンでの最終版

Page 36: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

36

DBUAを使用したアップグレード・パス

R7.3.3R7.3.3

R7.3.4R7.3.4

R8.0.3R8.0.3

R8.0.4R8.0.4

R8.0.5R8.0.5

R8.0.6R8.0.6

R8.1.5R8.1.5

R8.1.6R8.1.6

R9.0.1R9.0.1

R9.2.0R9.2.0

R8.1.7R8.1.7

Oracle 10Oracle 10gg (R10.1.0)(R10.1.0)

ターミナル・リリース ターミナル・リリース

ターミナル・リリース

Page 37: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

37

注記:本資料では、R8.0.5からR10.1.0へのバージョ

ンアップの、具体的手順についてガイドいたします。

作業内容i. R8.0.6(ターミナル・リリース)へのアップグレード

ii. DBUAを使用した10gへのアップグレード

Page 38: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

38

i.R8.0.6(ターミナル・リリース)へのアップグレード

バックアップ– SVRMGR を起動し、 CONNECT INTERNAL 接続します。

– “shutdown normal” でデータベースを停止します。

– データベース全体のバックアップを取得して下さい。

R8.0.5のアン・インストール(オプション)– 現行R8.0.5データベースのORACLE_HOMEと、R8.0.6データベースの

ORACLE_HOMEが同じ場合は、インストーラ orainst を用いて現行のリリースをアン・インストールして下さい。

別のORACLE_HOME に 8.0.6 をインストールする場合には、8.0.5 をアン・インストールする必要はありません

R8.0.6のソフトウェアをインストール– リリース8.0.6 で提供されている Installer を起動します。

– "Install, Upgrade, or De-Install Software"を選択して下さい。

– "Install New Product - Do Not Create DB Objects"を選択して下さい。

– プロンプトが表示されたら新しいORACLE_HOMEディレクトリを入力します

– インストールする製品を選択します。Install ボタンを選択しインストールを開始します。

ⅰ.ターミナル・リリース)へのアップグレード

Page 39: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

39

i.R8.0.6(ターミナル・リリース)へのアップグレード

初期化パラメータ・ファイルのコピー– initSID.ora ファイルを既存のディレクトリからコピーします。

– initSID.ora ファイル内に ifile エントリがある場合、ifileもコピーします。

– orapwSID など passwordファイルがある場合は、これもコピーして下さい。

– initSID.oraを修正し、ifile エントリが新しいバージョンのファイルを指定するように更新して下さい。

環境変数の設定確認– 以下の環境変数について、R8.0.6のインストールに対応した値になって

いるかを確認します。ORACLE_HOMEPATHORA_NLS33ORACLE_BASELD_LIBRARY_PATHORACLE_PATH (使用している場合)

ⅰ.ターミナル・リリース)へのアップグレード

Page 40: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

40

i. R8.0.6(ターミナル・リリース)へのアップグレード

データベース・オブジェクトのアップグレード– SVRMGRを起動しconnect internalで接続します。

– startup restrict でデータベースを起動します。

– 8.0.6 の$ORACLE_HOME/rdbms/adminディレクトリにあるスクリプトを実行して、DBオブジェクトのアップグレードを実施します

R8.0.3からのアップグレードの場合: u0800030.sqlR8.0.4からのアップグレードの場合: u0800040.sqlR8.0.5からのアップグレードの場合: u0800050.sql

– R8.0.5からの実行例 SVRMGR> @u0800050.sql– Advanced Replication を使用している場合はcatrep.sqlを実行して下さい

使用されていない場合は、実行の必要はありません。

Invalid になっているオブジェクトを再コンパイルutlrp.sql を実行して下さい。

– 必ずしも実行する必要はありませんが、実行をお勧めします。

ALTER SYSTEM DISABLE RESTRICTED SESSION を実施

– セッション制限を開放します。

ⅰ.ターミナル・リリース)へのアップグレード

Page 41: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

41

DBUAを起動するOSユーザーについて

移行元データベースのデータファイルへの読 み込み/書き込みのOS権限が必要です。

– OS権限が正しく付与されていない場合、DBUAの進行中にORA-27070が発生し、中断されます

DBUAを起動するOSユーザーが…1. 移行元データベースのインストール・ユーザーの時

– ユーザーの環境変数を、10gのインストールを行うORACLE_HOME、ORACLE_BASE等へ変更します

2. 新規の10gインストール・ユーザーの時

– 移行元データ・ファイルの読み/書き権限を新規ユーザへ付与するため、パーミッションをOSレベルで変更します。

ⅱ.DBUAを使用した10gへのアップグレード

Page 42: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

42

DBUAの使用にあたって

移行元データベースに必要な要件– SYSTEM表領域のサイズ

124MB以上が確保されている必要があります。

あらかじめ領域を確保してください。

– SYSTEMロールバック・セグメントのサイズ90MB以上が必要です。

DBUAから拡張できます。

– REDOログ・ファイルのサイズ各ファイルに4MB以上のサイズが必要です。

DBUAから拡張できます。

– TEMP表領域のサイズSYSユーザーの一時表領域に50M 以上のサイズが必要です。

あらかじめ領域を確保して下さい。

ⅱ.DBUAを使用した10gへのアップグレード

Page 43: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

43

DBUAの起動

Oracle Data Migration Assistant の起動– ウィザード起動コマンド

– 移行元のデータベースは、起動している必要があります。

Oratab内に記述されているデータベースをアップグレード対象として選択できます。(UNIX版のみ)

– Oratabに記述がない場合、以下のように記述を追加してください。

– OratabはSolarisの場合、/var/opt/oracleディレクトリに存在します。

$ dbua &

<インスタンス名>:<ORACLE_HOMEのパス>:<OSブート時の自動起動の可否>

例: ora806:/usr2/ora806/product:N

ⅱ.DBUAを使用した10gへのアップグレード

Page 44: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

44

参考 - OUIからの起動

10gインストール時に、「既存データベースのアップグレードを行う」を選択すると、OUIからDBUAを起動することができます。

ⅱ.DBUAを使用した10gへのアップグレード

Page 45: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

45

DBUAの実行 (1)Database Upgrade Assistant が起動されると、下記の画面が表示されます。

ⅱ.DBUAを使用した10gへのアップグレード

Page 46: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

46

DBUAの実行 (2)移行するデータベースを選択します。

– Oratabファイル内の記述されているデータベースがリストされます。

ⅱ.DBUAを使用した10gへのアップグレード

Page 47: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

47

DBUAの実行 (3)

NCHAR型への変換を推奨するアラート– NCHAR型への変換作業は、データベースのアップグレード完了後にも

行うことができます。

– 「はい」を選択して続行してください。

ⅱ.DBUAを使用した10gへのアップグレード

Page 48: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

48

DBUAの実行 (3)

SYSTEM表領域のチェック– SYSTEM表領域が124MB以上である必要があります

– DBUAから自動拡張できないので、別途コマンドラインからサイズの拡張を行う必要があります。

SYSTEMロールバック・セグメントのチェック– SYSTEMロールバックセグメントが90MB以上ある必

要があります。

– 「続行」をクリックすると、DBUAが自動拡張を行います。

REDOログファイルの拡張– 各REDOログファイルは4MB以上である必要がありま

す。

– 「はい」をクリックすると、現在のREDOログを削除して、新規のREDOログを作成します。

ⅱ.DBUAを使用した10gへのアップグレード

Page 49: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

49

DBUAの実行 (4)10gには、新たにSYSAUX表領域が必要になります。SYSAUX表領域を構成するデータファイル名とサイズを指定します。

ⅱ.DBUAを使用した10gへのアップグレード

Page 50: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

50

補足:SYSAUX表領域

SYSAUX表領域とは– Oracleで使用するオプション類を有効にするためのメタデータ

(ディクショナリ情報)を作成する表領域です。このメタデータはOracle8/8i/9iでは様々な表領域に格納されていました。

– LogminrはSYSTEM表領域、STATSPACKは任意の表領域、XMLDBはXML表領域…など

– Oracle 10g ではSYSAUX表領域は必須です。また削除、表領域名の変更、読み取り専用化はできません。

– メンテナンスの実行にはSYSDBA権限が必要です。 また、SYSAUX表領域の属性は以下のとおりで変更は出来ません。

PERMANENT(永続表領域) READ WRITE(読み書き可能) EXTENT MANAGEMENT LOCAL(ローカル管理) SEGMENT SPACE MANAGEMENT AUTO(自動セグメント領域管理:ASSM)

– SYSAUXにメタデータが格納された機能の情報についてはv$sysaux_occupants を参照します。

ⅱ.DBUAを使用した10gへのアップグレード

Page 51: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

51

DBUAの実行 (4)アップグレード後に自動でINVALIDオブジェクトのコンパイルを行うかを選択します。DBUAを使用せず、手動でコンパイルすることもできます。

ⅱ.DBUAを使用した10gへのアップグレード

Page 52: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

52

DBUAの実行 (5)DBUAによるアップグレード実行直前に、データベースの全体バックアップを実施するかを選択します。ONにするとアップグレードの失敗時に、DBUAから全体リストア

を実施できるため、お勧めです。

ⅱ.DBUAを使用した10gへのアップグレード

Page 53: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

53

DBUAの実行 (6)アップグレード後の10gデータベースを、OEMから管理するか選択します。

Grid ControlのAgentは自動的に検出されます。

ⅱ.DBUAを使用した10gへのアップグレード

Page 54: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

54

DBUAの実行 (6)アップグレード後の10gデータベースを、OEMから管理するか選択します。管理する場合には、DB Control か Grid Control のどちらかを選択します。

ⅱ.DBUAを使用した10gへのアップグレード

Page 55: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

55

DBUAの実行 (7)

アップグレード実行前の最終確認画面

ⅱ.DBUAを使用した10gへのアップグレード

Page 56: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

56

DBUAの実行 (8)

アップグレード実行中の画面 ~ ステータス確認

ⅱ.DBUAを使用した10gへのアップグレード

Page 57: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

57

DBUAの実行 (9)

アップグレード実行中の画面 ~ 処理の完了

ⅱ.DBUAを使用した10gへのアップグレード

Page 58: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

58

DBUAの実行 (10)

ⅱ.DBUAを使用した10gへのアップグレード

Page 59: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

59

DBUA実行後の処理

2. 初期化パラメータの変更

COMPATIBLE = 9.2.0 ⇒ COMPATIBLE = 10.0.0

1. ログファイルの確認

場所:$ORACLE_BASE/admin/<インスタンス名>/upgrade

Backup.log (オプション) RMANによるバックアップのログ

PreUpgrade.log アップグレード前処理のログ

Oracle_Server.log アップグレード処理結果ログ

UpgradeResults.html DBUAの最後で表示される結果のレポート

PostUpgrade.log アップグレード後処理のログ

emRepository.log (オプション) OEM構成時のログ

ⅱ.DBUAを使用した10gへのアップグレード

Page 60: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

60

COMPATIBLEパラメータについて

COMPATIBLE 初期化パラメータとは

– データベースの互換性を制御のためのパラメータです。

– このパラメータ値が10.0.0でない場合、一部の10gの新機能は使用でき

ません。

アップグレード作業に際してのパラメータ値の注意

– Oracle Database 10gへ、手動で(アップグレード・ユーティリティを使用して)アップグレードする際には、COMPATIBLE 初期化パラメータを9.2.0 (Oracle Database 10g リリース1(10.1)の最小設定値)に設定する必要が

あります。

– アップグレードが完了してから、この値を10.0.0へ書き直します。

データベースのバージョン デフォルト値 最小値 最大値

Oracle8 8.0.6 8.0.0 8.0.0 8.0.6

Oracle8i 8.1.7 8.0.0 8.0.0 8.1.7

Oracle9i R2(9.2) 8.1.0 8.1.0 9.2.0

Oracle Database 10g R1(10.1) 10.0.0 9.2.0 10.0.0

バージョンによるCOMPATIBLE 初期化パラメータの違い

ⅱ.DBUAを使用した10gへのアップグレード

Page 61: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

61

アップグレード後の作業一覧

I. Oracle8i (8.1.7)、Oracle8 (8.0.6)からOracle10gへのアップグレード後の作業

1. NCHAR型の変換

2. Server Manager用スクリプトの移行

3. LONG型からLOB型への移行(推奨)

4. DBMS_STATS パッケージで作成された統計表のアップグレード

II. Oracle8 (8.0.6)からOracle10gへのアップグレード後のみに必要な作業

1. 使用禁止のファンクション索引の再構築

2. マテリアライズド・ビューのアップグレード

3. パラレル実行のためのパラメータ調整

4. キュー表のアップグレード

5. リカバリ・カタログのアップグレード

Page 62: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

62

R8.1.7/R8.0.6からのアップグレード後の処理①

1. NCHAR型の変更– データベースにNCHAR型の列を持つ表が含まれている場合は、

列をアップグレードする必要があります。

– NCHAR型のアップグレードには、utlnchar.sql スクリプトを実行

します。

– デフォルトでアップグレードに選択された各国語キャラクタ・セットを上書きするには、n_switch.sql スクリプトを実行します。

– 上記の2つのスクリプトは$ORACLE_HOME/rdbms/admin ディ

レクトリに格納されています。

– 実行後はデータベースを再起動してください。

Page 63: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

63

R8.1.7/R8.0.6からのアップグレード後の処理②

2. Server Manager 用スクリプトの移行– Server Manager (svrmgrl コマンド) はR9.0.1以降サポートされて

いません。

– Server Manager を使用したラインモード・スクリプトを、SQL*Plusへ対応した形へ変更する必要があります。

3. LONGからLOBへの移行– LONG データ型の、LOB データ型(BFILE、BLOB、CLOB お

よびNCLOBへの移行を推奨します。

– 各データ型の相違については、「Oracle Database 概要」をご覧く

ださい。

Page 64: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

64

R8.1.7/R8.0.6からのアップグレード後の処理②

4. DBMS_STATS パッケージで作成された統計表のアッ

プグレード– DBMS_STATS.CREATE_STAT_TABLEを使用して統計表を

作成した場合、この表をアップグレードする必要があります。

– ユーザー作成の各統計表にこの処理を実施する必要があります。

EXECUTE DBMS_STATS.UPGRADE_STAT_TABLE (‘<統計表所有ユーザー>’, ‘<統計表名>’)

Page 65: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

65

R8.0.6からのアップグレード後の処理①

1. 使用禁止のファンクション索引の再構築– アップグレードで一部のファンクション索引が使用禁止になることがあります。

– 次のSQL 文を発行し、リストされたファンクション索引の再構築が必要です。

2. マテリアライズド・ビューのアップグレード– Oracle 8 からアップグレード or インポートされたマテリアライズド・ビューでは、Oracle

8i 以上でサポートされるサマリー管理機能を使用できません。

– アップグレードにはALTER MATERIALIZED VIEW ENABLE QUERY REWRITEを発

行します。

SELECT owner, index_name, funcidx_status FROMdba_indexes WHERE funcidx_status = 'DISABLED';

Page 66: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

66

R8.0.6からのアップグレード後の処理②

3. パラレル実行のためのパラメータ調整– Oracle8i 以上では、パラレル実行のメッセージ・バッファはラージ・プー

ルから割り当てられます。以前のリリースでは、共有プールから割り当てられていました。この変更により発生する問題を避けるために、初期化パラメータ・ファイルの次のパラメータを調整する必要があります。

SHARED_POOL_SIZE、LARGE_POOL_SIZE

4. キュー表のアップグレード– Oracle8i以降で実装されたAQ拡張機能を使用する場合には、キュー表

のアップグレードが必要です。

–  DBMS_AQADM.MIGRATE_QUEUE_TABLEパッケージを使用します。

5. リカバリ・カタログのアップグレード– Oracle Databaseバックアップおよびリカバリ・アドバンスト・ユー

ザーズ・ガイドを参照して下さい。

Page 67: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

67

AGENDA

1. 基本知識と用語

2. アップグレードに必要な準備

3. アップグレード作業手順DBUA

- DBUAの使用によるアップグレード

- アップグレード後の処理

Export/Import- Export/Import の使用手順

- 表領域移行(TTS) の使用手順

4. アプリケーションのアップグレード

Page 68: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

68

アップグレード手順の概要

元データベース環境の記録元データベース環境の記録

  元データベースのバックアップ  元データベースのバックアップ

OSOSのアップグレードのアップグレード

1010ggデータベースのバックアップデータベースのバックアップ

運用再開運用再開

DBUADBUAExport / ImportExport / Import

Unload&LoadUnload&Loadデータコピーデータコピー

Page 69: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

69

Export/Importによるアップグレード

3通りのパスが存在します。

– 全体移行

– ユーザー/表単位での移行

– 表領域移行

Page 70: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

70

Export/Importによる全体移行

全体エクスポート/インポートを使用した10gへの

全体移行では、移行元のバージョンが限定されています

– 対象となる移行バージョン

Oracle8 R8.0.6Oracle8i R8.1.7Oracle9i R9.0 / R9.2

注:DBUAを使用する場合と同様です。

Page 71: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

71

Export/Importによる全体移行

全体エクスポート・コマンド (元データベースで実施)

全体インポート・コマンド (10gで実施)

注意:– 全体インポートの際、移行元データベースと同じパス位置にデータベース・

ファイルが作成されます。また、Importユーティリティは指定されたファイルの作成は行いますがディレクトリの作成は行いません。

既に同名のファイルがある場合、あるいはディレクトリが存在しない場合は、エラーが出力されます。

– したがって事前に既存のデータベース・ファイルをすべて移動させるか、別環境上である場合は全く同じパスのディレクトリ作成が必要です。

% exp system/<パスワード>  full=Y file=<ダンプファイル名> log=<LOGファイル名>例:$ exp system/manager full=Y file=all806.dup log=all806.log

% imp system/<パスワード>  full=Y dumpfile=<ダンプファイル名> logfile=<LOGファイル名>例:$ imp system/manager full=Y file=all806.dup log=imp101.log

Page 72: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

72

Export/Importによる部分移行

ユーザー単位/表単位の移行

– 既存のデータベース環境を整理しながら移行する場合や、データベースサイズが非常に大きい場合には、「ユーザー単位の移行」や「表単位の移行」が非常に有効です。

– 大規模データベースの移行時には、「表単位の移行」が特に有効です。

– 基本的にバージョンに依存しません。

– SYSユーザー/SYSTEMユーザーの移行は、移行後のデータベ

ースでの管理情報の整合性がとれなくなる可能性がありますので、行ってはいけません。

Page 73: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

73

Export/Importによる部分移行

先に紹介したデータベース環境の記録に加えて、以下の情報の取得を推奨します。

– ユーザー情報の記録

– ロールとシステム権限の情報の記録

– プロファイル情報の記録

– リソース・コスト情報の記録

– パブリック・シノニム情報の記録

– パブリック・データベース・リンクの記録

情報の取得にあたっては、「データベース管理ツール」を使用できます。

Page 74: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

74

ユーザー単位の移行

インポートの事前準備1. データベース作成

2. 表領域の作成

3. ロールバック・セグメントの作成

4. ロール、プロファイルの作成

5. リソースコストの設定

6. ユーザーの作成

7. ロール、ユーザーにシステム権限の付与

8. パブリック・データベース・リンク、パブリック・シノニムの作成

※ 全エクスポートの場合は上記が自動的に作成されますが、ユーザ

ー単位の場合には、これらを手動で作成する必要があります。

Page 75: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

75

ユーザー単位の移行

ユーザー・エクスポート・コマンド

ユーザー・インポート・コマンド

% exp system/<パスワード> file=<ダンプファイル名> log=<ログファイル名>     owner=<所有者ユーザー>

$ exp system/manager file=user01.dup log=user01.log owner=scott

% imp system /<パスワード> fromuser=<ユーザー名> touser=<ユーザー名>  file=<ダンプファイル名> log=<ログファイル名>

コマンドはSYSTEMユーザーで実施します。

全エクスポートされたダンプファイルからサブセットとして抜き出してImportすることも可能です。

fromuser=xxx ・・・インポートしたいユーザースキーマ。

touser=xxx ・・・新しく所有するユーザースキーマ。

$ imp system/manager fromuser=james touser=scott file=user.dmp log=userimp.log

Page 76: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

76

ユーザー単位の移行

ユーザーおよび表単位での移行手順は、全体エクスポートよりもオペレーションが若干複雑になるためユーザーミスを誘発する可能性があります。

これを回避する方法として、一旦、データベースの表データ以外を Full Export し、移行先のデータベースにイン

ポートを行うことで作業を簡略化することが可能です。

Page 77: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

77

ユーザー単位の移行

1. データベースの表データ以外を全エクスポート

2. ユーザー単位のエクスポートを実施

3. インポートの準備

4. ユーザー単位のインポートを実施

$ exp system/<password> file=full.dmp log=fullexp.log full=y rows=n

$ exp system/<password> file=user.dmp log=userexp.log owner=JAMES

$ imp system/<password> full=y file=full.dmp log=fullimp.log

$ imp system/<password> fromuser=JAMES touser=SMITH file=user.dmp log=userimp.log

※インポートの際、表に付与されている制約があるとエラーになります。この場合には、エクスポート時に制約を無効(disable)にし、インポート後に有効にします。

Page 78: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

78

表単位の移行

表のエクスポート

表のインポート

$ exp scott/tiger file=scotts.dmp log=scotts.log tables=salary

コマンドは表の所有ユーザーで実施します

全エクスポートされたダンプファイルからサブセットとして抜き出してImportすることも可能です。

% exp <表所有者>/<パスワード> file=<ダンプファイル名> log=<ログファイル名> tables=<表名>

$ imp scott/tiger file=scotts.dmp log=scotts.log tables=salary

% imp <表所有者>/<パスワード> file=<ダンプファイル名> log=<ログファイル名> tables=<表名>

Page 79: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

79

トランスポータブル表領域(TTS)

トランスポータブル表領域(TTS)とは– 一連の表領域をあるデータ ベースからExportし、他のデータベ

ースにImportして移動できます。

– Oracle8i、9iからのアップブレードには、TTSを使用することがで

きます。

Oracle8からのアップグレードでは使用できません。

移行元、移行先のデータベースはそれぞれ同一種類のOSで稼動している必要があります。(OSの バージョン違いは可)

Oracleのバージョン8.1.xの場合、移行元、移行先のデータベースは同じブロック・サイズ (db_block_size)である必要があります。

– バージョン9.0以降の場合は、マルチ・ブロック・サイズ機能によって、異なるブロック・ サイズのデータベースへも移行できます。

移行元、移行先のデータベースは同じキャラクターセットである必要があります。

Page 80: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

80

トランスポータブル表領域(TTS)

1. 自己完結型の選択– 自己完結型とは外部の表領域に対して参照を持たない表領域のこと

です。トランスポートできるのは、自己完結型の表領域セットのみですので、これを判断する為には、次のコマンドを発行し確認します。

– ここでデータが表示された場合、外部に対して参照を持っている事が分かります。したがってその表領域をTTSで移動させる

ことはできません。

SQL> connect sys/change_on_install

SQL> exec dbms_tts.transport_set_check('<表領域名>', TRUE)

SQL> select * from transport_set_violations;レコードが選択されませんでした。

Page 81: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

81

トランスポータブル表領域(TTS)

2. コピー元の表領域を読取専用に変更

3. エクスポート

– AS SYSDBA でエクスポートする必要があります。ユーザー名の指定にスペースが入る為、 ¥(バックスラッシュ)と‘ (シングル・クオート) で括って下さい。

SQL> alter tablespace <表領域名> read only;

$ exp ¥'sys/change_on_install as sysdba¥' transport_tablespace=y ¥

> tablespaces=<表領域名> file=expmeta.dmp log=expmeta.log

Page 82: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

82

トランスポータブル表領域(TTS)

4. コピー元の表領域を書込みモードに戻します

5. コピー先のデータベースにインポートします

– Oracle 8i では、デフォルトの各国語キャラクタ・セットは、データベースのキャラクタ・セットと同じですが、Oracle 9i / 10g では、デフォルトの AL16UTF16、またはUTF8 であるため、Oracle 8i でエクスポートしたトランスポータブル表領域をOracle 9i / 10gにインポートしたときにエラーが発生します。

SQL> ALTER TABLESPACE XXXX READ WRITE;

$ imp ¥'sys/change_on_install as sysdba¥' transport_tablespace=y ¥

> datafiles=‘<copyしたデータファイルのフルパス>’ ¥

> file=expmeta.dmp log=impmeta.log

Page 83: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

83

アップグレード手順の概要

元データベース環境の記録元データベース環境の記録

  元データベースのバックアップ  元データベースのバックアップ

OSOSのアップグレードのアップグレード

1010ggデータベースのバックアップデータベースのバックアップ

運用再開運用再開

DBUADBUAExport / ImportExport / Import

Unload&LoadUnload&Loadデータコピーデータコピー

Page 84: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

84

10gデータベースのバックアップ

全体バックアップの取得– データベースを10gへアップグレードした後、リカバリ

ーの起点となる全体バックアップ(コールド・バックアップ)を取得します。

– OSコマンドを使用する場合、10gのORACLE_HOME以下すべてのファイル、全データファイル(SYSAUXを構成するファイルを含む)、SPFILEをバックアップしま

す。

Page 85: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

85

AGENDA

1. 基本知識と用語

2. アップグレードに必要な準備

3. アップグレード作業手順DBUA

- DBUAの使用によるアップグレード

- アップグレード後の処理

Export/Import- Export/Import の使用手順

- 表領域移行(TTS) の使用手順

4. アプリケーションのアップグレード

Page 86: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

86

プリコンパイラ・アプリケーションの    アップグレード

Pro*C、Pro*COBOL、OCI アプリケーション

– プリコンパイル⇒コンパイル⇒リンク

互換性規則(規則1) クライアント環境を変更しない場合、再リンク不要

(規則2) クライアントアプリケーションは新リリースのサーバーに対してそのまま実

行できる

(規則3) プリコンパイル済み、コンパイル済みのアプリケーションはより新しいライブ

ラリと再リンク可能

(規則4) アプリケーションは3桁目(Oracle9i,10gでは2桁目)のアップグレードで再リン

ク不要

(規則5) クライアントをダウングレードするならば、常に再プリコンパイル

(規則6) プリコンパイル、コンパイル、リンクは同一プラットフォームで実行

(規則7) 同一OS、バージョンであれば、別のクライアント環境への配置可能

Page 87: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

87

プリコンパイラ・アプリケーションの    アップグレード

選択肢1:アプリケーションを変更しない– 例えば、Oracle8iで開発したアプリをOracle9i/10g で

継続動作させるケースです。

– クライアントのアップグレードは不要です

– 単純、簡単、管理コスト削減が実現できます

– Oracle9i/10gの新機能や、パフォーマンス・メリットを

活用できません

Page 88: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

88

プリコンパイラ・アプリケーションの    アップグレー

選択肢2:アプリケーションを新しい Oracle9i/10g

ライブラリと再リンクさせる– コード変更なし、再コンパイルなしで Oracle9i/10g ライ

ブラリに再リンクする方法です。

– パフォーマンスの若干の向上を見込めます

Page 89: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

89

プリコンパイラ・アプリケーションの    アップグレード

選択肢3:プリコンパイルからやり直す

– コード変更せずプリコンパイルからやり直す方法です

– パフォーマンスの向上が見込まれます

– 以前のバージョンで検出できなかった問題を検出することがあります

Page 90: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

90

プリコンパイラ・アプリケーションの    アップグレード

選択肢4:コード変更し、Oracle9i/10g 新機能を

取り込む

– Oracle9i/10g の機能のメリットを活かすことができます

– パフォーマンスとスケーラビリティを最大化することができます

– コード変更のコストが一番高い方法です

Page 91: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

91

その他 アプリケーションの移行

PL/SQLの移行について– PL/SQLプログラムについては、各バージョンにおいて完全な下

位互換がとられています。万が一動作が変わるなどのトラブルが発生した場合はサポート・センターまでお問い合わせ下さい。

その他プログラム・インターフェースについて– ODBC、OO4O、JDBCなど、PL/SQL以外のプログラム・インタ

ーフェースでは、バージョンによって使用不能にされたクラスや関数があります。

– 使用しているアプリケーションで、移行後のプログラム・インターフェースで無効化された機能があるか、マニュアル等で確認してください。

Page 92: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

92

日本語列名・表名を操作するSQLの変更

日本語の列名や表名を扱うSQLの変更– Oracle8i R8.1.6以降のバージョンにおいて、日本語の指定に,

“(ダブルクォーテーション)を使用しなければならない仕様となって

います。

– 日本語列名・表名を使用している場合、R8.1.5以前のバージョンからDatabase 10gへバージョンアップに際しては、SQL文で列名と表名を記述する際に “(ダブルクォーテーション)にて囲むよう、変

更していただく必要があります。

SQL> select  “商品名” , “ 商品ID” , “ 価格”  from  “商品マスター” ;

Page 93: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

93

新しい文字コード

JA16SJISTILDE と JA16EUCTILDE – “~”の文字化けが、Oracle R9i (R9.0.1.4以上、Oracle R9.2以

上)とWindowsとの間で、SJISとUnicode間で文字コード変換を

行う際に発生します。

WINDOWSとOracleの間でのUnicodeの対応が異なるために発生

しまする問題です。

– Windows上のUnicodeに対応するように、Oracle9i、10g では、JA16SJISTILDE と JA16EUCTILDE という2つの新しい文字コ

ードを実装しています。

たとえば、文字化けが発生する時点で、文字コード設定が「JA16SJIS」になっているのであれば、それを「JA16SJISTILDE」に変更することで問題を解決できます。

Page 94: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

94

Server Managerの廃止

Server ManagerはOracle9i 以降ではサポートされていません。

これまでServer Managerを使用していた管理やスクリプトは、SQL*Plusで実行します。

– 例:接続の方法の違いServer Manager

1. $ svrmgrl2. $ SVRMGR >connect <user>/<password>

SQL*Plus1. $ sqlplus /nolog2. SQL> connect /as sysdba

  あるいは

1. $ sqlplus <user>/<password>

Server Manager とSQL*Plus は、両方のプログラムでほぼ同じコマンドを共有しています

– 詳細の差分ついては“Oracle Database アップグレードガイド 10g、R10.1”  APPENDIX-B [Server Manager からSQL*Plus への移行]をご覧下さい。

Page 95: Oracle10gへのアップグレードotndnld.oracle.co.jp/products/database/oracle10g/pdf/10g...9 Oracle 10g 新機能の理解 y最初に10gの新機能を理解する必要があります。

日本オラクル株式会社

無断転載を禁ず

この文書はあくまでも参考資料であり、掲載されている情報は予告なしに変更されることがあります。日本オラクル社は本書の内容に関していかなる保証もいたしません。また、本書の内容に関連したいかなる損害についても責任を負いかねます。

Oracleは米国Oracle Corporationの登録商標です。文中に参照されている各製品名及びサービス名は米国Oracle Corporationの商標または登録商標です。その他の製品名及びサービス名はそれ

ぞれの所有者の商標または登録商標の可能性があります。