DBAtlas · データベース運用アトラス

バックアップからリストア

Oracle

impdp system/password DIRECTORY=dpump_dir \
  SCHEMAS=hr DUMPFILE=hr_%U.dmp LOGFILE=hr_imp.log

別のスキーマへのロードには REMAP_SCHEMA、別の表領域には REMAP_TABLESPACE を使用する。

PostgreSQL

# custom format:
pg_restore -U postgres -d target_db --clean --if-exists db.dump
# plain SQL: psql -U postgres -d target_db -f db.sql

--clean は既存オブジェクトを削除する。並列リストアには -j <n> を使用する。

MySQL

mysql -u root -p target_db < db.sql

ターゲットデータベースは事前に存在している必要がある(CREATE DATABASE)。大きなファイルには source コマンドが推奨される。

SQL Server

RESTORE DATABASE [MyDB]
FROM DISK = N'C:\backup\MyDB_full.bak'
WITH REPLACE, RECOVERY;

ポイントインタイムリカバリでは、フルバックアップを WITH NORECOVERY でリストアし、その後 STOPAT 付きでログバックアップを適用する。

MongoDB

mongorestore --uri="mongodb://localhost:27017" \
  --archive=db.archive.gz --gzip --drop

--drop はリストア前にターゲットのコレクションを削除する。選択的リストアには --nsInclude を使用する。

Redis

# 1) Stop Redis   2) Copy dump.rdb to the 'dir' location
# 3) Start Redis (the RDB is loaded automatically at startup)
redis-cli CONFIG GET dir   # find the target directory

AOF が有効な場合は RDB ではなく AOF がロードされる。RDB からリストアするには appendonly no で起動するか、AOF を再構築する。

DBAtlas で開く →