sql >> データベース >  >> RDS >> Database

CentOS7での一般的なPostgresタスク

    このガイドでは、Postgresサーバーを取り巻くいくつかの一般的なタスクについて説明します。このチュートリアルでは、Postgresのインストール、新しいデータベースとユーザーの作成、データベースのバックアップなどについて説明します。掘り下げましょう!

    注:このチュートリアルの残りの部分では、ルートが必要です。 特権。 rootとしてログインするか、これらのコマンドの前に sudoを付けることから始めます。 。

    PostgreSQLのインストール

    YUMパッケージマネージャーのおかげで、CentOSVPSサーバーへのPostgresのインストールは簡単です。次のコマンドを実行して、システムにPostgresをインストールします。

    yum install -y postgres-server

    PostreSQLの設定

    Postgresがインストールされたので、次はサービスを構成します。まず、Postgresでは、データベースを使用する前にデータベースを初期化する必要があります。幸い、これらのコマンドは、この手順を簡単にするためのコマンドを提供します。

    postgres-setup initdb

    サーバーの起動時にPostgresが自動的に起動するように設定します。次のコマンドを実行して、起動時にサービスを有効にします。
    systemctl enable postgres

    次に、サービスを開始します。次のコマンドは、Postgresがまだ実行されていない場合、起動します。
    systemctl start postgres

    最後に、再起動後にPostgresが実行されていることを確認します:
    service postgres status

    出力には、サービスが稼働中であり、続行する準備ができていることを示すアクティブ(実行中)が表示されます。

    新しいデータベースの作成と新しいユーザーの追加

    Postgresは、「root」としてではなく、CentOSLinuxシステム上で「postgres」ユーザーとして実行されます。ルートとしてPostgresと対話することはできないため、これは注意することが重要です。

    まず、「 postgres」に切り替えましょう 」ユーザー。このユーザーは、Postgresをインストールしたときにシステムに自動的に作成されました。
    su --postgres

    次に、新しいデータベースを作成します。これを「マイデータベース」と呼んでいます この例では」ですが、好きな名前を付けてください。
    createdb mydatabase

    次に、そのデータベースの新しいユーザーを追加します。この例では、ユーザー名「 myusername 」を使用しています 」ですが、これには好きな名前を付けることができます。
    createuser myusername

    PostgreSQLデータベースへのアクセス許可の付与

    これまでに、Postgresをインストールし、新しいデータベースを作成し、データベースにアクセスするための新しいユーザーを作成しました。残りのステップは1つだけです。それは、新しいユーザーがデータベースにアクセスできるようにするためのアクセス許可を付与することです。このプロセスを開始するには、最初に「postgresシェル」に入る必要があります。次のコマンドを入力します:
    psql

    Enterキーを押すと、コマンドプロンプトが変更され、Postgresシェルにいることを示します。
    psql(9.2.24)
    ヘルプを表示するには「help」と入力します。
    postgres =#

    ここから、新しいユーザーがデータベースにアクセスするためのアクセス許可を追加できます。次のコマンドを入力して、ユーザーのパスワードを設定します。注意すべきことがいくつかあります。まず、パスワードを一重引用符で囲む必要があります。次に、例 my_secure_passwordを必ず置き換えてください。 正当な安全なパスワードのために!最後に、ステートメントの最後にセミコロンを必ず含めてください。見逃しがちです!
    暗号化されたパスワード「my_secure_password」でusernamemyusernameを変更します;
    Postgresは、成功したことを知らせる次のテキストで返信する必要があります。
    ALTER ROLE

    パスワードが作成されたので、データベースに権限を設定します。これにより、myusernameがmydatabaseにアクセスできるようになります。
    データベースmydatabaseに対するすべての権限をmyusernameに付与します;
    コマンドが成功した場合、Postgresは次のテキストで応答します。
    GRANT

    作業を再確認して、データベースがPostgresに表示されることを確認しましょう。シェルから、 \ listを実行します コマンドを実行し、出力を注意深く観察します。 「mydatabase」が表示されます データベースのリストにある」。

    終わったね!次のコマンドを入力して、Postgresシェルを終了します。
    \ quit

    PostgreSQLデータベースをバックアップする方法

    Postgresデータベースをバックアップする方法はいくつかあります。今日の例では、優れた「 pg_dump」の使用方法を紹介します。 」コマンド。データベース全体を単一のファイルとして出力します。バックアップの作成は簡単です!次のコマンドを実行して、データベースをバックアップします。 「mydatabase.bak」という名前を使用していることに注意してください この例では」ですが、バックアップファイルには任意の名前を付けることができます。
    pg_dump mydatabase> mydatabase.bak

    これで、バックアップを保存したい場所にこのファイルを簡単にコピーまたは移動できます。ベストプラクティスとして、オペレーティングシステムドライブとは別に、専用のバックアップディスクにバックアップを保存することを強くお勧めします。これにより、万が一システムがクラッシュした場合でも、バックアップは安全で健全なものになります。

    PostgreSQLデータベースを削除する方法

    データベースの削除は簡単なプロセスです。最初にPostgresシェルにアクセスする必要があります。次のコマンドでPostgresシェルにアクセスできることを簡単に思い出してください:
    psql
    ここから、データベースを削除するのは1つのコマンドです。サンプルデータベースを削除しましょう。
    drop database mydatabase
    Postgresは、次のメッセージで成功を確認します:
    DROP DATABASE
    注:存在しないデータベースを指定すると、Postgresは次のエラーで応答します:
    エラー:データベース「my_other_database」は存在しません
    \ list を使用して、データベースが削除されたことを確認できます Postgresシェル内のコマンド。出力を観察すると、「 mydatabase 」はデータベースのリストから削除されました。

    バックアップからPostgreSQLデータベースを復元する方法

    これで、「 mydatabase」というデータベースが削除されました。 」、作成したバックアップからそのデータベースを復元する方法を見てみましょう。まず、復元されたデータベースを格納するために空のテンプレートを使用する必要があります。必ず次のコマンドをPostgresユーザーとして、BASHシェル(Postgresシェルではありません!)から実行してください。
    createdb -T template0 mydatabase

    テンプレートプレースホルダーができたので、データをインポートできます。
    psql mydatabase
    データベースが復元されました。 \ listを実行する場合 再びPostgresシェルから、データベースのリストに「mydatabase」が再び表示されます!

    この記事の最後までおめでとうございます。このチュートリアルでは、多くのことを取り上げました。このトピックのほんの一部に過ぎません。データベース管理者が多くの企業で専任のポジションを保持している理由をすでに理解し始めています。幸いなことに、Liquid Webは、データベースのすべてのニーズに対応するためにここにあります。私たちのプロチームは、データベースのアドバイスと管理をお手伝いします。ご不明な点がございましたら、お気軽にお問い合わせください。


    1. SentryOneデータをAzureSQLデータベースDTU計算機に送信する

    2. IDENTITY列を広げることによる影響の最小化–パート4

    3. Oracleでの選択クエリのデフォルトの行順序

    4. Oracle.DataAccessが機能するのにOracle.ManagedDataAccessが機能しないのはなぜですか。