Rumah  >  Artikel  >  Operasi dan penyelenggaraan  >  Bagaimana untuk membuat sandaran dan memulihkan pangkalan data pada Linux

Bagaimana untuk membuat sandaran dan memulihkan pangkalan data pada Linux

PHPz
PHPzasal
2023-07-05 12:04:434201semak imbas

Cara Menyandarkan dan Memulihkan Pangkalan Data pada Linux

Dalam sistem pengendalian Linux, membuat sandaran dan memulihkan pangkalan data adalah tugas yang sangat penting. Sama ada untuk mengelakkan kehilangan data atau untuk memindahkan pangkalan data, anda perlu menguasai kemahiran ini. Artikel ini akan memperkenalkan cara membuat sandaran dan memulihkan pangkalan data pada Linux dan memberikan contoh kod yang sepadan.

1. Sandarkan pangkalan data

  1. Gunakan arahan mysqldump untuk membuat sandaran pangkalan data MySQL

MySQL ialah sistem pengurusan pangkalan data hubungan sumber terbuka Anda boleh menggunakan arahan mysqldump untuk membuat sandaran pangkalan data MySQL. Seperti yang ditunjukkan di bawah:

mysqldump -u <username> -p<password> <database_name> > <backup_file.sql>

Di mana, 62df6b318c6134012860f5ebb4051760 ialah nama pengguna pangkalan data, 5594e1c8b6d9525f9f329ee89f90fa86 ialah kata laluan pangkalan data, ec43687d8ea37101b2a589694248ed68 ialah nama pangkalan data yang akan disandarkan, <code>0d961a72f705c85f286562928e09463c ialah laluan dan nama fail bagi fail sandaran. Sebagai contoh, untuk menyandarkan pangkalan data bernama "mydb", anda boleh melaksanakan arahan berikut: d6025a37ea8687b5422f951f7288bdc5是数据库的用户名,cb1ebc435675187bdcfb539b370c2e37是数据库的密码,6b7267f525327f2a23dcb01791a146aa是要备份的数据库名称,0d961a72f705c85f286562928e09463c是备份文件的路径及文件名。例如,要备份名为"mydb"的数据库,可以执行以下命令:

mysqldump -u root -p123456 mydb > /backup/mydb_backup.sql
  1. 使用pg_dump命令备份PostgreSQL数据库

类似地,备份PostgreSQL数据库可以使用pg_dump命令。如下所示:

pg_dump -U <username> -W -Ft <database_name> -f <backup_file.tar>

其中,d6025a37ea8687b5422f951f7288bdc5是数据库的用户名,6b7267f525327f2a23dcb01791a146aa是要备份的数据库名称,1c92970fa88b6759818996c6c108bcd5是备份文件的路径及文件名。例如,要备份名为"mydb"的数据库,可以执行以下命令:

pg_dump -U postgres -W -Ft mydb -f /backup/mydb_backup.tar

二、还原数据库

  1. 还原MySQL数据库

要还原MySQL数据库,可以使用以下命令:

mysql -u <username> -p<password> <database_name> < <backup_file.sql>

其中,d6025a37ea8687b5422f951f7288bdc5是数据库的用户名,cb1ebc435675187bdcfb539b370c2e37是数据库的密码,6b7267f525327f2a23dcb01791a146aa是要还原的数据库名称,0d961a72f705c85f286562928e09463c是备份文件的路径及文件名。例如,要将备份文件"mydb_backup.sql"还原到名为"mydb"的数据库中,可以执行以下命令:

mysql -u root -p123456 mydb < /backup/mydb_backup.sql
  1. 还原PostgreSQL数据库

要还原PostgreSQL数据库,可以使用以下命令:

pg_restore -U <username> -d <database_name> <backup_file.tar>

其中,d6025a37ea8687b5422f951f7288bdc5是数据库的用户名,6b7267f525327f2a23dcb01791a146aa是要还原的数据库名称,1c92970fa88b6759818996c6c108bcd5

pg_restore -U postgres -d mydb /backup/mydb_backup.tar

    Gunakan arahan pg_dump untuk menyandarkan pangkalan data PostgreSQL

    Begitu juga, anda boleh menggunakan perintah pg_dump untuk menyandarkan pangkalan data PostgreSQL. Seperti yang ditunjukkan di bawah:

    #!/bin/bash
    
    #数据库备份路径
    backup_dir="/backup"
    #数据库用户名
    username="root"
    #数据库密码
    password="123456"
    #需要备份的数据库名称
    database_name="mydb"
    #备份文件名
    backup_file="${backup_dir}/${database_name}_backup_$(date +%Y%m%d%H%M%S).sql"
    
    #执行备份命令
    mysqldump -u ${username} -p${password} ${database_name} > ${backup_file}
    
    #删除过期备份(保留最近7天的备份)
    find ${backup_dir} -name "${database_name}_backup_*" -type f -mtime +7 -exec rm -f {} ;

    Di mana, d6025a37ea8687b5422f951f7288bdc5 ialah nama pengguna pangkalan data, 6b7267f525327f2a23dcb01791a146aa ialah nama pangkalan data yang akan disandarkan, d7343ce59b1494947cea45b4b2f64233 ialah laluan dan nama fail bagi fail sandaran. Sebagai contoh, untuk membuat sandaran pangkalan data bernama "mydb", anda boleh melaksanakan arahan berikut:

    crontab -e

    2. Pulihkan pangkalan data

    Pulihkan pangkalan data MySQL

    Untuk memulihkan pangkalan data MySQL, anda boleh menggunakan arahan berikut:

    0 2 * * * /bin/bash /path/to/backup.sh

    Di mana, d6025a37ea8687b5422f951f7288bdc5 ialah nama pengguna pangkalan data, cb1ebc435675187bdcfb539b370c2e37 ialah kata laluan pangkalan data, 6b7267f525327f2a23dcb01791a146aa code> ialah nama pangkalan data yang akan dipulihkan, 0d961a72f705c85f286562928e09463c ialah laluan dan nama fail bagi fail sandaran. Sebagai contoh, untuk memulihkan fail sandaran "mydb_backup.sql" ke pangkalan data bernama "mydb", anda boleh melaksanakan arahan berikut:

    rrreee
      🎜Pulihkan pangkalan data PostgreSQL 🎜🎜🎜Untuk memulihkan PostgreSQL pangkalan data, anda boleh Gunakan arahan berikut: 🎜rrreee🎜di mana, 62df6b318c6134012860f5ebb4051760 ialah nama pengguna pangkalan data, 6b7267f525327f2a23dcb01791a146aa ialah nama pangkalan data untuk dipulihkan, d7343ce59b1494947cea45b4b2f64233 ialah laluan dan nama fail bagi fail sandaran. Sebagai contoh, untuk memulihkan fail sandaran "mydb_backup.tar" ke pangkalan data bernama "mydb", anda boleh melaksanakan arahan berikut: 🎜rrreee🎜 3. Sandarkan pangkalan data dengan kerap 🎜🎜 Membuat sandaran pangkalan data secara kerap boleh memastikan keselamatan dan integriti data. Dengan menulis skrip Shell dan menggunakan tugas berjadual crontab, anda boleh menyandarkan pangkalan data secara automatik. 🎜🎜Berikut ialah contoh skrip sandaran mudah: 🎜rrreee🎜Simpan skrip di atas sebagai backup.sh dan tambahkan kebenaran boleh laku. 🎜🎜Seterusnya, gunakan crontab untuk menambah tugasan berjadual: 🎜rrreee🎜Dalam fail yang dibuka, tambah kandungan berikut untuk menunjukkan bahawa tugasan sandaran akan dilaksanakan pada jam 2 pagi setiap hari: 🎜rrreee🎜Simpan dan keluar. 🎜🎜Dengan kaedah di atas, anda boleh membuat sandaran dan memulihkan pangkalan data dengan mudah di Linux dan melakukan tugas sandaran dengan kerap. Memastikan keselamatan dan integriti pangkalan data adalah salah satu langkah penting untuk memastikan data tidak hilang. 🎜

Atas ialah kandungan terperinci Bagaimana untuk membuat sandaran dan memulihkan pangkalan data pada Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn