BACKUP备库必要条件:
- 数据库必须为归档模式
- 数据库必须处于 OPEN 状态
- DDL_CLONE 库备份集不能作为增量备份的基备份,仅能用于库级还原。
- 如果报错归档不完整,则需要先执行生成检查点操作(checkpoint(100);),才能正常备份。

设置归档
1、数据库修改归档模式:
SQL> ALTER DATABASE MOUNT;
SQL> ALTER DATABASE ADD ARCHIVELOG 'DEST = /home/dmdba/dm8/data/DAMENG/arch, TYPE = local,FILE_SIZE = 1024, SPACE_LIMIT = 2048';
操作已执行
已用时间: 1.428(毫秒). 执行号:0.
SQL> ALTER DATABASE ARCHIVELOG;
操作已执行
已用时间: 0.279(毫秒). 执行号:0.
SQL> ALTER DATABASE OPEN;
操作已执行
已用时间: 18.170(毫秒). 执行号:0.
SQL> select arch_mode from v$database;
行号 ARCH_MODE
---------- ---------
1 Y
已用时间: 1.531(毫秒). 执行号:902.
- 配置远程归档目录命令:
注:一般建议 DMDSC 集群中的节点,在配置本地归档之外,再交叉配置集群中所有其他节点的远程归档。
-- DSC1 => 远程目标节点实例名
ALTER DATABASE ADD ARCHIVELOG 'DEST = DSC1,TYPE = REMOTE,FILE_SIZE = 1024,SPACE_LIMIT = 2048,INCOMING_PATH =/DATA/twodb/arch_1';
2、修改参数文件设置归档
2.1 本地归档
2.1.1、查看是否归档:
SQL> select arch_mode from v$database;
行号 ARCH_MODE
---------- ---------
1 N
已用时间: 1.242(毫秒). 执行号:602.
# 关库
SQL> shutdown immediate;
操作已执行
已用时间: 0.687(毫秒). 执行号:0.
2.1.2、手动编辑 dmarch.ini 文件,之后保存在 dm.ini 所在的目录;
[dmdba@localhost ~]$ vim /home/dmdba/dm8/data/DAMENG/dmarch.ini [ARCHIVE_LOCAL1] ARCH_TYPE = LOCAL ARCH_DEST = /home/dmdba/dm8/data/DAMENG/arch ARCH_FILE_SIZE = 1024 ARCH_SPACE_LIMIT = 2048 ARCH_FLUSH_BUF_SIZE = 0 ARCH_HANG_FLAG = 1
2.1.3、编辑 dm.ini 文件,设置参数 ARCH_INI=1,保存;
[dmdba@localhost ~]$ vim /home/dmdba/dm8/data/DAMENG/dm.ini

2.1.4、启动数据库实例,数据库已运行于归档模式。
[dmdba@localhost ~]$ /home/dmdba/dm8/bin/dmserver path=/home/dmdba/dm8/data/DAMENG/dm.ini &
SQL> select arch_mode from v$database;
行号 ARCH_MODE
---------- ---------
1 Y
已用时间: 4.021(毫秒). 执行号:500.
-- 查看归档目录
SQL> select ARCH_TYPE,ARCH_DEST from v$dm_arch_ini;
行号 ARCH_TYPE ARCH_DEST
---------- --------- --------------------------------
1 LOCAL /home/dmdba/dm8/data/DAMENG/arch
已用时间: 1.037(毫秒). 执行号:702.
2.2 远程归档(操作同上)
[dmdba@localhost ~]$ vim /home/dmdba/dm8/data/DAMENG/dmarch.ini -- 增加以下参数 [ARCH_REMOTE1] ARCH_TYPE = REMOTE ARCH_DEST = DSC1 -->远程目标节点实例名 ARCH_INCOMING_PATH =+DATA/twodb/arch_1 -->仅 REMOTE 归档有效,对应远程归档存放在本节点的实际路径 ARCH_FILE_SIZE = 128 ARCH_SPACE_LIMIT = 0
备份
默认的备份路径为 dm.ini 中 BAK_PATH 配置的路径:
[dmdba@localhost ~]$ cat /home/dmdba/dm8/data/DAMENG/dm.ini | grep BAK_PATH CTL_BAK_PATH = /home/dmdba/dm8/data/DAMENG/ctl_bak #dm.ctl backup path BAK_PATH = /home/dmdba/dm8/data/DAMENG/bak #backup file path
若未配置,则使用 SYSTEM_PATH 下的 bak目录:
[dmdba@localhost ~]$ cat /home/dmdba/dm8/data/DAMENG/dm.ini | grep SYSTEM_PATH
SYSTEM_PATH = /home/dmdba/dm8/data/DAMENG #system path
- 备份整库:
SQL>BACKUP DATABASE BACKUPSET 'db_bak_01'
- 设置联机数据库备份集路径
SQL>BACKUP DATABASE BACKUPSET '/home/dmdba/dmbak/db_bak_3_01';
- 备份压缩
0 表示不压缩,1 表示 1 级压缩,9 表示 9 级压缩。压缩级别越高,压缩越慢,但压缩比越高。
-- 执行备份压缩,压缩级别设置为 5。
SQL>BACKUP DATABASE BACKUPSET '/home/dmdba/dmbak/db_bak_3_06' COMPRESSED LEVEL 5;
- 表空间备份:
BACKUP TABLESPACE MAIN BACKUPSET 'ts_bak_01';
- 并行备份
执行备份时实际使用的并行数由用户指定的并行数和实际可使用的最大并行数决定,而实际可使用的最大并行数由数据文件的个数决定。
-- 创建并行备份,指定并行数为 8。
SQL>BACKUP DATABASE BACKUPSET '/home/dmdba/dmbak/db_bak_3_07' PARALLEL 8;
- 增量备份
备份语句中的 INCREMENT 参数不可省略,该参数用来指定执行的备份类型为增量备份。
若要创建累积增量备份,还需要指定 CUMULATIVE 参数,否则缺省为差异增量备份。
WITH BACKUPDIR 参数用来指定基备份集的搜索目录,如果基备份集不在默认备份目录或当前备份目录则该参数不可省略。
-- DIsql 中输入备份数据库语句,最简单的不设置其他参数的增量备份语句如下:
SQL>BACKUP DATABASE INCREMENT WITH BACKUPDIR '/home/dmdba/dmbak' BACKUPSET '/home/dmdba/dmbak/db_increment_bak_02';
调整备份
- 创建备份限制备份片大小为 300M。
SQL> BACKUP DATABASE BACKUPSET '/home/dmdba/dmbak/db_bak_3_05' MAXPIECESIZE 300;
- 创建备份为备份集添加描述信息为“完全备份”。
SQL>BACKUP DATABASE BACKUPSET '/home/dmdba/dmbak/db_bak_3_04' BACKUPINFO '完全备份';
- 创建备份集,备份名设置为“FULL_BAK”。
SQL>BACKUP DATABASE TO FULL_BAK BACKUPSET '/home/dmdba/dmbak/db_bak_3_02';
- 设置跟踪日志文件
1 :表示不启用 TRACE 功能,2 :表示启用,系统默认值为 1。
SQL>BACKUP DATABASE BACKUPSET '/home/dmdba/dmbak/db_bak_for_trace' TRACE FILE'/home/dm_log/db_trace.log' TRACE LEVEL 1;
备份归档
- 归档备份的前提:
1,归档文件的 db_magic、permanent_magic 值和库的 db_magic、permanent_magic 值必须一样;
2,服务器必须配置归档;
3,归档日志必须连续,如果出现不连续的情况,前面的连续部分会忽略,仅备份最新的连续部分。如果未收集到指定范围内的归档,则不会备份。
联机备份的时候经常会切换归档文件,最后一个归档总是空的,所以最后一个归档不会被备份。
DIsql 中输入以下即可备份归档:
SQL>BACKUP ARCHIVE LOG ALL BACKUPSET 'arch_bak_01';
查看备份进度
- 查看备份进度
TOTAL_SIZE:待备份数据文件大小
PCNT :备份完成百分比
CUR_READ :当前读取速度,单位 M/S
CUR_WRITE :当前写入速度,单位 M/S
SQL>SELECT TOTAL_SIZE, PCNT, CUR_READ, CUR_WRITE FROM V$BACKUP_MONITOR;
- 查看备份列表
PATH: 数据文件路径
SIZE :数据文件大小
OFFSET:已读取数据文件偏移
START_TIME:开始备份时间
SQL>SELECT PATH, SIZE, OFFSET FROM V$BACKUP_FILES
- 查看历史备份
SQL>SELECT READ_SIZE, WRITE_SIZE, AVG_READ, AVG_WRITE FROM V$BACKUP_HISTORY;
最后修改时间:2023-12-29 14:18:58
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




