oracle 客户端登陆
sqlplus 用户名@(netmanager名称)/密码
查看参数和当前的值
select name,value from v$parameter order by name;
更改静态参数
alter system set log_buffer=6m;
alter system set log_buffer=6m scope=spfile;
更改会话参数
alter session set nls_language=German;
显示所有基本参数,检查他们已被设置了适当的值,还是默认值
select name,value,isdefault from v$parameter where isbasic=-`TRUE` order by name;
开机过程
emct1 start dbconsole
lsnrct1 start
插入数据
insert into newtbs values(sysdate)
关闭
alter database close
alter database mount
alter databse open
alter database nomount
实例状态
select status from v$instance
动态性能视图
desc v$sql
控制文件
select * from v$controlfile;
select value from v$parameter where name='control_files';
查看实例位置
select name from v$datafile;
创建临时表
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;
创建表空间
create tablespace newtbs datafile '/u01/app/oracle/oradata/newtbs_01.dbf' size 10m extent management local autoallocate segment space management auto;
在新的表空间创建表,并确定第一区间的大小
create table newtbs(c1 date) tablespace newtbs;
select extent_id,bytes from dba_extents where owner='SYSTEM' and segment_name='NEWTAB';
手动添加区间
alter table newtabs allocate extent;
使 表空间脱机
alter tablespace newtbs offline;
恢复空间在线
alter tablespace newtbs online;
使表空间只读
alter tablespace newtbs read only;
使表空间读写
alter tablespace newtbs read write;
确定OMF文件特性
select file_name,bytes,autoextensible,maxbytes,increment_by from dba_data_files where tablespace_name='OMFTBS'
创建索引
create table mantab (c1 number)tablespace newtbs;
create index mantabi on mantab(c1) tablespace newtbs;
使用自动段空间管理的表空间
create tablespace autosegs;
改变表空间和配额
alter database default tablespace tables,name;
创建用户
create user john identified by ggh5271;
配额
default tablespace users temporary tablespace temp;
更改密码
alter user leipore identified by lion;
锁定账户
alter user leipore account lock;
删除用户(如果没有用户下没有对象)
drop user leipore
删除用户(如果用户下有对象)
drop user leipore cascade;
对某个表赋予所有人
grant select on hr.regions to public;
给用户角色
grant hr.regions to webapp;
查看当前用户的配置文件
select username,profile from dba_users;
撤销权限
revoke execute on utl_file from public;
执行检查点
alter system checkpoint;
查找控制文件
show parameters control_files;
干净的关闭oracle
shutdown immediate;
以加载的模式启动
startup mount;
确认数据库为归档日志模式,并能用下列两个查询运行归档器
select log_mode from v$database;
select archiver from v$instance;
显示SGA
show sga;
导出
exp tlp_main/ file=/u01/databack/tlp_$(date+%y%m%d).dmp log=/var/log/oracleBacklog/tlpback.log buffer=10240
-
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
2、Oracle 不允许直接改变表的拥有者, 利用Export/Import可以达到这一目的.
先建立.par文件()
然后,使用时命令如下:imp parfile=/filepath/import9.par
例 import9.par 内容如下:
FROMUSER=user
TOUSER=user_new (注:把表的拥有者由FROMUSER改为TOUSER,FROMUSER和TOUSER的用户可以不同)
ROWS=Y
INDEXES=Y
GRANTS=Y
CONSTRAINTS=Y
BUFFER=409600
file==/filepath/xxxx.dmp
log==/filepath/import_log.log
导入
imp tlp_main/tlp_main file=/tmp/tlp_main_2015-03-18-09.dmp
植入sql
SQL> @/tmp/deleteAllTable.sql
增加表空间
ALTER TABLESPACE tsTempTest ADD TEMPFILE 'E:\DataBase\tsTempTest04.DBF' SIZE 64M AUTOEXTEND ONNEXT 32M maxsize unlimited;
查看当前用户的缺省表空间
SQL>select username,default_tablespace from user_users;
查看当前用户的角色
SQL>select * from user_role_privs;
查看当前用户的系统权限和表级权限
SQL>select * from user_sys_privs;
SQL>select * from user_tab_privs;
查看用户下所有的表
SQL>select * from user_tables;
查看当前用户的缺省表
SQL>select username,default_tablespace from user_users;
查看当前用户的角色
SQL>select * from user_role_privs;
查看当前用户的系统权限和表级权限
SQL>select * from user_sys_privs;
SQL>select * from user_tab_privs;
显示当前会话所具有的权限
SQL>select * from session_privs;
显示指定用户所具有的系统权限
SQL>select * from dba_sys_privs where grantee='GAME';
查看用户下所有的表
SQL>select * from user_tables;
查看名称包含log字符的表
SQL>select object_name,object_id from user_objects
where instr(object_name,'LOG')>0;
查看某表的创建时间
SQL>select object_name,created from user_objects where object_name=upper('&table_name');
查看某表的大小
SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&table_name');
查看放在ORACLE的内存区里的表
SQL>select table_name,cache from user_tables where instr(cache,'Y')>0;、
索引 查看索引个数和类
SQL>select index_name,index_type,table_name from user_indexes order by table_name;
查看索引被索引的字段
SQL>select * from user_ind_columns where index_name=upper('&index_name');
查看索引的大小
SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&index_name');
序列号
查看序列号,last_number是当前值
SQL>select * from user_sequences;
-------------------------------------------------------------------------------------------------------------------------------------
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 tablespacenameDATAFILE 'filename' [SIZE integer [K|M]] [AUTOEXTEND [OFF|ON]];--创建有多个数据文件的表空间:SQL> create tablespace SALESdatafile 'd:/sales/SALES_DATA01.dbf' size 10m autoextend on next 10m maxsize 100m,'d:/sales/SALES_DATA02.dbf' size 10m autoextend on next 10m maxsizeunlimited,'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 databaseo datafile 'c:/SALES_DATA04.dbf' ,o 'c:/SALES_DATA05.dbf',o 'c:/SALES_DATA06.dbf'o autoextend off;o 打开表空间数据文件的自动扩展属性o alter databaseo 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 onlyo 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 defaulto tablespace sales quota 10m on sales;o 给用户授权o grant connect,resource,dba to rose;o 用户登录o connect rose/roseo 创建表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 的用户,其密码为 martinpwdCREATE USER MARTIN IDENTIFIED BY martinpwdDEFAULT TABLESPACE USERSTEMPORARY 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 30m3创建用户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;------------------------------------------------