一、引言
谷歌百度文章已翻烂,自己想找的东西也找不到,硬是靠着自己偷懒的毅力来搞定了这个问题。
一般文章建议空间数据库从arcmap中备份恢复,普通数据使用传统的oracle备份恢复,我认为都是存储在数据库中,应该有办法从oracle层面可以一起备份的,这就是这篇文章的起源。从此走向了一条不归路。
二、oracle中geodatabase备份过程
1、创建企业级geodatabase
安装oracle客户端,使用arcmap连接并创建enterprise geodatabase,这就不用说了,不清楚的可以查看这篇文章点击打开链接==
2、数据备份(实例xcy,用户sde)
- 创建数据泵导入导出目录
使用sys用户登陆orcl实例:sqlplus sys/123@xcy as sysdba
创建sde用户数据泵目录:create or replace directory dump as 'C:\app\xcy\oradata';
将目录的读写权限赋予sde用户:grant read,write on directory dump to sde;
- 使用expdp针对用户进行备份
使用sys用户进行备份:expdp \"/@xcy as sysdba\" schemas=sde dumpfile=sde.dmp directory=dump cluster=n;
导出成功后就能在文件夹里面看到下面的文件
3、数据恢复(实例orcl,用户sde)
- 使用arcmap在orcl实例中创建sde用户
这个就不用说了,跟首次创建enterprise geodatabase一样==
- 创建数据泵导入导出目录
在实例orcl中使用sys用户登陆:sqlplus sys/123@orcl as sysdba
创建数据泵目录:create or replace directory dump as 'C:\app\xcy\oradata';
将数据泵目录的读写权限授予sde用户:grant read,write on directory dump to sde;
创建数据泵目录:create or replace directory dump as 'C:\app\xcy\oradata';
将数据泵目录的读写权限授予sde用户:grant read,write on directory dump to sde;
- 使用impdp导入数据
impdp \"/@orcl as sysdba\" directory=dump dumpfile=sde.dmp schemas=sde:sde
下面是cmd中显示的内容:
C:\Users\xcy>impdp \"/@orcl as sysdba\" directory=dump dumpfile=sde.dmp schemas=sde:sde
Import: Release 11.2.0.1.0 - Production on 星期四 7月 27 17:40:27 2017
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
已成功加载/卸载了主表 "SYS"."SYS_IMPORT_SCHEMA_01"
启动 "SYS"."SYS_IMPORT_SCHEMA_01": "/********@orcl AS SYSDBA" directory=dump dumpfile=sde.dmp schemas=sde:sde
处理对象类型 SCHEMA_EXPORT/USER
ORA-31684: 对象类型 USER:"SDE" 已存在
处理对象类型 SCHEMA_EXPORT/SYSTEM_GRANT
处理对象类型 SCHEMA_EXPORT/ROLE_GRANT
处理对象类型 SCHEMA_EXPORT/DEFAULT_ROLE
处理对象类型 SCHEMA_EXPORT/TABLESPACE_QUOTA
处理对象类型 SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
处理对象类型 SCHEMA_EXPORT/LIBRARY/LIBRARY
ORA-39083: 对象类型 LIBRARY 创建失败, 出现错误:
ORA-00955: 名称已由现有对象使用
失败的 sql 为:
CREATE LIBRARY "SDE"."ST_SHAPELIB" UNTRUSTED AS 'C:\arcgisdll\st_shapelib.dll'
处理对象类型 SCHEMA_EXPORT/TYPE/TYPE_SPEC
ORA-31684: 对象类型 TYPE:"SDE"."SDENUMTAB" 已存在
ORA-31684: 对象类型 TYPE:"SDE"."ST_FUNCS_ARRAY" 已存在
ORA-31684: 对象类型 TYPE:"SDE"."FLT_ARRAY_TAB" 已存在
ORA-31684: 对象类型 TYPE:"SDE"."INT_ARRAY_TAB" 已存在
ORA-31684: 对象类型 TYPE:"SDE"."BND_ROWID_TAB" 已存在
ORA-31684: 对象类型 TYPE:"SDE"."BLOB_ARRAY_TAB" 已存在
ORA-31684: 对象类型 TYPE:"SDE"."ST_GEOMETRY" 已存在
ORA-31684: 对象类型 TYPE:"SDE"."SP_GRID_INFO" 已存在
ORA-31684: 对象类型 TYPE:"SDE"."STGEOM_AGGR_CONVEXHULL" 已存在
ORA-31684: 对象类型 TYPE:"SDE"."ST_POINT" 已存在
ORA-31684: 对象类型 TYPE:"SDE"."ST_CURVE" 已存在
ORA-31684: 对象类型 TYPE:"SDE"."ST_SURFACE" 已存在
ORA-31684: 对象类型 TYPE:"SDE"."ST_GEOMCOLLECTION" 已存在
ORA-31684: 对象类型 TYPE:"SDE"."ST_GEOMFROMTEXT" 已存在
ORA-31684: 对象类型 TYPE:"SDE"."ST_DOMAIN_METHODS" 已存在
ORA-31684: 对象类型 TYPE:"SDE"."ST_DOMAIN_STATS" 已存在
ORA-31684: 对象类型 TYPE:"SDE"."STGEOM_AGGR_UNION" 已存在
ORA-31684: 对象类型 TYPE:"SDE"."STGEOM_AGGR_INTERSECTION" 已存在
ORA-31684: 对象类型 TYPE:"SDE"."ST_LINESTRING" 已存在
ORA-31684: 对象类型 TYPE:"SDE"."ST_POLYGON" 已存在
ORA-31684: 对象类型 TYPE:"SDE"."ST_MULTIPOINT" 已存在
ORA-31684: 对象类型 TYPE:"SDE"."ST_MULTICURVE" 已存在
ORA-31684: 对象类型 TYPE:"SDE"."ST_MULTISURFACE" 已存在
ORA-31684: 对象类型 TYPE:"SDE"."ST_POINTFROMTEXT" 已存在
ORA-31684: 对象类型 TYPE:"SDE"."ST_MPOINTFROMTEXT" 已存在
ORA-31684: 对象类型 TYPE:"SDE"."ST_MULTILINESTRING" 已存在
ORA-31684: 对象类型 TYPE:"SDE"."ST_MULTIPOLYGON" 已存在
ORA-31684: 对象类型 TYPE:"SDE"."ST_LINEFROMTEXT" 已存在
ORA-31684: 对象类型 TYPE:"SDE"."ST_MLINEFROMTEXT" 已存在
ORA-31684: 对象类型 TYPE:"SDE"."ST_POLYFROMTEXT" 已存在
ORA-31684: 对象类型 TYPE:"SDE"."ST_MPOLYFROMTEXT" 已存在
处理对象类型 SCHEMA_EXPORT/TYPE/GRANT/OWNER_GRANT/OBJECT_GRANT
ORA-39111: 跳过从属对象类型 OBJECT_GRANT:"SDE", 基本对象类型 TYPE:"SDE"."SDENUMTAB" 已存在
ORA-39111: 跳过从属对象类型 OBJECT_GRANT:"SDE", 基本对象类型 TYPE:"SDE"."SP_GRID_INFO" 已存在
ORA-39111: 跳过从属对象类型 OBJECT_GRANT:"SDE", 基本对象类型 TYPE:"SDE"."ST_FUNCS_ARRAY" 已存在
ORA-39111: 跳过从属对象类型 OBJECT_GRANT:"SDE", 基本对象类型 TYPE:"SDE"."FLT_ARRAY_TAB" 已存在
ORA-39111: 跳过从属对象类型 OBJECT_GRANT:"SDE", 基本对象类型 TYPE:"SDE"."INT_ARRAY_TAB" 已存在
ORA-39111: 跳过从属对象类型 OBJECT_GRANT:"SDE", 基本对象类型 TYPE:"SDE"."BND_ROWID_TAB" 已存在
ORA-39111: 跳过从属对象类型 OBJECT_GRANT:"SDE", 基本对象类型 TYPE:"SDE"."BLOB_ARRAY_TAB" 已存在
ORA-39111: 跳过从属对象类型 OBJECT_GRANT:"SDE", 基本对象类型 TYPE:"SDE"."ST_GEOMETRY" 已存在
ORA-39111: 跳过从属对象类型 OBJECT_GRANT:"SDE", 基本对象类型 TYPE:"SDE"."ST_POINT" 已存在
ORA-39111: 跳过从属对象类型 OBJECT_GRANT:"SDE", 基本对象类型 TYPE:"SDE"."ST_CURVE" 已存在
ORA-39111: 跳过从属对象类型 OBJECT_GRANT:"SDE", 基本对象类型 TYPE:"SDE"."ST_SURFACE" 已存在
ORA-39111: 跳过从属对象类型 OBJECT_GRANT:"SDE", 基本对象类型 TYPE:"SDE"."ST_GEOMCOLLECTION" 已存在
ORA-39111: 跳过从属对象类型 OBJECT_GRANT:"SDE", 基本对象类型 TYPE:"SDE"."ST_LINESTRING" 已存在
ORA-39111: 跳过从属对象类型 OBJECT_GRANT:"SDE", 基本对象类型 TYPE:"SDE"."ST_POLYGON" 已存在
ORA-39111: 跳过从属对象类型 OBJECT_GRANT:"SDE", 基本对象类型 TYPE:"SDE"."ST_MULTIPOINT" 已存在
ORA-39111: 跳过从属对象类型 OBJECT_GRANT:"SDE", 基本对象类型 TYPE:"SDE"."ST_MULTICURVE" 已存在
ORA-39111: 跳过从属对象类型 OBJECT_GRANT:"SDE", 基本对象类型 TYPE:"SDE"."ST_MULTISURFACE" 已存在
ORA-39111: 跳过从属对象类型 OBJECT_GRANT:"SDE", 基本对象类型 TYPE:"SDE".&#