达梦数据库DM8备份与还原操作

达梦数据库DM8 备份与还原

###一.为什么做备份
1.软硬件故障
2.误操作
3.自然灾害

###二.备份与还原
####1.物理备份(数据文件)
#####a) 冷备份(关闭数据库)
要求:数据库关闭,dmap 服务要打开
```
$cd /dm8/bin
$./DmServiceDMSERVER stop
$./DmAPService status
$./DmAPService start
```

利用 DMRMAN 工具进行备份:
```
$ cd /dm8/bin
$ ./dmrman
RMAN> backup database '/dm8/data/DAMENG/dm.ini' backupset '/dm8/backup/20201230'
```
20201230.bak 备份文件
20201230.meta 备份的元数据

利用 DMRMAN 工具进行还原:(数据库关闭,dmap 服务打开)
```
RMAN> restore database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/backup/20201230'
RMAN> recover database '/dm8/data/DAMENG/dm.ini' update db_magic;
```

启动数据库
```
$./DmServiceDMSERVER start
```

#####b) 热备份(打开数据库)
要求:数据库打开,数据库要打开归档,dmap 服务打开
```
$ cd /dm8/bin
$ ./DmServiceDMSERVER status
$ ./DmAPService status
```
查看当前实例的归档模式是否打开:
```
SQL> select arch_mode from v$database;
SQL> select * from v$dm_arch_ini;
```


打开数据库归档:
方法1:
①数据库到配置模式:
```
SQL> alter database mount;
```
②增加归档文件: 
```
SQL> alter database add archivelog 'dest=/dm8/arch,type=local,file_size=200,space_limit=0';
```
③打开归档:
```
SQL> alter database archivelog;
```
④数据库到打开状态:
```
SQL> alter database open;
```

方法2:
①可以手动配置 dm.ini ARCH_INI=0---改成 1
```
#vi dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/arch
ARCH_FILE_SIZE = 200
ARCH_SPACE_LIMIT = 0
ARCH_FLUSH_BUF_SIZE = 0
```
②编辑完文件要重新启动数据库
```
$ ./DmServiceDMSERVER restart
```
热备份:数据库,表空间,表,归档

######i. 完全备份
备份数据库:
```
SQL> backup database;
或指定备份文件夹名称:SQL> backup database backupset 'db_bak_01';
SQL> select backup_path,type,backup_time,base_name from v$backupset;
SQL> select para_name,para_value from v$dm_ini where para_name='BAK_PATH';
```
备份表空间:
```
SQL> backup tablespace DMHR;
```
备份表:
```
SQL> backup table emp;
```
备份归档:
```
SQL> backup archivelog;
```
######ii. 增量备份
做增量备份,一定要有一次完全备份。以完全备份作为基准,备
份改变的。
```
SQL> backup database backupset '/dm8/backup/full_bak';
SQL> backup database increment with backupdir '/dm8/backup/full_bak' backupset '/dm8/backup/inr_bak';
```
increment:指定是增量备份
with backupdir :指定完全备份的路径


热备份的还原整个数据库
DMRMAN 还原
还原表空间过程:
①备份数据库或备份表空间:
```
$ cd /dm8/bin
$ ./DmServiceDMSERVER start
$ ./disql
SQL> backup database;
SQL> backup tablespace DMHR;
```
②停止要准备还原的数据库: 
```
[dmdba@localhost bin]$ ./DmServiceTREE stop
```
③启动 dmrman:
```
[dmdba@localhost bin]$ cd /dm8/bin
[dmdba@localhost bin]$ ./dmrman
```

④如需在新的数据库中还原热备份的全数据库备份:
```
RMAN> check backupset '/dm8/data/DAMENG/bak/db_bak_01';
RMAN> restore database '/dm8/data/TREE/dm.ini' from backupset '/dm8/data/DAMENG/bak/db_bak_01';
RMAN> recover database '/dm8/data/TREE/dm.ini' with archivedir '/dm8/arch';
RMAN> recover database '/dm8/data/TREE/dm.ini' update db_magic;
```

⑤如需在新的数据库中还原热备份的表空间dmhr:
```
RMAN> restore database '/dm8/data/DAMENG/dm.ini' tablespace dmhr from backupset '/dm8/data/DAMENG/bak/TS_DMHR_FULL_20201230_144259_190264'
RMAN> recover database '/dm8/data/DAMENG/dm.ini' tablespace dmhr;
```

⑥启动数据库: 
```
[dmdba@localhost bin]$ ./DmServiceDMSERVER start
```
还原表:
```
SQL> restore table emp from backupset '/dm8/data/DAMENG/bakTAB_EMP_BTREE_20201230_144333_172057';
```


####2.逻辑备份(SQL 语句) (物理备份+逻辑备份)
dexp dimp
备份:数据库,表,模式,用户
要求:数据库是打开
逻辑导出数据库:
```
[dmdba@localhost bin]$ mkdir /dm8/backup
```
```
[dmdba@localhost bin]$ ./dexp sysdba/SYSDBA file=/dm8/backup/full.dmp full=y
```
备份表:
```
[dmdba@localhost bin]$ ./dexp sysdba/SYSDBA file=/dm8/backup/emp.dmp tables=sysdba.emp
```
备份模式:
```
[dmdba@localhost bin]$ ./dexp sysdba/SYSDBA file=/dm8/backup/dmhr.dmp schemas=dmhr
```
备份用户:
```
[dmdba@localhost bin]$ ./dexp sysdba/SYSDBA file=/dm8/backup/sysdba.dmp owner=sysdba
```
假设 emp 表损坏:dimp 还原
```
[dmdba@localhost bin]$ ./dimp sysdba/SYSDBA file=/dm8/backup/emp.dmp tables=sysdba.emp IGNORE=y
```
如果表存在注意参数 IGNORE
如果表不存在:
```
[dmdba@localhost bin]$ ./dimp sysdba/SYSDBA file=/dm8/backup/emp.dmp tables=sysdba.emp
```


####3.集群(主备(database),共享存储的集群(instance))
备份介质
①磁盘
②磁带(驱动)
③光盘
案例:把 A 库的备份,在 B 库还原
```
A:[dmdba@localhost bin]$ ./dminit path=/dm8/data db_name=DAMENG instance_name=TEST
A:[dmdba@localhost bin]$ ./dmserver /dm8/data/DAMENG/dm.ini
A:RMAN> backup database '/dm8/data/DAMENG/dm.ini' backupset '/dm8/backup/20201230'
A:[dmdba@localhost backup]$ scp -r 20201230/dmdba@192.168.10.62:/dm8
B:[dmdba@localhost bin]$ ./dminit path=/dm8/data
B:RMAN> restore database '/dm8/data/DAMENG/dm.ini' from backupset '/dm8/20201230'
B:RMAN> recover database '/dm8/data/DAMENG/dm.ini' update db_magic
```

图形化操作冷备份:控制台工具
热备份:DM管理工具
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值