(8.0.20)
-- MySQL Enterprise Backupのインストール
※MySQL本体のバージョンと一致している必要がある
rpm -ivh mysql-commercial-backup-8.0.20-1.1.el7.x86_64.rpm
-- テストテーブル作成
drop table tab1;
create table tab1(col1 int);
insert into tab1 values(1);
select * from tab1;
-- 完全バックアップ
rm -rf /tmp/backups/*
mkdir -p /tmp/backups/001
mysqlbackup --defaults-file=/etc/my.cnf --backup-dir=/tmp/backups/001 backup-and-apply-log
-- データ追加
insert into tab1 values(2);
select * from tab1;
-- 差分バックアップ
mkdir -p /tmp/backups/002
mysqlbackup --defaults-file=/etc/my.cnf --incremental \
--incremental-base=dir:/tmp/backups/001 \
--incremental-backup-dir=/tmp/backups/002 \
backup
-- 完全バックアップに差分バックアップをマージ
mysqlbackup --backup-dir=/tmp/backups/001 apply-log
mysqlbackup --incremental-backup-dir=/tmp/backups/002 \
--backup-dir=/tmp/backups/001 apply-incremental-backup
-- データ追加
insert into tab1 values(3);
select * from tab1;
-- 差分バックアップ後の時点にリストア
mysqladmin shutdown
mysqlbackup --defaults-file=/etc/my.cnf \
--backup-dir=/tmp/backups/001 \
--datadir=/var/lib/mysql \
copy-back-and-apply-log
chown -R mysql:mysql /var/lib/mysql
systemctl start mysqld
systemctl status mysqld
-- データ確認
select * from tab1;
(12cR1)
-- テストテーブル作成
drop table tab1 purge;
create table tab1(col1 int);
insert into tab1 values(1);
commit;
select * from tab1;
-- 完全バックアップ
rman target /
list backup;
backup incremental level 0 database plus archivelog;
-- SCN確認、データ追加
select current_scn from v$database;
insert into tab1 values(2);
commit;
select * from tab1;
-- 差分バックアップ
rman target /
list backup;
backup incremental level 1 database plus archivelog;
-- SCN確認、データ追加
select current_scn from v$database;
insert into tab1 values(3);
commit;
select * from tab1;
-- 差分バックアップ後の時点にリストア
rman target /
shutdown immediate;
startup mount;
restore database until scn 268926907;
recover database until scn 268926907;
alter database open resetlogs;
-- データ確認
select * from tab1;
(11)
-- pg_rmanのインストール
yum install https://github.com/ossc-db/pg_rman/releases/download/V1.3.9/pg_rman-1.3.9-1.pg11.rhel7.x86_64.rpm
-- アーカイブモードの設定
mkdir -p /var/lib/pgsql/11/archive
vim postgresql.conf
archive_mode = on
archive_command = 'test ! -f /var/lib/pgsql/11/archive/%f && cp %p /var/lib/pgsql/11/archive/%f'
sudo systemctl restart postgresql-11
-- テストテーブル作成
drop table tab1;
create table tab1(col1 int);
insert into tab1 values(1);
select * from tab1;
-- pg_rmanの初期化
mkdir -p /var/lib/pgsql/11/backup
export BACKUP_PATH=/var/lib/pgsql/11/backup
/usr/pgsql-11/bin/pg_rman init
-- 完全バックアップ
/usr/pgsql-11/bin/pg_rman backup --backup-mode=full --with-serverlog --progress
-- バックアップデータの検証
/usr/pgsql-11/bin/pg_rman validate
/usr/pgsql-11/bin/pg_rman show
-- トランザクションID確認、データ追加
SELECT txid_current();
insert into tab1 values(2);
select * from tab1;
-- 差分バックアップ
/usr/pgsql-11/bin/pg_rman backup --backup-mode=incremental --with-serverlog --progress
-- バックアップデータの検証
/usr/pgsql-11/bin/pg_rman validate
/usr/pgsql-11/bin/pg_rman show
-- トランザクションID確認、データ追加
SELECT txid_current();
insert into tab1 values(3);
select * from tab1;
-- 差分バックアップ後の時点にリストア
sudo systemctl stop postgresql-11
/usr/pgsql-11/bin/pg_rman restore --recovery-target-xid=961
sudo systemctl start postgresql-11
-- データ確認
select * from tab1;
(2014)
-- テストテーブル作成
drop table tab1;
create table tab1(col1 int);
insert into tab1 values(1);
select * from tab1;
-- 完全バックアップ
use test;
go
backup database test
to disk = 'C:\backup\bk01.bak'
with format,
medianame = 'bk01',
name = 'full backup of test';
-- LSN確認、データ追加
begin transaction tran001 with mark 'insert tab1 2';
go
insert into tab1 values(2);
go
commit transaction tran001;
go
select * from tab1;
select * from msdb.dbo.logmarkhistory;
-- 差分バックアップ
use test;
go
backup database test
to disk = 'C:\backup\bk02.bak'
with differential,
format,
medianame = 'bk02',
name = 'differential backup of test';
-- LSN確認、データ追加
begin transaction tran002 with mark 'insert tab1 3';
go
insert into tab1 values(3);
go
commit transaction tran002;
go
select * from tab1;
select * from msdb.dbo.logmarkhistory;
-- トランザクションログバックアップ
use test;
go
backup log test
to disk = 'C:\backup\bk03.bak'
with format,
medianame = 'bk03',
name = 'log backup of test';
-- 差分バックアップ後データ追加前の時点にリストア
use master
go
restore database test
from disk = 'C:\backup\bk01.bak'
with norecovery, replace;
restore database test
from disk = 'C:\backup\bk02.bak'
with norecovery;
restore log test
from disk = 'C:\backup\bk03.bak'
with recovery, stopbeforemark = 'lsn:35000000039700003';
-- データ確認
use test;
go
select * from tab1;