disql 联机备份:
1 数据库备份
语法:
BACKUP DATABASE [[[FULL] [DDL_CLONE]]| INCREMENT [CUMULATIVE][WITH BACKUPDIR '< 基备份搜索目录>'{,'<基备份搜索目录>'} |[BASE ON <BACKUPSET '<基备份目录>']][TO <备份 名>]BACKUPSET ['<备份集路径>']
[DEVICE TYPE <介质类型> [PARMS '<介质参数>']]
[BACKUPINFO '<备份描述>'] [MAXPIECESIZE <备份片限制大小>]
[IDENTIFIED BY <密码>[WITH ENCRYPTION<TYPE>][ENCRYPT WITH <加密算法>]] [COMPRESSED [LEVEL <压缩级别>]] [WITHOUT LOG]
[TRACE FILE '< TRACE 文件名>'] [TRACE LEVEL < TRACE 日志级别>]
[TASK THREAD <线程数>][PARALLEL [<并行数>]];
常用:
1 指定备份集路径为“/home/dm_bak/db_bak_3_01”。
SQL>BACKUP DATABASE BACKUPSET '/home/dm_bak/db_bak_3_01';
2 创建备份集,备份名设置为“WEEKLY_FULL_BAK”。
SQL>BACKUP DATABASE TO WEEKLY_FULL_BAK BACKUPSET '/home/dm_bak/db_bak_3_02';
3 指定备份数据库到磁带。
SQL>BACKUP DATABASE BACKUPSET '/home/dm_bak/db_bak_3_03' DEVICE TYPE TAPE;
4 创建备份为备份集添加描述信息为“完全备份”。
SQL>BACKUP DATABASE BACKUPSET '/home/dm_bak/db_bak_3_04' BACKUPINFO '完全备份';
5 创建备份限制备份片大小为 300M。
SQL> BACKUP DATABASE BACKUPSET '/home/dm_bak/db_bak_3_05' MAXPIECESIZE 300;
6 执行备份压缩,压缩级别设置为 5。
SQL>BACKUP DATABASE BACKUPSET '/home/dm_bak/db_bak_3_06' COMPRESSED LEVEL 5;
7 创建并行备份,指定并行数为 8。
SQL>BACKUP DATABASE BACKUPSET '/home/dm_bak/db_bak_3_07'PARALLEL 8;
完全备份:
SQL>BACKUP DATABASE FULL BACKUPSET '/home/dm_bak/db_full_bak_01';
增量备份:
SQL>BACKUP DATABASE INCREMENT WITH BACKUPDIR '/home/dm_bak' BACKUPSET '/home/dm_bak/db_increment_bak_02';
2 表空间备份
语法:
BACKUP TABLESPACE <表空间名> [FULL | INCREMENT [CUMULATIVE][WITH BACKUPDIR '<基备份搜索目录>'{,'<基备份搜索目录>'}]| [BASE ON BACKUPSET '<基备份集目录>']][TO <备份 名>] BACKUPSET ['<备份集路径>']
[DEVICE TYPE <介质类型> [PARMS '<介质参数>']]
[BACKUPINFO '<备份集描述>'] [MAXPIECESIZE <备份片限制大小>]
[IDENTIFIED BY <加密密码>[WITH ENCRYPTION<TYPE>][ENCRYPT WITH <加密算法>]] [COMPRESSED [LEVEL <压缩级别>]]
[TRACE FILE '<TRACE 文件名>'] [TRACE LEVEL <TRACE 日志级别>]
[TASK THREAD <线程数>][PARALLEL [<并行数>]];
常用:
同备份数据库一样,执行 表空间备份服务器也必须运行在归档模式下,启动 DIsql 输入以下语句即可备份表空间:
SQL>BACKUP TABLESPACE MAIN BACKUPSET 'ts_bak_01';
以增量备份用户 MAIN 表空间为例,指定 BASE ON 参数执行增量备份:
SQL>BACKUP TABLESPACE MAIN BACKUPSET 'ts_full_bak_01';
SQL>BACKUP TABLESPACE MAIN INCREMENT BACKUPSET 'ts_increment_bak_01';
SQL>BACKUP TABLESPACE MAIN INCREMENT BASE ON BACKUPSET'ts_full_bak_01' BACKUPSET 'ts_increment_bak_02';
完全备份
SQL>BACKUP TABLESPACE MAIN FULL BACKUPSET '/home/dm_bak/ts_full_bak_01';
增量备份
SQL>BACKUP TABLESPACE MAIN INCREMENT WITH BACKUPDIR '/home/dm_bak' BACKUPSET '/home/dm_bak/ts_increment_bak_02';
3 表备份
语法:
BACKUP TABLE <表名>
[TO <备份名>]
BACKUPSET ['<备份集路径>'] [DEVICE TYPE <介质类型> [PARMS '<介质参数>']] [BACKUPINFO '<备份集描述>']
[MAXPIECESIZE <备份片限制大小>]
[IDENTIFIED BY <加密密码>[WITH ENCRYPTION<TYPE>][ENCRYPT WITH <加密算法>]] [COMPRESSED [LEVEL <压缩级别>]]
[TRACE FILE '<trace 文件名>'] [TRACE LEVEL <trace 日志级别>]
常用:
备份数据库与表空间不同,备份表不需要服务器配置归档,DIsql 中输入以下即可 备份用户表:
SQL>BACKUP TABLE TAB_01 BACKUPSET 'tab_bak_01';
完整的备份表步骤如下:
1) 保证数据库处于OPEN状态。
2) 创建待备份的表TAB_01:
SQL>CREATE TABLE TAB_01(C1 INT);
3) DIsql中输入备份表语句,简单的备份语句如下:
SQL>BACKUP TABLE TAB_01 BACKUPSET '/home/dm_bak/tab_bak_01';
4 归档备份
语法:
BACKUP <ARCHIVE LOG |ARCHIVELOG>
[ALL | [FROM LSN <lsn>]| [UNTIL LSN <lsn>]|[LSN BETWEEN <lsn> AND <lsn>] | [FROM TIME '<time>']|[UNTIL TIME '<time>']|[TIME BETWEEN'<time>'> AND '<time>' ]][<notBackedUpSpec>][DELETE INPUT]
[TO <备份名>]
BACKUPSET ['<备份集路径>'][DEVICE TYPE <介质类型> [PARMS '<介质参数>']] [BACKUPINFO '<备份描述>']
[MAXPIECESIZE <备份片限制大小>]
[IDENTIFIED BY <密钥>[WITH ENCRYPTION<TYPE>][ENCRYPT WITH <加密算法>]] [COMPRESSED [LEVEL <压缩级别>]]
[WITHOUT LOG]
[TRACE FILE '<trace 文件名>'] [TRACE LEVEL <trace 日志级别>] [TASK THREAD <线程数>][PARALLEL [<并行数>]];
常用:
DIsql 中输入以下即可备份归档:
SQL>BACKUP ARCHIVE LOG ALL BACKUPSET 'arch_bak_01';
完整的备份归档步骤如下:
1) 配置归档。
2) 数据库处于OPEN或者MOUNT状态。
3) DIsql中输入备份数据库语句。
例如,备份归档日志,通过 LSN BETWEEN ... AND ...来指定起始和截至 LSN。 首先,确定 LSN 范围。
SQL>select ARCH_LSN, CLSN, PATH from V$ARCH_FILE;
查询结果为:
ARCH_LSN CLSN PATH
38758 40301 d:\arch\ARCHIVE_LOCAL1_20160727105417748.log
40302 40303 d:\arch\ARCHIVE_LOCAL1_20160727111411079.log
40304 40305 d:\arch\ARCHIVE_LOCAL1_20160727111513679.log
......
50412 50413 d:\arch\ARCHIVE_LOCAL1_20160727171801098.log
50414 50478 d:\arch\ARCHIVE_LOCAL1_20160727171849712.log
......
通过查询结果选出备份的起始LSN和截至LSN。比如50414 50478
其次,备份归档:
SQL>BACKUP ARCHIVELOG LSN BETWEEN 50414 AND 50478 BACKUPSET '/home/dm_bak/arch_bak_time_14-78';