【DBA100人】李建明:普通のDBAの14年間の技術の道と成長の知恵

「DBA 100人」インタビュー企画は、OceanBaseが先輩DBAを中心に実施する独占インタビュー活動であり、キャラクターストーリー、キャリア開発の経験、日々の業務で遭遇する技術的な問題や実践事例、テクノロジーに対する今後の考えなどを通して彼らの成長を期待することを目的としています。 Tao は、さまざまな業界の DBA にいくつかの提案や考えを与えることができます。


編集者のメモ

DBA はどのようにして障害を迅速に特定するのでしょうか? パフォーマンスの最適化をうまく行うにはどうすればよいでしょうか? 技術の選択と技術システムの構築をうまく行うにはどうすればよいでしょうか?

本日の「DBA 100 People」の第 1 号では、10 年以上の職場経験を持つ上級データベース専門家および運用保守担当者、つまり、ある銀行の情報技術部門の運用保守センターのマネージャーを紹介します。雲南省出身 ホスト、ミドルウェア、データベースを担当 銀行の基幹システム、決済システムの開発に参加、運用保守システム、緊急災害復旧システム、監視システムの構築をリード参考値です。

2001 年、大学受験をしていた李建明さんは、この質問について何も知りませんでした。「コンピュータで遊ぶのが好き」で「プログラミングが面白い」と感じる多くの人々とは異なり、当時全国のキャンパスではまだコンピュータが普及していなかったので、李建明さんは高校時代にコンピュータに触れたことはありませんでした。

このようにして、李建明さんは中国で情報セキュリティ技術を学ぶ最初の学部生の一人となり、在学中に非常勤でオフィスソフト、フォーラム、ブログなどを開発し、初めてプログラミングの楽しさを感じました。 、製品を段階的に製造するプロセス。情報セキュリティ技術については比較的幅広い知識があるため、コンピュータ分野で着実にキャリアを積みたいと考えている李建明氏は、エンジニアリングを深く掘り下げてコーディングの強固な基礎を築く必要があります。そこで、大学院受験時にシステム解析・統合専攻を選択した。李建明氏は、専攻の選択に関して、重要な判断材料は「将来の道が広いか狭いかだ」と考えている。平たく言えば、将来のキャリアを選択する際、選択した方向に対する市場の需要が大きいかどうかということだ。 「自分の興味を組み合わせることもできます。考えてみてください。もしかしたら、あなたが興味のある分野でより成功するかもしれません。」

この選択により、Li Jianming はデータベース分野に参入し、DBA になる道が開かれました。

成長する DBA: 障害を迅速に特定し、システムの動作メカニズムを理解する

2008 年、大学院卒の李建明さんは電子改革が急速に発展する時期に信用組合に入社し、基幹システムと決済システムの保守開発に参加しました。2004 年には国務院が農村信用組合の改革を深化するよう要請し、国の要請に応えて信用組合は 2005 年にテクノロジー決済センターと情報システムを設立し、金融の利便性と迅速化を実現しました。顧客へのサービス。しかし、増加し続けるトランザクション量はシステムに課題をもたらし、システムの安定性を確保することの難しさは増大し続けています。

「速い」というのは大きな課題です

李建明氏が勤務する技術決済センターでは信用組合情報システムの構築を担当しているため、入社以来システムの保守やシステムの最適化を担当するとともに、大学でDBA関連の知識を独学で学びました。余暇。システム保守者である Li Jianming は、システムに障害が発生した場合に、時間内に障害を特定し、迅速に修復する必要があります。しかし、この仕事に慣れていない「技術的な初心者」にとって、「速く」なるのは非常に困難です。

Li Jianming 氏のアプローチは、システムの動作メカニズムと実行プロセスを解明することです。システムがエラーを報告すると、どのアカウントが間違っているか、またどのような状況でそのようなエラーが発生するかをすぐに知ることができます。

一般に、運用および保守担当者は、アプリケーション システムには常にドキュメントが不足していると感じます。開発者は包括的なドキュメントを作成することはできません。そのため、運用保守担当者はシステムを保守する際にさらなる勉強が必要となります。たとえば、システム アーキテクチャとビジネス アーキテクチャとその技術実装パスを理解していれば、基本的にシステム テーブル構造を理解することでビジネス構造を把握でき、オペレーティング システムのコマンドを理解することでシステム構造を把握できます。さらに、データベースのテーブル構造を掘り下げるなど、システム コンポーネントについてさらに検討します。

システムの各レベルを継続的に深く理解し、上位レベルへの探求を継続することで、システムの動作メカニズムと実行プロセスが徐々に理解され、仮説的な質問と検証された回答を何度も繰り返すことで真実が把握されます。 。十分な「実験」が行われると、障害を迅速に特定して修正する能力が自然に習得されます。さらに、Li Jianming 氏は 7 ~ 8 か月をかけてシステムの主要なソース コードを読み通しました。この期間の学習と自己学習により、Li Jianming はシステムに問題が発生したときに問題を迅速に発見できるだけでなく、技術的能力とコードの品質も急速に向上しました。

2010 年、Li Jianming は 2 年間の優れた業績により正式にシステム管理者およびデータベース管理者 (DBA) に就任し、システムの安定的かつ効率的な運用を担当し、データベース、オペレーティング システム、アプリケーション ソフトウェア、およびソフトウェアの管理と保守を担当しています。ミドルウェアです。お待​​ちください。「当時、システム管理者は 2 名でしたが、技術的な障害がある限り、私たちが介入して対応する必要がありました。」過去 2 年間のシステムの研究と探求により、彼はシステムの基本を理解し、新しいタスクを簡単に処理できるようになりました。

手探り、穴を踏む、学ぶ

これらの質問は、成熟した DBA にとっては難しいものではありません。しかし、成長する DBA にとっては、常に探索し、ピットを踏み、実践で学ぶ必要があります。

たとえば、データベース接続プールに障害が発生した場合、経験の浅い DBA は接続数が十分ではないと考え、追加の接続を作成し続け、接続プールがいっぱいになったときに問題を解決できない可能性があります。接続プールがいっぱいだからというのは現象にすぎず、根本的な問題を解決するには現象から本質を見つめる必要があります。場合によっては、確かにビジネス量が過剰になる理由がある場合もありますが、ほとんどの場合、ビジネス量が突然増加することはありません。接続プールがいっぱいになる理由は、新しいビジネスの効率が悪く、接続プールが不足している可能性があります。ブロックされているか、接続プールが適時に解放されていません。現時点では、やみくもに接続を追加してもシステムの輻輳が遅れるだけで、問題を根本的に解決することはできません。

別の例として、長いトランザクションの問題が発生してビジネスが中断された場合、原理に精通していない DBA は愚かにもトランザクションがロールバックされるのを待つだけです。しかし、ある程度の経験を積むと、実際には、トランザクション ログ ファイルを継続的に増やして、ビジネスの通常の運用中にトランザクションが確実にロールバックされるようにできることがわかります。

「システム管理者の仕事のおかげで、ソフトウェア システムについての理解が深まりました。理論から実践まで、トラブルシューティングとパフォーマンスの最適化において豊富な経験を蓄積し、技術的な自信が高まりました」と Li Jianming 氏は述べています。同時に、システムの安定性の確保、障害の特定、パフォーマンスの最適化に関する自身の経験を総括しました。

DBA としてシステムの安定性を確保することは最優先事項であり、Li Jianming 氏は 3 つのタスクを適切に実行する必要があると考えています。

1 つ目は予防です。これは、ネットワーク、ストレージ、コンピューティング リソース、オペレーティング システムなどのインフラストラクチャの計画に注意を払うことを意味します。基礎となるフレームワークが比較的均一なままであることを確認してください。

第二に、システムが正常に動作しているときは、ビジネスの観点からシステムが異常に動作しているかどうか、準健全な状態にあるかどうかを観察することに注意を払い、早期警告と緊急対応の可観測性構築に適切に取り組みます。災害復旧体制の強化と運用管理の標準化。

3 つ目は緊急対応です。つまり、システム アーキテクチャを通じて障害を特定し、監視システムを組み合わせて問題の分析を支援します。障害位置の特定とパフォーマンスの最適化は、次の 3 つの側面から実行できます。

1) システムアーキテクチャとビジネスアーキテクチャを確認し、グローバルな視点で問題を解決する; 2) 共通の CPU メモリ、I/O、負荷、業務量、ビジネス成功率、応答時間などのさまざまな指標に注意を払う。 ; 3) ストレス シナリオでは、各モジュールのパフォーマンスが最初から最後まで除外され、または現在のシステムが実行している一部の操作を含む一部のアクティビティの概要と詳細情報が除外されます。たとえば、どのような関数が呼び出され、どのような SQL が実行され、各スレッドでどのような関数が実行されているか、さらにはネットワーク送信パケットの応答効率やネットワーク遅延にも注目します。

また、各モジュールの責任者の責任回避を避けるため、全員が全体の状況を掌握し、緊急時に迅速に問題に対処できる技術統合チームが必要です。

経験豊富な DBA: 最も高価なデータベースの選択を求めるのではなく、最高のデータベースの選択のみを求めます

信用組合での 10 年間で、Li Jianming は無知な新入生から経験豊富なシステム管理者および上級エンジニアに成長しました。信用組合の電子システムも、数百万の口座取引をサポートすることから、数千万の口座取引量をサポートするまでに発展しました。 。信用組合が李建明氏のキャリアの基礎であり、専門的スキルを磨く揺りかごであるとすれば、銀行は彼の10年間にわたる専門的スキルと経験の高度な試験場である。

Li Jianming 氏は 2018 年に雲南省の銀行に入行し、運用保守チームの管理と、運用保守システム、緊急災害復旧システム、監視システムの構築を担当しました。さらに、2021年はDBAとは縁遠いと思われる仕事、データベース選定に参加しました。

ビジネスに基づいていないモデルの選択は不正であり、テクノロジーの選択を適切に行いたい場合は、まず市場のどのデータベースが代替として使用できるかをある程度理解する必要があります。Li Jianming 氏は、優れたデータベース製品とは、Informix と同じくらい安定していてシンプルであると同時に、Oracle のような豊富な組み込みシステム テーブルを備え、高性能な機能を備えている必要があると考えています。また、ACID(原子性、一貫性、分離性、耐久性、または不可分性)、原子性、一貫性、分離性、永続性の要件を満たす必要があり、さらにアプリケーションの透明性を確保することも必須の能力です。また、データベースは、DBA がどのようなツールを使用したか、CPU の消費量、所要時間、データベースとの対話の過程で実行した操作を確認できるように、DBA に十分な制御感覚を与える必要があります。

2つ目は、ビジネスの特性に応じて「最適なソリューション」を選択することです。例として、データベースを置き換える際の李建明氏の現在の銀行業界の技術的選択を考えてみましょう。

ほとんどの銀行は、比較的成熟した Oracle データベースを使用します。Oracle を使用する利点は、より完全なドキュメント、書籍、その他の資料、豊富なツール、および成熟したエコロジーを備えていることです。問題が発生した場合、他の人のソリューションを再利用したり、Oracle に精通した人を見つけることができます。開発者。しかし、銀行データの量が増加するにつれて、Oracle のデータ処理能力は限界に達しており、さまざまな場所でより多くの作業を実行する場合には欠点も現れています。Oracle のグローバル キャッシュ メカニズムにより、顧客 A のデータが A の中心で実行され、顧客 B のデータ クロスランニングによりパフォーマンスが大幅に低下する場合、データは B の中心で実行されます。さらに、ハードウェアの投入コストとソフトウェアの使用コストも増加しています。データベースを置き換えるのは簡単ではなく、李建明氏の銀行はデータベースの選択に関してジレンマに陥っている。

実際、銀行が本当に必要としているのは、柔軟に拡張および縮小でき、業務量が少ない場合にはノードを削減し、ピークトランザクションに対処する場合にはノードを増やすことができる、より優れたパフォーマンスとより低いコストを備えたデータベースです。従来の集中型データベースである Oracle にとって、分散型データベースは新たな選択肢となるようです。

システムの観点から見ると、現在市販されている優れた分散データベースと比較して、上位レベルのアプリケーションや DBA がデータ分散メカニズムに常に注意を払うのではなく、データベースの構造はそれ自体で決定されるべきだと Li Jianming 氏は考えています。一部のデータベース オプションでは、OceanBase データベースには統合されたアーキテクチャによる利点があります。拡張と縮小の観点から見ると、データベース レベル、テーブル レベル、行レベルでの柔軟性がありますが、データベース レベルでの拡張と縮小は詳細が不十分であり、行レベルでの拡張と縮小だけでは十分ではありません。したがって、テーブル レベルで拡大および縮小する OceanBase は良い選択であり、OceanBase の 3 つの拠点と 5 つのセンターによりデータ損失はありません。OceanBase は、パフォーマンスと成熟したケースの観点から、大規模イベントのテストを経験した優れたデータベース製品であり、「ダブル 11」イベントを 10 年間安定してサポートしており、Alipay と MYbank によって検証されています。そしてパフォーマンステストでは、8000TPS(1秒あたりのトランザクション処理)に達しました。

雲南省の銀行は、従来の基幹システムをベースにした分散データベースを使用しているためです。したがって、総合的に検討した結果、OceanBase がより適切な選択であると考えられます。データベースの選択に参加した Li Jianming 氏は、次の 4 つの経験を要約しました。

まず、現在の国内データベースの製品力や技術力も徐々に向上しており、それも選定の検討材料の一つとして考えられます。

第 2 に、データ量がますます増大する状況では、分散データベースの方が良い選択です。

3 番目に、分散データベースを選択するときは、データベースの ACID を考慮してください。

4 番目に、アプリケーションの変換の程度と互換性を考慮します。データベースのパフォーマンス、サイズ、ハードウェアとの互換性を考慮してください。

DBA のための 7 つの成長のヒント

インタビューの最後に、優れた DBA が持つべき資質や能力について語る際、Li Jianming 氏は自身の見解を共有し、職場での 10 年以上の経験に基づいて 7 つの提案をしました。

  1. データベース理論のしっかりした基礎を持っていること。たとえば、データベース システムの概要、データベースの中心的な概念、分散データベースの原理などです。理論は、仕事の実践のためのマクロな指針を提供します。

  2. ソフトウェア開発の基礎と技術アーキテクチャに精通している。DBA は優れたコードを書く必要はないかもしれません。しかし、コードの書き方、負荷分散の方法、データベースへの接続方法など、コードに精通しておらず、一般的なフレームワークについてもよくわかっていない場合、「データベースはトラブルシューティングの際に「問題ありません」と回答することは、グローバルな観点からシステムの安定性を保証することはさらに不可能です。

  3. オペレーティング システムの操作とパフォーマンスのチューニングに精通している。データベースは最終的にはオペレーティング システム上で実行する必要があります。OSの操作熟練度は日々の業務で蓄積され、パラメータの意味やパラメータ変更による影響など、公式ドキュメントの説明を読み、日々の実務で実践することでパフォーマンスチューニングを習得できます。 。

  4. データベースの運用・保守業務に熟練した方。特に、高い同時実行性と大量のデータの洗礼を受けた後はそうです。操作の熟練度は量の蓄積により決まります。同時実行性の高いシナリオが発生するかどうかは、会社のビジネスによって異なります。たとえば、小規模なビジネス ボリュームをサポートする Oracle データベースは、多くの場合、デフォルトのパラメータに従って非常に適切に実行できます。DBA は大きな課題に直面することはなく、せいぜいストレージ領域を拡張することだけです。したがって、この分野で経験を積むことは困難です。

  5. 理論が難しくなればなるほど、それを習得するのは難しくなります。多くの専門知識は、まず一つの知識を習得し、ある程度の深さを持ってから水平展開する必要があり、複数のスキルに精通し、それぞれのスキルが表面に留まっていると、高いレベルに到達することは困難になります。技術分野のレベル。

  6. 知識に対する好奇心を持ち続け、生涯学習に努めてください。技術者は「IT理論を学びたければ技術書を読めばいい、システムの実務経験を学びたければギークタイムを使えばいい、症状が出たらCSDNを閲覧すればいい」、科目や常識については内容についてはアプリを使用でき、強力な理論的および学術的知識の研究については論文を読むことができます。

  7. 自分自身の逆転思考と構造化された思考能力を養います。思考の惰性を打ち破り、複数の可能性を想像してください。特に 2 つの極端な方向で考えてください。質問を続け、自分自身の仮説を反証し、新しい仮説をテストしてください。

若い頃の自分にアドバイスできるとしたら、李建明はこう言いました。「人生には限界がありますが、知識には限界がありません。喜んで諦め、自分が最も興味のある方向、または最も得意な方向を見つけなければなりません。 「熱心に働き、涅槃を実践しましょう。もっと詳しく学ぶ いくつかの学際的な基本原則は、知識を広げ、多次元の思考能力を向上させ、熱心に考え、より実践的な計画を立てることができます。」多くのデータベース実務者と励ましを共有しました


著者について

李建明

現在、雲南省の銀行の情報技術部門の運用保守センターのマネージャーとして働いています。システムアナリスト、Elasticsearch認定エンジニア、Kubernetes認定アドミニストレータ、DevOpsマスター、Oracle認定エキスパート、OceanBase認定エキスパートなどの資格を保有。

おすすめ

転載: blog.csdn.net/OceanBaseGFBK/article/details/126580884