海洋地形数据库的建立和导入导出
笔者前几年参与了某海洋公益性专项中的一个子课题,内容就是建立本单位的海洋地形信息系统,以便于数据管理和信息共享。其中涉及到很多技术问题,有必要整理成系列,以飨读者。系统数据库是采用Oracle软件,开发软件是FormsBuiler。
一、建立数据库
在安装了Oracle 9i以后,就需要建立海洋地形数据库,首先需要创建一个数据库(HYDXDB),然后创建一个用户名seabeam和数据表空间SSDX,其命令如下:
CREATE TABLESPACE SSDX DATAFILE'E:\oracle\oradata\HYDX\ssdx.DBF' SIZE 500M AUTOEXTEND ON NEXT 10M MAXSIZE30000M;
CREATETEMPORARY TABLESPACE SSDXTEMP TEMPFILE 'E:\oracle\oradata\HYDXssdxtemp.DBF'SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE 5000M;
CREATE USER seabeam IDENTIFIED BY seabeamDEFAULT TABLESPACE SSDX TEMPORARY TABLESPACE SSDXTEMP;
GRANT CONNECT,RESOURCE TO seabeam ;
GRANT CREATE ANY PROCEDURE TO seabeam ;
GRANT CREATE ANY SEQUENCE TO seabeam ;
GRANT CREATE ANY VIEW TO seabeam ;
GRANT CREATE SESSION TO seabeam ;
GRANT SELECT ANY DICTIONARY TO seabeam ;
最后,根据数据库设计书建立数据库的各个表及关系,这样数据库就建立完成了。
由于笔者经常出海作业,因此,需要导出数据库到笔记本,保证工作的连续性。
二、导出数据库
输入命令 exp help-y,查看exp的命令的说明
格式: EXPKEYWORD=value 或KEYWORD=(value1,value2,...,valueN)
例程: EXPSCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
或 TABLES=(T1:P1,T1: P2),如果 T1 是分区表
USERID 必须是命令行中的第一个参数。
关键字 说明(默认) 关键字 说明(默认)
USERID 用户名/口令 FULL 导出整个文件 (N)
BUFFER 数据缓冲区大小 OWNER 所有者用户名列表
FILE 输出文件 (EXPDAT.DMP) TABLES 表名称列表
COMPRESS 导入到一个区 (Y) RECORDLENGTH IO 记录的长度
GRANTS 导出权限 (Y) INCTYPE 增量导出类型
INDEXES 导出索引 (Y) RECORD 跟踪增量导出 (Y)
DIRECT 直接路径 (N) TRIGGERS 导出触发器 (Y)
LOG 屏幕输出的日志文件 STATISTICS 分析对象 (ESTIMATE)
ROWS 导出数据行 (Y) PARFILE 参数文件名
CONSISTENT 交叉表的一致性 (N) CONSTRAINTS 导出的约束条件 (Y)
OBJECT_CONSISTENT 只在对象导出期间设置为读的事务处理 (N)
FEEDBACK 每 x 行的显示进度 (0)
FILESIZE 每个转储文件的最大大小
FLASHBACK_SCN 用于将会话快照设置回以前状态的 SCN
FLASHBACK_TIME 用于获取最接近指定时间的 SCN 的时间
QUERY 用于导出表的子集的 select 子句
RESUMABLE 遇到与空格相关的错误时挂起(N)
RESUMABLE_NAME 用于标识可恢复语句的文本字符串
RESUMABLE_TIMEOUT RESUMABLE 的等待时间
TTS_FULL_CHECK 对 TTS 执行完整的或部分相关性检查
TABLESPACES 要导出的表空间列表
TRANSPORT_TABLESPACE 导出可传输的表空间元数据 (N)
TEMPLATE 调用 iAS 模式导出的模板名
导出seabeam的表空间SSDX:
exp seabeam/*****@hydxdbfile=e:\oracle\export\expSSDX.dmp log=e:\oracle\export\expSSDX.logowner=seabeam
在导出数据库的时候,最好按照用户逐一导出,不要全部导出数据库。
三、导入数据库
在笔记本上好Oracle9i,像第一节描述的那样建立数据库和用户名以及表空间。
输入命令 imp help-y,查看imp的命令的说明
格式: IMPKEYWORD=value或KEYWORD=(value1,value2,...,vlaueN)
例程: IMPSCOTT/TIGER IGNORE=YTABLES=(EMP,DEPT) FULL=N
或TABLES=(T1:P1,T1: P2),如果T1是分区表
USERID必须是命令行中的第一个参数。
关键字 说明(默认) 关键字 说明(默认)
--------------------------------------------------------------------------
USERID 用户名/口令 FULL 导入整个文件(N)
BUFFER 数据缓冲区大小 FROMUSER 所有人用户名列表
FILE 输入文件(EXPDAT.DMP) TOUSER 用户名列表
SHOW 只列出文件内容(N)TABLES 表名列表
IGNORE 忽略创建错误(N) RECORDLENGTH IO记录的长度
GRANTS 导入权限(Y) INCTYPE 增量导入类型
INDEXES导入索引(Y) COMMIT 提交数组插入(N)
ROWS 导入数据行(Y) PARFILE 参数文件名
LOG 屏幕输出的日志文件 CONSTRAINTS 导入限制(Y)
DESTROY 覆盖表空间数据文件(N)
INDEXFILE 将表/索引信息写入指定的文件
SKIP_UNUSABLE_INDEXES 跳过不可用索引的维护(N)
FEEDBACK 每x行显示进度(0)
TOID_NOVALIDATE 跳过指定类型ID的验证
FILESIZE 每个转储文件的最大大小
STATISTICS 始终导入预计算的统计信息
RESUMABLE 在遇到有关空间的错误时挂起(N)
RESUMABLE_NAME 用来标识可恢复语句的文本字符串
RESUMABLE_TIMEOUT RESUMABLE的等待时间
COMPILE 编译过程,程序包和函数(Y)
STREAMS_CONFIGURATION 导入Streams的一般元数据(Y)
STREAMS_INSTANITATION 导入Streams的实例化元数据(N)
然后导入seabeam的表空间SSDX
imp seabeam/*******@hydxdb file=D:\export\expSSDX.dmp fromuser=seabeamtouser=seabeam