日期:2014-05-16  浏览次数:20504 次

oracle基本语法

oracle基本语法

ORACLE内部培训资料

Oracle 服务器
实例Instance,数据库Database
Instance:内存结构memory structure(SGA),后台进程backgroundprocess
-SGA:高速缓存,重做日志缓存区,共享池
-后台进程:SMON,PMON,DBWR,LGWR,CKPT,ARCH
Database-dada file,log file,control file
启动过程
nomount----->mount----->open //oracle启动过程实例-->控制文件-->表
startup force pfile=c:\oracle\admin\bsstest\pfile\init.ora mount;//只启动到mount

文件路径
c:\oracle\ora92\database\spfilesid.ora
c:\oracle\admin\bsstest\pfile\init.ora
c:\oracle\ora92\database\pwdbsstest.ora
C:\oracle\ora92\rdbms\admin\catproc.sql // 重建程序包

在UNIX下安装oracle时设置环境变量
setenv oracle_base=c:\oracle
setenv oracle_home=c:\oracle\ora92
setenv oracle_sid=
setenv oracle_nls33=
setenv path=
setenv ld_library_path=

set arraysize 25 //设置数组提取尺寸为25
set autocommit on //自动提交DML语句
set colsep | //设置分隔符
set heading on //显示标头
set time on // 显示系统时间

数据字典和动态性能视图
数据字典信息从数据文件中取得,动态性能视图信息从sga和控制文件中取得
只读表和视图的集合,所有者为sys用户,数据被存放在system表空间上。
select dbms_metadata.get_ddl(‘table’,’emp’) ddl fromdual;
select user form dual;
select * from global_name;
v$controlfile v$database v$datafile v$dbfile v$lock v$tablespacev$session

基本控制语句
sqlplusw scott/tiger@bss //启动sqlplus进程
lsnrctr status / lsnrctl start //查看tnslistener状态,启动
dbca //启动 Database Configuration Assistant,创建数据库
alter system enable restricted session
//则普通用户不能登陆如maple,除非grant restricted session tomaple;
set linesize 200
show parameter sga //查看sga_max_size
show parameter log_buffer //查看log_buffer大小
alter session set nls_language=american; //设置提示语言
alter system set db_cache_size=64m;
oracle/admin/fox/pfile/init//database块大小,db_block_size大小
alter system set db_cache_advice=on;//oracle自动分配cache建议
select * from v$version; //查看oracle版本,64-bit/32-bit
select machine,terminal from v$session;//查看某用户是从哪台机器登陆oracle
select username from v$session;//查看当前有哪些用户在使用数据库
select * from v$parameter where name like ‘proc%’;
show parameter processes //查看最大会话数
select * from v$license; //查看曾到达的最大会话数
select name from v$database; //查看数据库sid
alter system kill session ‘sid,serir#’; //解锁
@$path/filename.sql //执行sql脚本文件
spool c:\abcd.txt; select * from table_name; spool off;//把select结果导出为文本

修改口令文件
orapwd file=c:\oracle\ora92\database\pwdbsstest.ora password=adminenties=10;
//修改口令文件,如删除口令文件并将remote_login_passwordfile设置为none,那么只能用os方式登陆数据库
*在修改口令文件后必须删除c:\oracle\ora92\network\admin\sqlnet.ora中的
SQLNET.AUTHENTICATION_SERVICES= (NTS)或加注释 #
* select * from v$pwfile_users; //查看sysdba和sysoper的用户

* Enterprise Manager Console独立登陆时不能对数据库进行备分
* 用Enterprise Manager ConfigurationAssistant创建一个资料档案库,然后可以登陆到oracle managermentserver,初始用户名sysman密码oem_temp
*如果无法以sysdba身份远程登陆,修改数据库初始化参数文件中的remote_login_passwordfile设置为exclusive或shared

日志模式
Select log_mode from v$database;
archive log list//查看归档模式,默认为非归档,用以下步骤转换为归档模式
1)? shutdown immediate
2)? startup mount
3)? alter databasearchivelog/noarchivelog;
4)? alter database open;
5)? full database backup
alter system archive log start;
alter system set log_archive_start=true scope=spfile;//开启自动存档

日志分析(Logmnr)
1)? 设置目录c:\oracle\admin\bsstest\pfile\init.ora的参数
utl_file_dir=c:\oracle\admin\bsstest\cdump
2)? 重启oracle
3)? 建立目录文件
executedbms_logmnr_d.build('bsstestdict.ora','C:\oracle\admin\bsstest\cdump');
4)? 添加日志文件
dbms_logmnr.add_logfile(’c:\oracle\oradata\bsstest\redo03.log’,dbms_logmnr.new);
5)? 启动logmnr
excuted bms_logmnr.start_logmnr
(dictfilename=>’c:\oracle\admin\bsstest