Dbeaver как сделать дамп базы postgresql

Резервное копирование PostgreSQL

В данной инструкции рассмотрены варианты и примеры создания резервных копий и восстановления баз СУБД PostgreSQL.

Все команды, которые приводятся ниже, должны выполняться из командной строки. В Linux — это окно терминала, в Windows — командная строка (cmd.exe) с переходом в папку установки PostgreSQL.

Создание резервных копий

Базовая команда

pg_dump users > /tmp/users.dump

Пользователь и пароль

Если резервная копия выполняется не от учетной записи postgres, необходимо добавить опцию -U с указанием пользователя:

pg_dump -U dmosk -W users > /tmp/users.dump

* где dmosk — имя учетной записи; опция W потребует ввода пароля.

Сжатие данных

Для экономии дискового пространства или более быстрой передачи по сети можно сжать наш архив:

pg_dump users | gzip > users.dump.gz

Скрипт для автоматического резервного копирования

Рассмотрим 2 варианта написания скрипта для резервирования баз PostgreSQL. Первый вариант — запуск скрипта от пользователя root для резервирования одной базы. Второй — запуск от пользователя postgres для резервирования всех баз, созданных в СУБД.

Для начала, создадим каталог, в котором разместим скрипт, например:

Вариант 1. Запуск от пользователя root; одна база.

PGPASSWORD=password
export PGPASSWORD
pathB=/backup
dbUser=dbuser
database=db

find $pathB \( -name «*-1[^5].*» -o -name «*-[023]?.*» \) -ctime +61 -delete
pg_dump -U $dbUser $database | gzip > $pathB/pgsql_$(date «+%Y-%m-%d»).sql.gz

* где password — пароль для подключения к postgresql; /backup — каталог, в котором будут храниться резервные копии; dbuser — имя учетной записи для подключения к БУБД; pathB — путь до каталога, где будут храниться резервные копии.
* данный скрипт сначала удалит все резервные копии, старше 61 дня, но оставит от 15-о числа как длительный архив. После при помощи утилиты pg_dump будет выполнено подключение и резервирование базы db. Пароль экспортируется в системную переменную на момент выполнения задачи.

Для запуска резервного копирования по расписанию, сохраняем скрипт в файл, например, /scripts/postgresql_dump.sh и создаем задание в планировщике:

3 0 * * * /scripts/postgresql_dump.sh

* наш скрипт будет запускаться каждый день в 03:00.

Вариант 2. Запуск от пользователя postgres; все базы.

find $pathB \( -name «*-1[^5].*» -o -name «*-[023]?.*» \) -ctime +61 -delete

for dbname in `echo «SELECT datname FROM pg_database;» | psql | tail -n +3 | head -n -2 | egrep -v ‘template0|template1|postgres’`; do
pg_dump $dbname | gzip > $pathB/$dbname-$(date «+%Y-%m-%d»).sql.gz
done;

* где /backup — каталог, в котором будут храниться резервные копии; pathB — путь до каталога, где будут храниться резервные копии.
* данный скрипт сначала удалит все резервные копии, старше 61 дня, но оставит от 15-о числа как длительный архив. После найдет все созданные в СУБД базы, кроме служебных и при помощи утилиты pg_dump будет выполнено резервирование каждой найденной базы. Пароль нам не нужен, так как по умолчанию, пользователь postgres имеет возможность подключаться к базе без пароля.

Необходимо убедиться, что у пользователя postgre будет разрешение на запись в каталог назначения, в нашем примере, /backup/postgres.

Читайте также:  Картриджи на принтер epson 340

Зададим в качестве владельца файла, пользователя postgres:

chown postgres:postgres /scripts/postgresql_dump.sh

Для запуска резервного копирования по расписанию, сохраняем скрипт в файл, например, /scripts/postgresql_dump.sh и создаем задание в планировщике:

crontab -e -u postgres

* мы откроем на редактирование cron для пользователя postgres.

3 0 * * * /scripts/postgresql_dump.sh

* наш скрипт будет запускаться каждый день в 03:00.

Права и запуск

Разрешаем запуск скрипта, как исполняемого файла:

chmod +x /scripts/postgresql_dump.sh

Единоразово можно запустить задание на выполнение резервной копии:

. или от пользователя postgres:

su — postgres -c «/scripts/postgresql_dump.sh»

На удаленном сервере

Если сервер баз данных находится на другом сервере, просто добавляем опцию -h:

pg_dump -h 192.168.0.15 users > /tmp/users.dump

* необходимо убедиться, что сама СУБД разрешает удаленное подключение. Подробнее читайте инструкцию Как настроить удаленное подключение к PostgreSQL.

Дамп определенной таблицы

Запускается с опцией -t или —table= :

pg_dump -t students users > /tmp/students.dump

* где students — таблица; users — база данных.

Если наша таблица находится в определенной схеме, то она указывается вместе с ней, например:

pg_dump -t public.students users > /tmp/students.dump

* где public — схема; students — таблица; users — база данных.

Размещение каждой таблицы в отдельный файл

Также называется резервированием в каталог. Данный способ удобен при больших размерах базы или необходимости восстанавливать отдельные таблицы. Выполняется с ипользованием ключа -d:

pg_dump -d customers > /tmp/folder

* где /tmp/folder — путь до каталога, в котором разместяться файлы дампа для каждой таблицы.

Для определенной схемы

В нашей базе может быть несколько схем. Если мы хотим сделать дамп только для определенной схемы, то используем опцию -n, например:

pg_dump -n public peoples > /tmp/peoples.public.sql

* в данном примере мы заархивируем схему public базы данных peoples.

Только схемы (структуры)

Для резервного копирования без данных (только таблицы и их структуры):

pg_dump —schema-only users > /tmp/users.schema.dump

Также, внутри каждой базы могут быть свои схемы с данными. Если нам нужно сделать дамп именно той схемы, которая внутри базы, используем ключ -n:

pg_dump —schema-only users -n production > /tmp/users.schema_production.dump

* в данном примере мы создадим дамп структуры базы данных users только для схемы production.

Или полный дамп с данными для схемы внутри базы данных:

pg_dump users -n production > /tmp/users.production.dump

Только данные

pg_dump —data-only users > /tmp/users.data.dump

Использование pgAdmin

Данный метод хорошо подойдет для компьютеров с Windows и для быстрого создания резервных копий из графического интерфейса.

Запускаем pgAdmin — подключаемся к серверу — кликаем правой кнопкой мыши по базе, для которой хотим сделать дамп — выбираем Резервная копия:

В открывшемся окне выбираем путь для сохранения данных и настраиваемый формат:

При желании, можно изучить дополнительные параметры для резервного копирования:

Читайте также:  Картриджи на сергея макеева

После нажимаем Резервная копия — ждем окончания процесса и кликаем по Завершено.

Не текстовые форматы дампа

Другие форматы позволяют делать частичное восстановление, работать в несколько потоков и сжимать данные.

Источник

How to Dump a Database using DBeaver

While trying to generate a dump database using DBeaver, I stumbled across a few challenging issues. I had to resort to my best friend Google and source the bits and pieces in a few blog posts.

That’s why I am combining all the steps to generate a database dump in one place.

Disclaimer: I am using a MacBook Pro to demonstrate all the steps. If you wish to have a version of this blog post that targets Windows computers, just drop me a line in the comments section below.

Install MySQL Database Server

If you already have MySQL Server installed on your computer, you may skip this section.

Let’s navigate to MySQL Downloads page.

Select the first option and click the Download button.

Once complete, double-click the installer and follow the steps to install the database server on your computer. Make sure to save the root password. You will need it later to connect to the database.

What’s DBeaver

DBeaver is a multi-platform, multi-database management tool for developers, database administrators, and analysts.

DBeaver supports a variety of database engines including MySQL, PostgreSQL, SQLite, Oracle, DB2, SQL Server, Sybase, MS Access, Teradata, Firebird, Apache Hive, Phoenix, Presto and many others.

If you don’t have it installed, hit up their website and download a copy of the software. The installation is a few simple steps and you get it up and running in no time.

Connect to MySQL Server using DBeaver

Open up DBeaver, click the Database menu and then select the New Database Connection menu item.

Step 1: Select database engine

The process starts by selecting the database you are trying to connect to. Make sure to have SQL selected on the left-side menu, then click the icon named MySQL 8+ .

Locate and click the Next button.

Step 2: Enter database engine details

Most of the configuration settings are already populated on the next screen. In the Password field, enter the password you allocated when installing MySQL Database Server.

At the bottom of the screen, make sure the Driver name is MySQL 8+ .

Step 3: Configure the driver settings

While you are on the same screen, click the Edit Driver Settings button.

Click the Connection properties section and make sure to add the configurations settings listed.

Exit fullscreen mode

Locate and click the OK button.

Step 4: Set the Server Timezone

Locate the Server Time Zone field under Advanced Settings . Click the dropdown list, locate and select the value of UTC as shown in the diagram below.

Step 5: Configure the connection settings

Let’s change the name of this new connection. Click the Connection details .

I’ve changed the connection name to local . Feel free to change it to whatever you want.

Читайте также:  Картридж вспененный пп 10 м 20бб

Step 6: Test the connection

While on the same screen, click the Test Connection button. You should receive a popup message saying Connected . If you don’t, drop me a line in the comments section for help.

Finally, click the Finish button. Only after this step, you’ll see the new connection created inside DBeaver and ready for use.

Import a sample database

For the sake of this tutorial, I will be importing a sample database to work with. Navigate to MySQL Sample Database, and click the Download MySQL Sample Database button to download yourself a copy of the database.

Unzip the sample database file and you get a MySQL script file with an extension of .sql .

Switch back to DBeaver and perform the following steps:

  1. Right-click the MySQL connection.
  2. Click the SQL Editor menu item.
  3. The SQL Editor is open on the right side of the screen.
  4. Copy the sample database script and paste it inside the SQL Editor.
  5. Locate and click the Execute SQL Script menu item. In case you cannot find it, locate the horizontal menu on the SQL Editor, go to the 3rd menu item and click it.

Give a few seconds, expand the MySQL connection node, then right-click the Databases node and hit Refresh . You will notice a new database named classicmodels with a few tables.

Generate a dump of the newly added database

In this final section, we explore how to generate a database dump for the newly added database.

Step 1: Open the dump database screen

Right-click the classicmodels database, go to Tools and then click Dump database .

The database and its tables are all selected for you. Before moving on, we need to select the MySQL Native Client in order to make use of the mysqldump library.

Step 2: Configure the MySQL native client

Locate and click the Client button.

Select the Browse from the Native client dropdown list.

Click the Add Home button. Navigate to the path /usr/local and click the MySQL installation folder named mysql-8.0.21-macos10.15-x86_64 .

Click the OK button, and the next OK button too.

Now you notice that the Next button is enabled.

Step 3: Configure dump settings

Click on the Next button.

On this screen, you can adjust the settings of the dump by checking a few of them. You can even save this dump as a task, so that next time, you can click on it and let DBeaver generate the database dump for you.

Make sure to change the Output Folder value. In my case, I set that to be the Desktop folder. You can also change the format of the dump file name. For now, I will keep it as is.

Locate and click the Start button.

In a few seconds, you should receive a popup message reading Task is completed . If you don’t, let me know in the comments for some assistance.

Navigate to the Desktop folder to verify the file does exist.

Источник

Поделиться с друзьями
КомпСовет
Adblock
detector