基于Oracle数据泵的多版本Geodatabase备份迁移

2016-12-07 02:38齐志飞陆培
城市勘测 2016年1期
关键词:多用户备份要素

齐志飞,陆培

(南通市测绘院有限公司,江苏南通 226006)

基于Oracle数据泵的多版本Geodatabase备份迁移

齐志飞∗,陆培

(南通市测绘院有限公司,江苏南通 226006)

讨论了一种Oracle环境下空间数据库的逻辑备份方式。对于已注册版本和启用归档机制的多用户Geodatabase,利用Oracle的数据泵实现了包括历史数据的完整备份与迁移,并给出了较为详细的步骤和注意要点。

Oracle数据泵;备份迁移;Geodatabase;多版本

1 引 言

空间数据库的备份与迁移是建设地理信息系统的现实需求。备份增强了空间数据库的存储安全性;而迁移则可以理解为数据库备份集的异地恢复,既是存储安全的一个环节,同时也了体现了空间数据库的可移植性。以Oracle等数据库为存储载体的ArcGIS Enterprise Geodatabase支持多用户特性,还支持版本、归档等历史数据的存储[1]。对于多用户、多版本的空间数据库,完整备份迁移的需求显得更为迫切。

2 空间数据库备份迁移方式

数据库备份有物理备份和逻辑备份方式。Oracle物理备份操作复杂,并且对原数据库主机和目标数据库主机的存储一致性要求极高。逻辑备份的抽象层次高于物理备份,屏蔽了原数据库和目标数据库之间的物理存储的差异性。

对于Geodatabase来说,还支持从更高层次的GIS逻辑模型的导出备份[2]。但是导出Geodatabase只能备份和迁移要素类在某一时刻的状况,多版本数据不能原封不动地完整迁移,只能每个版本导出一份物理副本。版本之间的继承、分支关系将丢失,记录每个要素的创建、修改、删除的完整生命周期的归档信息也将流失。如果采用异构方式导出(如导出为File Geodatabase),则几何对象的存储选项也将丢失。

3 Oracle数据泵备份

Oracle数据库支持数据泵(Oracle Data Dump)、RMAN等方式备份。Oracle数据泵是由EXPDP和IMPDP组成的导入导出命令组合。由EXPDP进行导出备份,由IMPDP进行导入迁移。IMPDP/EXPDP是用来取代早期IMP/EXP的备份工具,IMPDP/EXPDP较后者速度更快[3]。

相对于RMAN方式的迁移备份,EXPDP逻辑备份不需要在物理上关注数据库实例、控制文件、日志模式等。使用Oracle数据泵,可以在Linux和Windows之间跨操作系统进行数据库备份迁移。

基于Oracle数据泵进行备份迁移,能够完整保留版本之间的继承关系;Enterprise Geodatabase的A表、D表以及启用归档后的H表被完整迁移;空间几何字段的存储选项(如SDO_Geometry)得以延续。

4 导出备份

4.1 导出前的准备工作

Oracle 11g R2默认对空表将不建立存储段,EXP命令对未建立存储段的表默认不导出,EXPDP命令可以导出未建立存储段的表,但在IMPDP命令导入时报错中断。为解决空表的存储段问题,可以先查询行数为0的表,然后依次为空表分配存储段。

但此后若再建立新表,Oracle根据默认选项仍不建立存储段。为使空表默认建立存储段,需要修改Oracle例程的deferred_segment_creation参数。将其初始值true改为false并保存到配置文件中,重启数据库实例生效。

无存储段的空表处理过程如图1所示。

图1 处理未建立存储段的空表

4.2SDE表空间必须导出

ArcGIS Enterprise Geodatabase支持将不同专题的要素类存储在不同的表空间(如本文的示例中,地形图存储在SDE表空间,管线存储在GX表空间),这是满足空间数据管理需求的必要机制。但要素类无论存储在那个表空间,都依赖于建立Enterprise Geodatabase时的初始SDE表空间。

由于要素类、表、几何字段等都在SDE用户的默认创建的SDE系统表(如GDB_ITEMS、GEOMETRY_ COLUMNS、TABLE_REGISTRY表)中进行了注册[4],并且存储在SDE表空间(如SDE_ARCHIVE等表)中还存储了要素归档等注册信息,因此SDE表空间必须导出一同迁移。

4.3数据泵导出

(1)创建目录,这是IMPDP/EXPDP命令参数的要求,用于指定存放备份集文件的目录。

(2)IMPDP导出,需要给出用户名与口令等连接信息、用户模式、导出的备份集文件名等。

多用户模式导出的过程如图2所示。

图2 数据泵多用户模式导出

4.4基于Windows脚本的自动导出备份

用BAT文件将命令行进行批处理化,将会简化备份操作。而利用Windows操作系统设置为计划任务,则可以减轻数据库管理员的周期性手工操作。为了对备份集进行管理,可以在批处理脚本中对备份文件进行按日期命名编号。BAT文件内容如图3所示。

图3 批处理导出备份集并格式化文件名

5 迁移导入

5.1创建Enterprise Geodatabase

ArcToolbox中的“创建企业级地理数据库”工具支持采用ArcSDE直连方式来进行目标空间数据库的初始化,该过程中创建了SDE用户和表空间。为此Arc-GIS Desktop客户端需要安装Oracle Client的32位版本,需要具有Oracle的sysdba权限的用户连接,需要给出ArcGIS Server的许可文件;这一步是必要的,而直接在目标数据库上手工创建SDE用户和表空间,在后续的数据库对象重编译步骤中将被阻止。

5.2表空间准备工作

(1)清理SDE表空间

使用SQL语句将SDE用户的所有数据库对象清除(DROP),以便完整导入原数据库的SDE系统表和GIS用户创建的要素类等内容。

(2)SDE表空间扩容

由于默认创建的SDE表空间的数据文件只有400M,可能远远小于空间数据库的实际存储需求。因此需要为SDE表空间扩大存储容量并按需自增。需要注意的是ArcCatalog默认创建的SDE表空间和Oracle的系统数据文件并不在同一目录下,具体可以通过查询Oracle的V$DATAFILE视图来确定。

(3)创建GX表空间及SDE、GX临时表空间

Oracle在建立索引、查询排序等过程中需要使用临时表空间。对于空间数据而言,为用户建立单独的临时表空间是有意义的。

表空间的准备过程如图4、图5所示。

图4 清空SDE表空间并设为自动扩容

图5 创建GX表空间及SDE、GX临时表空间

5.3用户授权

创建SDE、GX用户,并为之指定表空间和专门建立的临时表空间,然后授予必要的数据库权限。5.4 数据泵导入

(1)准备导入目录和备份文件

与EXPDP命令类似,也需要在目标数据库上建立目录,对应存放备份集文件的目录。

(2)IMPDP导入

需要为不同的用户分别导入,先导入SDE用户。IMPDP支持一条命令导入多个用户模式(即SCHEMAS=SDE,GX)。但是根据实验结果,如果采用了Oracle Spatial的SDO_GEOMETRY作为存储选项,同时导入多个用户模式会导致在Oracle Spatial的空间元数据表SDO_GEOM_METADATA_TABLE[5]中无法登记要素类。

数据泵多用户模式导入过程如图6所示。

图6 数据泵多用户模式依次导入

5.5数据库对象重编译

导入完成后,部分数据库对象的可能处于不可用的状态,应对SDE和GX用户的各类对象重编译。具体应重编译:数据类型(TYPE)、包(PACKAGE)、函数(FUNCTION)、触发器(TRIGGER)、存储过程(PROCEDURE)、视图(VIEW)等。由于数据库对象可能数量众多,推荐使用PL/SQL Developer环境,以利用其Shift键多选功能实现批量重编译。

6 应用案例

本文所述的方法已在实际项目中得到应用。应用环境中的数据情况为,原数据库包含1个SDE用户和1个非SDE用户(GREEN)。原数据库和目标数据库环境均为Oracle 11g R2及Client工具,ArcGIS版本为10.2,ArcSDE连接类型为无服务的直连方式。原数据库的操作系统为Windows 7 Ultimate SP1(64位),目标数据库的操作系统为Windows Server 2008 R2 Enterprise SP1(64位)。

6.1要素类及版本迁移情况

在迁移后的目标主机上用ArcCatalog建立并展开Oracle数据库连接,显示出目标数据库完整迁移了原数据库的各数据集、要素类等逻辑对象。在数据库连接上鼠标右击并选择“管理”菜单项下的“管理地理数据库”,能够查看到被迁移的Geodatabase的各版本及其继承关系,并可列出归档机制下在原数据库中已创建的历史标记点,如图7、图8所示。

图7 原数据库的数据集及其历史版本标记

图8 迁移后数据库的数据集及其历史版本标记

6.2多用户迁移的数据可用性

以ArcMap可加载展示迁移后的SDE用户和非SDE用户的点、线、面、注记要素类,如图9、图10所示。

6.3要素类的历史回溯可用性

在ArcMap图层内容列表中右击数据集,选择“切换版本”则可对版本、归档等历史数据进行图形化浏览,图11、图12给出了迁移后的数据库与原数据库在要素类回溯到同一历史时刻的相同效果。

图9 迁移后SDE用户的要素类加载

图10 迁移后非SDE用户的要素类加载

图11 原数据库的要素类历史回溯

图12 迁移后数据库的要素类历史回溯

7 小 结

本文基于Oracle数据泵对Geodatabase的进行了逻辑备份并迁移成功,对于多用户数据库和启用了注册版本以及归档机制的Geodatabase,也能完整保留其历史数据及编辑更新过程。实践表明迁移后的空间数据库在逻辑结构上与原数据库相同,对要素类访问、版本标记、回溯到历史的功能应用与原数据库完全一致。

[1] 李娜,魏瑞娟,崔洪涛等.基于ArcGIS Engine的SDE数据库版本管理及历史归档的研究与实现[J].测绘与空间地理信息,2012,35(3):163~167.

[2] 李少华.企业级GIS设计管理优化策略[M].北京:电子工业出版社,2014:217~218.

[3] 王东明,李星海,王海凤等.Oracle 11g管理备份恢复从入门到精通[M].北京:中国水利水电出版社,2008:489~490.

[4] 刘仁义,刘南.ArcGIS开发宝典——从入门到精通[M].北京:科学出版社,2006:265~266.

[5] Ravi Kothuri,Albert Godfrind,Euro Beinat.Pro Oracle Spatial for Oracle Database 11g[M].New York:Apress,2007: 45~50.

Backup and Migration for Versioned Geodatabase Based on Oracle Data Dump

Qi Zhifei,Lu Pei

(Nantong Surveying&Mapping Institute Co.,Ltd,Nantong 226006,China)

This paper discusses a logical backup method of spatial database on oracle.For the multi-user versioned and archiving Geodatabase,the oracle data pump is used to realize fully backup and migration with historical data.The Paper details the steps and attention points for operation.

oracle data pump;backup and migration;geodatabase;versioned

1672-8262(2016)01-117-05

P208.1

B

∗2015—09—23

齐志飞(1983—),男,系统分析师,主要从事GIS应用和系统开发。

猜你喜欢
多用户备份要素
“备份”25年:邓清明圆梦
安泰科多用户报告订阅单
VSAT卫星通信备份技术研究
安泰科多用户报告订阅单
安泰科多用户报告订阅单
掌握这6点要素,让肥水更高效
安泰科多用户报告订阅单
创建vSphere 备份任务
观赏植物的色彩要素在家居设计中的应用
论美术中“七大要素”的辩证关系