Oracle SQL Developer 3.1を使用したデータベースのコピー

概要

    目的

    このチュートリアルでは、Oracle SQL Developer 3.1でデータベース・コピー機能を使用する方法について説明します。

    所要時間

    約15分

    はじめに

    Oracle SQL Developerは、生産性を向上させ、データベース開発作業を簡素化する無償のグラフィカル・ツールです。 Oracle SQL Developerを使用すると、提供されているものでも作成したものでも、データベース・オブジェクトの参照、SQL文の実行、PL/SQL文の編集とデバッグ、およびレポートの実行を行うことができます。

    Javaで開発されたOracle SQL Developerは、Windows、Linux、およびMac OS X上で稼働します。これは、さまざまなプラットフォームを使用する開発者が増加している現状において大きな利点となります。 また、複数のプラットフォームがサポートされているため、ユーザーはデータベース・サーバーにOracle SQL Developerをインストールし、デスクトップからリモート接続することで、クライアント・サーバーによるネットワーク・トラフィックを回避できます。

    Oracle SQL Developer 3.1のデータベース・コピー機能は、1つのデータベースまたはスキーマから別のデータベースまたはスキーマにオブジェクトとデータをコピーするために使用する新機能です。 この例では、'HR'データベース・スキーマ・オブジェクトが'HR_COPY'という名前の別のデータベース・スキーマにコピーされます。

    ハードウェアとソフトウェアの要件

    ソフトウェア要件は、以下のとおりです。

    前提条件

    このチュートリアルを始める前に、以下のことを実行しておく必要があります。

    • OTNからOracle SQL Developer 3.1をインストールする。 ここに記載されているREADMEの手順に従います。
    • Oracle Database 11gをサンプル・スキーマとともにインストールする。
      注: データベース・コピー機能は、10gのインスタンスでも機能します。
    • HRユーザーのロックを解除する。 Oracle SQL DeveloperにSYSユーザーとしてログインし、以下のコマンドを実行します。
      alter user hr identified by hr account unlock;

コピー元とコピー先のデータベース・スキーマへのデータベース接続の作成

    Oracle SQL Developer 3.1を使用してデータベース・オブジェクトを管理するための最初の手順は、データベース接続を作成することです。
    以下の手順を実行して、コピー元のデータベース・スキーマとコピー先のデータベース・スキーマのデータベース接続を作成します。
    注: コピー元とコピー先のデータベース接続をすでに作成している場合は、「データベース・コピー機能の使用」に進みます。

    デスクトップにOracle SQL Developerアイコンへのショートカットをインストールしている場合は、このアイコンをクリックしてOracle SQL Developerを起動し、手順4に進みます。デスクトップにアイコンがない場合は、以下の手順を実行して、デスクトップからOracle SQL Developer 3.1を起動するショートカットを作成します。

    SQL Developer 3.1が配置されているディレクトリを開いて、sqldeveloper.exe(Windowsの場合)またはsqldeveloper.sh(Linuxの場合)を右クリックし、「Send to」、「Desktop (create shortcut)」の順に選択します。

    デスクトップに、Shortcut to sqldeveloper.exeという名前のアイコンが表示されます。 アイコンをダブルクリックしてOracle SQL Developer 3.1を起動します。
    注: アイコンの名前を変更するには、アイコンを選択してから、[F2]を押して新しい名前を入力します。

    Oracle SQL Developerが起動します。

    Connectionsナビゲータで、「Connections」を右クリックし、「New Connection」を選択します。

    New / Select Database Connectionダイアログ・ボックスが開きます。 以下の接続情報を入力し、「Test」をクリックします。 この接続は、データベース・オブジェクトをコピー先のスキーマにコピーする、コピー元のデータベース・スキーマを指定するためのものです。 この例では、'hr'スキーマ・オフジェクトがコピーされます。

    Connection Name: Demo - HR
    User Name: hr
    Password: <hrのパスワード>
    Hostname: localhost
    SID: <データベースのSID>

    左下(Helpボタンの上)で接続のステータスを確認します。 Successと表示されているはずです。 「Save」をクリックしてから、「Connect」をクリックします。

    接続が保存されて、Connections一覧に新しく作成した接続が表示されます。

    新しいスキーマを作成するためには、まず、sysとして接続し、ユーザーに必要な権限を付与する必要があります。 Connectionsナビゲータで、「Connections」を右クリックし、「New Connection」を選択します。

    以下の接続情報を入力し、「Test」をクリックします。

    Connection Name: sys
    User Name: sys
    Password: <sysのパスワード>
    Role: SYSDBA
    Hostname: localhost
    SID: <データベースのSID>

    左下(Helpボタンの上)で接続のステータスを確認します。 Successと表示されているはずです。 「Save」をクリックしてから、「Connect」をクリックします。

    新しいスキーマを作成するためには、sysワークシートに以下のコマンドを入力し、「」RunScriptをクリックします。

    create user hr_copy identified by hr;
    grant connect, resource, create session, unlimited tablespace to hr_copy;


    スクリプトの出力に、ユーザーが正しく作成され、権限の付与に成功したことが表示されます。


    'hr'スキーマを新しく作成したスキーマ'hr_copy'にコピーするためには、新しいデータベース接続を作成する必要があります。 「Connections」を右クリックし、「New Connection」を選択します。

    以下のコピー先のデータベース・スキーマの接続情報を入力し、「Test」をクリックします。

    Connection Name: Demo - HR_COPY
    User Name: hr_copy
    Password: hr
    Hostname: localhost
    SID: <データベースのSID>

    左下(Helpボタンの上)で接続のステータスを確認します。 Successと表示されているはずです。 「Save」をクリックしてから、「Connect」をクリックします。

    接続が保存されて、Connections一覧に新しく作成した接続が表示されます。

データベース・コピー機能の使用

    データベース・コピー機能では、5つの手順から成るDatabase Copy Wizardウィンドウが開きます。

    Tools」をクリックし、「Database Copy」を選択します。

    手順1-Source / Destination: この手順を使用して、コピー元の接続とコピー先の接続を設定します。 Database Copy Wizardウィンドウで、Source Connectionとして「Demo - HR」を選択し、Destination Connectionとして「Demo - HR_COPY」を選択して、「Next」をクリックします。




    手順2-Object Types: この手順で、コピー先のスキーマにコピーするオブジェクト・タイプを選択できます。 Database Copy Wizardウィンドウで、コピー先のスキーマにコピーするオブジェクト・タイプを選択します。 含める必要がないオブジェクト・タイプの選択を解除します。 「Next」をクリックします。

    手順3-Specify Objects: この手順で、コピー先のスキーマにコピーするデータベース・オブジェクトを指定します。 Database Copy Wizardウィンドウで、含める必要があるオブジェクトを指定します。 Nameempと入力し、"emp"で始まるすべてのオブジェクトが返されるように「%」ボックスをオンにします。 「Lookup」をクリックします。


    EMPLOYEES表を選択し、右矢印キーをクリックして、EMPLOYEES表をコピー先のスキーマにコピーする必要があることを指定します。


    手順4-Specify Data: この手順を使用して、指定のオブジェクトからコピーする必要があるフィルタされたデータを指定します。 EMPLOYEES表からsalary列の値が10,000未満の行のみコピーするには、「HR.EMPLOYEES」データベース・オブジェクトを選択し、Object Whereタブの「」をクリックしてEMPLOYEES表に場所の条件を適用します。

    Data Whereウィンドウで、Object Whereの条件にsalary < 10000と入力します。 「Goをクリックします。給与が10,000未満の従業員のデータがフィルタされます。

    データを表示してから、「OK」をクリックします。

    Next」をクリックします。

    手順5-Copy Summary: この手順で、必要なすべてのオブジェクトがコピーされたことを確認します。 「Connections」タブを展開し、コピー元の接続とコピー先の接続が正しいことを確認します。 同様に、他のノードを展開し、すべてのオプションが正しく設定されていることを確認してから、「Finish」をクリックします。



    データベースの概要が含まれたデータベース・コピー・ログが生成されます。

コピー先のデータベース・スキーマ内のコピー・データの表示

    コピー先のスキーマ内のコピーされたオブジェクトを表示できます。

    Connectionsノードで、コピー先の接続を展開します。この場合、 「Demo - HR_COPY」を展開します。

    Tables」を展開し、「EMPLOYEES」を選択します。 「Data」をクリックします。

    給与が10000未満の従業員のみコピーされたことを確認するため、Filterタブで salary > 10000と入力し、[Enter]キーを押します。


    給与が10,000以上の従業員は含まれていません。つまり、データには、給与が10,000未満の従業員のみ含まれています。

まとめ

    このチュートリアルで学習した内容は、以下のとおりです。

    • コピー元スキーマとコピー先スキーマのデータベース接続を作成する
    • データベース・コピー機能を使用して、あるデータベース・スキーマから別のデータベース・スキーマにデータをコピーする
    • コピー先スキーマ内のコピー・データを表示する

    参考資料

    • Oracle SQL Developer 3.1の詳細については、OLL Webサイトの他のOBEを参照してください。

    著者

    • カリキュラム主要開発者: Anupama Mandya
    • 共著者: Jeff Smith、Ashley Chen

このOracle by Exampleをナビゲートする際、以下の機能を使用できます。

ヘッダー・ボタンの非表示:
ヘッダー内のボタンを非表示にするには、タイトルをクリックします。 ボタンを再表示するには、もう一度タイトルをクリックします。
トピック一覧ボタン:
すべてのトピックの一覧です。 いずれかのトピックをクリックすると、その項に移動します。
すべてのトピックを開く/閉じる:
すべての項に対する詳細を表示または非表示にします。 デフォルトでは、すべてのトピックが閉じられています。
すべてのイメージを表示/非表示:
すべてのスクリーンショットを表示または非表示にします。 デフォルトでは、すべてのイメージが表示されています。
印刷:
コンテンツを印刷します。 現在表示または非表示にされているコンテンツが印刷されます。

このチュートリアルの特定の項に移動するには、一覧からトピックを選択してください。