データベース管理とは、データベース管理システム(DBMS)ソフトウェアを管理・保守する業務のことです。Oracle 、IBM Db2、Microsoft SQL Serverといった主流のDBMSソフトウェアは、継続的な管理が必要です。そのため、DBMSソフトウェアを使用する企業は、データベース管理者(DBA)と呼ばれる専門のIT担当者を雇用することがよくあります。
DBAには3つの種類があります。
大規模な組織では、通常、個人は特定の種類のデータベース管理に特化しています。しかし、小規模な組織では、一人の担当者またはチームが複数のデータベース管理業務を担うことが一般的です。
データベース管理の自動化の度合いは、データベース管理に必要なスキルと人員を決定づけます。自動化が最小限に抑えられたシステムでは、管理に相当数の経験豊富な人材が必要となります。例えば、データベース管理者(DBA)1人あたり5~10個のデータベースを管理する必要があるかもしれません。一方、組織によっては、手作業で行っていた作業の大部分を自動化することで、必要なスキルを削減できる場合もあります。自動化が進むにつれて、組織の人員ニーズは、自動化システムの構築と管理を担当する高度なスキルを持つ人材と、自動化システムを実行するだけのスキルレベルの低い「現場」DBAのグループに分かれていきます。
データベース管理業務は複雑で反復作業が多く、時間もかかるため、相当な訓練が必要です。データベースには貴重で業務上不可欠なデータが格納されているため、企業は通常、複数年の経験を持つ人材を求めています。データベース管理では、計画的な時間外メンテナンス、データベース関連の障害発生時、パフォーマンスが著しく低下した場合など、勤務時間外にも作業を行う必要があることがよくあります。DBAは、長時間労働に見合った十分な報酬を得ているのが一般的です。
DBAを選定する際に必要となる重要なスキルの一つでありながら、しばしば見落とされがちなのが、データベース復旧(災害復旧の一部)です。データベースは「もし」ではなく「いつ」障害に見舞われるかという問題であり、その障害は単純なものから壊滅的なものまで多岐にわたります。障害の原因は、データの破損、メディアの障害、あるいはユーザーによるエラーなど様々です。いずれの場合も、DBAはデータ損失を防ぐために、データベースを特定の時点まで復旧させるスキルを備えている必要があります。
DBMSソフトウェアには、DBAがDBMSを管理するのに役立つツールが付属していることがよくあります。このようなツールはネイティブツールと呼ばれます。例えば、Microsoft SQL ServerにはSQL Server Management Studioが付属しており、OracleにはSQL*PlusやOracle Enterprise Manager/Grid Controlなどのツールがあります。さらに、BMC、Quest Software、Embarcadero Technologies、patchVantage、SQL Maestro Groupなどのサードパーティは、DBMSを監視し、DBAがデータベース内で特定の機能をより簡単に実行できるようにするためのGUIツールを提供しています。
もう一つの種類のデータベースソフトウェアは、新しいデータベースのプロビジョニングと、既存のデータベースおよび関連リソースの管理を行うためのものです。新しいデータベースを作成するプロセスは、前提条件を満たすことからバックアップの設定まで、数百または数千もの固有のステップで構成され、各ステップは次のステップに進む前に成功する必要があります。複数のデータベースが存在する場合、人間がこの手順を毎回全く同じ方法で完了することは期待できません。まさにそれが、このプロセスにおける課題なのです。
DBAの数が増えるにつれて、自動化がなければ、固有の構成の数は増え続け、サポートがコスト高になったり困難になったりすることがよくあります。こうした複雑な手順はすべて、優秀なDBAがデータベース自動化ソフトウェアにモデル化し、標準的なDBAが実行することができます。StrataviaのData PaletteやGridApp SystemsのClarityなど、これらの手順の信頼性と再現性を向上させるために特別に開発されたソフトウェアもあります。
自動化されたデータベース運用は、Amazon Web Services が自動化されたマネージド データベースをサービスとして提供する AWS RDS を導入した 2009 年以降成長しています。[ 1 ] Microsoft Azure は、2010 年に SQL Azure で同様の自動化されたデータベースをサービスとして開始し、自動バックアップ、地理的レプリケーション、高可用性を提供しています。Docker (ソフトウェア)コンテナの導入により、コンテナ化されたデータベース インスタンスの高速配信のサポートが強化され、Amazon Web Services とMicrosoft Azure の両方がそれぞれのサービスでコンテナの自動化サポートを強化しています。
データベース コンテナ イメージのサードパーティ サポートは、OracleのMongoDB、PostgreSQL、MySQL 、MicrosoftのMicrosoft SQL Server 、 Windocks [ 2 ] Kubernetesの独立したポート、および CoreOS による Kubernetes Operator パターンの開発により、データベース コンテナをオーケストレーションする機能がさらに拡張されました。[ 3 ] Kubernetes Operator は、データベース インスタンスのデプロイ、データベース バージョンのアップグレード、バックアップの実行など、データベース管理を自動化する機能を実現するためにサードパーティによって使用されています。[ 4 ]
StrataviaのData PaletteスイートやGridApp SystemsのClarityといった新しいテクノロジーの登場により、データベースの自動化が進み、データベース関連のタスクが削減されつつあります。しかし、これはせいぜい単調で反復的な作業を減らすだけであり、DBAの必要性をなくすものではありません。DBAの自動化の目的は、DBAがデータベースアーキテクチャ、デプロイメント、パフォーマンス、サービスレベル管理といった、より積極的な活動に集中できるようにすることです。
すべてのデータベースには、スキーマ管理操作をすべて実行できるデータベース所有者アカウントが必要です。このアカウントはデータベース固有のものであり、Data Directorにログインすることはできません。データベース所有者アカウントは、データベース作成後にも追加できます。Data Directorユーザーは、データベース、そのエンティティ、およびデータを表示したり、データベース管理タスクを実行したりするには、データベース固有の認証情報を使用してログインする必要があります。データベース管理者とアプリケーション開発者は、組織管理者から適切な権限と役割が付与されている場合にのみ、データベースを管理できます。これらの権限と役割は、データベースグループまたはデータベース自体に付与する必要があり、付与された組織内でのみ有効です。
データベース管理を学ぶための専門コース(夜間講座を含む)を提供する教育機関は数多くあります。Oracle、Microsoft、IBMなどのDBMSベンダーは、企業が有能なDBA人材を採用できるよう、認定プログラムを提供しています。コンピュータサイエンスまたは関連分野の大学学位は役立ちますが、必須条件ではありません。