OS级别备份就是通过OS直接备份所有数据库文件,以达到备份数据库的目的。
【适用的情况】
1、需要利用现有数据库创建一个测试数据库或者简单备份数据库;
2、需要恢复以前备份的数据,但是现有数据库服务不能停。
【不能简单COPY的原因】
多卷数据库创建时是基于st文件创建的,数据库本身存放了相关文件(比如db,bi和extent文件)的路径信息。一般恢复备份数据等操作,如果现行数据库不能停的话,存放的路径肯定是不一样的,这时是没法启动的,用procopy等命令也用不起,会出现诸如“the copy of xxxx”的错误信息。
【具体步骤】
例:原来存放在/mfg/db/psales的psales数据库,需要从磁带倒出并重命名为tsales的数据库,目标路径:/mfg/db/tsales
1、从磁带倒出所有psales*的文件到/mfg/db/tsales目录,并重命名为tsales*:# cd /mfg/db/tsales
注意:改变目录以后如思路不清楚请不要随意改变到其它目录!!!
# frecover -f /dev/rmt/0m -i /mfg/db/psales/psales* -xXv
这时实际上数据库文件是恢复到:/mfg/db/tsales/mfg/db/psales目录下的,可以逐个拷贝同时重命名(注意只要拷贝.d*和.b*和.st的文件即可),例:
# cp -p /mfg/db/tsales/mfg/db/psales/psales.db /mfg/db/tsales/tsales.db
注意使用-p参数保持文件的时间戳和权限。
2、编辑/mfg/db/tsales/tsales.st文件,修改所有的路径设置比如:
原来:d /mfg/db/psales/psales.d1
改成:d /mfg/db/tsales/tsales.d1
3、重建数据库路径信息:
# prostrct repair tsales tsales.st
4、登录数据库试运行:
# /mfg/dlc91/bin/pro tsales
5、用probkup命令验证数据库完整性:
# /mfg/dlc91/bin/probkup tsales NUL
说明:probkup命令可以在线执行,同时probkup命令可以确认block级别的完整性。