1.查询表空间文件存储位置
select name from v$datafile;
2.创建表空间
create tablespace 空间名称 datafile '存储位置/表空间名称.dbf' size 50m autoextend on;
create temporary tablespace 临时表空间名称 tempfile '存储位置/临时表空间名称.dbf'.dbf' size 50m autoextend on;
3.创建用户
create user 用户名 identified by "密码" default tablespace "空间名称" temporary tablespace "临时表空间名称";
--注意要使用“而不是‘
4.角色授权
grant "resource" to 用户名;
grant "connect" to 用户名;
5.其他权限授权
grant create session,create table,create view,create sequence,create trigger,create procedure to 用户名;
6.导入和导出命令
--本地导出
exp 数据库名称/密码@数据库名SID file=文件名称.dmp owner=所属用户
--远程导出, 并指定导出哪些表
exp 数据库名称/密码@IP:Port/数据库名SID file=文件名称.dmp owner=所属用户 tables={选择的表明,以逗号分开}
--本地导入
imp 数据库名称/密码@数据库名SID file=文件名称.dmp fromuser=用户 touser=用户 igore=y(忽略错误继续导入)
--远程导入
imp 数据库名称/密码@数据IP:Port/SID file=文件名称.dmp fromuser=用户 touser=用户 igore=y(忽略错误继续导入)
注意: 一张表是不能用{}
7.impdp和expdp使用(如果版本不同时可用次方法导入导出)
1>查看所属用户是否存在逻辑目录
select * from dba_directories where directory_name = 'DPUMP_DIR';
2>.如果不存在则创建
create directory 逻辑目录别名 as '存储位置';
PS:存储位置oracle不会创建,需要手动创建
3>授权读写权限
grant read, write on directory 逻辑目录别名 to 用户;
4>导出
expdp 用户名/密码 directory=逻辑目录别名 dumpfile=文件名.dmp version=11.1.0.6.0
PS:注意高版本是不能导入低版本 比如我的数据库是11GR2 对方是11GR1 需要指定低版本版本号
5>导入
impdp 用户名/密码 directory=逻辑目录别名 dumpfile=文件.dmp full=y table_exists_action=truncate remap_schema=源用户名:目标用户名
remap_schema:如果导出的用户和导入的用户不一样, 需要指定此参数
table_exists_action参数说明
skip:默认操作;
replace:先drop表,然后创建表,最后插入数据;
append:在原来数据的基础上增加数据;
truncate:先truncate,然后再插入数据
8.当前线程数
select count(*) from v$process;
9.当前session数
select count(*) from v$session;
10.总的session数
SELECT * FROM V$PARAMETER WHERE NAME LIKE 'session%';
11.创建索引
create index 索引名称 on 表名称(表字段);
12.创建序列
create sequence 序列名称 minvalue 1 maxvalue 999999999999999999999999999 increment by 1 start with 1 cache 5 noorder nocycle ;
12.数据库空间使用查看
select * from v$asm_diskgroup;
select group_number,file_number,bytes,space from v$asm_file;
13.查看oracle是否支持分区
select value from v$option where upper(parameter)='partitioning';
value=false 则不支持分区