启动数据库服务和监听器
net start OracleXETNSListener
net start OracleServiceXE
登录,修改密码
sqlplus / as sysdba
alter user sys identified by password;
reference:
select username from dba_users; #查询所有用户
drop user cascade; #删除用户
select tablespace_name, status from dba_tablespaces; #查看表空间及状态
drop tablespace including contents and datafiles; #删除表空间
前提:删除表空间之前要确认该表空间没有被其他用户使用之后再做删除
创建临时表空间和表空间
SQL> create temporary tablespace user_temp
2 tempfile 'D:\oracle_table_space\sgc_temp.dbf'
3 size 50m
4 autoextend on
5 next 50m maxsize 2048m
6 extent management local;
表空间已创建。
SQL> create tablespace user_data
2 logging
3 datafile 'D:\oracle_table_space\sgc_data.dbf'
4 size 50m
5 autoextend on
6 next 50m maxsize 2048m
7 extent management local;
表空间已创建。
创建用户并指定表空间和默认表空间,给用户授予权限
SQL> create user sunguangchao identified by sunguangchao
2 default tablespace user_data
3 temporary tablespace user_temp;
用户已创建。
SQL> grant connect, resource, dba to sunguangchao;
授权成功。
查了一下临时表空间的定义:
表空间是数据库的逻辑划分,一个表空间只能属于一个数据库。所有的数据库对象都存放在指定的表空间中。但主要存放的是表, 所以称作表空间。Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间,可自动释放;而表空间中存储表数据、函数、过程、序列等。是随数据库永久存在的。
C:\WINDOWS\system32>set ORACLE_SID = webagent
C:\WINDOWS\system32>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 11月 2 09:27:58 2017
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn / as sysdba
已连接。
SQL> create bigfile tablespace CC_BASE logging datafile 'CC_BASE.dbf' size 100m autoextend on next 50m maxsize 32768m extent management local;
表空间已创建。
SQL> create bigfile tablespace CC_IBASE logging datafile 'CC_IBASE.dbf' size 100m autoextend on next 50m maxsize 32768m extent management local;
表空间已创建。
SQL> create bigfile temporary tablespace CC_BASE_TMP tempfile 'CC_BASE_TMP.dbf' size 100m autoextend on next 50m maxsize 32768m extent management local;
表空间已创建。
SQL> create user webagent identified by "webagent" default tablespace CC_BASE temporary tablespace CC_BASE_TMP;
用户已创建。
SQL> grant connect, resource, dba to webagent;
授权成功。
问题:
imp webagent/webagent@XE file="D:\oracle_table_space\ccdb.dmp" fromuser=webagent touser=webagnet
后来导入的时候发现上面这句SQL语句是有问题的,死活都导不进去,而且报错如下:
Import: Release 10.2.0.1.0 - Production on 星期四 11月 2 14:23:55 2017
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production
经由常规路径由 EXPORT:V10.02.00 创建的导出文件
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
导入服务器使用 AL32UTF8 字符集 (可能的字符集转换)
导出客户机使用 US7ASCII 字符集 (可能的字符集转换)
IMP-00008: 导出文件中出现无法识别的语句:
. 正在将 WEBAGENT 的对象导入到 WEBAGNET
IMP-00003: 遇到 ORACLE 错误 1435
ORA-01435: 用户不存在
成功终止导入, 但出现警告。
网上搜资料后改了一下:
C:\WINDOWS\system32>imp webagent/webagent@XE file="D:\oracle_table_space\ccdb.dmp" full=y
full=y
是导出整个文件的意思
其余的参数设置如下:
关键字 | 说明 | 默认 |
---|---|---|
USERID | 用户名/口令 | |
FULL | 导出整个文件 | (N) |
BUFFER | 数据缓冲区的大小 | |
OWNER | 导出指定的所有者用户名列表 | |
FILE | 输出文件 | (EXPDAT.DMP) |
TABLES | 导出指定的表名列表 | |
COMPRESS | 是否压缩导出的文件 | (Y) |
RECORDLENGTH | IO 记录的长度 | |
GRANTS | 导出权限 | (Y) |
INCTYPE | 增量导出类型 | |
INDEXES | 导出索引 | (Y) |
RECORD | 跟踪增量导出 | (Y) |
ROWS | 导出数据行 | (Y) |
PARFILE | 参数文件名 | |
CONSTRAINTS | 导出限制 | (Y) |
CONSISTENT | 交叉表一致性 | |
LOG | 屏幕输出的日志文件 | |
STATISTICS | 分析对象(ESTIMATE) | |
DIRECT | 直接路径 | (N) |
TRIGGERS | 导出触发器 | (Y) |
FEEDBACK | 显示每 x 行 (0) 的进度 | |
FILESIZE | 各转储文件的最大尺寸 | |
QUERY | 选定导出表子集的子句 | |
TRANSPORT_TABLESPACE | 导出可传输的表空间元数据 | (N) |
TABLESPACES | 导出指定的表空间列表 |
reference:
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
SQL>
或者用另一种方法:
用管理员权限打开cmd,然后找到你想导入的dmp文件所在的目录:
C:\WINDOWS\system32>d:
D:\>cd oracle_table_space
D:\oracle_table_space>dir
驱动器 D 中的卷是 LENOVO
卷的序列号是 4454-E767
D:\oracle_table_space 的目录
2017/11/02 09:44 .
2017/11/02 09:44 ..
2017/11/02 10:21 97,017,856 ccdb.dmp
2017/11/02 08:12 52,436,992 SGC_DATA.DBF
2017/11/01 10:04 52,436,992 SGC_TEMP.DBF
3 个文件 201,891,840 字节
2 个目录 289,902,190,592 可用字节
D:\oracle_table_space>imp webagent/webagent full=y file=ccdb.dmp