SQL Server DBAからOracleに移行する方法は?


30

関心として、SQL Server DBAからOracleに移行する場合、私がしなければならない主要な学習または非学習は何ですか?

概念は同じで、違いはプログラミング言語だけであると思いますが、ドアの向こう側を見たことはありません。



1
ちょっとしたユーモア(OTならごめんなさい)、会ったことがありますか?dba.stackexchange.com/questions/16884/...
booyaa

回答:


40

OracleとSQL Serverには、アーキテクチャと慣用の多くの違いがあり、ドキュメントではいくつかの重要な用語が異なって使用されています。私がこれを行ってからかなりの年が経ちましたが、いくつかの主要な慣用的な違いは次のとおりです。

  • Oracleにはtempdbに直接相当するものはありません。グローバル一時テーブルは永続的なエンティティであり、SQL Serverの一時テーブルのようにオンザフライで作成することはありません。

  • 慣用的なPL / SQLは、慣用的なT-SQLよりもはるかに手続き的です。一方、PL / SQLには、並列ループ構造を含む高速カーソル操作をサポートする機能があります。多くの場合、中間カーソルの結果は、SQL Serverで一時テーブルを使用するソートと同様の方法で使用されます。'%'を使用して、カーソル変数型のポリモーフィズムを取得する方法を調べてください。

  • SQL * Plusは、SQLCMDに似たコマンドラインツールです。バニラのインストールでは、それがあなたが利用できるすべてであるかもしれません。SSMSのようなGUIツールが必要な場合は、SQL DeveloperまたはTOADなどのサードパーティツールを入手できます。TOADは非常に高価です。

  • ロールバックセグメント(OracleのMVCCで使用)の役割と、「スナップショットが古すぎる」エラーの喜びを学びます。

  • 可能であれば、メタリンクアカウントを取得します。

  • コンセプトガイドをお読みください。多くの有用なスターター情報があります。

  • テーブルスペースは、ファイルグループとほぼ同等です。

  • SQLとPL / SQLに組み込まれたSQLダイアレクトは、Oracleではまったく同じものではありません。

  • Oracleはごく最近まで再帰的なCTEをサポートしていませんでした。CONNECT BYを使用して再帰クエリを実行できます。

  • RMANのドキュメントを読んで、バックアップの方法を確認してください。差分バックアップを単一の復元可能なバックアップにマージするなど、いくつかの巧妙なトリックを実行できます。

  • システムデータディクショナリには、テーブルの「ALL」、「USER」、および「DBA」バージョンがあります。「USER_ 」は、ログインが所有するオブジェクトを示します。「ALL_」は、ログインが読み取ることができるすべてのオブジェクトを示します。「DBA_ *」はグローバルビューですが、それを表示するには適切な権限が必要です。SQL ServerよりもOracleの方がデータディクショナリを使用する可能性が高いので、知っておいてください。

  • クラスタ化されたテーブルは、Oracleでは「インデックス順テーブル」と呼ばれます。Oracleの「クラスター化テーブル」は、非常に異なる機能を指します。Oracleでは、クラスタ化された表は、共通キーに基づいてマスター/詳細表の物理記憶域を混合できる機能です。この機能は広く使用されていません。

  • インデックス付きビューは、Oracleでは「マテリアライズドビュー」と呼ばれます。それらは、彼ら自身の質問に値するのに十分な微妙なニュアンスで、いくらか異なって働きます。

  • Oracleには、SQL Serverの「データベース」に相当する概念がありません。Oracleでは、スキーマは一部のデータベースオブジェクトの単なる所有者です。

  • PL / SQLには、「パッケージ」と呼ばれる明示的なモジュール構造があります。

  • ID列の代わりにシーケンスを使用して見てください。

  • クエリプランの取得は、Oracleの古いバージョン(10gより前)では少し面倒です。プランをダンプするための(正しい形式の)テーブルを作成し、クエリプランを取得するためにクエリをテーブルに 'EXPLAIN PLAN'する必要があります。その後、テーブルからクエリプランを取得できます。みんなと彼らの犬には、お気に入りのクエリプランクエリがあります。グーグル検索を実行して検索し、試してみてください。10gはdbms_xplanというパッケージを追加しました。これにより、クエリプランの操作が簡単になります。

  • UNIXまたはLinuxホストでOracleを実行している場合、シェルスクリプトの実用的な知識があれば害はありません。

  • Oracleは自律型トランザクションをサポートしています-内部の自律型トランザクションをコミットし、親がロールバックしてもコミットされたままになることを期待できます。SQL Serverのネストされたトランザクションは、真のネストされたトランザクションではなく、異なるセマンティクスを持っています。SQL ServerのCLRストアドプロシージャを使用してこの動作をエミュレートするには、独立した接続を開き、それを介して自律操作を実行します。

Oracleには、すぐに使用できるBIツールが少なくなっていますが、OracleはOLAPサーバー、レポートツール、ETLツールを販売しています。

  • Oracle は、bcpと機能が似ているSQL * Loaderと呼ばれるバルクロードツールをバンドルしています。

  • SSISに最も近いものはOracle Warehouse Builder(OWB)ですが、これは別個のアイテムであり、ベースシステムにバンドルされていません。

  • OracleはOracle Reportsと呼ばれるレポート作成ツールを作成しますが、これも基本システムにバンドルされていません。これは、Reporting Servicesに最も近いものです。

  • Oracleは、Discovererと呼ばれるROLAPツールも作成します。これは、Oracleが生成するReport Builderに最も近い製品です。より新しいバージョン(「Drake」)は、OracleのOLAPエンジンをサポートしています。

  • Oracleには、ExpressというOLAP製品がありました ある時点で、それをコアOracle DBMSエンジンに組み込み、そのネイティブデータ構造を不透明なBLOBに格納しました。Expressとの完全な互換性はなく、独自のインターフェイスを備えており、サードパーティのOLAPフロントエンドツールからのサポートはほとんどありません。

  • Oracle BI Enterprise Editionは、以前はSiebel Analyticsでした。これにはいくつかのOLAP機能がありますが、私はそれに慣れていません。たぶんそれを使った人はコメントしたいかもしれません。Oracleは、Siebelが独自のBIツールとは完全に別個の製品であることを直接認めずに、Oracle BI Standard EditionからEnterprise Editionへの「アップグレードパス」がないと述べました。Standard BIスイートとEnterprise BIスイートはどちらも別個の製品であり、ベースシステムにバンドルされていないことに注意してください。

  • 実際には、Oracleが販売するSSASに最も近いものはEssbase(以前のHyperion)です。これは独立した製品であり、ベースシステムにバンドルされていません。

驚くことではないが、オラクルのBI戦略は、業界の専門家からは犬の朝食のようなものと見なされています。

おそらく、私がOTOHについて考えることができない他のことがあります。考えているとおりに追加します。


1
これは私が探していたものに非常に近いものです。素晴らしい情報!Oracleには、自動実行可能なSQLサーバータイプのジョブがあることを読みました。OracleのSSISと同等のものはありますか?
ダーウィンディーズ

1
OracleのSSISに最も近いものはOracle Warehouse Builder(OWB)ですが、ベースシステムにバンドルされていません。別途購入する必要があります。SQL * Loaderと呼ばれるbcpに似たバルクロードツールがあります。
ConcernedOfTunbridgeWells

6
このリストに追加するもの:Oracleでは、リーダーはライターをブロックせず、ライターはリーダーをブロックしません。私の理解では、これはSQL Serverのデフォルトのインストールではまだ異なるということです。Oracleは、コミットされていないデータの読み取りを許可しません。Oracleで一時テーブルを使用することはほとんどありません。1つの大きなステートメントですべてを実行すると、非常に高速になります。頻繁にコミットすると、バルクロードが遅くなります。すべてが完了したら、単一のコミットを発行することが理想です。
a_horse_with_no_name

1
@a_horse_with_no_nameあなたの理解は正しいです
ジャックダグラス


10

私たちはOracleとSQL Serverの両方と連携しており、DBAのリーダーであるMichelle Malcherは、この移行で同僚を頻繁に支援しています。この経験に基づいて、彼女は「Microsoft SQL Server DBA向けOracleデータベース管理(Oracle Press)」というタイトルの本を書きました。私はこの本が好きでした。

このサイトに同僚による本の推薦が適切かどうかはわかりません。私はミシェルに報告せず、開発者チームを率いています。


2
meta.stackoverflow.comでのセルフプロモーションに関する会話に参加し、質問に関連する場合はセルフプロモーション周辺の灰色の領域はOKだったと答えたことを覚えています。 ジェフ・アトウッドは同意しました。
ConcernedOfTunbridgeWells

2
ミシェルとは仕事をしていませんが、この本が大好きでした。私は実際にこの説明の方法を見つけました-SQL ServerアーキテクチャとOracleのアーキテクチャを比較するのは、標準のOracle DBAの本を読むよりも興味深いです。
RKクッパラ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.