备份

  在做物理备份之前,需要开启arch归档日志,也就是配置dm.ini和dmarch.ini文件,保证实例和DMAP服务是打开的,具体操作步骤在其他文章的有写过,这里就不赘述了,当我们开启了归档之后就可以开始做备份了

  联机备份也就是热备,可以用diql或者命令行来实现,执行命令实现全库备份:

backup database full backupset '/data/bak';

执行命令实现增量备份:

backup database increment with backupdir '/data/bak/db_full_bak' backupset'/data/bak/increment_bak';

图形化界面的创建备份:

登录manager管理工具后,在备份—》库备份上右键选择新建备份

3ddaemon怎么设置网络设备备份 3ds备份nand教程_增量备份

 这里默认的备份路径是'/dm8/data/DAMENG/bak‘,在备份集目录那一行可以更改备份集目录的名称,但是目录还是位于默认目录下,这个指定的备份集目录需要是空的目录,如果里面有文件备份就会出错。点击确定即可完成创建,同样的也是需要归档日志开启,如果报错“归档日志不连续",在disql命令行中敲”checkpoint (100)“后再执行备份操作,目的将脏页全部写入磁盘。

同样的命令行操作,可以实现备份全库,备份表空间,备份表,当某一个对象出问题时可以单个恢复,而不需要全库恢复,节省时间,提高效率。

冷备也就是在数据库实例关闭但是DMAP服务打开的情况做的备份,冷备不使用manager工具,因为实例关闭了,登陆不上,我们一般选择用dmrman工具进行冷备吗,也可以使用console控制台工具做冷备。dmrman工具位于安装目录的bin下,在dmrman执行:

全库备份:

backup database '/data/DAMENG/dm.ini' full backupset '/dmdata/bak/dm_full_bak';

database后面跟着的是dm.ini文件所在路径,也就是指定备份哪个实例,backupset是指定备份集目录的路径及名称。

增量备份:

backup database '/data/DAMENG/dm.ini' increment with backupdir '/dmdata/bak/fullbak' backupset '/dmdata/bak/increbak';

利用刚做的全库备份来做增量备份,在做增量备份前最好对实例做一些改变。为了我们后面做还原恢复时的正确性,我们可以选择检验一下备份是否完整:

check backupset '/dmdata/bak/fullbak';

逻辑备份是利用dexp和dimp工具实现的,工具库位于安装目录的bin下,不需要数据库实例关闭。

全库导出:

./dexp SYSDBA/SYSDBA@LOCALHOST:5236 DIRECTORY=/data/bak file=full.dmp
log=full.log full=Y

按用户名进行导出:

./dexp SYSDBA/SYSDBA@LOCALHOST:5236 DIRECTORY=/data/bak fill=user.dmp log=user.log owner=TEST

还原

不管是热备或是冷备得到的备份文件都可以利用dmrman来做还原。

全库恢复:

restore database '/data/DAMENG/dm.ini' from backupset '/dmdata/bak/fullbak';
##还原数据库结构
recover  database '/data/DAMENG/dm.ini' from backupset '/dmdata/bak/fullbak';
###恢复数据

在这里需要注意,例如某个表空间或表损坏了,需要做还原,但是在做完备份之后还做了其他操作,这时如果只做备份的还原,那么备份完后做的操作都将丢失,这时就体现出归档日志的作用了,执行下面命令,不仅可以将数据库实例完全恢复并且还能恢复到最新状态:

recover database '/data/DAMENG/dm.ini' with archivedir '/data/arch';

如果备份完成之后没有做其他操作,那么直接执行:

recover database '/data/DAMENG/dm.ini' update db_magic;

逻辑恢复:

全库导入:

./dimp SYSDBA/SYSDBA@LOCALHOST:5236 DIRECTORY=/data/bak file=full.dmp log=full1.log full=Y;

按用户导入需要先创建用户:

./dimp SYSDBA/SYSDBA@LOCALHOST:5236 DIRECTORY=/data/bak file=user.dmp log=user1.log owner=TEST