リストア(完全、不完全)

--完全
rman target /
restore database;
recover database;
alter database open;


--不完全

rman target /
restore database until scn 578046;
recover database until scn 578046;
alter database open resetlogs;

 

http://www.techscore.com/blog/2014/12/22/mysql%E3%81%A8posqgresql%E3%81%AEpitr%E3%81%AB%E3%82%88%E3%82%8B%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%EF%BC%86%E3%83%AA%E3%82%AB%E3%83%90%E3%83%AA%E3%81%AE%E9%81%95%E3%81%84%EF%BC%88/


mysql -u root -p test < bkup11.dmp

cd /var/lib/mysql

mysqlbinlog --start-position=120 --stop-datetime='2021-12-21 10:00:00' \
mysql-bin-log.000025 \
mysql-bin-log.000026 \
mysql-bin-log.000027 > /tmp/recovery.sql

mysql -u root -p < /tmp/recovery.sql


SHOW MASTER STATUS;


https://dev.mysql.com/doc/refman/5.6/ja/point-in-time-recovery.html


※flush-logsオプションでバックアップ前にバイナリログをフラッシュしている。
そのため、その後に生成されたバイナリログを適用してロールフォワードする。
リストア時のDDLもバイナリログに含まれているため、適用範囲に注意する

 


-------------------------------------------------
--MySQL Enterprise Backupによるリストア(8.0)

mysqladmin --user=root --password shutdown
rm -rf /var/lib/mysql

mysqlbackup --defaults-file=/etc/my.cnf \
--backup-dir=/tmp/backups \
--datadir=/var/lib/mysql \
copy-back

--(5.7)の場合は下記
--/opt/mysql/meb-4.1/bin/mysqlbackup --defaults-file=/etc/my.cnf \
-- --backup-dir=/tmp/backups \
-- --datadir=/var/lib/mysql \
-- copy-back

chown -R mysql:mysql /var/lib/mysql


-------------------------------------------------

 


http://www.techscore.com/blog/2014/12/22/mysql%E3%81%A8posqgresql%E3%81%AEpitr%E3%81%AB%E3%82%88%E3%82%8B%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%EF%BC%86%E3%83%AA%E3%82%AB%E3%83%90%E3%83%AA%E3%81%AE%E9%81%95%E3%81%84%EF%BC%88/


--プレーンテキスト形式
psql postgres < bkup11.txt

--カスタムアーカイブ形式
pg_restore --clean --create -d postgres < bkup12.dmp

--DBクラスタ
psql postgres < bkup13.txt


--PITRリカバリ

--1.ベースバックアップ取得
psql -c "SELECT pg_start_backup(now()::text)"

cd /var/lib/pgsql/9.4
cp -a data backups/

psql -c "select pg_stop_backup()"


※取得したバックアップからpidファイルは削除しておく
rm -i postmaster.pid

--2.WALの待避
cd /var/lib/pgsql/9.4
cp -a data/pg_xlog/* wal_backups/

--3.PostgreSQLの停止
systemctl stop postgresql-9.4

--4.ベースバックアップの戻し
cd /var/lib/pgsql/9.4
rm -rf data
cp -a backups/data .

--5.recovery.confの作成
cd /var/lib/pgsql/9.4/data
vim recovery.conf


restore_command = 'cp /var/lib/pgsql/9.4/arc/%f "%p"'
recovery_target_time = '2034-12-21 10:00:00'

--6.WALの戻し
cd /var/lib/pgsql/9.4/data/pg_xlog
rm -rf *
cp -a ../../wal_backups/* .

--7.PostgreSQLの起動
systemctl start postgresql-9.4


--WALの中身確認
(10)
/usr/pgsql-10/bin/pg_waldump ${PGDATA}/pg_wal/00000001000000030000000C

 

--ログ末尾のバックアップ
use master
go
BACKUP LOG test
TO DISK = 'E:\backup\bk04.bak'
WITH FORMAT,
MEDIANAME = 'bk04',
NAME = 'Tail-Log Backup of test',
norecovery;

 

--完全バックアップの時点にリカバリする場合

use master
go

restore database test
from DISK = 'E:\backup\bk01.bak'
with recovery;

 


--最新の状態にリカバリする場合

use master
go

restore database test
from DISK = 'E:\backup\bk01.bak'
with norecovery;


restore database test
from DISK = 'E:\backup\bk02.bak'
with norecovery;

restore log test
from DISK = 'E:\backup\bk03.bak'
with norecovery;

restore log test
from DISK = 'E:\backup\bk04.bak'
with recovery;