物理备份工具 : Disql 和DMRMAN
逻辑备份工具 : dexp 和 dimp
配置归档
联机归档配置如下:
1)修改数据库为 MOUNT 状态。
SQL>ALTER DATABASE MOUNT;
2)配置本地归档。
ALTER DATABASE ADD ARCHIVELOG 'DEST = /home/dmdba/dmdbms/data/DAMENG/arch, TYPE = local,FILE_SIZE = 1024, SPACE_LIMIT = 2048’;
3)开启归档模式。
SQL>ALTER DATABASE ARCHIVELOG;
4)修改数据库为 OPEN 状态。
SQL>ALTER DATABASE OPEN;
备份数据库—物理备份
-
数据库备份
-
保证数据库处于 OPEN 状态。
-
DIsql 中输入备份数据库语句,最简单的不设置其他参数的完全备份语句如下:
(完全备份 )
SQL>BACKUP DATABASE FULL BACKUPSET '/home/lixora/db_full_bak_01';
增量备份数据库步骤如下:
-
配置归档模式
-
保证数据库处于 OPEN 状态。
-
DIsql 中输入备份数据库语句,最简单的不设置其他参数的增量备份语句如下:
SQL>BACKUP DATABASE INCREMENT WITH BACKUPDIR '/home/lixora/'BACKUPSET
'/home/lixora/db_increment_bak_02’;
备份语句中的 INCREMENT 参数不可省略,该参数用来指定执行的备份类型为增量备份。
若要创建累积增量备份,还需要指定 CUMULATIVE 参数,否则缺省为差异增量备份。 WITH BACKUPDIR 参数用来指定基备份集的搜索目录,如果基备份集不在默认目录该参数不可省略。
表空间备份
- 系统处于归档模式下时,才允许进行表空间备份。
- MOUNT 状态下,不允许进行表空间备份。
- MPP 环境不允许进行表空间备份。
SQL>BACKUP TABLESPACE MAIN BACKUPSET 'ts_bak_01’;
备份集“ts_bak_01”会生成到默认的备份路径下。如要设置其他备份选项需参考下文的联机备份表空间语法。
语法如下:
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 [<并行数>][READ SIZE <拆分块大小>]
];
表备份
1.备份表不需要服务器配置归档, DIsql 中输入以下即可备份用户表:
SQL>BACKUP TABLE TAB_01 BACKUPSET ‘tab_bak_01’;
2. 表备份时,其所属表空间必须处于联机状态。
3. 目前表备份不支持备份到 TAPE 介质上。
归档备份
SQL> BACKUP ARCHIVE LOG ALL BACKUPSET 'arch_bak_01';
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 [<并行数>]];
备份数据库—物理备份还原
- DMRMAN 离线还原数据库
RMAN>RESTORE DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' FROM BACKUPSET '/home/dm_bak/db_full_bak_for_recover_backupset’;
2, 恢复数据库
RMAN>RECOVER DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' FROM BACKUPSET '/home/dm_bak/db_full_bak_for_recover_backupset’;
- 更新数据库
RMAN>RECOVER DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' UPDATE
DB_MAGIC;
表空间备份还原
在 DIsql 中使用 RESTORE 语句可以还原表空间,还原表空间需要服务器运行在归档模式下且还原之前需要将表空间脱机。启动 DIsql 输入以下语句即可还原表空间:
SQL>ALTER TABLESPACE MAIN OFFLINE;
SQL>RESTORE TABLESPACE MAIN FROM BACKUPSET 'ts_bak_01’;
SQL>ALTER TABLESPACE MAIN ONLINE;
表备份还原
表还原实质是表内数据的还原,以及索引和约束等的重建。
SQL>RESTORE TABLE TAB_FOR_RES FROM BACKUPSET '/home/dm_bak/tab_bak_for_res_01';
DMDB 逻辑备份
逻辑导出(dexp)和逻辑导入(dimp)是 DM 数据库的两个命令行工具,分别用来实现对 DM 数据库的逻辑备份和逻辑还原。逻辑备份和逻辑还原都是在联机方式下完成,联机方式是指数据库服务器正常运行过程中进行的备份和还原。 dexp 和 dimp 是 DM 数据库自带的工具,只要安装了 DM 数据库,就可以在安装目录/dmdbms/bin 中找到。
逻辑导出和逻辑导入数据库对象分为四种级别:数据库级、用户级、模式级和表级。 四种级别独立互斥,不能同时存在。四种级别所提供的功能:
- 数据库级(FULL) :导出或导入整个数据库中的所有对象。
- 用户级(OWNER) :导出或导入一个或多个用户所拥有的所有对象。
- 模式级(SCHEMAS) :导出或导入一个或多个模式下的所有对象。
- 表级(TABLE) :导出或导入一个或多个指定的表或表分区。
例如,将用户名和密码均为 SYSDBA, IP 地址为 10.80.18.245,端口号为 5234 的数据库采用FULL方式完全导出。导出文件名为db_str.dmp,
导出的日志文件名为 db_str.log,
导出文件的路径为/tmp or d:\ 。
Linux dmdb 服务器数据库本地全库导出:
dexp USERID=SYSDBA/sysdba FILE=db_str.dmp DIRECTORY=/tmp LOG=db_str.log FULL=Y
Windows dmdb 客户端远程全库导出:
dexp USERID=SYSDBA/sysdba@10.80.18.245:5234 FILE=db_str.dmp DIRECTORY=d:\ LOG=db_str.log FULL=Y
DMDB 逻辑备份
- OWNER 方式导出一个或多个用户拥有的所有对象:
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log OWNER=USER01
DIRECTORY=/mnt/data/dexp
- SCHEMAS 方式的导出一个或多个模式下的所有对象:
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log
SCHEMAS=USER01 DIRECTORY=/mnt/data/dexp
一般情况下, OWNER 与 SCHEMAS 导入导出是相同的。但是用户可以包含多个模式,在这种情况下 SCHEMAS 的导入导出是OWNER 导入导出的一个子集。
- TABLES 方式导出和导入一个或多个指定的表或表分区:
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log TABLES=table1,table2 DIRECTORY=/mnt/data/dexp
和 TABLES 导出有关的参数还有 QUERY、 EXCLUDE 和 INCLUDE,都是用来设置过滤条件的。
Dimp 全库导入:
将逻辑备份采用 FULL 方式完全导入到用户名和密码为 SYSDBA, IP 地址为
10.80.18.245,端口号为 5234 的数据库。导入文件名为 db_str.dmp, 导入的日志文件名为 db_str.log,路径为/tmp。
./dimp USERID=SYSDBA/SYSDBA@ 10.80.18.245 :5234 FILE=db_str.dmp DIRECTORY=/mnt/data LOG=db_str.log FULL=Y