关于dp2系统配置文件和数据xml文件的后台知识 - DigitalPlatform/dp2 GitHub Wiki
dp2系统中,数据库的配置文件和数据的xml文件实际上是存储在dp2kernel的数据目录下。对于标准版来说,存在服务器上实例名下的kernel_data下;对于单机版来说,存在于windows当前用户目录下的dp2LibraryXE_v1\kernel_data下。
服务器上kernel_data子目录下有很多类似名称为“dprms_1_cfgs"的子目录,这些文件下面的cfgs子目录中存储着各个数据库的配置文件。
通常情况下,管理员是通过dp2内务的【内核】属性页找到需要编辑的数据库,然后展开需要修改的配置文件,进行编辑。不会直接到服务器上找文件修改,因为那样操作风险很高。
特殊情况下如果需要到服务器上查找某个数据库的配置文件,需要先确定需要查找数据库所对应的配置文件目录名称,然后才能到对应的位置找到对应的文件。
kernel_data子目录下,除了名称类似“dprms_1_cfgs"的子目录以外,还有一个名称为“databases.xml”的文件,各个数据库所对应的配置文件目录名称就是从这个文件里去查找的。
用记事本打开“databases.xml”文件,通过查询功能搜索到某个数据库的名称, database下localdir元素的内容就是这个数据库所对应的配置文件目录名称。
dp2系统部署所依赖的数据库底层(比如MySQL)只存放数据的检索点,不会存放数据本身。
服务器上kernel_data子目录下有一个“object”子目录,这个目录用于存放数据的xml文件。
“object”子目录的下级子目录的名称都是类似“dp2kernel_instance2_dprms_1_db”的形式,各个子目录所代表的具体是当前实例的哪个数据库的文件,也需要到“databases.xml”文件中去对应。
服务器上类似“dp2kernel_instance2_dprms_1_db”的子目录下存放了instance2这个实例中dprms_1对应数据库的所有数据的xml文件。它的下级子目录名称是7位数字,7位数字子目录的下面存放着3位数字开头命名的的xml文件。
7位数字的子目录和3位数字开头的xml文件名称的意思是:理论上dp2系统中所有数据的路径都是10位数字,只是通过内务查看时会省略前面的0,比如某数据库id为1的记录,它的路径值实际上是0000000001。系统存储数据的时候取10位路径绝对值的前面7位作为一个子目录,下面存放以这7位数字开头的所有id的xml数据文件。比如0000000下面会包含001到999的所有数据。如果要查找路径为这个区间的某条数据,就可以到子目录下面找到对应的文件。再比如,如果想查找路径为0000021654的数据,就需要到“0000021”子目录下面查看以“654”开头命名的文件。
如果某条书目记录下存放封面或者其他对象资源,以这条书目id开头的xml文件就会有多个,单以id命名的是书目xml文件,那些以id开头,并且后面加上_和数字的文件,就表示该路径下属的对象的xml文件。