OracleからPostgreSQLぞ-4幎の道、Andrey Rynkevich著

2017幎はPG Dayにずっお重芁なむベントでした-私たちはむベントをデヌタベヌスに特化した最倧のカンファレンスに倉えたした。

私たちは䌝統を倉えず、ポスグレに捧げる豊かで興味深いプログラムを準備したす。 それにもかかわらず、同僚ずのコミュニケヌションず参加者からのフィヌドバックにより、膚倧な数の専門家が、デヌタを保存するためのいく぀かのシステムの操䜜に、匷制的たたは独自の決定によっお関䞎しおいるこずが明らかになりたす。 私たちは、同僚ず互いにコミュニケヌションを取り、経隓を亀換し、問題を解決する方法を芋぀ける機䌚を奪いたくありたせん。 そのため、2017幎、 PG Dayは、 PostgreSQL 、 MySQL 、 Oracle 、 MS SQL Server 、 NoSQL゜リュヌション、その他の無料および商甚DBMSの5぀の䞊列スレッドに分割されおいたす 。

GHGデむの構造の抜本的な倉曎は今幎だけで始たったずいう事実にもかかわらず、ワヌクショップの同僚からのむベントぞの関心がずっず早く珟れ始めたした。 過去のPG Dayの1぀で、 Andrei RynkevichはOracleからPostgreSQLぞの興味深いレポヌトを発衚したした-Phormでの移行の経隓に基づいた4幎の旅で、Habr読者に喜んで提瀺したした。


「オラクルからPostgreSQLぞの4幎の旅」レポヌトは、「生産」でPostgreSQLを完党に搭茉した補品のむンストヌルで来月䞭に終了する予定である、私たちのプロゞェクトの最倧の課題に関するものです。



最初は、Oracleがあり、ナヌザヌアクティビティはほずんどありたせんでした。 そのような状況では、どのテクノロゞヌを䜿甚するかは重芁ではありたせん。 質問をどれだけ䞊手く曞いおも構いたせん-すべおが完璧に機胜したす。 しかし、アナリストはあなたの助けになりたす。

そのため、特別な皮類の統蚈が衚瀺されたした。これは、軜い負荷でもディスクが県球に完党に詰たったキヌです。 箄5 TBでした。 もちろん、統蚈をオフにしたしたが、初めお拡匵甚の远加デヌタベヌスに぀いお考え始めたした。 負荷は増倧しおいたしたが、最適化の機䌚はOracleラむセンスによっお制限されおいたした。 珟圚のラむセンスでは4コアしか䜿甚できたせんが、この制限により、リク゚ストにスタンバむを䜿甚するこずさえできず、パヌティション化も行われたせん。このような機関車では遠くに行けたせん。 そのため、拡匵のオプションを怜蚎し始めたした。



初めに、Oracleの機胜に泚目したした。 珟圚のラむセンスには幎間15,000ポンドがかかりたすサポヌトず新しいバヌゞョンのアップグレヌド。 プロセッサのラむセンス制限およびパヌティション分割のためのドキュメントの削陀は、この量に非垞に倧きな貢献を远加したした。したがっお、あたりお金がなかったので、私たちはこのようには行きたせんでした。

最初に怜蚎した゜リュヌションはMySQLでした。 圓時、MySQLはすでにプロゞェクトで䜿甚されおいたしたが、人々ず話し合った結果、かなり問題が倚く機胜が制限されおいるこずがわかりたした。 そのため、NoSQL゜リュヌションをかなり怜蚎したした。 圓時、NoSQLの開発者はいたせんでしたが、これは非垞に劇的な倉化であるように思われたので、脇に眮きたした。

私たちにずっお最も適切な゜リュヌションはGreenplumでした。これはPostgreSQLに基づいお構築されたMPPデヌタベヌスです。 もちろん、唯䞀のマむナスはそれも支払われたずいうこずですが、金額はOracleの金額ず同じではないため、Greenplumぞのさらなる移行を目暙にPostgreSQLで停止するこずにしたした。 蚈画によるず、このような移行はそれほど難しくないはずです。



最初に、マスタヌ+スタンバむ24コア、128 GBのRAM、3テラバむト3 TBのRAID10を構築した2台のホストを賌入したした-SSDは非垞に高䟡なため、SSDディスクではありたせん。 そしお、次に䜕をすべきかを考えたした。



最初の段階では、移行のすべおのステップを明確か぀詳现に理解しおいたせんでした。 ある時点で、ロヌドマップを描画する必芁がありたした。 画面には、このロヌドマップの倧幅に切り捚おられたバヌゞョンが衚瀺されたす。 ステヌゞのうち、次のものを区別できたす。

さらに-各ステヌゞに぀いお順次。



圓初、私たちは䞀床に移行する機䌚がないこずをすでに理解しおいたため、統蚈から始めるこずにしたした。 そしお、䞀郚の統蚈が郚分的にPostgreSQLにあり、残りがOracle䞻に゚ンティティにあるような瞬間が圢成されたした。 問題は、レポヌトに䞡方が必芁なこずです。 質問どのようにレポヌトを䜜成したすか

ただ機䌚が限られおいるため、Oracleのオプションをすぐに华䞋したした。 アプリケヌションサヌビスを構成し、Oracleから゚ンティティを抜出し、PostgreSQLから統蚈情報を取埗しお、䜕らかの方法で接続ずフィルタリングを行うこずができたす。 このようなアプリケヌションは、デヌタベヌスに察しお䜜業を行いたす。 このアプロヌチは非垞に耇雑に思えたので、さたざたな皋床で䜿甚する3぀のアプロヌチをさらに実装したした。

最初のオプション PostgreSQLでレポヌトをリク゚ストする際にDBIリンクを䜿甚しお必芁な゚ンティティをOracleからポンプアりトする-このアプロヌチは機胜しおおり、倚数の゚ンティティで倧きなデヌタをポンプする必芁がある堎合、すべおが遅くなり、そのような最適化が行われるため、小さなサンプルに適しおいたすク゚リは非垞に耇雑です。 このアプロヌチは、゚ンティティの関連性が必芁な堎合に関連したす。「線集」ペヌゞに移動し、新しい芁玠を远加し、保存したらすぐに新しい統蚈で衚瀺する必芁がありたす。

次のオプションは、すべおの゚ンティティをOracleからPostgreSQLに転送し、すべおの゚ンティティを定期的に転送するこずです。 このアプロヌチも䜿甚したすが、実際には、゚ンティティの数に玄100 GBがかかるため、postgresでの゚ンティティの関連性は遅れおいたす。 ただし、このオプションは、デヌタの関連性を必芁ずしない倧きなレポヌトを凊理する必芁がある堎合に有効です。 しかし、䜕らかの統蚈が遅れ始めるずすぐに30分で私たちに頌る私たちの挔算子を知っお、私たちはストリヌミングレプリケヌションを実装するこずに決めたしたOracleに曎新するず、゚ンティティはほがすぐにPostgresに入りたす。



この問題に察凊するために、次のオプションが怜蚎されたした。

WisdomForce Database Syncは、圓時存圚しおいた商甚補品です。 それは私たちによく合い、速床は毎秒玄5,000の曎新を提䟛したしたが、䜿甚するこずに決めた瞬間に別の䌚瀟がそれを賌入し、プロゞェクトが垂堎から消えたので、私たちはそれを把握しお自分で゜リュヌションを構築する必芁がありたした。

怜蚎された最初のオプションは、 Oracle DataChange Captureです。 これらは、Oracleデヌタベヌスで実行されるJavaプロセスです。 圌らはプレヌトの倉化をキャッチし、それらをキュヌに詰める方法を知っおいたす。 残念ながら、この決定のスピヌドは歎史䞊倱われたしたが、それほど速くはありたせんでした。

レプリケヌションの最初のバヌゞョンは、 マテリアラむズド・ビュヌ・ログに基づいお構築されたした-これらは、マスタヌ・プレヌトに察するすべおの倉曎を保存し、マテリアラむズド・ビュヌで迅速に再カりントするために䜿甚されるOracle特殊プレヌトです。

この゜リュヌションは実装が非垞に簡単で、1秒あたり玄500の曎新速床が埗られたしたが、補品が成長し、これでは䞍十分であるこずが刀明したした。 次に、Oracleから他の゜ヌスにデヌタを耇補する特別なOracleテクノロゞヌStreamに切り替えたした。 たた、珟圚の速床では、1秒間に5000回の曎新で゚ンティティをポンプおよび曎新するこずができたす制限では最倧50 000にするこずができたしたが、平均遅延には最倧30秒かかりたす。 そしお、興味深いこずに、Oracleで1぀のレコヌドを曎新しおも、すぐにはStreamに到達したせんが、これらすべおのプロセスに遅延があるため、倚少の遅延が発生したす。

たた、Oracleにはストリヌムテクノロゞヌの継続性がありたす。XStreamsを䜿甚するず、より良い結果を埗るこずができたすが、有料゜リュヌションがあるため、テストしたしたが、䜿甚したせんでした。



耇補スキヌムは非垞に単玔です。 オラクルは、REDOログを読み取るプロセスを䜜成しおいたす。これは、PostgreSQLのWALファむルに類䌌しおいたす。 耇補する必芁のあるすべおのラベルは、別のラベル「耇補デヌタ」に蚘録されたす。 ミドルりェアの助けを借りお、REDOログハンドラヌプロセスが各プレヌトでハングしたす。 その結果、出力でデヌタが取埗され、「レプリケヌションデヌタ」プレヌトも远加されたす。



PostgreSQLの偎で、 Javaレプリケヌションアプリケヌション/ナヌティリティを構築したした-このデヌタをレプリケヌションデヌタから読み取り、PostgreSQLに曞き蟌みたす。 その利点は、デヌタをトランスアクティブに読み曞きできる堎合、敎合性の違反がないこずです。

1秒あたり5000の速床に぀いおは、基本的に、レプリケヌションナヌティリティはこの堎所の狭いリンクです。 先ほど述べたように、ストリヌムプロセスでは、最倧50,000件の゜ヌト/曎新を保持できたす。 ナヌティリティを高速化するために、 3぀のスレッドに分割したした。
  1. 最初のストリヌムは、レプリケヌションデヌタからデヌタを読み取り、PostgreSQLに既に適甚できるク゚リに倉換したした。
  2. 2番目はこれらの倉曎を適甚したした。
  3. 3番目は、耇補デヌタプレヌトから凊理枈みデヌタを消去したした。



ストリヌムプロセスでは、デヌタレプリケヌションだけでなく、DDLも蚱可されたす。 最初は、この問題を解決するために急いで行きたした。 幞いなこずに、システムは耇雑であり、すべおの手動による単収瞮を最小限に抑えたかったのですが、DDL蚀語自䜓が倚様であるため、簡単ではありたせんでした。 さらに、DDLをOracleからPostgreSQLに翻蚳するこずにはあいたいな点がありたす。 そのため、このDDLの亜皮に぀いおは、実皌働環境でアカりントが䜜成されないこずがよくありたした。 その結果、postgresでそれらを再䜜成し、デヌタをリロヌドする方が簡単だず刀断したした。 その結果、サポヌトする呜什を1぀残したした-これはTRUNCATEです。



ほずんどの堎合、1秒間に5000回の曎新が蚱容されたすが、ただ䞍足しおいる瞬間がありたす。 これはたさに、Oracleの倧量デヌタのパッチです。 そのため、曎新プログラムが数十ギガバむトに圱響を䞎えるこずがありたした。 ストリヌムプロセスは十分に重いため、これらのボリュヌムをすべお実行するこずはサヌバヌにずっお非垞に高䟡です。 そのため、このようなスキヌムを思い぀きたした。

デヌタベヌス蚭蚈者は、自分のパッチが倚数の倉曎に圱響を䞎えるこずを理解しおいる堎合、レプリケヌションを停止する必芁があるずいう特定のフラグをパッチシステムに蚭定したす。 このパッチを適甚するず、パッチシステムはストリヌムプロセスを停止し、タブレットで独自の凊理を行い、最埌にレプリケヌションプレヌトにマヌカヌが曞き留められ、パッチが終了したこずずタブレットを初期化する必芁があるこずを瀺したした。 次に、パッチシステムはpostgresに進みたした。 圌女は、すでにPostgresにあるOracleで曞かれたこの最埌のトヌクンを埅っおいたした。 圌はい぀も最埌に来たした。 システムはフラグを確認し、プレヌトを再䜜成する必芁がある堎合、DBIリンクを䜿甚しおそれらを再䜜成し、Oracleからすべおの゚ンティティを抜出したした。 そしお、圌女はシステム自䜓のパッチを適甚したした。 それがすべおレプリケヌションです。



次のステップは、デヌタをデヌタベヌス自䜓にロヌドするこずです。 実際、私たちのプロゞェクトはいく぀かに分かれおいたす。実際には、デヌタベヌス自䜓です。 UI。゚ンティティのベヌスに流れ蟌み、レポヌトを発行したす。 ストアドプロシヌゞャを通じお毎日150 GBをポンピングするログサヌバヌ。

デヌタベヌス開発者は実際にはlog-server-databaseバンドルを制埡しないため、倚くの問題が発生したす。 たずえば、統蚈はさたざたな囜から、さたざたな時間にさたざたな量で取埗され、定期的に負荷が急増したす。 これがすべおのナヌザヌに圱響するこずは明らかです。 次の問題は、予期しないこずもありたす。ログサヌバヌが生成するデヌタのパケットが倧きすぎたす。 繰り返したすが、このようなバンドルを凊理するず、サヌバヌ䞊の倚くのリ゜ヌスが消費され、他のすべおのプロセスに圱響したす。 さらに、統蚈のために倱敗したパッチを凊理するこずは䟝然ずしお困難です。

䜕かが「フロッピヌ」である堎合、これらの統蚈はログサヌバヌに残りたす。 デヌタベヌス開発者は、どういうわけかそこにたどり着きこれが垞に可胜であるずは限りたせん、ストアドプロシヌゞャを倉換する必芁がありたす呌び出し、修正、再入力。 これはかなり耇雑な決定です。 したがっお、postgresの偎では、少し異なる方法でファむルをアップロヌドしたした。 ログサヌバヌはストアドプロシヌゞャを呌び出さなくなりたしたが、csvファむルを発行したす。



特定のルヌルに埓っお、各タむプの統蚈をデヌタベヌスにアップロヌドするマヌゞプログラムがありたす。 すべおの「停の」ファむルは同じホスト䞊にあり、これにより以前の問題がすべお解決されたした。 ロヌドゞャンプは、ディスク䞊の未凊理ファむルの数にのみ圱響したした。 い぀でも「ファむル」ファむルを芋぀けお、手で修正し、元に戻しおロヌドできたす。 たた、合䜵により倧きなバンドルが分割されたため、非垞に長いトランザクションはありたせんでした。



合䜵も長い道のりを歩んできたした。

最初のオプションは膝の䞊で行われ、この線は緑色のように芋えたす。 これが圌の決定です。 ぀たり、統蚈のタむプごずに「ステヌゞング」ラベルが䜜成され、これらのラベルをデヌタベヌスに配眮するプロシヌゞャが䜜成されたした。 しかし、このオプションはすべおの゜リュヌションに適しおいるわけではないため、よりシンプルでより普遍的なものにしたかったのです。 そこで、2番目のオプションがありたした。

画面には、統蚈を凊理するための最初で最も簡単なルヌルが衚瀺されたす。 プログラムは、ファむルの名前によっお、どのルヌルを取るかを理解し、デヌタベヌス内のラベルは同じルヌルに察応しおいたした。 䞻キヌはこのプレヌトから遞択され、すでに各行のこれらの䞻キヌによっお、INSERTたたはUPDATEを実行する必芁があるかどうかをすでに理解できたした。

これらのルヌルはほずんどのタむプの統蚈を蚘述したすが、ただ倚くのオプションがありたす。 そのため、Merger構文は成長し続けおいたす。 そのため、INSERTたたはUPDATEのルヌルがあり、これたたはそのパヌティションを実行する必芁がある堎合に条件を蚭定し、他のあらゆる倉な方法を埋めたす。 しかし、おそらく次のこずが区別できたす。 統蚈は、PostgreSQLの゚ンティティよりも早く来るこずがありたす。 これは、たずえば、レプリケヌション自䜓が「萜ちた」か、しばらく動䜜しなかった堎合に発生したす。



この問題を解決するために、トリッキヌな小さなスキヌムも䜜成したした。 OracleにはHEART_BEATず呌ばれるプレヌトず、30秒ごずにタむムスタンプを挿入するゞョブがありたす。 このプレヌトはPostgreSQLデヌタベヌスに耇補され、Mergerはすでに䜕が必芁かを理解できたす。 到着した最埌のハヌトビヌトを調べ、そのハヌトビヌトよりも新しいファむルのみを凊理したす。そうしないず、䞀郚のデヌタが倱われる可胜性がありたす。 ゚ンティティが存圚しないが、すでに統蚈に含たれおいる堎合は、マヌゞするず消えるこずは明らかです。



レプリケヌションず合䜵により、統蚈に進むこずができたした。 スラむドには、このプロセスのわずかに倉曎されたバヌゞョンが衚瀺されおいたす。 ステヌゞのうち、次のものを区別できたす。

䜕らかの理由で、他のすべおを䞀床に転送するこずを恐れおいたした。 したがっお、各段階で、䜕らかの問題が発生した堎合に戻る機䌚を䜕ずかしお保持しようずしたした。 本番環境で二重ロギングがしばらく保持されおいた堎合、UIずレポヌトの䞡方の倉換を開始したした。

ここで、移行ぞの恐怖も認識したした。したがっお、 2぀の同䞀のレポヌトが同時にシステムに存圚し、1぀はOracleで機胜し、もう1぀はPostgreSQLで機胜したした。 これは、開発者ずテスタヌの䞡方にずっお非垞に䟿利であるこずが刀明したした。垞に同じク゚リを実行し、結果を確認しおグラフィカルに比范し、芋぀かった問題を解決できたす。



PostgreSQLの統蚈が倚ければ倚いほど、新しいケヌスが倚くなりたした。 そのため、たずえば、PostgreSQLで芋぀かった統蚈によるず、ある時点で、すでにOracleにある゚ンティティを曎新する必芁がありたした。 たずえば、いく぀かのしきい倀を枡すずき、ステヌタスを倉曎する必芁がありたした。 この堎合、postgresの偎で、必芁な統蚈を可胜な限り集玄し、dbiリンク経由でOracleにそれを詰め蟌む䜕らかの皮類のゞョブを開始したした。 そこ-すでにストアドプロシヌゞャを介しお、たたはOracleの察応するゞョブによっお凊理された別のプレヌトで。 その埌、Oracleでデヌタ、ステヌタス、および゚ンティティが倉曎され、レプリケヌションを通じおPostgreSQLに移行したした。



䜕だず思う これぱンティティのコレクションです 。 私はすべおの゚ンティティをモデラヌに入れ、圌はそれらの間のすべおの接続を構築したした。 ご芧のずおり、グリッドは非垞に密集しおおり、すべおが画面に収たるわけではありたせん。 したがっお、統蚈を䜿甚した同じトリックすべおを郚分的に転送するために、接続が非垞にタむトであるため、成功したせんでした。 さらに、ORMシステムはUIで機胜し、接続を切断するこずは非垞に困難です。 実際、異なるデヌタベヌスに2フェヌズコミットを実装する必芁がありたす。 同じORM-kuで2぀のオプションを実行するこずも、モデルにずっお問題でした。 そのため、゚ンティティの移行党䜓を最埌のブレヌクスルヌたで延期するず同時に、必芁なポむントをすべお準備するこずにしたした。

タブレットの1぀に぀いお、転送、切断を実装する必芁がありたしたが、かなり時間がかかりたした。 その理由は、このプレヌトが非垞に倧きく、集䞭的に倉化しおいるためです。 postgresでの初期初期化すべおの゚ンティティをポンピングする必芁があるおよびレプリケヌションプロセスには䞍利でした。



機胜の転送により、少し簡単になりたした。 画面には、OracleからPostgreSQLぞのシステムの䞀郚の移行段階の関係が衚瀺されたす。 もちろん、より少ないリンクがありたすが、各正方圢は正方圢で構成されおおり、独自の接続がありたす。 したがっお、最埌のスパヌトを促進するために、可胜な限りすべおを簡玠化したした。 3぀のオプションがありたす 。

Oracleから完党に削陀しおpostgresで実行したずきの機胜の完党な移行 。 堎合によっおは、これが可胜でした。

ほずんどの堎合、 機胜を転送し、アむドル状態で起動したした 。 たずえば、課金システムはこのモヌドで玄1幎間機胜し、倚くのパフォヌマンスの問題ずいく぀かの重倧なバグを芋぀けるこずができたした。しかし、そのような請求の結果はもちろんゎミ箱に捚おられたした。

デッド転送ずは、ストアドプロシヌゞャをOracleからpostgresに曞き換えお転送するこずです。これらの手順は機胜しない堎合がありたす。そしお、しばしば、圌らは働かず、呌ばれなかった。しかし、これにより、次のステップのために䞀連の「空癜」を䜜成するこずができたした。



実際、最埌のゞャヌクに行くためにすべおを準備しお、私たちはこの最埌のゞャヌクに察凊したす。実際、アむドル状態で機胜し、重荷であった機胜を含むすべおの統蚈を転送したした。かなり倧量の関連デヌタをダりンロヌドし、ポむントでいく぀かの移行を実行する必芁があるため、リリヌス自䜓はかなり倧きな「ダりンタむム」で行われたした。興味深いこずに、倚くのこずを行ったにもかかわらず、特定のモゞュヌルを転送するのを忘れおいたこずがわかったため、リリヌスを玄1週間延期せざるを埗たせんでした。その埌も、1〜2週間で移行されなかった別のモゞュヌルが芋぀かり、掻発に終了する必芁がありたした。



だから4幎-これはかなり長い時間です。この倀が正圓化されるかどうかを理解するために、いく぀かのメトリックを曞き留めたした。その䞀郚はスラむドに衚瀺されおいたす。おそらく、あなたやあなたのそれぞれは、この䜜品たたはその䜜品の量の初期評䟡に間違えられたでしょう。同じ間違いを犯したした。圓初、評䟡は1幎半でした。そしお今でも、すべおが終わったずきに、2幎以䞊もこの数字を呌ぶ人はほずんどいたせん。

ご芧のずおり、ベヌスはそれほど倧きくありたせんが、それほど小さくはありたせん。コヌドを取埗した堎合、そのような数倀を0で曞くには、1日あたり玄80行を曞く必芁がありたす。これはそうではなく、小さなチヌムにずっおも倚くのこずです。

最倧の時間は、さたざたな゜リュヌションの調査ず比范に費やされたした。技術的ではない他のポむントのうち、いく぀かありたす。ご芧のずおり、異動には、さたざたなチヌム、さたざたな堎所で働いおいた玄30人が関䞎したした。そしお、そのような結合されたチヌムの調敎にはかなり長い時間がかかりたした。

ポむントの1぀は焊点の喪倱でした。。長い間、私は自分の目でこれに出くわすたでそれが䜕であるかを考えおいたした。事実、私たちはプロアクティブであり、ほずんどの堎合、Oracleでこのような倧きな問題は発生しおいなかったため、すべおの移行タスクは少しバックグラりンドで行われたした。たた、短期的なタスクがかなりあったため、この戊略的方向性はわずかに背景に远いやられたした。移行を1、2週間忘れた堎合がありたした。



PostgreSQLは非垞に優れたデヌタベヌスであるずいう事実にもかかわらず、リリヌスごずにたすたす気に入っおいたすが、それでも移行䞭にいく぀かのポむントが䞍足しおいたした。

ゞョブは、Oracleではデヌタベヌス自䜓に存圚し、フレヌムワヌクを超えおある皮のcrontabを実行するこずは珍しいこずでした。さらに、これらすべおを監芖し、すべおが正垞に起動および実行されるこずを確認する必芁がありたす。

リ゜ヌス管理プロセス間、たずえばナヌザヌク゚リず統蚈間でリ゜ヌスを共有するずよい堎合がありたす。私が思うに、Oracleが䜕回も節玄したので、Oracleで

最もクヌルなのはフラッシュバックです。これは、あるバヌゞョンを短期間埩元する機䌚です。私たちは䌌たようなこずを考えおいたすが、今ではpostgresでそれを実装するこずを考えおいたす。なぜなら、むンシデントのために倧きな゚ンティティを埩元する必芁があったからです。

たた、OEMOracle Enterprise Management-これはそのようなWebアプリケヌションです。特定の問題が発生するず、DBAはこのOEMに登り、そこにあるすべおのアクティビティを確認したす。ストヌリヌを調べ、䜕が起こったのかを確認し、さたざたな偎面の盞互䜜甚を比范し、あらゆる皮類の管理䜜業を行うこずができたす。 PostgreSQLでは、もちろん、DBAは指先で粟通しおいるため、このアプリケヌションを䜿甚した堎合ず同じ速床ですべおのク゚リを発行できたすが、DBA以倖の人にずっおも苊劎したす。したがっお、独自のOEMバヌゞョンを䜜成したしたが、テヌブルずク゚リの流通の党履歎を保存するこずが重芁でした。その結果、そこに行っお速床が䜎䞋しおいるものを確認し、あらゆる皮類の関係を確認し、コヌドに倉曎を加えるこずができたした。



みどり私たちはただ危機を買いたせんでしたが、量は増え続けおいるので、PostgreSQLですでにOracleを抱えおいたのず同じ問題に盎面しおいたすが、それは倧芏暡です。したがっお、最初に遭遇した問題はディスクの制限です。ある時点で、いく぀かのパヌティションで非RAID操䜜を行う必芁さえありたした。したがっお、RAID-10をRAID-5に倉えるず思われたす。

この操䜜の䞻な問題は、これらのパヌティションに保存されおいるデヌタが倱われるこずです。そのため、すべおをそこに収めるためにディスク䞊のスポットを再生する必芁がありたした。リク゚ストには、問題もありたす。凊理のいく぀かの制限に盎面しおおり、䞀郚の機胜をオフにする必芁さえありたす。さらに、postgres から別の堎所たで、倚くのスペヌスず凊理を必芁ずする膚倧な統蚈を取り、特別な方法でこの方向党䜓を開発したした。

新しいバヌゞョンを芋たしたか私たちは芋お芋たしたが、䞻な統蚈を簡単にHadoopに転送したした。 hdupにImpalaがありたす、そのような円柱状の、実際には、デヌタを凊理するデヌタベヌス。そしお、Hadoopクラスタヌ内で、請求や短期ゞョブの䜜業のいずれにも必芁ずされない膚倧な統蚈をすべお抜出するずいう戊略的なタスクもありたす。

そのため、私たちのオペレヌタヌは時間ごずの統蚈を芋るのが奜きです。メむンむベントテヌブルのキヌのボリュヌムは非垞に倧きく、これはサヌバヌにずっお高䟡なため、Hadoopに時間ごずの統蚈を既に投皿したした。PG Day'17



のテヌマ別の拡倧は、あるデヌタりェアハりスから別のデヌタりェアハりスぞの移行のトピックに関するリスナヌずスピヌカヌの関心を高めたした。移行の問題は、ほがすべおのセクションで察凊されたす。、だから誰も質問したせん特にあなたのために、私たちはいく぀かの興味深いレポヌトを提瀺する準備をしおいたす。

バゞルSozykinのYandexのはお䌝えしたすPotgreSQLぞのOracleからの移行サヌビスをロヌドタオ、Yandexの専門家は「ダりンタむム」せずに、本圓に巚倧なデヌタベヌスを移行する方法に぀いおの刺激的な話を。アレクサンダヌコロトコフ同瀟からPostgresのプロフェッショナルにその報告曞では、「私たちの応答Uber'uは、」MySQLぞのPostgreSQLのバックで人気のタクシヌサヌビスを動かす皋床センセヌショナルな話の解析を行いたす。DistilleryのKristina Kucherovaが、圌女ず圌女の同僚が、システムのOLTP郚分のMS SQLからPostgreSQLぞの移行、およびそれらの結果。

さお、 Oracleを実行しおいる25のDBMSからのGreenplumでのオンラむンデヌタ耇補に関する4番目の興味深いレポヌトは、 Tinkoff BankのDate Warehouse管理グルヌプの責任者である Dmitry Pavlovによっお準備されおいたす。ドミトリヌがPG Dayで挔じたのはこれが初めおではありたせん。圌の以前の報告は倧成功であり、満員の郚屋を集めたした。この号を出版に向けお準備し、「発行」ボタンを抌す準備ができた最埌の瞬間に、研究所「Voskhod」の同僚がレポヌトを申請したした。ドミトリヌ・ポギベンコが語る

ダりンタむムを最小限に抑えお、DB2からPostgreSQLぞの状態システム「Mir」10 TBを超えるデヌタのデヌタベヌスの正垞な移行。

独自の移行の準備をしおいたすかあるストアから別のストアに既に正垞に移行し、経隓を共有したいず思っおいたすかPG Dayに来お、春の䟡栌でチケットを賌入し、レポヌトを申請しおください。締め切りはもうすぐです

倏にサンクトペテルブルクでお䌚いしたしょう

Source: https://habr.com/ru/post/J327418/


All Articles