web-dev-qa-db-ja.com

SQL Server DBAからOracleに移行するにはどうすればよいですか?

興味として、もしSQL Server DBAからOracleに移行する場合、私がしなければならない主要な学習または学習を取り消すことは何でしょうか?

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

31
darwindeeds

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

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

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

  • SQL * Plusは、SQLCMDに似たコマンドラインツールです。バニラのインストールでは、利用可能なのはそれだけです。 SSMSのようなGUIツールが必要な場合は、SQL DeveloperまたはTOADなどのサードパーティツールを入手できます。ヒキガエルはかなり高価です。

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

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

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

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

  • PL/SQL内に埋め込まれたSQLとSQL方言は、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にはB.I.ツールはすぐに使用可能ですが、オラクルはOLAPサーバー、レポートツール、およびETLツールを販売しています。

  • Oracleには、機能がbcpに似ている SQL * Loader と呼ばれる一括読み込みツールがバンドルされています。

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

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

  • Oracleは、 Discoverer というROLAPツールも作成しています。これは、Oracleが作成するレポートビルダーに最も近い製品です。最近のバージョン( 'Drake')では、OracleのOLAPエンジンがサポートされています。

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

  • Oracle B.I. Enterprise Edition は、Siebel Analyticsでした。これにはいくつかのOLAP機能がありますが、私はそれをよく知りません。おそらくこれを使用したことがある人はコメントしたいと思うかもしれません。Siebelが独自のBIツールとは完全に別の製品であることを直接認めずに、オラクルは、Oracle BI Standard EditionからEnterprise Editionへの「アップグレードパスがない」と述べました。StandardおよびEnterprise BIスイートは別々の製品であり、ベースシステムにバンドルされていません。

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

当然のことながら、OracleのB.I.戦略は業界の専門家によって 犬の朝食の何かと見なされています。

OTOHとは思えないものが他にもあるでしょう。思った通り追加します。

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

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

10
A-K