飞仙 发表于 2007-9-16 13:25:46

实验理解数据库创建删除恢复过程中日志文件的动作

如果停止某数据库,然后删除其所有日志,再连接此数据库时候,会自动创建新日志。同样,如果将一个数据库全部删除,包括所有日志也删除(node0000文件夹也删除),原日志存放在一个自定义的路径,而不是默认路径,而且有一个镜像路径,则在restore之后,连接此数据库,查看db cfg,原日志路径和镜像路径均不变,而且默认日志路径下也没有生成日志文件。但是当做一条指令比如create指令之后,立即在默认日志路径下生成了日志文件,而且此时查看db cfg,发现日志路径变为了默认路径,镜像路径不变。

    如果此时重新建立mirrorlog路径,再create,或者断开数据库再连接,均不会再mirror处生成日志。必须手动update db cfg for xxxx using mirrorlogpath 路径,然后断开,重联数据库,就会看见镜像路径下生辰了新日志。

    如果恢复之前就存在镜像路径,但是不存在路径下的node0000文件夹,则恢复之后的任何时刻,不管连接还是不连接db,都不会创建任何日志。但是如果存在nod0000文件夹,则恢复之后,没连接db之前,会写入一个sqllpath.tag,当db2 connect to之后,立即会写入3个镜像日志。

    如果update了db cfg,newlogpath,则立即会在新路径下自动建立node0000文件夹,但是不写入任何日志。一旦重新连接db之后,立即生成4个文件(一个tag,三个日志)

    断开db连接,然后删除镜像路径下的node0000文件夹,和自定义newlogpath路径下的所有文件和文件夹,再连接db,则提示镜像路径无效,然后手动在镜像路径下建立node0000文件夹,重联db,成功,并生成4个文件。此时自定义newlogpath下因为没有node0000文件夹,所以也没有任何文件生成,如果手动建立一个node0000文件夹,disconn,然后conn,就会在newlogpath下的node0000下也生成4个文件。

如果恢复之前,自定义路径和镜像路径下都有node0000文件夹,则恢复之后,未连接之前,均会生成一个tag文件,连接之后,会各生成3个日志文件。而且自定义路径还是以前的路径,不会转为默认路径。

drop db的时候,相应日志路径,包括镜像路径的文件(node0000不删除)全部被删除。

qinjijing 发表于 2007-11-16 19:45:00

不大明白啊?谢谢 楼上辛苦了

chuangyuan 发表于 2008-5-9 20:44:19

看看的

要学习一下的!!!!!!!!!!

lwb_hao 发表于 2009-7-15 23:40:46

是用的什么数据库等环境没讲明白。看了一头雾水

362055023 发表于 2009-8-20 12:01:45

不大蛮明白列学习了

362055023 发表于 2009-8-20 12:01:52

不大蛮明白列学习了

heang567 发表于 2023-12-28 10:20:13

谢谢分享,拿来学习一下
页: [1]
查看完整版本: 实验理解数据库创建删除恢复过程中日志文件的动作