別サーバにリストア

(8.0.23)

mysqldumpでバックアップ取得し、別サーバにリストア

-- 事前準備
移設元:mmm181
移設先:mmm182

2台の同スペックのサーバにMySQLをインストール
移設元のみDB作成実施


-- 移設元でバックアップ取得

mysqldump -u root --databases test -p --quick --master-data=2 --flush-logs --single-transaction --triggers --routines --events > bkup11.dmp

ダンプファイルを移設先へコピー


-- 移設先でリストア

mysql -u root -p < bkup11.dmp

 

(19c)

 

[1] RMANでバックアップ取得し、別サーバにリストア

 

-- 事前準備
移設元:mmm181
移設先:mmm182

2台の同スペックのサーバにオラクルをインストール
移設元のみDB作成実施(CDB)

-- 移設元でバックアップ取得

rman target /

show all;
list backup;

backup database plus archivelog;

list backup;

/u01/app/oracle/product/19.0.0/dbhome_1/dbs/01vn32jb_1_1 <==アーカイブログ
/u01/app/oracle/product/19.0.0/dbhome_1/dbs/02vn32je_1_1 <==ルートコンテナ
/u01/app/oracle/product/19.0.0/dbhome_1/dbs/03vn32jl_1_1 <==pdb1
/u01/app/oracle/product/19.0.0/dbhome_1/dbs/04vn32jo_1_1 <==seed
/u01/app/oracle/product/19.0.0/dbhome_1/dbs/05vn32jr_1_1 <==アーカイブログ
/u01/app/oracle/product/19.0.0/dbhome_1/dbs/c-1592181867-20210213-00 <==制御ファイルSPFILE

上記6ファイルを移設先へコピー


-- 移設先でリストア

rman target /

startup

restore spfile from '/u01/app/oracle/product/19.0.0/dbhome_1/dbs/c-1592181867-20210213-00';

shutdown immediate;
startup

restore controlfile from '/u01/app/oracle/product/19.0.0/dbhome_1/dbs/c-1592181867-20210213-00';

alter database mount;

catalog backuppiece '/u01/app/oracle/product/19.0.0/dbhome_1/dbs/01vn32jb_1_1';
catalog backuppiece '/u01/app/oracle/product/19.0.0/dbhome_1/dbs/02vn32je_1_1';
catalog backuppiece '/u01/app/oracle/product/19.0.0/dbhome_1/dbs/03vn32jl_1_1';
catalog backuppiece '/u01/app/oracle/product/19.0.0/dbhome_1/dbs/04vn32jo_1_1';
catalog backuppiece '/u01/app/oracle/product/19.0.0/dbhome_1/dbs/05vn32jr_1_1';

list backup;

restore database until scn 1355615;
recover database until scn 1355615;

※scnにはルートコンテナのバックアップピースのSCNを指定する

alter database open resetlogs;

 

[2] duplicateコマンドで複製する場合


-- 事前準備
移設元:mmm181
移設先:mmm182

2台の同スペックのサーバにオラクルをインストール
移設元のみDB作成実施(非CDB)

-- 移設元での作業

mkdir /home/oracle/bkup

export NLS_DATE_FORMAT='YYYY/MM/DD HH24:MI:SS'

rman target /

show all;
-- 紛らわしいので一時的無効化
CONFIGURE CONTROLFILE AUTOBACKUP OFF;
show all;


backup device type disk format '/home/oracle/bkup/%U' database;
backup device type disk format '/home/oracle/bkup/%U' current controlfile;
backup device type disk format '/home/oracle/bkup/%U' archivelog all;


list backup summary;
list backup of archivelog all by file;

list backupset 5;
list backupset 6;
list backupset 7;
list backupset 8;

CONFIGURE CONTROLFILE AUTOBACKUP ON;

 

移設元で取得したバックアップを移設先の/home/oracle/bkupに格納

-- 移設先での作業

mkdir -p /u01/app/oracle/oradata/orcl/fra


vim $ORACLE_HOME/dbs/initorcl.ora
db_name='orcl'
memory_target=800M
db_domain='example.com'
control_files = ('/u01/app/oracle/oradata/orcl/control01.ctl','/u01/app/oracle/oradata/orcl/control02.ctl')
compatible=19.0.0
db_block_size=8192
db_recovery_file_dest='/u01/app/oracle/oradata/orcl/fra'
db_recovery_file_dest_size=500M
remote_login_passwordfile='EXCLUSIVE'
diagnostic_dest='/u01/app/oracle'

※duplicateコマンド実行によりspfileが生成されるため、pfileを変更して再実行する場合は、spfileの削除必要


export ORACLE_SID=orcl
sqlplus / as sysdba
startup nomount;

rman auxiliary /

DUPLICATE DATABASE TO orcl BACKUP LOCATION '/home/oracle/bkup' NOFILENAMECHECK;


[3] PDBの場合

select * from V$PDBS;
select * from cdb_pdbs;


vim tnsnames.ora

ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.137.65)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl.example.com)
)
)

create database link test connect to system identified by oracle using 'ORCL';

mkdir -p /u01/app/oracle/oradata/orcl/pdb1
alter session set DB_CREATE_FILE_DEST='/u01/app/oracle/oradata/orcl/pdb1';

CREATE PLUGGABLE DATABASE pdb1 FROM pdb1@test;

alter pluggable database pdb1 open;


※移設元でDBリンク接続ユーザに対して下記権限付与必要
grant create pluggable database to system container=all;

 

(13)

pg_dumpでバックアップ取得し、別サーバにリストア


-- 事前準備
移設元:mmm181
移設先:mmm182

2台の同スペックのサーバにPostgreSQLをインストール
移設元のみDB作成実施


-- 移設元でバックアップ取得

pg_dump -Fp --clean --create test > bkup11.txt

ダンプファイルを移設先へコピー


-- 移設先でリストア

psql postgres < bkup11.txt

 

 

(2019)

Transact-SQLでバックアップ取得し、別サーバにリストア


-- 事前準備
移設元:mmm062
移設先:mmm063

2台の同スペックのサーバにSQL Serverをインストール
移設元のみDB作成実施


-- 移設元でバックアップ取得

USE test;
GO
BACKUP DATABASE test
TO DISK = 'C:\test\bkup11.bak'
WITH FORMAT,
MEDIANAME = 'bkup11',
NAME = 'Full Backup of test';

ダンプファイルを移設先へコピー


-- 移設先でリストア


USE master;
GO
RESTORE DATABASE test
from DISK = 'C:\test\bkup11.bak'
WITH RECOVERY;