首页 > 代码库 > PDMS-DB之配置、回档、合并
PDMS-DB之配置、回档、合并
DB,即database的简写,是PDMS中数据存储的载体。PDMS中各种各样的三维模型、平面图纸、数据库等等,几乎都存储在DB中。因此一旦DB发生异常,其后果将是毁灭性的,为此我们需要有一些技术手段来处理DB的问题。
1、Reconfigure 重新配置数据库
在使用PDMS的时候,由于网络的异常、操作的异常,也可能是程序本身的异常,使得PDMS非正常关闭。这些情况会导致有影子用户残留在项目中,或者有未正常解除的声明,最极端的会使得某些元素被锁定甚至损坏,使得该DB中数据出现异常。
一般来说,影子用户和未解除声明可在Admin模块种,管理员直接剔除即可解决,但如果元素被锁定或损坏,则必须要用Reconfigure来重新配置数据库。
1.1、查明损坏元素所属的DB
选中损坏元素后,在命令行里面输入Q DBNAME,可查询元素所属的DB名称,Q DBNUMBER,可查询所属DB的号。
1.2、进入Admin模块
只有free权限的用户才可以进行Reconfigure的操作。
1.3、锁定项目
在Reconfigure之前,踢出所有用户,并将项目锁住,以防有用户在项目中。
1.4、备份项目
Reconfigure中,有些操作是不可逆的,一旦Reconfigure过程中,发生错误,会给整个项目带来毁灭性的灾难,因此Reconfigure之前,一定要备份旧项目。尤其是对操作不熟练的新手。
1.5、Reconfigure
在命令行中输入以下命令
a) FROM DB PAA/DESI 注:此处的PAA/DESI是我们在1.1中查询的结果,即需要Reconfigure的DB,每次只能Reconfigure一个DB。
b) TO FILE /P1 /P2 注:将DB中的数据存储在临时文件中,一般是在PDMS的根目录下,会有这么两个文件一个名为P1,一个为P2。注意硬盘空间要够
c) RCFCOPY ALL
d) RECONFIGURE
e) DELETE DB PAA/DESI 注:将旧DB删除,读者应该了解为什么要备份项目,因为一旦这里发生异常,DB被删除了,想找回来就比较困难。
f) CREATE DB PAA/DESI DESI ACC MULTIWRITE DBNO 14
注:创建新DB,此处新DB和旧DB名称相同,DESI表示是类型为design的DB,ACC MULTIWRITE表示是多写数据库,DBNO 14 表示DB号
g) FROM FILE /P1 /P2 注:从临时文件拷回数据
h) TO DB PAA/DESI
i) RECONFIGURE
j) RCFUPDATE ALL
2、Backtrack 回档
除了上面提到的Reconfigure,DB还可以进行回档。PDMS内部的机制是每次用户点击savework,系统都会生成一个session节点来记录此处保存的状态,相当于是为DB做了一个快照。因此有了这个快照,DB就可以回到任意保存时间点。
但不建议管理员经常去对DB回档,因为这样一般会讨骂的。。。大家如果玩过网络游戏都知道,遇到服务器回档,基本上是骂声一片的。除非是出了很严重的问题,除了回档别无他法,万不得已才用此招。
打开回档界面,在Admin模块中,Data > change management > Backtrack changes 界面如下:
2.1、选择需要回档的DB
2.2、选择需要回到的时间节点
可通过session number处的+,-号,来设置需要回到的节点,每个节点都有保存的时间,以及保存的用户。
2.3、点击Apply完成回档
注:回档并不是覆盖当前节点,而是在当前节点后,又生成一个新的节点。
3、merge 合并
上面提到,PDMS每次保存都会生成一个数据库节点,当项目做的时间比较长或项目比较大的时候,PDMS的项目文件会非常大。此时我们可以对节点进行压缩,合并部分节点,只留有意义的里程碑。但不强制一定要这样做,在当前存储设备越来越便宜,容量越来越大的情况下,项目文件大已经不再是制约的瓶颈。
如果项目已经完成,准备封档的话,倒是可以适当的合并一些节点,只留关键点。
打开回档界面,在Admin模块中,Data > change management > Merge changes 界面如下:
3.1、选择需要合并节点的DB
3.2、合并方式
在Changes选项中有三种合并方式:
3.2.1、All
将所有节点合并成一个,即只保留最后一个。
3.2.2、After
将当前选择的节点后的所有节点合并成一个。
3.2.3、Up To
将当前选择的节点前的所有节点合并到当前节点。
3.3、点击Apply完成合并