1.查看数据库归档是开启还是关闭
SQL> archive log list

更改数据库归档模式:

SQL> shutdown immediate
SQL> startup mount
SQL> alter database archivelog(改为归档)/noarchivelog(改为非归档)
SQL> alter database open

查看参数/控制/数据/日志/归档/告警日志(bdump目录下,以alert打头)文件位置:
SQL> show parameter spfile

SQL> show parameter control

SQL> select file_name from dba_data_files;

SQL> select group#,member from v$logfile;

SQL> show parameter recovery;

SQL> set linesize 1000
SQL> show parameter dump

 

2.查看oracle相关的进程(实例名:ora11g)
SQL> ps -ef|grep ora11g

LOCAL=NO的进程表示非oracle本身的后台进程,是别的用户通过监听,连进该数据库进行访问的

3.查看oracle实例名
SQL>show parameter instance_name


4. 查看SGA开辟多大空间
SQL> show parameter sga

查看PGA开辟多大空间
SQL> show parameter pga

* 共享池和数据缓存区的大小分配由SGA_MAX_SIZE决定,他们被分配多少由Oracle决定

查看共享池多大
SQL> show parameter shared_pool_size

查看数据缓冲区多大
SQL> show parameter db_cache_size

查看日志缓冲区多大
SQL> show parameter log_buffer

5. 修改数据库参数 scope 参数

--memory 只改变当前实例运行,重新启动数据库后失效
--spfile 只改变spfile的设置,不改变当前实例运行,重启启动数据库后生效
--both 同时改变实例及spfile,当前更改立即生效,重新启动数据库后仍然生效


alter system set<parameter_name>=<value>scope=memory|spfile|both[sid=<sid_name>]

如:SQL> alter system set sga_target=2000M scope=both
SQL> alter system set log_buffer=15000000 scope=spfile(log_buffer必须重启才生效)


6. 启动数据库
SQL> startup
只读模式打开数据库,使数据库不会发生改变(插入、更新或删除)
SQL> alter database open read only;
以受限模式打开数据库,只有同时具有create session和restricted session权限的用户才能使用数据库
SQL> startup restrict;
把数据库置于某种状态,在该状态下只有sys和system用于才能查询数据库
SQL> alter system quiesce restrict;
SQL> alter system unquiesce;
强制启动
SQL> startup force

7. 关闭数据库
SQL> shutdown immediate

8. 查看数据库状态
SQL> select status from v$instance;

9. 查看数据库的打开模式
SQL> select open_mode from v$database;

10. 如何查看数据库的所有用户有哪些?

set linesize 300(设置行宽为100)
SQL> select * from all_users

11. 查询哪些用户正在使用Oracle?

SQL> select username from v$session;

12. 查询某个用户是从哪台机器登录Oracle的?
SQL> select * from v$session;

13. 从已知表新建另一个表:
SQL>CREATE TABLE b
AS SELECT * (可以是表a中的几列)
FROM a
WHERE a.column = ...;

14.查找、删除重复记录:
法一: 用Group by 语句此查找很快的
SQL> select count(num), max(name) from student --查找表中num 列重复的,列出重复的记录数,并列出他的name属性
group by num
having count(num) >1 --按num分组后找出表中num 列重复,即出现次数大于一次
delete from student(上面Select的)
这样的话就把所有重复的都删除了。-----慎重

 

15. 创建数据库表

SQL> create table subject
(
id char(4) not null,
name varchar2(128),
primary key (id)
);

16. 查看表结构:
SQL> desc subject


17. 创建索引:
SQL> create index

18. 创建唯一索引:
SQL> create unique index

19. 为学生电话号码创建唯一索引,目的不希望学生使用同一手机号码:
SQL> create unique index ix_student_cellphone on student(cellphone)


20. 表增加列
增加QQ号列:
SQL> alter table student add qqno varchar2(18);

21. 表更改列属性
修改地址列:
SQL> alter table student modify address varchar2(256);

22. 表删除列
删除QQ号列:
SQL> alter table student drop column qqno;

23. 删除表(彻底删除表,包含引用或依赖该表的任何对象,如view,index)
SQL> drop table student cascade constrains purge;

cascade constraints 表示删除表和引用该表的任何对象,如view,index等
purge表示删除时彻底删除,不放入回收站

24. 插入表数据
SQL> insert into subject(id, name) values('0001','Language');
SQL> insert into subject(id, name) values('0002','Math');

SQL> insert into grade(stuid, subid) select student.id,subject.id from
student join subject on student,id <> subject.id;

25. 更新表数据
SQL> update grade set grade=100.0 where stuid='00000001' and subid='0001';


26. 删除一条或多条表数据
SQL> delete from grade where stuid='00000008';
SQL> delete from student where id='00000008';


27. 清空表
SQL> truncate table grade;


28. 创建账号/用户
SQL> create user bajie identified by bajie;

把表空间USERS和临时表表空间TEMP作为用户的默认使用空间
SQL> create user 'NEWUSER' profile 'default' identified by 'newpassword' password expire default tablespace 'USERS' teporary tablespace 'TEMP' account unlock;

SQL> grant 'CONNECT' to 'NEWUSER';

29. 编辑用户
--解锁用户账户、修改密码、增加表空间配额
SQL> alter user 'username' identified by 'newpwd' quota unlimited on tools account unlock;

--删除用户
SQL> drop user ljb cascade

30. 给用户授权
--授予创建会话和查询权限和修改数据权限:
SQL> grant create session to bajie;
SQL> grant select,update on grade to bajie;

--给用户NEWUSER授予访问表和包权限,with grant选项增加将相同权力授予其他用户,默认没有权利:
SQL> grant select on 'TABLE_NAME' TO 'NEWUSER' with grant option;
SQL> grant insert on 'TABLE_NAME' TO 'NEWUSER' with grant option;
SQL> grant execute on 'TABLE_NAME' TO 'NEWUSER';

31. 收回权限:
SQL> revoke update on grade from bajie;
SQL> revoke insert on 'TABLE_NAME' from 'NEWUSER';
SQL> recoke execute on 'TABLE_NAME' from 'NEWUSER';

32. 如何测试SQL语句执行所用的时间
SQL> set timing on;

33. 怎么把select出来的结果导到一个文本文件中
SQL> spool /home/ss/grade.txt;
SQL> select * from grade;
SQL> spool off;


34. 如何知道用户拥有的权限
SQL> select * from dba_sys_privs where grantee='user name';

35. 查询system用户的权限演示:
SQL> select PRIVILEGE from dba_sys_privs where grantee='SYSTEM';

36. 在sys用户下输入下面命令解锁被锁住的用户:
SQL> alter user <user_name> account unlock

37. 分配配额:
SQL> alter user hr quota 500m on hr_data; --分配500MB
SQL> alter user ap quota unlimited on ap_idx;--不限配额


38. 为整个数据库实例设置默认表空间:
SQL> alter database default tablespace tablespace-name;

39. 验证软件包是否有安装?
SQL> rpm -q package_name
e.g. rpm -q unixODBC-decvel-2.2.11


40. 安装软件包
SQL> rpm -ivh unixODBC-devel-2*rpm


41. 查看所有可设置的参数列表(在SQL*PLUS环境)
SQL> show all;

42. 查看执行当前程序所遇到的错误(在SQL*PLUS环境)
SQL> show errors;

43. 如何构建一个PL/SQL程序,如何获取结果输出(Oracl提供了一个内置的包dbms_output,在程序中调用命令dbms_output.put_line,Oracle PL/SQL就可以为用户提供输出信息)
(1)登录到SQL*Plus
(2)在SQL> 提示符下键入服务器输出命令:set serveroutput on;
(3)键入如下PL/SQL程序:
Declare
L_start_date date;
Begin
L_start_date :='29-SEP-2005';
dbms_output.putline (l_start_date); --show date
End;
/

44. 如何访问数据库中的数据(用select语句对变量进行赋值)
SQL> select prod_name into v_prod_name from products;


45. 通过Dblink访问远程数据库的表(在报表库访问业务库的表)
SQL> select * from 库名.表名@DBlink


46. 检查数据库用户密码是否过期
SQL> select username,profile,expiry_date from dba_users

47. 清空共享池
SQL> alter system flush shared_pool;

48. 登陆数据库用户
SQL> connect username/password

49. 查询数据字典获取extent/segment相关信息
SQL> select * from user_extents;
SQL> select * from user_segments;

50. 数据库最大连接数
select count(*) from v$process; --当前连接数

show parameter processes; --查询数据库最大连接数设置

alter system set processes=1500 scope=spfile; --更改系统连接数
更改后需要重启数据库

51. 显示数据库脚本
SQL> show REL[EASE]

52. 在sql*plus中连接指定的数据库
SQL> CONNECT user_name/passwd@db_alias

53. 执行一个存储过程
SQL> EXECUTE procedure_name

54. 查看数据库版本信息

SQL> select * from v$version;