Oracle11g的相关操作汇总
创建表空间
- windows下:登录sqlplus
- sqlplus /nolog
- conn /as sysdba
- 创建表空间
create tablespace roeee
logging
datafile ‘c:\app\Administrator\oradata\orcl\fsms.dbf’
size 50m
autoextend on
next 50m maxsize 20480m
extent management local;
创建数据库用户(指定表空间)
CREATE USER "TEST" IDENTIFIED BY "sa" ACCOUNT UNLOCK DEFAULT TABLESPACE "FSMS" TEMPORARY TABLESPACE "TEMP" PROFILE "DEFAULT";
GRANT "CONNECT" TO "TEST" WITH ADMIN OPTION;
GRANT "DBA" TO "TEST" WITH ADMIN OPTION;
GRANT "RESOURCE" TO "TEST" WITH ADMIN OPTION;
创建数据库用户的DATABASE LINK
CREATE DATABASE LINK FSMS_LINK CONNECT TO TEST IDENTIFIED BY sa USING 'ORCL';
数据库数据导入
imp test_fsms/sa@orcl file=fsms20161012.dmp log=fsms.log fromuser=test_fsms touser=test_fsms ignore=y
数据库数据导出
oracle11g存在一个问题:当表无数据时,不分配segment,以节省空间
这样如果没有数据的场合,用EXP命令导出的话,0记录的表就无法导出。
最好的办法:
在创建完数据库后,在sqlplus执行语句:
alter system set deferred_segment_creation=false;
这样之后的表都可以正常导出。
但如果一开始忘了执行上面的语句,那么在上面的语句执行前的0记录表还是导不出。
可以用以下的方法解决:
先执行下面的语句
select’alter table ‘||table_name||’ allocate extent;’from user_tables where num_rows=0
该语句的结果如下:
altertable table1 allocate extent;
altertable table2 allocate extent;
altertable table3 allocate extent;
…
然后执行上面语句的执行结果就可以了。