EXP SYSTEM/PASSWORD@SID FULL=Y FILE=D:\SYSTEM.DMP LOG=D:\SYSTEM.LOG
2.数据入库
(a)从数据库中删除SDE和SDE USER用户
DROP USER SDE CASCADE;
DROP USER SDEUSER CASCADE;
drop table if exists admin(b)创建新的SDE用户和SDEUSER
下为创建SDE用户过程:
(i)创建表空间
CREATE TABLESPACE "SDE"
LOGGING
DATAFILE 'C:\ORACLE\ORADATA\a' SIZE 200M
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
(ii)创建用户
CREATE USER "SDE" PROFILE "DEFAULT"
IDENTIFIED BY "PASSWORD" DEFAULT TABLESPACE "SDE"
2.数据入库
(a)从数据库中删除SDE和SDE USER用户
DROP USER SDE CASCADE;
DROP USER SDEUSER CASCADE;
drop table if exists admin(b)创建新的SDE用户和SDEUSER
下为创建SDE用户过程:
(i)创建表空间
CREATE TABLESPACE "SDE"
LOGGING
DATAFILE 'C:\ORACLE\ORADATA\a' SIZE 200M
EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO
(ii)创建用户
CREATE USER "SDE" PROFILE "DEFAULT"
IDENTIFIED BY "PASSWORD" DEFAULT TABLESPACE "SDE"
TEMPORARY TABLESPACE "TEMP"
ACCOUNT UNLOCK;
(iii)创建角
GRANT "DBA" TO "SDE";
GRANT "CONNECT" TO "SDE";
GRANT "RESOURCE" TO "SDE";
(iiii)系统权限
GRANT ALTER ANY INDEX TO "SDE" WITH ADMIN OPTION;
GRANT ALTER ANY TABLE TO "SDE" WITH ADMIN OPTION;
GRANT ANALYZE ANY TO "SDE" WITH ADMIN OPTION;
GRANT CREATE ANY INDEX TO "SDE" WITH ADMIN OPTION;
GRANT CREATE ANY PROCEDURE TO "SDE" WITH ADMIN OPTION;
GRANT CREATE ANY SEQUENCE TO "SDE" WITH ADMIN OPTION;
GRANT CREATE ANY TRIGGER TO "SDE" WITH ADMIN OPTION;
GRANT CREATE ANY VIEW TO "SDE" WITH ADMIN OPTION;
ACCOUNT UNLOCK;
(iii)创建角
GRANT "DBA" TO "SDE";
GRANT "CONNECT" TO "SDE";
GRANT "RESOURCE" TO "SDE";
(iiii)系统权限
GRANT ALTER ANY INDEX TO "SDE" WITH ADMIN OPTION;
GRANT ALTER ANY TABLE TO "SDE" WITH ADMIN OPTION;
GRANT ANALYZE ANY TO "SDE" WITH ADMIN OPTION;
GRANT CREATE ANY INDEX TO "SDE" WITH ADMIN OPTION;
GRANT CREATE ANY PROCEDURE TO "SDE" WITH ADMIN OPTION;
GRANT CREATE ANY SEQUENCE TO "SDE" WITH ADMIN OPTION;
GRANT CREATE ANY TRIGGER TO "SDE" WITH ADMIN OPTION;
GRANT CREATE ANY VIEW TO "SDE" WITH ADMIN OPTION;
GRANT CREATE SESSION TO "SDE" WITH ADMIN OPTION;
GRANT DROP ANY INDEX TO "SDE" WITH ADMIN OPTION;
GRANT DROP ANY TABLE TO "SDE" WITH ADMIN OPTION;
GRANT DROP ANY VIEW TO "SDE" WITH ADMIN OPTION;
GRANT DROP ANY PROCEDURE TO "SDE" WITH ADMIN OPTION;
GRANT DROP ANY SEQUENCE TO "SDE" WITH ADMIN OPTION;
GRANT EXECUTE ANY PROCEDURE TO "SDE" WITH ADMIN OPTION;
GRANT SELECT ANY SEQUENCE TO "SDE" WITH ADMIN OPTION;
GRANT SELECT ANY TABLE TO "SDE" WITH ADMIN OPTION;
GRANT UNLIMITED TABLESPACE TO "SDE" WITH ADMIN OPTION;
3.导入SDE和SDEUSER的数据
注意顺序,先SDE,后SDEUSER
IMP SYSTEM/PASSWOR@SID FROMUSER=SDE TOUSER=SDE
IMP SYSTEM/PASSWOR@SID FROMUSER=SDEUSER TOUSER=SDEUSER
GRANT DROP ANY INDEX TO "SDE" WITH ADMIN OPTION;
GRANT DROP ANY TABLE TO "SDE" WITH ADMIN OPTION;
GRANT DROP ANY VIEW TO "SDE" WITH ADMIN OPTION;
GRANT DROP ANY PROCEDURE TO "SDE" WITH ADMIN OPTION;
GRANT DROP ANY SEQUENCE TO "SDE" WITH ADMIN OPTION;
GRANT EXECUTE ANY PROCEDURE TO "SDE" WITH ADMIN OPTION;
GRANT SELECT ANY SEQUENCE TO "SDE" WITH ADMIN OPTION;
GRANT SELECT ANY TABLE TO "SDE" WITH ADMIN OPTION;
GRANT UNLIMITED TABLESPACE TO "SDE" WITH ADMIN OPTION;
3.导入SDE和SDEUSER的数据
注意顺序,先SDE,后SDEUSER
IMP SYSTEM/PASSWOR@SID FROMUSER=SDE TOUSER=SDE
IMP SYSTEM/PASSWOR@SID FROMUSER=SDEUSER TOUSER=SDEUSER
以上提到的SDE和SDEUSER是不同的用户,SDE是ArcSDE安装时的默认用户,SDEUSER
是指用户存储数据的用户,如果之间使用SDE默认用户存储,则省去所以的SDEUSER操作
空间数据的备份、导出/导入(以Oracle为例):
1、首先为什么oracle的exp/imp不能使用?
一个feature class (shp文件)导入数据库后,会生成3个table 和7个index,这些表或者是index 可以保存在不同的表空间中。
除了这些数据表之外,还在sde表空间的控制表中加入了很多控制信息(如在layers表中加入图层编号,也即三个数据表分别叫 test_layer 、F120 、S120,这个120就是test_layer的编号。还有其他控制信息)。
如果只是用oracle的exp/imp导入导入的话,默认情况下不会把sde表空间的数据一起导出。
因此在导入到另一个数据库中,因为没有sde表空间里的控制信息,所以原来的layer全部编程 属性表了。
1、首先为什么oracle的exp/imp不能使用?
一个feature class (shp文件)导入数据库后,会生成3个table 和7个index,这些表或者是index 可以保存在不同的表空间中。
除了这些数据表之外,还在sde表空间的控制表中加入了很多控制信息(如在layers表中加入图层编号,也即三个数据表分别叫 test_layer 、F120 、S120,这个120就是test_layer的编号。还有其他控制信息)。
如果只是用oracle的exp/imp导入导入的话,默认情况下不会把sde表空间的数据一起导出。
因此在导入到另一个数据库中,因为没有sde表空间里的控制信息,所以原来的layer全部编程 属性表了。
2、sde数据备份、导出/导入方法
可以利用 #4 楼说的 全库备份的方式。但是这种方式有两限制:
第一是数据库软件必须一致,也就是说你只能在oracle数据库之间(或sql server)互相导出/导入。
第二就是arcsde的版本必须一致才行。如不能用arcsde8.3 导出,再导入到Arcsde9.0内。(因为每个版本的ArcsDE控制表信息不完全相同)。
正确的方式:
利用sde提供的sdeexport/sdeimport命令备份、导出/导入。
以下是ArcSDE9.0 (ArcSDE9.2也相同)的sdeexport命令
sdeexport [-o create] -t <table> [-V <version_name>] [-O] [-q]
[-a {all | file=<file_name>}]
-f <{export_file | -}> [-X <volume_size>]
[-r <target_ArcSDE_version_number>]
[-w <"where_clause">] [-i <service>] [-s <server_name>]
[-D <database>] -u <DB_User_name> [-p <DB_User_password>]
sdeexport [-o create] -l <table,column> [-V <version_name>] [-O] [-q]
[-a {all | file=<file_name>}]
-f <{export_file | -}> [-X <volume_size>]
[-r <target_ArcSDE_version_number>]
[-w <"where_clause">] [-i <service>] [-s <server_name>]
[-D <database>] -u <DB_User_name> [-p <DB_User_password>]
此命令有至少三种好处:
[-a {all | file=<file_name>}]
-f <{export_file | -}> [-X <volume_size>]
[-r <target_ArcSDE_version_number>]
[-w <"where_clause">] [-i <service>] [-s <server_name>]
[-D <database>] -u <DB_User_name> [-p <DB_User_password>]
sdeexport [-o create] -l <table,column> [-V <version_name>] [-O] [-q]
[-a {all | file=<file_name>}]
-f <{export_file | -}> [-X <volume_size>]
[-r <target_ArcSDE_version_number>]
[-w <"where_clause">] [-i <service>] [-s <server_name>]
[-D <database>] -u <DB_User_name> [-p <DB_User_password>]
此命令有至少三种好处:
1、屏蔽了数据库,可以实现在不同数据库软件间的备份;
2、在不同sde版本间备份、转换 (指定 -r 参数即可);
3、生成批处理文件(.bat),方便日常备、导出/导入工作,减少了工作量。
2、在不同sde版本间备份、转换 (指定 -r 参数即可);
3、生成批处理文件(.bat),方便日常备、导出/导入工作,减少了工作量。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论