oracle命令
Oracle命令--导出表结构和表数据
Oracle命令--导出表结构和表数据备份命令详解exp full=y file=/opt/oracle/dbbackup/imapdb/20120416/201204016.dmp log=/opt/oracle/dbbackup/imapdb/20120416/20120416.log exp: 备份命令字:数据库⽤户名/数据库密码@数据库实例名full=y: 全量备份file=/opt/oracle/dbbackup/imapdb/20120416/201204016.dmp : 备份的⽬的⽂件log=/opt/oracle/dbbackup/imapdb/20120416/20120416.log :备份过程中的⽇志oracle数据库恢复:删除数据库表和表空间:登录oracle数据库:sqlplus -L -Sdrop tablespace IMAP_DB including contents and datafiles cascade constraints; //IMAP_DB为oracle表名称commit; //提交数据库操作恢复oracle数据库:imp full=y file=/opt/oracle/dbbackup/imapdb/20120416/201204016.dmp DESTROY=ylog=/opt/oracle/dbbackup/imapdb/20120416/20120416.log补充:sybase数据库备份和恢复登录sybase数据库:isql -S$DB_SRV_NAME -U$DB_USER -P$DB_PWD备份sybase数据库:dump database alarmdb to "/export/dbBackup/alarmdb_dump"goalarmdb为数据库实例名,/export/dbBackup/alarmdb_dump为备份路径和⽂件名.恢复sybase数据库:load database alarmdb from "/export/dbBackup/alarmdb_dump"goalarmdb为数据库实例名,/export/dbBackup/alarmdb_dump为备份路径和⽂件名.⽰例:~> exp full=y file=/opt/oracle/dbbackup/imapdb/20120416/201204016.dmp log=/opt/oracle/dbbackup/imapdb/20120416/20120416.log Export: Release 11.1.0.6.0 - Production on Tue Apr 17 14:54:42 2012Copyright (c) 1982, 2007, Oracle. All rights reserved.Connected to: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit ProductionWith the Partitioning, Oracle Label Security, OLAP, Data Mining,Oracle Database Vault and Real Application Testing optionExport done in ZHS16GBK character set and UTF8 NCHAR character setAbout to export the entire database .... exporting tablespace definitions. exporting profiles. exporting user definitions. exporting roles. exporting resource costs. exporting rollback segment definitions. exporting database links. exporting sequence numbers. exporting directory aliases. exporting context namespaces. exporting foreign function library names. exporting PUBLIC type synonyms. exporting private type synonyms. exporting object type definitions. exporting system procedural objects and actions常见错误数据库⽤户名或密码错:~> exp full=y file=/opt/oracle/dbbackup/imapdb/20120416/201204016.dmp log=/opt/oracle/dbbackup/imapdb/20120416/20120416.log Export: Release 11.1.0.6.0 - Production on Tue Apr 17 14:59:12 2012Copyright (c) 1982, 2007, Oracle. All rights reserved.EXP-00056: ORACLE error 1017 encounteredORA-01017: invalid username/password; logon deniedUsername:命令名字写错:~> export full=y file=/opt/oracle/dbbackup/imapdb/20120416/201204016.dmp log=/opt/oracle/dbbackup/imapdb/20120416/20120416.log -bash: export: : not a valid identifier:~>[ 编辑本段 ] [ 回⽬录 ]恢复[ 编辑本段 ] [ 回⽬录 ]相关命令[ 编辑本段 ] [ 回⽬录 ]帮助::~> exp help=y:~> imp help=y。
oracle中truncate用法
oracle中truncate用法一、Oracle中TRUNCATE的基本用法在Oracle数据库中,TRUNCATE是一种用于快速删除表中所有数据的命令。
它的基本语法如下:TRUNCATE TABLE [schema.]table_name;这里的“schema”是可选的,如果不指定,则默认是当前用户的模式。
“table_name”就是要被截断(清空数据)的表名。
例如,如果你有一个名为“employees”的表,在你的模式下,你可以这样使用TRUNCATE:TRUNCATE TABLE employees;这就像把一个装满东西的盒子一下子倒空,非常干脆利落。
二、TRUNCATE的固定搭配(与其他操作或概念相关)1. 与索引的关系- 在Oracle中,当你TRUNCATE一个表时,与该表相关的索引也会被自动截断。
就好比你把一棵大树砍倒(截断表),树上的鸟巢(索引)也跟着受到影响,它们会被重置为空的状态。
例如,如果你有一个名为“products”的表,有一个基于“product_id”列的索引,当你执行TRUNCATE TABLE products时,这个索引就像是被格式化了一样,里面关于之前数据的索引信息都没了。
- 如果你想要重新构建索引以提高查询性能,在TRUNCATE表之后可能需要考虑重新创建索引或者使用一些索引维护操作。
就像你把房子拆了(TRUNCATE表)重新盖,你可能要重新规划一下水电线路(索引)。
2. 与事务处理的搭配- TRUNCATE操作通常是一个自动提交的操作,这和DELETE操作不同。
DELETE操作可以在一个事务中,可以回滚,但是TRUNCATE就像一列高速行驶且不能回头的列车。
比如说,你不小心执行了TRUNCATE TABLE orders,哎呀,你可不能像使用DELETE时那样轻松地说“我后悔了,我要回滚”,它已经把数据一下子清空了,就像一阵狂风把沙滩上的城堡一下子吹没了,一点不剩。
oracle数据库常用的操作命令
问题提出:
1、用户需要对数据库用户下的每一张表都执行一个相同的SQL操作,这时,一遍、一遍的键入SQL语句是很麻烦的
实现方法:
SQL> set heading off --禁止输出列标题
SQL> set feedback off --禁止显示最后一行的计数反馈信息
alter user system indentified by test
~~~~~~~~~~~~~~~~~~~~~~``
Oracle 常用指令 SQL> show all --查看所有68个系统变量值
SQL> show user --显示当前连接用户
SQL> show error --显示错误
列出当前用户下所有同义词的定义,可用来测试同义词的真实存在性
select 'desc '||tname from tab where tabtype='SYNONYM';
查询当前用户下所有表的记录数
select 'select '''||tname||''',count(*) from '||tname||';' from tab where tabtype='TABLE';
(注:a后面跟2个空格)
(c)hange/old/new 在当前行用新的文本替换旧的文本 c/*/tname 结果:select tname from tab;
(c)hange/text 从当前行删除文本 c/tab 结果:select tname from ;
Oracle常用SQL命令
Oracle常⽤SQL命令创建表空间1.创建默认表空间WLP_DATCREATE TABLESPACE "MYSPACE" DATAFILE'D:\oracle\oradata\orcl\data/WLP_DAT.dbf' SIZE 32M REUSE AUTOEXTEND ON NEXT 32MLOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;2.创建临时表空间WLP_TEMP(⽤于缓存,可以不建)ALTER TABLESPACE "TEMP" ADD TEMPFILE'D:\oracle\oradata\orcl\data/WLP_TEMP.dbf' SIZE 32m REUSE autoextend on next 32m;创建⽤户并授权1CREATE USER "WLPING" PROFILE "DEFAULT"2 IDENTIFIED BY "123456"3DEFAULT TABLESPACE "MYSPACE" //默认指定表空间4TEMPORARY TABLESPACE "TEMP" //指定缓存表空间5 ACCOUNT UNLOCK; //⽤户⾮锁定67GRANT EXECUTE ON dbms_comparison TO "WLPING";8GRANT UNLIMITED TABLESPACE TO "XIR_MD";9GRANT "CONNECT" TO "XIR_MD";10GRANT "RESOURCE" TO "XIR_MD";1112-- GRANT DBA TO XIR_MD;PROFILE:Oracle系统中的profile可以⽤来对⽤户所能使⽤的数据库资源进⾏限制,使⽤Create Profile命令创建⼀个Profile,⽤它来实现对数据库资源的限制使⽤,如果把该profile分配给⽤户,则该⽤户所能使⽤的数据库资源都在该profile的限制之内。
常用oracle数据库命令
常用oracle数据库命令
1. 启动Oracle数据库
$ sqlplus /nolog
SQL> connect / as sysdba
SQL> startup
3. 创建表空间
创建表空间的命令是:
SQL> create tablespace 表空间名 datafile '路径名' size 大小;
6. 创建用户
7. 删除用户
删除用户的命令是:
8. 授权用户
SQL> grant 权限 to 用户名;
9. 撤销用户的权限
11. 查看表结构
查看表结构的命令是:
SQL> desc 表名;
SQL> create table 表名 (列名数据类型, 列名数据类型, …);
13. 删除表
14. 插入数据
插入数据的命令是:
SQL> update 表名 set 列名=新值 where 某条件;
18. 创建索引
20. 查看索引
21. 查询相关信息
查询相关信息的命令是:
SQL> select * from v$session; -- 查看会话 22. 查看数据库版本
24. 备份数据库
$ exp 用户名/密码 file=备份文件路径备注:以上命令均需要在Oracle登录后进行。
unix下oracle命令
1、用户
查看当前用户的缺省表空间
SQL>select username,default_tablespace from user_users;
查看当前用户的角色
SQL>select * from user_role_privs;
查看当前用户的系统权限和表级权限
SQL>select * from user_sys_privs;
查看索引的大小
SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segments
where segment_name=upper('&index_name');
4、序列号
查看序列号,last_number是当前值
说明:
有以下几种启动方式:
1、startup nomount
非安装启动,这种方式启动下可执行:重建控制文件、重建数据库
读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。
2、startup mount dbname
安装启动,这种方式启动下可执行:
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常用命令大全(很有用,做笔记)
Oracle常⽤命令⼤全(很有⽤,做笔记)⼀、ORACLE的启动和关闭1、在单机环境下要想启动或关闭ORACLE系统必须⾸先切换到ORACLE⽤户,如下su - oraclea、启动ORACLE系统oracle>svrmgrlSVRMGR>connect internalSVRMGR>startupSVRMGR>quitb、关闭ORACLE系统oracle>svrmgrlSVRMGR>connect internalSVRMGR>shutdownSVRMGR>quit启动oracle9i数据库命令:$ sqlplus /nologSQL*Plus: Release 9.2.0.1.0 - Production on Fri Oct 31 13:53:53 2003Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.SQL> connect / as sysdbaConnected to an idle instance.SQL> startup^CSQL> startupORACLE instance started.2、在双机环境下要想启动或关闭ORACLE系统必须⾸先切换到root⽤户,如下su - roota、启动ORACLE系统hareg -y oracleb、关闭ORACLE系统hareg -n oracleOracle数据库有哪⼏种启动⽅式说明:有以下⼏种启动⽅式:1、startup nomount⾮安装启动,这种⽅式启动下可执⾏:重建控制⽂件、重建数据库读取init.ora⽂件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora⽂件。
2、startup mount dbname安装启动,这种⽅式启动下可执⾏:数据库⽇志归档、数据库介质恢复、使数据⽂件联机或脱机,重新定位数据⽂件、重做⽇志⽂件。
oracle 命令复制表结构及数据 主键 索引 注释
oracle 命令复制表结构及数据主键索引注释In Oracle, there are several ways to copy a table's structure, data, primary keys, indexes, and comments. Here are the methods you can use:1. Using CREATE TABLE AS SELECT statement:You can use the CREATE TABLE AS SELECT statement to create a new table with the same structure and data as an existing table.Example:CREATE TABLE new_table AS SELECT * FROM existing_table;This command will create a new table called "new_table" with the same structure and data as "existing_table".使用CREATE TABLE AS SELECT语句:您可以使用CREATE TABLE AS SELECT语句来创建一个具有与现有表相同的结构和数据的新表。
示例:CREATE TABLE new_table AS SELECT * FROM existing_table;这个命令将创建一个名为“new_table”的新表,该表的结构和数据与“existing_table”相同。
2. Using the EXPDP/IMPDP utility:You can use the Oracle Data Pump utility (EXPDP/IMPDP) to export and import tables with their structures, data, primary keys, indexes, and comments.Example:To export the table:expdp system/password@database_name tables=table_name directory=directory_name dumpfile=dumpfile_name.dmplogfile=log_file.logTo import the table:impdp system/password@database_name tables=table_name directory=directory_name dumpfile=dumpfile_name.dmplogfile=log_file.log使用EXPDP/ IMPDP实用程序:您可以使用Oracle Data Pump实用程序(EXPDP/ IMPDP)导出和导入带有其结构、数据、主键、索引和注释的表。
ORACLECMD命令(最全的)
启动Orac le,在c md模式下依次启动:netstart orac leser vice服务名l snrct l sta rt 启动监听程序关闭服务为:ls nrctl stopnetstoporacl eserv iceDa ta1. Or acle安装完成后的初始口令?inte rnal/oracl esys/chan ge_on_inst alls ystem/mana gers cott/tigersysm an/oe m_tem p2. ORAC LE9IA S WEB CACH E的初始默认用户和密码?ad minis trato r/adm inist rator3.oracl e 8.0.5怎么创建数据库?用ora inst。
如果有mo tif界面,可以用o rains t /m4. o racle 8.1.7怎么创建数据库?dbass ist5. or acle9i 怎么创建数据库?dbc a6. orac le中的裸设备指的是什么?裸设备就是绕过文件系统直接访问的储存空间7. o racle如何区分64-bi t/32b it 版本$ sqlp lus '/ ASSYSDB A'S QL*Pl us: R eleas e 9.0.1.0.0 - P roduc tionon Mo n Jul 14 17:01:09 2003 (c) Co pyrig ht 2001 Or acleCorpo ratio n. Al l rig hts r eserv ed. Conne ctedto: Oracl e9i E nterp riseEditi on Re lease 9.0.1.0.0 - Pr oduct ion Withthe P artit ionin g opt ion JServ er Re lease 9.0.1.0.0 - Pr oduct ion SQL>selec t * f rom v$vers ion;BANN ER---------------------------------------------------------------- Oracl e9i E nterp riseEditi on Re lease 9.0.1.0.0 - Pr oduct ion PL/SQ L Rel ease9.0.1.0.0- Pro ducti onC ORE 9.0.1.0.0 P roduc tionTNSfor S olari s: Ve rsion 9.0.1.0.0 - Pr oduct ion NLSRT L Ver sion9.0.1.0.0- Pro ducti onS QL>8. SV RMGR什么意思?svrmg rl,Se rverManag er. 9i下没有,已经改为用SQLP LUS了sqlp lus /nolog变为归档日志型的9.请问如何分辨某个用户是从哪台机器登陆OR ACLE的?SEL ECT m achin e , t ermin al FR OM V$SESSI ON;10. 用什么语句查询字段呢?desc tabl e_nam e 可以查询表的结构sel ect f ield_name,... f rom ... 可以查询字段的值sel ect * from all_table s whe re ta ble_n ame l ike '%'s elect * fr om al l_tab_colu mns w heretable_name='??'11.怎样得到触发器、过程、函数的创建脚本?desc user_sour ceus er_tr igger s12. 怎样计算一个表占用的空间的大小?selec t own er,ta ble_n ame,NUM_ROWS,BLO CKS*A AA/1024/1024 "S ize M",E MPTY_BLOCK S,L AST_A NALYZ EDf rom d ba_ta bleswher e tab le_na me='X XX';Her e: AA A isthe v alueof db_bloc k_siz e ; XXX i s the tabl e nam e you want to c heck13.如何查看最大会话数?SELE CT *FROMV$PAR AMETE R WHE RE NA ME LI KE 'p roc%'; SQL>SQ L> sh ow pa ramet er pr ocess esNAMETYPEVALUE------------------------------------ ------- ------------------------------a q_tm_proce ssesinteg er 1db_w riter_proc esses inte ger 1job_queu e_pro cesse s int eger4lo g_arc hive_max_p roces ses i ntege r 1 proce ssesinteg er 200这里为200个用户。
ORACLE CMD命令(最全的)
SQL*Plus: Release 9.0.1.0.0 - Production on Mon Jul 14 17:01:09 2003
(c) Copyright 2001 Oracle Corporation. All rights reserved.
su -root
date -u 08010000
21. 在ORACLE TABLE中如何抓取MEMO类型字段为空的数据记录?
select remark from om39; from remark) is not null ;
22. 如何用BBB表的数据去更新AAA表的数据(有关联的字段)
sum(nvl(a.bytes,0)) 剩余空间,
sum(nvl(a.bytes,0))/(b.bytes)*100 剩余百分比
from dba_free_space a,dba_data_files b
where a.file_id=b.file_id
SQL>
SQL> show parameter processes
NAME TYPE VALUE
------------------------------------ ------- ------------------------------
aq_tm_processes integer 1
Connected to:
Oracle9i Enterprise Edition Release 9.0.1.0.0 - Production
With the Partitioning option
JServer Release 9.0.1.0.0 - Production
oracle 最常用的命令
select member from v$logfile;
6、查看表空间的使用情况
select sum(bytes)/(1024*1024) as free_space,tablespace_name
from dba_free_space
group by tablespace_name;
查看某表的创建时间
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
round(bytes/(1024*1024),0) total_space
from dba_data_files
order by tablespace_name;
3、查看回滚段名称及大小
selectsegment_name, tablespace_name, r.status,
(initial_extent/1024) InitialExtent,(next_extent/1024) NextExtent,
SQL>select * from user_tab_privs;
2.表
查看用户下所有的表
SQL>select * from user_tables;
查看名称包含log 字符的表
SQL>select object_name,object_id from user_objects
oracle基本操作命令
oracle基本操作命令Oracle是目前最为流行和广泛使用的数据库管理系统之一,它可以帮助企业轻松高效地进行数据管理和分析。
作为一个Oracle数据库管理员或开发人员,了解一些基本操作命令,对于日常工作和维护数据库是非常必要的。
下面我们来简单介绍一些Oracle基本操作命令。
1. 登录数据库Oracle的登录命令为:sqlplus /nolog,它会打开一个sql>的命令行,提示用户输入数据库账号和密码登陆。
2. 创建表格Oracle通过create table命令来创建表格。
它的基本格式为:create table tablename (columnname datatype, columnnamedatatype, …);3. 插入数据通过insert命令可以将数据插入表格中。
格式为:insert into tablename(column1, column2, ...) values(value1, value2, ...);4. 查询数据Oracle的查询语句为select。
例如:select * from tablename,将会显示表格中的所有数据。
5. 更新数据通过update命令可以更新表格中的数据。
格式为:update tablename set column=value where condition;6. 删除数据和表格Oracle的删除语句为delete和drop。
delete用于删除表格中的数据,格式为:delete from tablename where condition;而drop则是直接删除整个表格,格式为:drop table tablename;以上是Oracle基本操作命令的简单介绍。
当然,Oracle还有很多高级功能和操作命令,需要用户自行查找学习。
掌握一些基本操作命令,可以使用户更好的管理和维护Oracle数据库,提高工作效率。
oracle 语句大全
oracle 语句大全SELECT --从数据库表中检索数据行和列INSERT --向数据库表添加新数据行DELETE --从数据库表中删除数据行UPDATE --更新数据库表中的数据--数据定义CREATE TABLE --创建一个数据库表DROP TABLE --从数据库中删除表ALTER TABLE --修改数据库表结构CREATE VIEW --创建一个视图DROP VIEW --从数据库中删除视图CREATE INDEX --为数据库表创建一个索引DROP INDEX --从数据库中删除索引CREATE PROCEDURE --创建一个存储过程DROP PROCEDURE --从数据库中删除存储过程CREATE TRIGGER --创建一个触发器DROP TRIGGER --从数据库中删除触发器CREATE SCHEMA --向数据库添加一个新模式DROP SCHEMA --从数据库中删除一个模式CREATE DOMAIN --创建一个数据值域ALTER DOMAIN --改变域定义DROP DOMAIN --从数据库中删除一个域--数据控制GRANT --授予用户访问权限DENY --拒绝用户访问REVOKE --解除用户访问权限--事务控制COMMIT --结束当前事务ROLLBACK --中止当前事务SET TRANSACTION --定义当前事务数据访问特征--程序化SQLDECLARE --为查询设定游标EXPLAN --为查询描述数据访问计划OPEN --检索查询结果打开一个游标FETCH --检索一行查询结果CLOSE --关闭游标PREPARE --为动态执行准备SQL 语句EXECUTE --动态地执行SQL 语句DESCRIBE --描述准备好的查询---局部变量declare @id char(10)--set @id = '10010001'select @id = '10010001'---全局变量---必须以@@开头--IF ELSEdeclare @x int @y int @z intselect @x = 1 @y = 2 @z=3if @x > @yprint 'x > y' --打印字符串'x > y'else if @y > @zprint 'y > z'else print 'z > y'--CASEuse panguupdate employeeset e_wage =casewhen job_level = ’1’ then e_wage*1.08when job_level = ’2’ then e_wage*1.07when job_level = ’3’ then e_wage*1.06else e_wage*1.05end--WHILE CONTINUE BREAKdeclare @x int @y int @c intselect @x = 1 @y=1while @x <3 br/>beginprint @x --打印变量x 的值while @y <3 br/>beginselect @c = 100*@x + @yprint @c --打印变量c 的值select @y = @y + 1endselect @x = @x + 1select @y = 1end--WAITFOR--例等待1 小时2 分零3 秒后才执行SELECT 语句waitfor delay ’01:02:03’select * from employee--例等到晚上11 点零8 分后才执行SELECT 语句waitfor time ’23:08:00’select * from employee***SELECT***select *(列名) from table_name(表名) where column_name operator valueex:(宿主)select * from stock_information where stockid = str(nid)stockname = 'str_name'stockname like '% find this %'stockname like '[a-zA-Z]%' --------- ([]指定值的范围)stockname like '[^F-M]%' --------- (^排除指定范围)--------- 只能在使用like关键字的where子句中使用通配符)or stockpath = 'stock_path'or stocknumber <1000 br/>and stockindex = 24not stocksex = 'man'stocknumber between 20 and 100stocknumber in(10,20,30)order by stockid desc(asc) --------- 排序,desc-降序,asc-升序order by 1,2 --------- by列号stockname = (select stockname from stock_information where stockid = 4)--------- 子查询--------- 除非能确保内层select只返回一个行的值,--------- 否则应在外层where子句中用一个in限定符select distinct column_name form table_name --------- distinct指定检索独有的列值,不重复select stocknumber ,"stocknumber + 10" = stocknumber + 10 from table_nameselect stockname , "stocknumber" = count(*) from table_name group by stockname--------- group by 将表按行分组,指定列中有相同的值having count(*) = 2 --------- having选定指定的组select *from table1, table2where table1.id *= table2.id -------- 左外部连接,table1中有的而table2中没有得以null表示table1.id =* table2.id -------- 右外部连接select stockname from table1union [all] ----- union合并查询结果集,all-保留重复行select stockname from table2***insert***insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx")value (select Stockname , Stocknumber from Stock_table2)---value为select语句***update***update table_name set Stockname = "xxx" [where Stockid = 3]Stockname = defaultStockname = nullStocknumber = Stockname + 4***delete***delete from table_name where Stockid = 3truncate table_name ----------- 删除表中所有行,仍保持表的完整性drop table table_name --------------- 完全删除表***alter table*** --- 修改数据库表结构alter table database.owner.table_name add column_name char(2) null .....sp_help table_name ---- 显示表已有特征create table table_name (name char(20), age smallint, lname varchar(30))insert into table_name select ......... ----- 实现删除列的方法(创建新表)alter table table_name drop constraint Stockname_default ---- 删除Stockname的default约束***function(/*常用函数*/)***----统计函数----AVG --求平均值COUNT --统计数目MAX --求最大值MIN --求最小值SUM --求和--AVGuse panguselect avg(e_wage) as dept_avgWagefrom employeegroup by dept_id--MAX--求工资最高的员工姓名use panguselect e_namefrom employeewhere e_wage =(select max(e_wage)from employee)--STDEV()--STDEV()函数返回表达式中所有数据的标准差--STDEVP()--STDEVP()函数返回总体标准差--VAR()--VAR()函数返回表达式中所有值的统计变异数--VARP()--VARP()函数返回总体变异数----算术函数----/***三角函数***/SIN(float_expression) --返回以弧度表示的角的正弦COS(float_expression) --返回以弧度表示的角的余弦TAN(float_expression) --返回以弧度表示的角的正切COT(float_expression) --返回以弧度表示的角的余切/***反三角函数***/ASIN(float_expression) --返回正弦是FLOAT 值的以弧度表示的角ACOS(float_expression) --返回余弦是FLOAT 值的以弧度表示的角ATAN(float_expression) --返回正切是FLOAT 值的以弧度表示的角ATAN2(float_expression1,float_expression2)--返回正切是float_expression1 /float_expres-sion2的以弧度表示的角DEGREES(numeric_expression)--把弧度转换为角度返回与表达式相同的数据类型可为--INTEGER/MONEY/REAL/FLOAT 类型RADIANS(numeric_expression) --把角度转换为弧度返回与表达式相同的数据类型可为--INTEGER/MONEY/REAL/FLOAT 类型EXP(float_expression) --返回表达式的指数值LOG(float_expression) --返回表达式的自然对数值LOG10(float_expression)--返回表达式的以10 为底的对数值SQRT(float_expression) --返回表达式的平方根/***取近似值函数***/CEILING(numeric_expression) --返回>=表达式的最小整数返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型FLOOR(numeric_expression) --返回<=表达式的最小整数返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型ROUND(numeric_expression) --返回以integer_expression 为精度的四舍五入值返回的数据--类型与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型ABS(numeric_expression) --返回表达式的绝对值返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT 类型SIGN(numeric_expression) --测试参数的正负号返回0 零值1 正数或-1 负数返回的数据类型--与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型PI() --返回值为π即3.1415926535897936RAND([integer_expression]) --用任选的[integer_expression]做种子值得出0-1 间的随机浮点数----字符串函数----ASCII() --函数返回字符表达式最左端字符的ASCII 码值CHAR() --函数用于将ASCII 码转换为字符--如果没有输入0 ~ 255 之间的ASCII 码值CHAR 函数会返回一个NULL 值LOWER() --函数把字符串全部转换为小写UPPER() --函数把字符串全部转换为大写STR() --函数把数值型数据转换为字符型数据LTRIM() --函数把字符串头部的空格去掉RTRIM() --函数把字符串尾部的空格去掉LEFT(),RIGHT(),SUBSTRING() --函数返回部分字符串CHARINDEX(),PATINDEX() --函数返回字符串中某个指定的子串出现的开始位置SOUNDEX() --函数返回一个四位字符码--SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字均只返回0 值DIFFERENCE() --函数返回由SOUNDEX 函数返回的两个字符表达式的值的差异--0 两个SOUNDEX 函数返回值的第一个字符不同--1 两个SOUNDEX 函数返回值的第一个字符相同--2 两个SOUNDEX 函数返回值的第一二个字符相同--3 两个SOUNDEX 函数返回值的第一二三个字符相同--4 两个SOUNDEX 函数返回值完全相同QUOTENAME() --函数返回被特定字符括起来的字符串/*select quotename('abc', '{') quotename('abc')运行结果如下----------------------------------{{abc} [abc]*/REPLICATE() --函数返回一个重复character_expression 指定次数的字符串/*select replicate('abc', 3) replicate( 'abc', -2)运行结果如下----------- -----------abcabcabc NULL*/REVERSE() --函数将指定的字符串的字符排列顺序颠倒REPLACE() --函数返回被替换了指定子串的字符串/*select replace('abc123g', '123', 'def')运行结果如下----------- -----------abcdefg*/SPACE() --函数返回一个有指定长度的空白字符串STUFF() --函数用另一子串替换字符串指定位置长度的子串----数据类型转换函数----CAST() 函数语法如下CAST() ( AS [ length ])CONVERT() 函数语法如下CONVERT() ([ length ], [, style])select cast(100+99 as char) convert(varchar(12), getdate())运行结果如下------------------------------ ------------199 Jan 15 2000----日期函数----DAY() --函数返回date_expression 中的日期值MONTH() --函数返回date_expression 中的月份值YEAR() --函数返回date_expression 中的年份值DATEADD( , ,)--函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期DATEDIFF( , ,)--函数返回两个指定日期在datepart 方面的不同之处DATENAME( , ) --函数以字符串的形式返回日期的指定部分DATEPART( , ) --函数以整数值的形式返回日期的指定部分GETDATE() --函数以DATETIME 的缺省格式返回系统当前的日期和时间----系统函数----APP_NAME() --函数返回当前执行的应用程序的名称COALESCE() --函数返回众多表达式中第一个非NULL 表达式的值COL_LENGTH(<'table_name'>, <'column_name'>) --函数返回表中指定字段的长度值COL_NAME(, ) --函数返回表中指定字段的名称即列名DATALENGTH() --函数返回数据表达式的数据的实际长度DB_ID(['database_name']) --函数返回数据库的编号DB_NAME(database_id) --函数返回数据库的名称HOST_ID() --函数返回服务器端计算机的名称HOST_NAME() --函数返回服务器端计算机的名称IDENTITY([, seed increment]) [AS column_name])--IDENTITY() 函数只在SELECT INTO 语句中使用用于插入一个identity column列到新表中/*select identity(int, 1, 1) as column_nameinto newtablefrom oldtable*/ISDATE() --函数判断所给定的表达式是否为合理日期ISNULL(, ) --函数将表达式中的NULL 值用指定值替换ISNUMERIC() --函数判断所给定的表达式是否为合理的数值NEWID() --函数返回一个UNIQUEIDENTIFIER 类型的数值NULLIF(, )--NULLIF 函数在expression1 与expression2 相等时返回NULL 值若不相等时则返回expression1 的值??。
ORACLEEXPDP命令使用详细
ORACLEEXPDP命令使用详细EXPDP命令的语法如下:expdp [username]/[password] DIRECTORY=[directory_object] DUMPFILE=[dumpfile_name] SCHEMAS=[schema_name]其中:- username和password是登录到数据库所需的用户名和密码。
-DIRECTORY是一个已在数据库中创建的目录对象。
-DUMPFILE是导出文件的名称和位置。
可以使用占位符来创建多个导出文件。
-SCHEMAS是要导出的架构的名称。
可以在命令中指定多个架构。
除了以上的必需参数之外,EXPDP命令还有一些可选参数,用于指定导出的选项和过滤条件。
-CONTENT参数用于指定导出的内容类型。
它可以是ALL(默认值,导出数据和元数据),DATA_ONLY(仅导出数据)或METADATA_ONLY(仅导出元数据)。
-TABLES参数用于指定要导出的表。
它可以是一个表名列表,使用逗号分隔,或者是一个包含表名的文件的路径。
-QUERY参数用于指定要导出的数据的查询条件。
它可以是一个SQL 查询语句。
-FLASHBACK_SCN和FLASHBACK_TIME参数用于指定导出数据时还原到的SCN号码或时间点。
-TRANSPORT_DATAFILES参数用于指定要导出的传输数据文件。
-NETWORK_LINK参数用于指定通过网络连接导出数据的远程数据库。
-INCLUDE和EXCLUDE参数用于指定要导出的对象类型或对象名称的过滤条件。
EXPDP命令的使用步骤如下:1. 使用一个具有适当权限的Oracle用户登录到数据库。
2.确保已创建目录对象,并且有足够的存储空间来保存导出文件。
3.在命令行中输入完整的EXPDP命令,包括用户名、密码、目录对象、导出文件和要导出的架构等参数。
4.执行EXPDP命令,等待导出过程完成。
5.检查导出文件是否成功创建。
oracle常用命令
--关闭数据库Oracle自动搜集功能alter system set "_optimizer_autostats_job"=false scope=spfile--修改表的默认表空间alter table 表名 move tablespace 表空间名;--修改索引表空间ALTER INDEX 索引名 REBUILD tablespace 表空间名;--修改LOB类型默认表空间ALTER TABLE SIGNATUREWORD MOVE LOB(IMAGE) STORE AS (TABLESPACE CZDJ);--创建数据表空间(表空间名称CZDJ,表空间文件大小1024M,数据文件满后自动扩展增量100MB,文件大小无限制)create tablespace CZDJ(表空间名)datafile 'd:\oracle\product\10.2.0\oradata\orcl\ CZDJ.dbf'(存放路径)size 1024m AUTOEXTEND ONNEXT 100m maxsize unlimited;--创建临时表空间create temporary tablespace dzdj31cz_temp (表空间名)tempfile 'd:\oracle\product\10.2.0\oradata\orcl\dzdj31cz_temp01.dbf'size 32Mautoextend onnext 32M maxsize 2048Mextent management local;本地管理表空间:extent management local字典管理表空间:extent management dictionary--修改表空间alter database datafile 'D:\oracle\product\10.2.0\oradata\orclzhaowei\test.dbf' resize 10m; alter database datafile 'D:\oracle\product\10.2.0\oradata\orclzhaowei\test.dbf' autoextend on next 50m maxsize unlimited;--创建用户并指定表空间create user 用户名 identified by 密码default tablespace 默认表空间temporary tablespace 临时表空间;--修改用户密码alter user 用户名 identified by 密码;--给表空间增加数据文件ALTER TABLESPACE sdeADD DATAFILE 'D:\oracle\product\10.2.0\oradata\orcl\sde01.dbf' size 20480M autoextend on next 50M maxsize unlimited;--给用户授予权限grant connect,dba,resource to 用户名--给用户解锁alter user username account unlock;--OraOLEDB.Oracle.1没有注册解决方法:regsvr32 D:\oracle\product\10.2.0\db_1\BIN\OraOLEDB10.dll--查询表空间状态select tablespace_name,status from dba_tablespaces;--表空间离线在线:离线的表空间无法访问,用于数据维护。
Linux_oracle命令大全
Linux_oracle命令大全一,启动1.#su - oracle 切换到oracle用户且切换到它的环境2.$lsnrctl status 查看监听及数据库状态3.$lsnrctl start 启动监听4.$sqlplus / as sysdba 以DBA身份进入sqlplus5.SQL>startup 启动db二,停止1.#su - oracle 切换到oracle用户且切换到它的环境2.$lsnrctl stop 停止监听3.$sqlplus / as sysdba 以DBA身份进入sqlplus4.SQL>SHUTDOWN IMMEDIATE 关闭db其中startup和shutdowm还有其他一些可选参数,有兴趣可以另行查阅三,查看初始化参数及修改1.#su - oracle 切换到oracle用户且切换到它的环境2.$sqlplus / as sysdba 以DBA身份进入sqlplus3.SQL>show parameter session; 查看所接受的session数量###################################################### Oracle process与session2008年12月29日星期一15:47Connected to Oracle Database 10g Release 10.1.0.5.0Connected as ifsappSQL> show parameter sessionNAME TYPE V ALUE------------------------------------ ----------- ------------------------------java_max_sessionspace_size integer 0java_soft_sessionspace_limit integer 0license_max_sessions integer 0license_sessions_warning integer 0logmnr_max_persistent_sessions integer 1session_cached_cursors integer 0session_max_open_files integer 10sessions integer 225shared_server_sessions integerSQL> show parameters processes;NAME TYPE V ALUE------------------------------------ ----------- ------------------------------aq_tm_processes integer 0db_writer_processes integer 1gcs_server_processes integer 0job_queue_processes integer 3log_archive_max_processes integer 2processes integer 200SQL> alter system set processes=600 scope=both;SQL>SQL> alter system set processes=600 scope=both;alter system set processes=600 scope=bothORA-02095: specified initialization parameter cannot be modified SQL> alter system set sessions=600 scope=both;alter system set sessions=600 scope=bothORA-02095: specified initialization parameter cannot be modified SQL>SQL> alter system set processes=600 scope=spfile;System alteredSQL> show parameters processes;NAME TYPE V ALUE ------------------------------------ ----------- ------------------------------ aq_tm_processes integer 0db_writer_processes integer 1gcs_server_processes integer 0job_queue_processes integer 3log_archive_max_processes integer 2processes integer 200SQL> alter system set processes=600 scope=memory;alter system set processes=600 scope=memoryORA-02095: specified initialization parameter cannot be modified重启数据库之后生效:SQL> show parameters processes;NAME TYPE V ALUE ------------------------------------ ----------- ------------------------------ aq_tm_processes integer 0db_writer_processes integer 1gcs_server_processes integer 0job_queue_processes integer 3log_archive_max_processes integer 2processes integer 600SQL> show parameter sessionNAME TYPE V ALUE------------------------------------ ----------- ------------------------------java_max_sessionspace_size integer 0java_soft_sessionspace_limit integer 0license_max_sessions integer 0license_sessions_warning integer 0logmnr_max_persistent_sessions integer 1session_cached_cursors integer 0session_max_open_files integer 10sessions integer 665shared_server_sessions integer修改Oracle process 和session 的方法先备份spfile1.通过SQLPlus修改Oracle的sessions和processes的关系是sessions=1.1*processes + 5使用sys,以sysdba权限登录:SQL> show parameter processes;NAME TYPE V ALUE------------------------------------ ----------- --------------------------------------- aq_tm_processes integer 1db_writer_processes integer 1job_queue_processes integer 10log_archive_max_processes integer 1processes integer 150SQL> alter system set processes=400 scope = spfile;系统已更改。
ORACLECMD命令(最全的)
ORACLECMD命令(最全的)启动Oracle,在cmd模式下依次启动:net start oracleservice服务名lsnrctl start 启动监听程序关闭服务为:lsnrctl stopnet stop oracleserviceData1. Oracle安装完成后的初始口令?internal/oraclesys/change_on_installsystem/managerscott/tigersysman/oem_temp2. ORACLE9IAS WEB CACHE的初始默认用户和密码?administrator/administrator3. oracle 8.0.5怎么创建数据库?用orainst。
如果有motif界面,可以用orainst /m4. oracle 8.1.7怎么创建数据库?dbassist5. oracle 9i 怎么创建数据库?dbca6. oracle中的裸设备指的是什么?裸设备就是绕过文件系统直接访问的储存空间7. oracle如何区分 64-bit/32bit 版本$ sqlplus '/ AS SYSDBA'SQL*Plus: Release 9.0.1.0.0 - Production on Mon Jul 14 17:01:09 2003(c) Copyright 2001 Oracle Corporation. All rights reserved.Connected to:Oracle9i Enterprise Edition Release 9.0.1.0.0 - ProductionWith the Partitioning optionJServer Release 9.0.1.0.0 - ProductionSQL> select * from v$version;BANNER---------------------------------------------------------------- Oracle9i Enterprise Edition Release 9.0.1.0.0 - ProductionPL/SQL Release 9.0.1.0.0 - ProductionCORE 9.0.1.0.0 ProductionTNS for Solaris: Version 9.0.1.0.0 - ProductionNLSRTL Version 9.0.1.0.0 - ProductionSQL>8. SVRMGR什么意思?svrmgrl,Server Manager.9i下没有,已经改为用SQLPLUS了sqlplus /nolog变为归档日志型的9. 请问如何分辨某个用户是从哪台机器登陆ORACLE的?SELECT machine , terminal FROM V$SESSION;10. 用什么语句查询字段呢?desc table_name 可以查询表的结构select field_name,... from ... 可以查询字段的值select * from all_tables where table_name like '%'select * from all_tab_columns where table_name='??'11. 怎样得到触发器、过程、函数的创建脚本?desc user_sourceuser_triggers12. 怎样计算一个表占用的空间的大小?select owner,table_name,NUM_ROWS,BLOCKS*AAA/1024/1024 "Size M",EMPTY_BLOCKS,LAST_ANALYZEDfrom dba_tableswhere table_name='XXX';Here: AAA is the value of db_block_size ;XXX is the table name you want to check13. 如何查看最大会话数?SELECT * FROM V$PARAMETER WHERE NAME LIKE 'proc%';SQL>SQL> show parameter processesNAME TYPE VALUE------------------------------------ ------- ------------------------------aq_tm_processes integer 1db_writer_processes integer 1job_queue_processes integer 4log_archive_max_processes integer 1processes integer 200这里为200个用户。
(完整版)ORACLE命令大全
ORACLE命令大全1. 执行一个SQL脚本文件SQL>start file_nameSQL>@ file_name我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,上面的任一命令即可,这类似于dos中的批处理。
2. 对当前的输入进行编辑SQL>edit3. 重新运行上一次运行的sql语句SQL>/4. 将显示的内容输出到指定文件SQL> SPOOL file_name在屏幕上的所有内容都包含在该文件中,包括你输入的sql语句。
5. 关闭spool输出SQL> SPOOL OFF只有关闭spool输出,才会在输出文件中看到输出的内容。
6.显示一个表的结构SQL> desc table_name7. COL命令:主要格式化列的显示形式。
该命令有许多选项,具体如下:COL[UMN] [{ column|expr} [ option ...]]Option选项可以是如下的子句:ALI[AS] aliasCLE[AR]FOLD_A[FTER]FOLD_B[EFORE]FOR[MAT] formatHEA[DING] textJUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}LIKE { expr|alias}NEWL[INE]NEW_V[ALUE] variableNOPRI[NT]|PRI[NT]NUL[L] textOLD_V[ALUE] variableON|OFFWRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]1). 改变缺省的列标题COLUMN column_name HEADING column_headingFor example:Sql>select * from dept;DEPTNO DNAME LOC---------- ---------------------------- ---------10 ACCOUNTING NEW YORK sql>col LOC heading locationsql>select * from dept;DEPTNO DNAME location--------- ---------------------------- -----------10 ACCOUNTING NEW YORK2). 将列名ENAME改为新列名EMPLOYEE NAME并将新列名放在两行上:Sql>select * from empDepartment name Salary---------- ---------- ----------10 aaa 11SQL> COLUMN ENAME HEADING ’Employee|Name’Sql>select * from empEmployeeDepartment name Salary---------- ---------- ----------10 aaa 11note: the col heading turn into two lines from one line.3). 改变列的显示长度:FOR[MAT] formatSql>select empno,ename,job from emp;EMPNO ENAME JOB---------- ---------- ---------7369 SMITH CLERK7499 ALLEN SALESMAN7521 WARD SALESMANSql> col ename format a40EMPNOENAME JOB ---------- ---------------------------------------- --------- 7369SMITH CLERK 7499ALLEN SALESMA 7521WARD SALESMAN4). 设置列标题的对齐方式JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}SQL> col ename justify centerSQL> /EMPNO ENAME---------- ---------------------------------------- --------- 7369SMITH CLERK 7499ALLEN SALESMA 7521WARD SALESM 对于NUMBER型的列,列标题缺省在右边,其它类型的列标题缺省在左边5). 不让一个列显示在屏幕上NOPRI[NT]|PRI[NT]SQL> col job noprintSQL> /EMPNO ENAME---------- ----------------------------------------7369 SMITH7499 ALLEN7521 WARD6). 格式化NUMBER类型列的显示:SQL> COLUMN SAL FORMAT $99,990SQL> /EmployeeDepartment Name Salary Commission---------- ---------- --------- ----------30 ALLEN $1,600 3007). 显示列值时,如果列值为NULL值,用text值代替NULL值COMM NUL[L] textSQL>COL COMM NUL[L] text8). 设置一个列的回绕方式WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]COL1--------------------HOW ARE YOU?SQL>COL COL1 FORMAT A5SQL>COL COL1 WRAPPEDCOL1-----HOW ARE YOU?SQL> COL COL1 WORD_WRAPPEDCOL1-----HOWAREYOU?SQL> COL COL1 WORD_WRAPPEDCOL1-----HOW A9). 显示列的当前的显示属性值SQL> COLUMN column_name10). 将所有列的显示属性设为缺省值SQL> CLEAR COLUMNS8. 屏蔽掉一个列中显示的相同的值BREAK ON break_columnSQL> BREAK ON DEPTNOSQL> SELECT DEPTNO, ENAME, SALFROM EMPWHERE SAL < 2500ORDER BY DEPTNO;DEPTNO ENAME SAL---------- ----------- ---------10 CLARK 2450MILLER 130020 SMITH 800ADAMS 11009. 在上面屏蔽掉一个列中显示的相同的值的显示中,每当列值变化时在值变化之前插入n个空行BREAK ON break_column SKIP nSQL> BREAK ON DEPTNO SKIP 1SQL> /DEPTNO ENAME SAL---------- ----------- ---------10 CLARK 2450MILLER 130020 SMITH 800ADAMS 110010. 显示对BREAK的设置SQL> BREAK11. 删除6、7的设置SQL> CLEAR BREAKS12. Set 命令:该命令包含许多子命令:SET system_variable valuesystem_variable value 可以是如下的子句之一:APPI[NFO]{ON|OFF|text}ARRAY[SIZE] {15|n}AUTO[COMMIT]{ON|OFF|IMM[EDIATE]|n}AUTOP[RINT] {ON|OFF}AUTORECOVERY [ON|OFF]AUTOT[RACE] {ON|OFF|TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]] BLO[CKTERMINATOR] {.|c}CMDS[EP] {;|c|ON|OFF}COLSEP {_|text}COM[PATIBILITY]{V7|V8|NATIVE}CON[CAT] {.|c|ON|OFF}COPYC[OMMIT] {0|n}COPYTYPECHECK {ON|OFF}DEF[INE] {&|c|ON|OFF}DESCRIBE [DEPTH {1|n|ALL}][LINENUM {ON|OFF}][INDENT {ON|OFF}] ECHO {ON|OFF}EDITF[ILE] file_name[.ext]EMB[EDDED] {ON|OFF}ESC[APE] {\|c|ON|OFF}FEED[BACK] {6|n|ON|OFF}FLAGGER {OFF|ENTRY |INTERMED[IATE]|FULL}FLU[SH] {ON|OFF}HEA[DING] {ON|OFF}HEADS[EP] {||c|ON|OFF}INSTANCE [instance_path|LOCAL]LIN[ESIZE] {80|n}LOBOF[FSET] {n|1}LOGSOURCE [pathname]LONG {80|n}LONGC[HUNKSIZE] {80|n}MARK[UP] HTML [ON|OFF] [HEAD text] [BODY text] [ENTMAP {ON|OFF}] [SPOOL {ON|OFF}] [PRE[FORMAT] {ON|OFF}]NEWP[AGE] {1|n|NONE}NULL textNUMF[ORMAT] formatNUM[WIDTH] {10|n}PAGES[IZE] {24|n}PAU[SE] {ON|OFF|text}RECSEP {WR[APPED]|EA[CH]|OFF}RECSEPCHAR {_|c}SERVEROUT[PUT] {ON|OFF} [SIZE n] [FOR[MAT] {WRA[PPED]|WOR[D_ WRAPPED]|TRU[NCATED]}]SHIFT[INOUT] {VIS[IBLE]|INV[ISIBLE]}SHOW[MODE] {ON|OFF}SQLBL[ANKLINES] {ON|OFF}SQLC[ASE] {MIX[ED]|LO[WER]|UP[PER]}SQLCO[NTINUE] {> |text}SQLN[UMBER] {ON|OFF}SQLPRE[FIX] {#|c}SQLP[ROMPT] {SQL>|text}SQLT[ERMINATOR] {;|c|ON|OFF}SUF[FIX] {SQL|text}TAB {ON|OFF}TERM[OUT] {ON|OFF}TI[ME] {ON|OFF}TIMI[NG] {ON|OFF}TRIM[OUT] {ON|OFF}TRIMS[POOL] {ON|OFF}UND[ERLINE] {-|c|ON|OFF}VER[IFY] {ON|OFF}WRA[P] {ON|OFF}1). 设置当前session是否对修改的数据进行自动提交SQL>SET AUTO[COMMIT] {ON|OFF|IMM[EDIATE]| n}2).在用start命令执行一个sql脚本时,是否显示脚本中正在执行的SQL语句SQL> SET ECHO {ON|OFF}3).是否显示当前sql语句查询或修改的行数SQL> SET FEED[BACK] {6|n|ON|OFF}默认只有结果大于6行时才显示结果的行数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JAVA存储区(Java Pool)
大型存储区(Large Pool)
SGA总容量=共享池+缓冲区高速缓存+大型存储区+Java存储区+日志缓冲区
ቤተ መጻሕፍቲ ባይዱ
SGA区的内存结构关系:
系统全局区(SGA)
数据库共享区
二、 程序全局区
程序全局区(Program Global Area)是一个内存区,包含单个进程的数据和控制信息,所以又称为进程全局区(Process Global Area)。
包括:排序区、堆栈空间和会话信息。
三、 Oracle进程
进程是操作系统中的一种机制,它可执行一系列的操作步骤。
FAST_START_IO_TARGET:此参数用来限制数据库高速缓冲区中脏表中数据块个数。
4、 归档日志文件(Archive Log File)也叫离线日志文件。它是在线重做日志文件的拷贝。
LOG_ARCHIVE_DEST:指定归档日志文件的路径。
LOG_ARCHIVE_DUPLEX_DEST:指定归档日志文件的第二路径。
LOGFILE
GROUP 1 ‘log file path’ SIZE n
DATAFILE
Data file path
CHARACTER SET ZHS16GBK
查询控制文件信息:通过视图V$CONTROLFILE
3、 重做日志文件(Redo Log Files):用来记录对数据库的所有更改,LGWR周期性写入重做日志缓冲区。日志转换命令:alter system switch logfile。查询视图:V$LOGFILE。
8、 LCKn进程:在具有并行服务器选件环境下使用,可多至10个进程,用于实例间的封锁。
9、 Dnnn进程:该进程允许用户进程共享有限的服务器进程。
三、Oracle数据库的物理结构
1、 数据文件:包含表或索引形式逻辑表示的实际数据库数据。一个表空间由一个或多个数据文件组成,一个数据文件不能与一个以上的表空间相关联。
数据库高速缓冲区的大小由初始化参数DB_CACHE_SIZE来决定。
共享存储主要用来存放SQL、PL/SQL、过程和包、数据字典锁和字符设置信息、安全属性等。包括库高速缓存和数据字典高速缓存。
数据高速缓存:用于存储分析SQL语句的数据字典行。
库高速缓存:用来存储已经提交给Oracle的SQL语句、分析过的格式和执行计划,以及被执行过的PL/SQL包头与过程Java的类。
(1) 关闭数据库并编辑初始化参数。使初始化参数LOG_ARCHIVE_START=FALSE
(2) 启动数据库于MOUNT状态。
(3) 使用ALTER DATABASE NOARCHIVELOG命令。
(4) 使用ALTER DATABASE OPEN命令打开数据库。
使用SQL*PLUS工具可实现归档日志与非归档日志状态的改变。
(1) 关闭数据库,编辑初始化参数。使初始化参数LOG_ARCHIVE_START=TRUE
(2) 启动数据库于MOUNT状态。
(3) 使用ALTER DATABASE ARCHIVELOG命令。
(4) 使用ALTER DATABASE OPEN命令打开数据库。
使已经处于归档日志状态下的数据库工作于非归档日志状态可使用如下步骤:
进程分类:
1、 DBWR进程:将缓冲区写入数据文件,是负责缓冲存储区管理的一个Oracle后台进程。
2、 LGWR进程:将日志缓冲区写入磁盘上的一个日志文件,它是负着管理日志缓冲区的一个Oracle后他进程。
3、 CKPT进程:在检查点出现时,对全部数据文件的头信息进行修改,指示该检查点。
Oracle 数据库常用命令和概念
一、 系统全局区(SGA)
系统全局区(System Global Area)为一组由Oracle分配的共享的内存结构,可包含一个数据库实例的数据库或控制信息。
SGA区的各部分组成如下:
数据库高速缓冲区(Database Buffer Cache)
共享存储区(Shared Pool)
ARCHIVELOG状态:
(1) 关闭数据库。必须以SYS身份登录才有权执行此命令。
(2) 启动数据库于MOUNT状态。
(3) 使用ALTER DATABASE ARCHIVELOG命令。
(4) 使用ALTER DATABASE OPEN命令打开数据库。
Archive log all:手工归档 archive log next:归档全部日志文件
LOG_ARCHIVE_DEST_N:此参数可以最多指定5个路径。
LOG_ARCHIVE_MIN_SUCCEED_DEST:指定归档日志进程写在线重做日志文件的最小成功数目。
LOG_ARCHIVE_MAX_PROCESSES:数据库启动时,用来指定归档进程的最大启动数目,默认为1。
设置ARCHIVELOG/NOARCHIVELOG模式
Oracle进程分为两类:服务器进程和后台进程。服务器进程用于处理连接到该实例的用户进程请求。
Oracle进程主要执行下列任务:
1、 对应用所有发出的SQL语句进行语法分析和执行
2、 对磁盘中读入必要的数据块到SGA的共享数据缓冲区(该块不在缓冲区时)。
3、 将结果返回给应用程序处理。
4、 SMON进程:该进程实例启动时执行实例恢复,还负责清理不再使用的临时段。
5、 PMON进程:该进程在用户进程出现故障时执行进程恢复,负着清理内存存储区和释放该进程所使用的资源。
6、 RECO进程:该进程时分布式应用当中所使用的一个进程,自动地解决在分布式事务中的故障。
7、 ARCH进程:当数据库运行在归档状态下,在线重做日志文件在被重写之前被COPY到另一路径。
检查点:当检查点事件发生时,所有已经修改的数据将从高速缓冲区写到磁盘,同时根新控制文件和数据文件。手工触发检查点事件发生:ALTER SYSTEM CHECKPOINT
LOG_CHECK_POINT_INTERVAL:此参数用来指定重做日志文件每写多少操作系统块发生一次检查点事件。
LOG_CHECKPOINT_TIMEOUT :此参数用来指定每隔多少时间发生一次检查点。
通过ARCHIVE LOG LIST 命令来查询数据库工作于那种模式;通过V$LOGFILE,可以查看数据库日志文件情况。查询视图V$THREAD。查询V$ARCHIVE_PROCESSES,可以显示归档日志进程的运作情况。查询V$LOG_HISTORY。
共享存储区的大小主要由参数SHARED_POOL_SIZE来决定。
重做日志缓冲区用于在内存中存储已经被修改的数据库信息。大小由LOG_BUFFER初始化参数决定。
Java存储区大小由Java_POOL_SIZE参数决定。
大型存储区的分配堆用作会话内存,通过并执行将它用作消息缓冲区,通过备份将它作磁盘I/O缓冲区。初始化文件参数:LARGE_POOL_SIZE。
CREATE CONTROLFILE REUSE DATABASE “Oracle9i” NORESETLOGS ARCHIVELOG
MAXLOGFILES 5
MAXLOGMEMBERS 5
MAXDATAFILES 100
MAXINSTANCES 1
MAXLOGHISTORY 113
Oralce实例有两种类型:专用进程(Dedicated Process)实例和多进程(Multithread Process)。
专用进程(又称单用户Oralce进程)是一种数据库系统,一个进程只执行一个用户的程序。当用户从终端断开时此进程被中止。
多进程Oracle实例使用多个进程来执行不同用户的请求,对于每一个连接的用户都有一个进程。
库高速缓存
数据字典高速缓存
重做日志缓冲区
Java存储区
大型存储区
数据库高速缓冲区主要可分为3种类型:
1、“脏”缓存(Dirty Buffers):存放已修改但未写入到磁盘的数据。
2、自由缓存(Free Buffers):不包含任何数据的自由内存空间,以备新的查询使用。
3、“被钉住的”缓存(Pinned Buffers):已经被标记为占用或正在被占用的内存空间。
2、 控制文件:用来存储数据库的物理结构――数据文件和重做日志文件。控制文件的大小在数据库生成时由参数MAXLOGFILES,MAXLOGMEMBERS,MAXLOGHISTORY,
MAXDATAFILES和MAXINSTANCES来决定。
控制文件的生成
使用CREATE CONTROLFILE命令生成一个新的控制文件。