Oracle 数据库简单操作
2016-02-17 21:04
387 查看
现在大型企业一般都用Oracle数据库,Oracle数据库在一般采用expdp,impdp 导出导入数据,但是在操作中经常会遇到一些问题。下面来浅析这些问题。
1. 导出数据
一般导出数据的时候需要建立一个目录地址
select * from dba_directories; --查询所有目录地址
create or replace directory winqt_dump as '/home/front/dmpfile'; --创建目录地址
grant read,write on directory winqt_dump to qtdb; --给目录地址赋读写权限
drop directory dumpwinqt; --删除目录地址
select username,default_tablespace from dba_users; -- 查询用户下面的表空间
select * from user_indexes; --查询用户下所有索引
select table_name from user_tables where NUM_ROWS > 0; --查询有数据的表
注意在 数据库赋值权限的时候需要用oracle用户登录。
expdp qtdb/qtdb dumpfile=20150907test.dmp directory=dumpwinqt schemas=qtdb logfile=export.log; --导出数据库
expdp winqtdb/winqtdb directory=dumpwinqt compression=ALL dumpfile=20160321qtdb.dmp logfile=export.log reuse_dumpfiles=y;
impdp hsqtdb/hsqtdb dumpfile=20160321qtdb.dmp DIRECTORY=dumpwinqt remap_schema=winqtdb:hsqtdb TABLE_EXISTS_ACTION=REPLACE;
select 'alter system kill session '''||sid||','||serial#||''';' from v$session where username = 'db'; -- 查询所有的数据库连接
如果有连接 先查询,后再oracle 中查询 复制,在环境sqlplus中删除。
删除数据库必须用oracle权限, 先根据root —》 oracle .
sqlplus / as sysdba
drop user db cascade;
create user db identified by c3front default tablespace USERS temporary tablespace TEMP ;
grant connect , resource , dba to db ;
touch export.log ; --导出日志路径
chomd 777 export.log; --给日志赋权限
注意给目录dmpfile赋权限;
chmod 777 dmpfile;
如下图所有
问题1:
上图这个问题是用于环境下的空间不足引起的。
2. 导入数据
impdp hsqtdb/hsqtdb dumpfile=20150217qtdb.dmp directory=dumpwinqt remap_schema=hnqtdb:hsqtdb nologfile=true; --导入数据
导出用expdp 对应的导入就用impdp 否则会报如下错误:
如果用空表存在 最好用expdp 导出 因为oracle11g中有个新特性,当表无数据时,不分配segment,以节省空间,所以exp导不出空表。解决的办法是用expdp
3. 创建数据库实例
sqlplus / as sysdba
drop user qtdb cascade;
create user qtdb identified by qtdb default tablespace USERS temporary tablespace TEMP ;
grant connect , resource , dba to qtdb;
总结
在操作数据库的时候,经常会遇到一些疑难问题,后续如果遇到新问题,再讨论。
1. 导出数据
一般导出数据的时候需要建立一个目录地址
select * from dba_directories; --查询所有目录地址
create or replace directory winqt_dump as '/home/front/dmpfile'; --创建目录地址
grant read,write on directory winqt_dump to qtdb; --给目录地址赋读写权限
drop directory dumpwinqt; --删除目录地址
select username,default_tablespace from dba_users; -- 查询用户下面的表空间
select * from user_indexes; --查询用户下所有索引
select table_name from user_tables where NUM_ROWS > 0; --查询有数据的表
注意在 数据库赋值权限的时候需要用oracle用户登录。
expdp qtdb/qtdb dumpfile=20150907test.dmp directory=dumpwinqt schemas=qtdb logfile=export.log; --导出数据库
expdp winqtdb/winqtdb directory=dumpwinqt compression=ALL dumpfile=20160321qtdb.dmp logfile=export.log reuse_dumpfiles=y;
impdp hsqtdb/hsqtdb dumpfile=20160321qtdb.dmp DIRECTORY=dumpwinqt remap_schema=winqtdb:hsqtdb TABLE_EXISTS_ACTION=REPLACE;
select 'alter system kill session '''||sid||','||serial#||''';' from v$session where username = 'db'; -- 查询所有的数据库连接
如果有连接 先查询,后再oracle 中查询 复制,在环境sqlplus中删除。
删除数据库必须用oracle权限, 先根据root —》 oracle .
sqlplus / as sysdba
drop user db cascade;
create user db identified by c3front default tablespace USERS temporary tablespace TEMP ;
grant connect , resource , dba to db ;
touch export.log ; --导出日志路径
chomd 777 export.log; --给日志赋权限
注意给目录dmpfile赋权限;
chmod 777 dmpfile;
如下图所有
问题1:
上图这个问题是用于环境下的空间不足引起的。
2. 导入数据
impdp hsqtdb/hsqtdb dumpfile=20150217qtdb.dmp directory=dumpwinqt remap_schema=hnqtdb:hsqtdb nologfile=true; --导入数据
导出用expdp 对应的导入就用impdp 否则会报如下错误:
如果用空表存在 最好用expdp 导出 因为oracle11g中有个新特性,当表无数据时,不分配segment,以节省空间,所以exp导不出空表。解决的办法是用expdp
3. 创建数据库实例
sqlplus / as sysdba
drop user qtdb cascade;
create user qtdb identified by qtdb default tablespace USERS temporary tablespace TEMP ;
grant connect , resource , dba to qtdb;
总结
在操作数据库的时候,经常会遇到一些疑难问题,后续如果遇到新问题,再讨论。
相关文章推荐
- oracle优化001
- oracle数据库学习(三)
- 查询oracle表的信息(表,字段,约束,索引)
- javaweb JDBC连接Mysql与Oracle的比较及启示总结
- ORACLE中Insert时总是出现让enter value for....
- oracle 数据库表锁,解锁方法
- 导出远程oracle数据库到本地
- oracle-绑定变量学习笔记(未完待续)
- oracle EBS采购订单各表作用分析
- C# 与 Oracle 中 BINARY_DOUBLE数据类型查询
- Oracle RAC环境的日志体系
- 静默安装oracle 11g及参数配置优化详解
- ORACLE中的pfile和spfile
- Oracle 中的 TO_DATE 和 TO_CHAR 函数
- oracle 数据库的建表以及字段的增删改查
- oracle重建索引
- Oracle 游标使用详解
- oracle plsql性能优化
- oracle新建表空间及用户的笔记
- oracle 数据库用户帐号密码过期