一、 整库备份
1、 联机备份
使用disql执行语句: BACKUP DATABASE FULL BACKUPSET ‘/dbbak/dmbak/BACKUP_FILE_01’;
2、 脱机备份
使用bin目录下的rman脚本执行语句:BACKUP DATABASE ‘/home/dmdba/dm/dmdbms/bin/dm.ini’ FULL BACKUPSET ‘/dbbak/dmbak/dbbak_full _01’;
此方法要求数据库在脱机状态
如果报7105错误,则修改dm.ini参数 BAK_USE_AP
编辑dm.ini文件修改参数为,BAK_USE_AP = 2
二、 整库还原
可以还原整个数据库包括用户表空间
还原前也要先停止数据库服务,在bin目录下执行:
./dmrman CTLSTMT=“RESTORE DATABASE ‘/home/dmdba/dm/dmdbms/bin/dm.ini’ FROM BACKUPSET ‘/dbbak/dmbak/BACKUP_FILE_01’”
BACKUP_FILE_01为之前整库备份文件,然后执行
./dmrman CTLSTMT=“Recover DATABASE ‘/home/dmdba/dm/dmdbms/bin/dm.ini’ FROM BACKUPSET ‘/dbbak/dmbak/BACKUP_FILE_01’”
三、 使用dexp和dimp工具备份和还原
设置 FULL=Y,导出整个数据库,导出数据库文件和日志文件放在路径
/mnt/data/dexp 下。
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log FULL=Y
DIRECTORY=/mnt/data/dexp
设置 OWNER=USER01,导出用户 USER01 所拥有的对象全部导出。
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log OWNER=USER01
DIRECTORY=/mnt/data/dexp
设置 SCHEMAS=USER01,导出模式 USER01 模式下的所有对象。
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log SCHEMAS=USER01
DIRECTORY=/mnt/data/dexp
设置 TABLES=table1,table2,导出 table1,table2 两张表的所有数据和
信息。
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log TABLES=table1,table2
DIRECTORY=/mnt/data/dexp
加IP和端口:./dexp USERID=SYSDBA/SYSDBA@192.168.0.248:8888 ………………
导入:
设置 FULL=Y,导入整个数据库,导入的数据库文件在/mnt/data/dexp,即将
生成的日志文件放在/mnt/data/dimp。
./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log FULL=Y
DIRECTORY=/mnt/data/dimp
设置 OWNER=USER01,导入用户 USER01 所拥有的对象全部导出。导入的数据
库文件在/mnt/data/dexp,即将生成的日志文件放在/mnt/data/dimp。
./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log
OWNER=USER01 DIRECTORY=/mnt/data/dimp
设置 SCHEMAS=USER01,导入模式 USER01 模式下的所有对象。导入的数据库
文件在/mnt/data/dexp,即将生成的日志文件放在/mnt/data/dimp。
./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log
SCHEMAS=USER01 DIRECTORY=/mnt/data/dimp
设置 TABLES=table1,table2,导入 table1,table2 两张表的所有数据和
信息。导入的数据库文件在/mnt/data/dexp,即将生成的日志文件放在/mnt/data/dimp。
./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log
TABLES=table1,table2 DIRECTORY=/mnt/data/dimp
四、 设置定时作业,按时备份数据库
1、 创建代理环境
2、 新建作业
推荐并行不要开太高,根据服务器硬件设置。
3、备份校验
使用如下sql,目录存在且备份合法返回1,否则报错。
SELECT SF_BAKSET_CHECK(‘DISK’,’/home/dm_bak/ db_bak_for_check’);
其中disk为备份时存储介质类型,一般为disk磁盘类型。后面为备份集目录。
4、定时删除过期备份
在作业中建立脚本,脚本内容如下:
CALL SF_BAKSET_BACKUP_DIR_ADD(‘DISK’,’/dbbak’);–在会话生效,每次必须增加备份集目录
CALL SF_BAKSET_REMOVE_BATCH (‘DISK’,now()-7,NULL,NULL);–now()为当前时间,指定删除7天前的备份
5、设置作业执行时间级频率
6全部设置完成后,点击确定即完成