oracle命令集锦

spacer.gif


oracle 客户端登陆

spacer.gif

 sqlplus  用户名@(netmanager名称)/密码


  1. 查看参数和当前的值

    1. select name,value from v$parameter order by name;    

  2. 更改静态参数

    1. alter system set log_buffer=6m;

    2. alter system set log_buffer=6m scope=spfile;

  3. 更改会话参数

    1. alter session set nls_language=German;

  4. 显示所有基本参数,检查他们已被设置了适当的值,还是默认值

    1. select name,value,isdefault  from v$parameter  where isbasic=-`TRUE`  order by name;   

  5. 开机过程

    1. emct1 start dbconsole

    2. lsnrct1 start

  6. 插入数据

    1. insert into newtbs values(sysdate)

  7. 关闭

    1. alter database close

    2. alter database mount

    3. alter databse open

    4. alter database nomount

  8. 实例状态

    1. select status from v$instance

  9. 动态性能视图

    1. desc v$sql

  10. 控制文件

    1. select * from v$controlfile;

    2. select value from v$parameter where name='control_files';

  11. 查看实例位置

    1. select name from v$datafile;

  12. 创建临时表



create temporary tablespace niu_temp  

tempfile'/u01/app/oracle/oradata/niu/niu_temp.dbf' 

size 1024m autoextend on 

next 100m 

maxsize 10240m 

extent management local;

  1.  创建表空间

    1. create tablespace newtbs datafile '/u01/app/oracle/oradata/newtbs_01.dbf' size 10m  extent management local autoallocate segment space management auto;

  2. 在新的表空间创建表,并确定第一区间的大小

    1. create table newtbs(c1 date) tablespace newtbs;

    2. select extent_id,bytes from dba_extents where owner='SYSTEM' and segment_name='NEWTAB';

  3. 手动添加区间

    1. alter table newtabs allocate extent;

  4. 使 表空间脱机

    1. alter tablespace newtbs offline;

  5. 恢复空间在线

    1. alter tablespace newtbs online;

  6. 使表空间只读

    1. alter tablespace newtbs read only;

  7. 使表空间读写

    1. alter tablespace newtbs read write;

  8. 确定OMF文件特性

    1. select file_name,bytes,autoextensible,maxbytes,increment_by from dba_data_files where tablespace_name='OMFTBS'

  9. 创建索引

    1. create table mantab (c1 number)tablespace newtbs;

    2. create index mantabi on mantab(c1) tablespace newtbs;

  10. 使用自动段空间管理的表空间

    1. create tablespace autosegs;

  11. 改变表空间和配额

    1. alter database default tablespace tables,name;

  12. 创建用户

    1. create user john identified by ggh5271;

  13. 配额

    1. default tablespace users temporary tablespace temp;

  14. 更改密码

    1. alter user leipore identified by lion;

  15. 锁定账户

    1. alter user leipore account lock;

  16. 删除用户(如果没有用户下没有对象)

    1. drop user leipore

  17. 删除用户(如果用户下有对象)

    1. drop user leipore cascade;

  18. 对某个表赋予所有人

    1. grant select on hr.regions to public;

  19. 给用户角色

    1. grant hr.regions to webapp;

  20. 查看当前用户的配置文件

    1. select username,profile from dba_users;

  21. 撤销权限

    1. revoke execute on utl_file from public;

  22. 执行检查点

    1. alter system checkpoint;

  23. 查找控制文件

    1. show parameters control_files;

  24. 干净的关闭oracle

    1. shutdown immediate;

  25. 以加载的模式启动

    1. startup mount;

  26. 确认数据库为归档日志模式,并能用下列两个查询运行归档器

    1. select log_mode from v$database;

    2. select archiver from v$instance;

  27. 显示SGA

    1. show sga;

  28. 导出

    1. exp tlp_main/tlp_main@ORA11G file=/u01/databack/tlp_$(date+%y%m%d).dmp log=/var/log/oracleBacklog/tlpback.log buffer=10240

  29. oracle数据库其他常用命令:

       1、给用户增加导入数据权限的操作

    第一,启动sql*puls

       第二,以管理员(DBA)用户登陆

       第三,create user 用户名 IDENTIFIED BY 密码 (如果已经创建过用户,这步可以省略)

       第四,>grant create user , drop user , alter user , create any view , drop any view , exp_full_database , imp_full_database , dba , resource , create session to 用户名字;

    第五运行cmd进入dmp文件所在的目录,

          imp userid=管理员用户名/密码 full=y file= filename.dmp

          或者 imp userid=管理员用户名/密码 full=y file=filename.dmp

       2Oracle 不允许直接改变表的拥有者利用Export/Import可以达到这一目的.

       先建立.par文件()

       然后,使用时命令如下:imp parfile=/filepath/import9.par

       例 import9.par 内容如下:

            FROMUSER=user       

            TOUSER=user_new     (注:把表的拥有者由FROMUSER改为TOUSERFROMUSERTOUSER的用户可以不同)          

            ROWS=Y

            INDEXES=Y

            GRANTS=Y

            CONSTRAINTS=Y

            BUFFER=409600

            file==/filepath/xxxx.dmp

            log==/filepath/import_log.log



  30. 导入

    1. imp tlp_main/tlp_main file=/tmp/tlp_main_2015-03-18-09.dmp

  31. 植入sql

    1. SQL> @/tmp/deleteAllTable.sql

  32. 增加表空间

    1. ALTER TABLESPACE tsTempTest 
      ADD TEMPFILE 'E:\DataBase\tsTempTest04.DBF' SIZE 64M AUTOEXTEND ONNEXT 32M maxsize unlimited;



  33. 查看当前用户的缺省表空间

    1. SQL>select username,default_tablespace from user_users;

  34. 查看当前用户的角色

    1. SQL>select * from user_role_privs;

  35. 查看当前用户的系统权限和表级权限

    1. SQL>select * from user_sys_privs;

    2. SQL>select * from user_tab_privs;

  36. 查看用户下所有的表

    1. SQL>select * from user_tables;

  37. 查看当前用户的缺省表

    1. SQL>select username,default_tablespace from user_users;

  38. 查看当前用户的角色

    1. SQL>select * from user_role_privs;

  39. 查看当前用户的系统权限和表级权限

    1. SQL>select * from user_sys_privs;

    2. SQL>select * from user_tab_privs;

  40. 显示当前会话所具有的权限

    1. SQL>select * from session_privs;

  41. 显示指定用户所具有的系统权限

    1. SQL>select * from dba_sys_privs where grantee='GAME';

  42. 查看用户下所有的表

    1. SQL>select * from user_tables;

  43. 查看名称包含log字符的表

    1. SQL>select object_name,object_id from user_objects

    2. where instr(object_name,'LOG')>0;

  44. 查看某表的创建时间

    1. SQL>select object_name,created from user_objects where object_name=upper('&table_name');

  45. 查看某表的大小

    1. SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&table_name');

  46. 查看放在ORACLE的内存区里的表

    1. SQL>select table_name,cache from user_tables where instr(cache,'Y')>0;、

  47. 索引  查看索引个数和类

    1. SQL>select index_name,index_type,table_name from user_indexes order by table_name;

  48. 查看索引被索引的字段

    1. SQL>select * from user_ind_columns where index_name=upper('&index_name');

  49. 查看索引的大小

    1. SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&index_name');

  50. 序列号

    1.   查看序列号,last_number是当前值

    2. SQL>select * from user_sequences;


  5、视图

  查看视图的名称

  SQL>select view_name from user_views;

  查看创建视图的select语句

  SQL>set view_name,text_length from user_views;

  SQL>set long 2000; 说明:可以根据视图的text_length值设定set long 的大小

  SQL>select text from user_views where view_name=upper('&view_name');

  6、同义词

  查看同义词的名称

  SQL>select * from user_synonyms;

  7、约束条件

  查看某表的约束条件

  SQL>select constraint_name, constraint_type,search_condition, r_constraint_name

  from user_constraints where table_name = upper('&table_name');

  SQL>select c.constraint_name,c.constraint_type,cc.column_name

  from user_constraints c,user_cons_columns cc

  where c.owner = upper('&table_owner') and c.table_name = upper('&table_name')

  and c.owner = cc.owner and c.constraint_name = cc.constraint_name

  order by cc.position;

  8、存储函数和过程

  查看函数和过程的状态

  SQL>select object_name,status from user_objects where object_type='FUNCTION';

  SQL>select object_name,status from user_objects where object_type='PROCEDURE';

  查看函数和过程的源代码

  SQL>select text from all_source where owner=user and name=upper('&plsql_name')


-------------------------------------------------------------------------------------------------------------------------------------

 

ORACLE:


----常用数据字典

USER_   
  记录用户对象的信息,如user_tables包含用户创建的所有表; user_views,user_constraints等;
ALL_   
记录用户对象的信息及被授权访问的对象信息;
DBA_
  记录数据库实例的所有对象的信息,如DBA_USERS包含数据库实例中
所有用户的信息,DBA的信息包含user和all的信息;
V$ 当前实例的动态视图,包含系统管理和优化使用的视图;
GV_ 分布环境下所有实例的动态视图,包含系统管理和优化使用的视图, 这里的GV表示 Global v$的意思;
 如当前分布环境下启动多个实例:
set line 160 (每行显示160个字符)
select inst_id,sid,lmode from gv$lock where inst_id = 1 or inst_id=2;

oracle常用数据字典,oracle10增加了不少数据字典10g r1 有1713个,r2有1870个:
1 基本的数据字典:
DBA_TABLES 所有用户的所有表的信息;
DBA_TAB_COLUMNS 所有用户的表的列(字段)信息;
DBA_VIEWS 所有用户的所有视图信息;
DBA_SYNONYMS 所有用户同义词信息;
DBA_SEQUENCES 所有用户序列信息;
DBA_CONSTRAINTS 所有用户的表约束信息;
DBA_INDEXES 所有用户索引的简要信息;
DBA_IND_COLUMNS 所有用户索引的列信息;
DBA_TRIGGERS 所有用户触发器信息 ;
DBA_SOURCE所有用户存储过程源代码信息;
DBA_PROCEDUS 所有用户存储过程;
DBA_SEGMENTS 所有用户段(表,索引,Cluster)使用空间信息;
DBA_EXTENTS 所有用户段的扩展段信息;
DBA_OBJECTS 所有用户对象的基本信息(包括素引,表,视图,序列等);
CAT 当前用户可以访问的所有的基表 ;
TAB 当前用户创建的所有基表,视图,同义词等;
DICT 构成数据字典的所有表的信息;


2 与数据库组件相关的数据字典:
数据库:
  V$DATABASE 同义词 V_$DATABASE,记录系统的运行情况;
表空间:  
DBA_TABLESPACES 记录系统表空间的基本信息;
DBA_DATA_FILES 记录系统数据文件及表空间的基本信息;
DBA_FREE_SPACE 记录系统表空间的剩余空间的信息;
控制文件:
V$CONTROLFILE 记录系统控制文件的路径信息;
V$PARAMETER 记录系统各参数的基本信息;
v$CONTROLFILE_RECORD_SECTION 记录系统控制运行的基本信息;
数据文件:
DBA_DATA_FILES 记录系统数据文件及表空间的基本信息;
v$DATAFILE 记录来自控制文件的数据文件信息;
v$FILESTAT 记录数据文件读写的基本信息 ;




    
--查看VGA信息:

show sga;

select * from v$sgastat;

--可以通过以下几个动态性能视图查看信息:
V$sysstat 系统统计信息
V$sesstat 用户会话统计信息  
V$pgastat 显示内存使用统计信息
V$sql_workarea SQL游标所用工作区的信息
V$ sql_workarea_active 当前系统工作区的信息

--在V$process动态性能视图中可以查询到每个Oracle进程的PGA分配的内存和已使用的内存情况,
--其中PGA_used_mem表示已使用的,pag_alloc_mem表示已分配的,pga_max_men表示PGA的最大值。

SQL> select pid,pga_used_mem,pga_alloc_mem,pga_max_mem from v$process;

--查看后台进程:

SELECT * FROM v$bgprocess WHERE paddr <> '00';

--查看所有的表空间;

SQL> select tablespace_name from dba_data_files order by tablespace_name;

--查看表空间的名字及大小:
SQL> select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size   
from dba_tablespaces t, dba_data_files d where t.tablespace_name = d.tablespace_name   
group by t.tablespace_name;

--创建表空间的语法是:
CREATE TABLESPACE tablespacename
DATAFILE 'filename' [SIZE integer [K|M]]  
[AUTOEXTEND [OFF|ON]];
--创建有多个数据文件的表空间:
SQL> create tablespace SALES
datafile 'd:/sales/SALES_DATA01.dbf' size 10m autoextend on next 10m maxsize 100m,
'd:/sales/SALES_DATA02.dbf' size 10m autoextend on next 10m maxsize
unlimited,'d:/sales/SALES_DATA03.dbf' size 10m;

--查看表空间的大小;

SQL> SELECT TABLESPACE_NAME,SUM(BYTES)/1024/1024 MB FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME;

--查看表空间中数据文件存放的路径:

SQL> SELECT TABLESPACE_NAME, BYTES/1024/1024 FILE_SIZE_MB, FILE_NAME FROM DBA_DATA_FILES;


删除表空间:
SQL> drop tablespace worktbs including contents;
表空间已丢弃。

再次查询表空间会发现已经没有worktbs表空间了。
如果我们再次删除表空间会出现什么后果?
删除一个不存在的表空间:
SQL> drop tablespace worktbs including contents;
drop tablespace worktbs including contents
*
ERROR 位于第 1 行:
ORA-00959: 表空间'WORKTBS'不存在
o 为表空间增加数据文件
SQL> alter tablespace sales add datafile 'd:/oracle/oradata/test/testtablespace/
sales_data04.dbf' size 10m autoextend on next 10m maxsize 100m,
'c:/oracle/oradata/test/testtablespace/sales_data05.dbf' size 10m autoextend on next 10m maxsize unlimited, 'c:/oracle/oradata/test/testtablespace/sales_data06.dbf' size 10m;

表空间已更改。
o 修改数据文件的大小
o 在数据文件中的可用空间未使用完时,允许对数据文件进行压缩,当压缩空间大小超过未使用空间大小时,将会产生错误。
SQL> alter database datafile 'c:/oracle/oradata/test/testtablespace/SALES_DATA04.dbf' resize 30m;

数据库已更改。
o 关闭表空间数据文件的自动扩展属性
o alter database
o datafile 'c:/SALES_DATA04.dbf' ,
o 'c:/SALES_DATA05.dbf',
o 'c:/SALES_DATA06.dbf'
o autoextend off;
o 打开表空间数据文件的自动扩展属性
o alter database
o datafile 'c:/SALES_DATA04.dbf' ,
o 'c:/SALES_DATA05.dbf',
o 'c:/SALES_DATA06.dbf'
o autoextend on;

o 修改表空间属性(离线)
o alter tablespace sales offline;   
o 修改表空间属性(在线)
o alter tablespace sales online;
o 修改表空间属性(只读)
o alter tablespace sales read only;
o 修改表空间属性(读写)
o alter tablespace sales read write;
o 如下系统表空间不得设置为 offline 或者 read only
o system , temp,undo ,undotbs  

o 移动表空间的数据文件
o 1. 使表空间脱机(系统表空间不得脱机,故不得移动)
o 2. 修改数据文件的名称
o 3. 执行 alter tablespace rename datafile 命令
o 4. 使表空间联机
o 第一步:alter tablespace sales offline;   
o 第二步:物理移动数据文件到目的地(可以是表空间的
o 部分数据文件,可以修改数据文件的名称)
o 第三步: 逻辑移动,修改控制文件的内容

o alter tablespace sales rename  
o datafile 'c:/sales01.dbf' to 'd:/sales02.dbf'
o --可以有多个数据文件,但是源文件
o 要在to的左边,目的文件要在to 右边,文件名称之间逗号分割.
o 第四步: 将表空间联机
o alter tablespace sales online;
o 第五步:查询dba_data_files确认

o 创建用户,指定默认表空间,磁盘配额
o create user rose identified by rose default
o tablespace sales quota 10m on sales;
o 给用户授权
o grant connect,resource,dba to rose;
o 用户登录
o connect rose/rose
o 创建表
o create table emp(eid number)  
o 该表默认放在表空间 sales 中
o 查询用户的存储限额dba_ts_quotas  
o 删除表空间(如果该表空间为空)
o drop tablespace sales ;
o 删除表空间的同时删除数据文件(不为空)
o drop tablespace sales including contents and datafiles;
o 创建表的同时指定该表的存储位置
o create table mytab(tid int ) tablespace sales;

o 删除表空间(如果该表空间为空)
o drop tablespace sales ;
o 删除表空间的同时删除数据文件(不为空)
o drop tablespace sales including contents and datafiles;
o 创建表的同时指定该表的存储位置
o create table mytab(tid int ) tablespace sales;


o 查看当前用户每个表占用空间的大小:
o select segment_name,sum(bytes)/1024/1024 from user_extents group by segment_name  
o 查看每个表空间占用空间的大小:
o select tablespace_name,sum(bytes)/1024/1024 from dba_segments group by tablespace_name  


只有用合法的用户帐号才能访问Oracle数据库
Oracle 有几个默认的数据库用户   
Scott/tiger

创建一个名称为 martin 的用户,其密码为 martinpwd
CREATE USER MARTIN IDENTIFIED BY martinpwd
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;

GRANT 命令可用于为用户分配权限或角色;
CONNECT角色允许用户连接至数据库,并创建数据库对象。
GRANT CONNECT TO MARTIN;  

RESOURCE角色允许用户使用数据库中的存储空间。
GRANT RESOURCE TO MARTIN;  

此系统权限允许用户在当前模式中创建序列,此权限包含在CONNECT角色中。
GRANT CREATE SEQUENCE TO MARTIN;  

GRANT CREATE SESSION TO MARTIN;

GRANT CREATE TABLE TO MARTIN;

GRANT CREATE VIEW TO MARTIN;

GRANT CREATE SEQUENCE TO MARTIN;



授予用户 MARTIN 操作emp表对象的权限 :
允许用户查询 TEST 表的记录
GRANT SELECT ON EMP TO MARTIN;  

允许用户更新 TEST 表中的记录
GRANT UPDATE ON EMP TO MARTIN;  

允许用户插入、删除、更新和查询 TEST 表中的记录
GRANT ALL ON EMP TO MARTIN;  


ALTER USER 命令可用于更改口令:
修改 MARTIN 用户的密码:
ALTER USER MARTIN IDENTIFIED BY martinpass;
DROP USER 命令用于删除用户:  
删除 MARTIN 用户模式:
DROP USER MARTIN CASCADE;


alter session set nls_date_format='yyyy-mm-dd';



1开始创建数据库:

----------------使用工具创建 (步骤省略)

2登陆新数据库  
run/sqlplus sys/sys@ACCP
(此时如果登陆老数据库使用 sqlplus sys/sys@orac9i)
2创建表空间:sales (用来保存accp数据库的数据)
create tablespace TestTBS datafile 'd:/sales/sales001.dbf' size 10m autoextend on next 10m maxsize 30m,'d:/sales/sales002.dbf' size 10m autoextend on next 10m maxsize 30m
3创建用户accp并授予权限
grant connect to accp;
grant resource to accp;
4以accp用户身份登陆accp数据库
create table person(pid number(5),pname varchar2(20)) tablespace testtbs;
insert into person values(1001,'TOM');
commit;
select table_name,tablespace_name from user_tables;
select * from person;




------------------------------------------------

spacer.gif



你可能感兴趣的:(Oracle常用命令)