質問
私は開発者です。天気の良い日は建築家。どういうわけか、私は自分の小さな会社の DBA も務めていることに気づきました。私のバックグラウンドは DB 技術に関してはかなりのものですが、本格的な DBA になったことはありません。私の質問は、実際の労力をできるだけ少なくして、現実的で合理的に機能するデータベース環境を確保するには何をしなければならないかということです。
バックアップが確実に実行されていることを確認する必要があると思います。それは簡単です。他に継続的に何をしなければなりませんか?
解決
他にデータベースに関与しているのは誰ですか?スキーマ変更 (新しいオブジェクトの作成、新しいストアド プロシージャのリリース、新しいユーザーの許可) を行っているのはあなただけですか?
- パフォーマンスに影響を与える可能性のある操作を行うユーザーの数を、理想的にはあなたも含めて、可能な限りゼロに近づけるようにしてください。
- バックアップをテストしていることを確認してください。理想的には、運用環境を定期的に再作成する DEV ボックスを実行します。1.DEV ボックスは良いアイデアです。2.バックアップは、そこから復元できる場合にのみ役に立ちます。
- データベースに接続するさまざまなアプリのグループを作成すると、新しいユーザーが来たときに、そのユーザーに必要な権限を推測する必要がなく、そのユーザーをグループに追加するだけで済みます。その間、データベース オブジェクトの権限は、必要なグループのみに与えられます。
- インデックス、主キー、外部キー、制約、統計、およびデータベースがサポートするその他のツールを使用します。ノーマライズ。
- 最も一般的なコードをボックスに対して最適化します。不適切なストアド プロシージャ/データ アクセス コードは役に立ちます。
他のヒント
そこに行ったことがある。私は以前、コードを書いたり、インフラストラクチャ関連のすべてを行ったり、DBA の帽子をかぶったり、ユーザー サポートを行ったり、電気ホッチキスが詰まったときに修理したり、その他 IT に関連する可能性のあるその他のことを行う仕事に就いていました。よかった!すべてについて少し学びました。
データベース ボックスの手入れとフィードに関しては、次のことを行うことをお勧めします。
定期的に完全バックアップを実行します。
定期的にトランザクション ログのバックアップを実行します。
バックアップ ジョブを監視します。これを自動化できる比較的安価なユーティリティが市場に出回っています。小さな店では、忙しすぎて毎日チェックすることを忘れないでください。
バックアップをテストします。ドリルをしてください。最も重要なデータベースの古いコピーを復元します。バックアップが機能しており、バックアップを適切に復元する方法を知っていることを自分自身に証明してください。初めての本格的な災害が発生したときだけ、このことについて考える人がいかに多いかに驚かれるでしょう。
バックアップをオフサイトに保存します。現在、オンライン バックアップ プロバイダーが数多く存在するため、オフサイト バックアップを持たない言い訳はあまりありません。
ボックスへのアクセスを制限します。
データベース プラットフォームがサポートしている場合は、ロール ベースのセキュリティのみを使用してください。1 回限りのユーザー固有のセキュリティを設定したいという誘惑に抵抗してください。
ここでの基本的な考え方は、ボックスにアクセスできるユーザーを制限すれば、問題は少なくなるということです。第二に、バックアップがしっかりしていれば、効果的に対処できない問題が発生することはほとんどありません。
私は次のように提案します:
- データベースが破損した場合に、データベースの最新のバックアップを迅速に復元するスクリプト
- どのようなバックアップを行っていますか?毎日完全バックアップを行うのか、それとも 1 時間ごとに増分バックアップを行うのかなど。
- 新しいユーザーを作成し、基本的なアクセス権を付与するためのいくつかのスクリプト。
ただし、一番の提案は、他のユーザーが持つ権限を可能な限り制限することです。これにより、物事がひどく混乱する可能性が大幅に減少します。全員が SA になっているサーバーは、ロックダウンされているサーバーよりも早く故障する傾向があります。