|
不需要特定授权 在 NoArchiveLog 模式(默认模式)下操作 重做日志包含提交和未提交的数据 日志以循环方式写入,也就是当最后一个日志已满,它将重写日志 1 对于长期运行的事务,当所有的日志是活动时,日志写入将以循环方式进行重写 如果重做日志没有被重新写入,您就可以通过前滚操作来执行恢复 在备份前需要关闭所有事务 最后一次备份以后的所有事务都将丢失 使用操作系统(OS)级实用程序将数据库文件复制到其他磁盘或媒介 |
SYSADM、SYSCTRL 或 SYSMAINT 授权是必需的 在 LOGRETAIN 和 USEREXIT 两个参数都被设定为 OFF 时执行操作 循环日志包含提交和未提交数据 日志以循环的方式写入,也就是当最后一个日志已满,它将重写日志 1 对于长期运行的事务,当所有的日志是活动时,将根据参数 LOGSECOND 分配二级日志 禁止前滚 禁止连接。如果有一个活动连接,您将获得“SQL1035N:数据库目前在使用中。SQLSTATE=57019″错误 最后一次备份以后的所有事务都将丢失 发出 Backup Database 命令来进行备份 |
表 2. 比较 Oracle 和 DB2 UDB 的脱机恢复
|
脱机备份(Oracle) |
脱机备份(DB2 UDB) |
|
不需要特殊的特权 执行备份的管理员需要为它们贴上正确标签,以便在恢复的过程中,不会恢复备份的错误副本 可以用 Alter Database Rename File <oldpath> to <newpath> DDL 语句来重命名和重新定位数据文件 不能恢复到不同的数据库 |
恢复到现有的数据库需要 SYSADM、SYSCTRL 或 SYSMAINT 特权。恢复到新数据库将需要 SYSCTRL 或 SYSADM 特权 在恢复的过程中,管理员可以从某些时间戳中挑出备份。来自 Control Center 和 CLP 的备份命令会为备份创建时间戳简化恢复过程 通过调用 RESTORE DATABASE 命令,并指定 REDIRECT 参数,您可以重定义表空间容器 可以恢复到现有数据库或新的数据库 |
表 3. 比较 Oracle 和 DB2 UDB 的联机备份
|
联机备份(Oracle) |
联机备份(DB2 UDB) |
|
需要 SYSDBA 特权 在 ArchiveLog 模式下进行操作 重做日志包含提交和未提交的数据。Oracle 使用归档日志来前滚到一致状态,并撤销表空间来回滚任何未提交数据 联机重做日志以循环的方式进行写入,也就是当最后一个日志已满时,将重写日志 1。在日志切换期间,将归档联机重做日志 对于长期运行的事务,当所有日志都处于活动状态时,如果手动对非活动联机重做进行归档,或者让 ARCH 进程来为您完成这项工作,那么只需重写联机重做日志即可。上述任何一项工作失败都将导致 Oracle 挂起 可以使用 LOG_ARCHIVE_DUPLEX_DEST、LOG_ARCHIVE_DEST_N 来指定 Oracle 写入日志的多个位置。LOG_ARCHIVE_DEST_N 的最大值是 10。当路径有问题时,只要有一条路径可以工作,Oracle 就会忽略有问题的路径继续工作。不过,会有一条消息记录在审核跟踪中。不需要对这些路径进行同步 启用 ArchiveLog 模式需要一个数据库回弹(database rebounce),以及严格、干净的完全备份 控制文件包含数据库的名称、日志序列和检查点信息、物理文件结构等 表空间级备份 备份所有数据块(更改和未更改的)。不适合大型仓库环境 在备份中没有压缩 数据库恢复和前滚不一定要求关闭数据库 连续备份 —— 一个接一个地备份表空间 发出“Alter Tablespace ts_name Begin Backup”命令 |
SYSADM、SYSCTRL 或 SYSMAINT 特权是恢复现有数据库所必需的。要通过恢复创建新的数据库,就需要有 SYSADM 和 SYSCTRL 特权 在 LOGRETAIN=ON 中操作 日志包含提交和未提交的数据。在 DB2 中,使用日志进行前滚和回滚 日志没有使用循环的方式写入。因此不用重写归档的日志。在 DB2 关闭活动日志之后,活动日志将变成归档日志 对于长期运行的事务,当所有的日志都处于活动状态时,将根据参数 LOGSECOND 来分配二级日志 MIRRORLOGPATH 配置参数可用于多路复用日志。MIRROLOGPATH 的最大值是 1。当一条路径不通时,只要有另一条路径可以工作,DB2 就会在 DB2 管理通知日志中写入一条消息并继续工作。但是,在完成当前日志时,DB2 会连续地尝试写到坏的路径。不需要将这些路径进行同步 在重启 DB2 数据库之后,LOGRETAIN 将是惟一有效的参数。您需要进行完全脱机备份 恢复历史文件包含像下面的一些信息:数据库或表空间的备份和恢复、从数据库或表空间进行前滚恢复、修改和停止表空间、REORG 和 RUNSTATS、删除表等 表空间级和数据库级的备份 备份所有的数据块(更改的和未更改的)。不适合大型仓库环境 已经将备份压缩作为一个选项添加到 BACKUP DATABASE 命令和 db2Backup API 中 数据库恢复和前滚必须脱机完成。表空间级的恢复和前滚不要求脱机操作 允许并行操作 发出 Backup Database 命令进行备份。例如 Backup database sample tablespace(userspace1) online to e:\tmp 或 Backup database sample to e:\tmp |
表 4. 比较 Oracle 和 DB2 UDB 的联机恢复
|
联机恢复(Oracle) |
联机恢复(DB2 UDB) |
|
从数据库文件恢复 数据库和表空间恢复得到支持 RECOVER DATABASE UNTIL 命令被用于支持不完全恢复 |
从备份映像恢复 数据库和表空间恢复得到支持 完全和不完全恢复都将使用备份映像,可以启用或不启用前滚操作 |
第13章 例子
13.1 分区表空间创建
CREATE REGULAR TABLESPACE TBS01 IN DATABASE PARTITION GROUP IBMDEFAULTGROUP PAGESIZE 32768 MANAGED BY DATABASE
USING (DEVICE ‘/dev/rdb2tbs01_lv01_1’ 1081344) ON DBPARTITIONNUMS (1)
USING (DEVICE ‘/dev/rdb2tbs01_lv01_2’ 1081344) ON DBPARTITIONNUMS (2)
USING (DEVICE ‘/dev/rdb2tbs01_lv01_3’ 1081344) ON DBPARTITIONNUMS (3)
USING (DEVICE ‘/dev/rdb2tbs01_lv01_4’ 1081344) ON DBPARTITIONNUMS (4)
USING (DEVICE ‘/dev/rdb2tbs01_lv03_1’ 1081344) ON DBPARTITIONNUMS (5)
USING (DEVICE ‘/dev/rdb2tbs01_lv03_2’ 1081344) ON DBPARTITIONNUMS (6)
USING (DEVICE ‘/dev/rdb2tbs01_lv03_3’ 1081344) ON DBPARTITIONNUMS (7)
USING (DEVICE ‘/dev/rdb2tbs01_lv03_4’ 1081344) ON DBPARTITIONNUMS (8)
USING (DEVICE ‘/dev/rdb2tbs01_lv05_1’ 1081344) ON DBPARTITIONNUMS (9)
USING (DEVICE ‘/dev/rdb2tbs01_lv05_2’ 1081344) ON DBPARTITIONNUMS (10)
USING (DEVICE ‘/dev/rdb2tbs01_lv05_3’ 1081344) ON DBPARTITIONNUMS (11)
USING (DEVICE ‘/dev/rdb2tbs01_lv05_4’ 1081344) ON DBPARTITIONNUMS (12)
USING (DEVICE ‘/dev/rdb2tbs01_lv07_1’ 1081344) ON DBPARTITIONNUMS (13)
USING (DEVICE ‘/dev/rdb2tbs01_lv07_2’ 1081344) ON DBPARTITIONNUMS (14)
USING (DEVICE ‘/dev/rdb2tbs01_lv07_3’ 1081344) ON DBPARTITIONNUMS (15)
USING (DEVICE ‘/dev/rdb2tbs01_lv07_4’ 1081344) ON DBPARTITIONNUMS (16)
USING (DEVICE ‘/dev/rdb2tbs01_lv02_1’ 1081344) ON DBPARTITIONNUMS (17)
USING (DEVICE ‘/dev/rdb2tbs01_lv02_2’ 1081344) ON DBPARTITIONNUMS (18)
USING (DEVICE ‘/dev/rdb2tbs01_lv02_3’ 1081344) ON DBPARTITIONNUMS (19)
USING (DEVICE ‘/dev/rdb2tbs01_lv02_4’ 1081344) ON DBPARTITIONNUMS (20)
USING (DEVICE ‘/dev/rdb2tbs01_lv04_1’ 1081344) ON DBPARTITIONNUMS (21)
USING (DEVICE ‘/dev/rdb2tbs01_lv04_2’ 1081344) ON DBPARTITIONNUMS (22)
USING (DEVICE ‘/dev/rdb2tbs01_lv04_3’ 1081344) ON DBPARTITIONNUMS (23)
USING (DEVICE ‘/dev/rdb2tbs01_lv04_4’ 1081344) ON DBPARTITIONNUMS (24)
USING (DEVICE ‘/dev/rdb2tbs01_lv06_1’ 1081344) ON DBPARTITIONNUMS (25)
USING (DEVICE ‘/dev/rdb2tbs01_lv06_2’ 1081344) ON DBPARTITIONNUMS (26)
USING (DEVICE ‘/dev/rdb2tbs01_lv06_3’ 1081344) ON DBPARTITIONNUMS (27)
USING (DEVICE ‘/dev/rdb2tbs01_lv06_4’ 1081344) ON DBPARTITIONNUMS (28)
USING (DEVICE ‘/dev/rdb2tbs01_lv08_1’ 1081344) ON DBPARTITIONNUMS (29)
USING (DEVICE ‘/dev/rdb2tbs01_lv08_2’ 1081344) ON DBPARTITIONNUMS (30)
USING (DEVICE ‘/dev/rdb2tbs01_lv08_3’ 1081344) ON DBPARTITIONNUMS (31)
USING (DEVICE ‘/dev/rdb2tbs01_lv08_4’ 1081344) ON DBPARTITIONNUMS (32)
EXTENTSIZE 32 PREFETCHSIZE 192 BUFFERPOOL BP32 OVERHEAD 24.100000 TRANSFERRATE 0.900000 ;
13.2 更改分区参数
$ db2_all “db2 update db cfg for zmccdw using logfilsiz 262144”
$ db2_all “db2 update db cfg for zmccdw using logprimary 46”
$ db2_all “db2 update db cfg for zmccdw using logsecond 0”
$ db2_all “<<+1<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node01′”
$ db2_all “<<+2<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node02′”
$ db2_all “<<+3<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node03′”
$ db2_all “<<+4<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node04′”
$ db2_all “<<+5<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node05′”
$ db2_all “<<+6<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node06′”
$ db2_all “<<+7<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node07′”
$ db2_all “<<+8<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node08′”
$ db2_all “<<+9<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node09′”
$ db2_all “<<+10<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node10′”
$ db2_all “<<+11<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node11′”
$ db2_all “<<+12<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node12′”
$ db2_all “<<+13<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node13′”
$ db2_all “<<+14<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node14′”
$ db2_all “<<+15<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node15′”
$ db2_all “<<+16<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node16′”
$ db2_all “<<+17<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node17′”
$ db2_all “<<+18<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node18′”
$ db2_all “<<+19<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node19′”
$ db2_all “<<+20<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node20′”
$ db2_all “<<+21<db2 update db cfg for zmccdw using newlogpath ‘/database/db2inst1/db2log_node21′”
$ db2_all “<<+22<db2 update db cfg for zmccdw using newlogpath
以下文章点击率最高
Loading…