EXP SYSTEM/PASSWORD@SID FULL=Y FILE=D:\SYSTEM.DMP LOG=D:\SYSTEM.LOG
2.数据入库
(a)从数据库中删除SDESDE 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;
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.导入SDESDEUSER的数据
注意顺序,先SDE,后SDEUSER
IMP SYSTEM/PASSWOR@SID FROMUSER=SDE TOUSER=SDE
IMP SYSTEM/PASSWOR@SID FROMUSER=SDEUSER TOUSER=SDEUSER


以上提到的SDESDEUSER是不同的用户,SDEArcSDE安装时的默认用户,SDEUSER
是指用户存储数据的用户,如果之间使用SDE默认用户存储,则省去所以的SDEUSER操作
空间数据的备份、导出/导入(以Oracle为例):

1、首先为什么oracleexp/imp不能使用?
一个feature class shp文件)导入数据库后,会生成3table 7index,这些表或者是index 可以保存在不同的表空间中。
除了这些数据表之外,还在sde表空间的控制表中加入了很多控制信息(如在layers表中加入图层编号,也即三个数据表分别叫 test_layer F120  S120,这个120就是test_layer的编号。还有其他控制信息)。
如果只是用oracleexp/imp导入导入的话,默认情况下不会把sde表空间的数据一起导出。

因此在导入到另一个数据库中,因为没有sde表空间里的控制信息,所以原来的layer全部编程 属性表了。


2sde数据备份、导出/导入方法

可以利用 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>]

此命令有至少三种好处:
1、屏蔽了数据库,可以实现在不同数据库软件间的备份;
2、在不同sde版本间备份、转换 (指定 -r 参数即可);
3、生成批处理文件(.bat),方便日常备、导出/导入工作,减少了工作量。