Oracle 命令整理
Oracle数据库可以创建多个实例,每一个实例可以创建多个表空间,每个表空间可以创建多个用户和数据库文件,每个用户可以创建多个表.
1、 删除oracle用户
drop user 用户名 cascade;
如果提示:ORA-01940: cannot drop a user that is currentlyconnected
原因是有程序在连接我们需要删除的用户,我们删除用户之前一定要先把连接断掉;
1.1查找帐号下哪些连接在运行:
SQL>SELECT SID,SERIAL# FROMV$SESSION WHERE USERNAME='用户名';
1.2删除用户进程;
SQL>ALTER SYSTEM KILL SESSION'137,41813';
1.3之后再删除用户执行第一步
2、 数据库的导入导出
######################空表什么的都导出导入比较全
1. 备份数据库
select * from dba_directories;
set linesize 200;
col owner format a30;
col directory_name format a40;
col directory_path format a70;
create directory czdir as '/home/oracle/guo/cz2018012';
grant read,writeon directory czdir to czbank;
导出:
Expdpuserid=czbank/czbank2017 schemas=czbank dumpfile=czbank20180112.dmpdirectory=czdir;
导入另一个机器
select * fromdba_directories;
set linesize200;
col owner formata30;
coldirectory_name format a40;
coldirectory_path format a70;
create directoryczdii as '/home/oracle/guo/cz2018012';
grant read,writeon directory czdii to czbankzzz;
grant dba to czbankzzz;
impdp userid=czbankzzz/czbankzzzdirectory=czdii remap_schema=czbank:czbankzzz dumpfile=czbank20180112.dmp
#############################
2.1 全库导出:
进入到oracle用户
expuserid=czbank/czbank2017@bossdb file=czbankfull20171128.dmp compress=n statistics=none
COMPRESS参数将在导出的同时合并碎块,尽量把数据压缩到initial的EXTENT里,默认是N,一般建议使用。DIRECT参数将告诉EXP直接读取数据,而不像传统的EXP那样,使用SELECT来读取表中的数据,这样就减少了SQL语句处理过程。一般也建议使用。不过有些情况下DIRECT参数是无法使用的
2.2 在另一台机器上导入:
进入到oracle用户把czbankfull20171128.dmp导入到本地文件夹内
impuserid=czbank/czbank2017 file=czbankfull20171128.dmp statistics=none full=y
注意:导入的用户必须有dba权限!
3、 查看oracle数据库所有的表空间名称
selecttablespace_name from dba_tablespaces;
4、 去除某个用户的dba权限
SQL>revoke dba from 用户名;
5、 查看数据库版本:select * from v$version;
6、 查询dmp文件的字符集
SQL> selectnls_charset_name(to_number('0354','xxxx')) from dual;
7、 数据库服务器字符集
select * from nls_database_parameters;
8、 查看表空间的数据文件路径:select name from v$datafile;
9、 创建用户之前,先创建表空间:
createtablespace test datafile '/datafile路径/test.dbf' size512M extent management local uniform size 128K; 数据表空间 大小为 521M 每次扩展大小为 128k
CREATE TABLESPACE qrCodeDATAFILE'/opt/oracle/oradata/sws/qrCode01.dbf' SIZE 2048M AUTOEXTEND ON NEXT100M MAXSIZE UNLIMITED LOGGING PERMANENT EXTENT MANAGEMENT LOCAL AUTOALLOCATEBLOCKSIZE 8K SEGMENT SPACE MANAGEMENT AUTO FLASHBACK ON;
10、显示当前用户 SQL> show user;
11、对于普通用户授予 connect和 resource 权限 对于管理用户授予 dba权限用户授权:
grant connect,resource,dba to 用户;
12、查看数据库名:selectname from v$database;
13、查看实例名字:selectinstance_name from v$instance;
14、查看表结构:desc表;
15、更改用户的密码:alteruser 用户名 identified by新密码;
16、启动数据库实例:startup;
17、停止数据库: shutdown immediate;
18、不登录任何用户进入SQL环境:Oracle $ sqlplus /nolog
19、创建用户并指定表空间:createuser用户名 identified by密码default tablespace表;
20、解锁用户:alter user用户名 account unlock;
21、查看oracle中用户:select username from all_users;
22、查看已用表空间大下:selecttablespace_name,sum(bytes/1024/1024) from dba_segments group bytablespace_name;
查看剩余表空间大小: select tablespace_name,sum(blocks*8192/1000000)from dba_free_space group by tablespace_name;
23、查询数据库允许的最大连接数:selectvalue from v$parameter where name = 'processes';
24、修改数据库允许的最大连接数:altersystem set processes = 1500 scope = spfile;
25、查询oracle的连接数 select count(*) fromv$session;
26、删除表的数据 delete from表;
27、增加表空间大小
alter tablespace 表空间名字 add datafile'/home/data/mpay/info_data_24.dbf' size 512M;
28、查看oracle日志是否为归档日志archive log list;
29、截取一个时间段的日志信息
sed -n '/2018-01-03 13:30:/,/2018-01-0314:42:/p' catalina.out > catalina.out20180103.log