当前位置:文档之家› oracle笔记

oracle笔记

oracle笔记
oracle笔记

网络会议192.168.27.175 179

(instance)来访问数据库。

Oracle 服务=实例+数据库

实例=内存+后台进程

数据库=数据文件+控制文件+日志文件这些大的概念一定要牢记在心。

硬分析

命中,软分析

快速软分析

内存

8i独立的静态的

9i pga手工的动态的

10g sqa自动动态调节

11g sqa memory 多大,自动调节

实例

实例是访问数据库的方法

Instance=sga+process(核心+非核心)一个实例只能访问一个数据库

非核心进程

核心进程

1.dbwr数据库写进程,写脏数据dirty byffer(共1到20个进程)

2.写日志lgwr commit。3s 。1/3。1m。dbwr

3.ckpt检查点进程,

4.pmon进程检测找到失效的进程,回收死进程。

5.smon系统检测

一个实例只能访问一个数据库

10g grid

1.实例的网格rac

集群,一个数据库被多个实例访问

2.数据库的网格asm

3.数据的网格stream

4.管理的网格grid _control

Pga是自己的内存,sga是公用的内存

Select name form

初始化参数文件-描述实例的

二进制

纯文本

为什么引进二进制

1.动态修改的参数是否保留

2.自动备份

3.必须是文件,cfs?

4.参数的校验

5.依赖操作系统的vi

启动停止数据库

Sys

Conn /as

Alter system set XXX=true scope=spfile;

Conn sys/a数据库内部用户

Conn / as sysdba数据库外部的

老大一定是数据库之外的

1.操作系统认证模式

2.密码文件认证模式

10.2.0/Db_1/Database/pwdyd100.ora

操作员Conn sys/b as syspoer

Startup mount force

Select name,fuzzy from V$datafile_header; Alter database open;

停止数据库

Help shut

四种模式

正常停止

1.新来的会话不行

2.空闲的会话等

3.事务

4.存盘

5.停止数据库

事物停止

6.新来的会话不行

7.空闲的会话不行

8.事务

9.存盘

10.停止数据库

立即停止

11.新来的会话不行

12.空闲的会话不行

13.事务撤销

14.存盘

15.停止数据库

强制停止

16.新来的会话不行

17.空闲的会话不行

18.事务不行

19.存盘不行

20.停止数据库执行

创建数据库

自定义数据库步骤

建立目录

写参数文件,建立密码文件

启动到nomount

Create database

美容

建立后

当我们需要一个非标准块的数据库,很小的数据库

1.控制文件描述了数据库的结构和行为

2.控制文件的位置,参数文件中描述

3.1-8,他们镜像关系

4.Mount的时候,读

5.Open的时候,一直在使用

6.控制文件对视,数据库崩溃

Rmcontrolfile.ctl

Alter database backup controfile to trace;

日志文件

1.描述数据库的变化

2.以组的模式组织到一起

3.组是逻辑的,顺序写,循环写

4.成员是物理的,同组内的成员是镜像关系

5.一个组写完,写下一个组—切换手工或者自动切换

6.切换 检查点

完全检查点:手工存盘,一致性停止数据库

增量检查:其他

7.Scn是什么

selectcurrent_scn from V$database;

selectcheckpoint_change#,current_scn ,current_scn-checkpoint_change# need_recover from v$database

Select * from v$log;

alter system switch logfile;增量检查点

6个实验:

增加组

Select * from v$logfile;

Alter database add logfile group 7 'D:\log.qq' size 6m;

Select * from v$log;

增加成员

Alter database add logfilemember 'D:\log.qq2' to group 7;

成员改名或者改位置

Alter database rename file 'D:\LOG.QQ' to 'D:\REDO07.LOG';

删除成员

Alter database drop logfile member 'D:\log.qq'

清除组

Alter database clear logfile group 7

删除组

Alter database drop logfile group 7

alter system checkpoint;手工存盘

表空间

表空间-逻辑的

数据文件—物理的(可以不是文件)

selecttablespace_name,file_Name,bytes,blocks from dba_data_files order by 1,2; colfile_name for a40

创建表空间lc

createtablespacelcdatafile 'd:\lc.qq'size 1m;

> select * from dba_free_space where tablespace_name='LC';

selectname,checkpoint_change#,fuzzy from v$datafile_header;

1.查看

selecttablespace_name,file_Name,bytes,blocks from dba_data_files order by 1,2;

2.Offline

altertablespacelc offline;

3.复制

host copy d:\lc.qq d:\lc.dbf

4.Rename

alter database rename file 'd:\lc.qq' to 'd:\lc.dbf';

5.Online

altertablespacelc online;

6.查看

大文件?

Select tablespace_name,bigfile from dba_tablespaces;

Scn时刻在用,存在每个块的头

Rowid

Select ora_rowscn,ename from scott.emp;

SQL> conn scott/tiger

ERROR:

ORA-28000: the account is locked

警告: 您不再连接到ORACLE。

SQL> conn /as sysdba

已连接。

SQL> alter user scott account unlock identified by tiger;

Conn scott/tiger

Create table t1 ROWDEPENDENCIES as select * from emp;

Select ora_rowscn ,ename form emp;

Select ora_rowscn,ename from t1;

Analyze table t1 ….

大文件,小文件

createbigfiletablespace lc5 datafile 'd:\lc5.qq' size 152k;

select * from dba_free_space where tablespace_name like 'LC%';

descdba

数据库的逻辑结构

Block(块)最基本的存储单元

Extent(范围)一次分配的连续的块

Segment(段)属于同一对象的范围组成一个段

Tablespace(表空间)数据文件的组织行为

Select tablespace_name,segment_name,segment_tyPe,extents,blocks from dba_segments where tablespace_name='USERS';

Colsegment_name for a80

Pctfree

范围

Extent

一次分配的,连续的oracle块

3中分配模式:建立段,分配初始范围;数据增长;手工分配;

3种回收模式:手工回收;truncate;drop

Delete t1:

dml,大量的日志;大量的回退;不会收高水位;不释放空间;可以回退;可以闪回;手工提交;

Truncate table t1:

ddl,很少的日志;很少的回退;收高水位;释放空间;不回退;不闪回;自动提交;

drop table t1;

drop table t1 purge;

系统表空间如果是30G systemSelect count(*) from dba_objects;

关闭垃圾桶,新特性不用

Show parameter recycle

Purge recyclebin;清空垃圾桶

Purge dba_recyclebin;删除所有垃圾桶;

Show recyclebin;

Flashback table “XXX” to before drop;闪回

Flashback table t1 to before drop rename tott1;闪回同时改名

Select segment_type,count(*) from dba_segmentsgroup by segment_type;

回退段

Undo

交易的回退:事物就是交易,transaction 一组逻辑相关的dll;

交易的恢复:提交已提交,回退未提交的

读一致性:查询开始之前提交的

手工闪回已经提交的数据

Select * from t1 before timestamp>sysydate

Insert into t1 Select *from t1 as of timestamp sysdate-1/24/20;//三分种前

show parameter undo

查看表空间大小SQL> select tablespace_name,bytes from dba_data_files;

system最核心,undotbs1核心,sysaux辅助(可以停)

SQL>descdba_rollback_segs;

创建回退表空间?

段undo

表是一个段

行和列组成,存储数据的最基本单元

段—范围—块

在线行移动

怎样提高性能,重组碎皮

Conn scott/tiger

Drop table t1 purge;

Create table t1 as select * from emp;

Insert into t1 select * from t1;

行移动,alter table t1 enable row movement;

Alter table t1 shrink space;

压缩表

Create table t2 compress as select * from t1;

SQL>select segment_name,blocks from user_segments where segment_name like 't_';

SQL> truncate table t2;

Insert /** append*/ into t2 select * fromt1;

Commit;

索引

图书馆的卡片

快速定位,树状结构

SQL> create index i1 on t1(empno);

Analyze index i1 validate structure;

SQL>descindex_stats

SQL> select height,blocks,br_blks,lf_blks,lf_rows,del_lf_rows from index_stats;

HEIGHT BLOCKS BR_BLKS LF_BLKS LF_ROWS DEL_LF_ROWS

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

3 3968 9 3821 1835008 0

Update t1 set empno=8900 where empno=7900;

B_tree +链表

索引的合并和重建

Coalesce 企业版才有,叶子的合并,不设计索引的架构,可以有未提交的,主要是重新整合。

Rebuild可以改变索引的类型,改变存储空间,推倒重来,不能有业务

数据文件

普通的文件系统:管理方便,简单直观,不能并行,io性能差

Cfs集群文件系统:可以并行,io强,贵,难维护

裸设备:可以并行,io好,维护管理困难,性能好,不直观

Asm:侵占操作系统的举措,直接用asm

Asm实例,磁盘组

SQL> show parameter instance

在Windows下虚拟asm

1.创建虚拟设备

D:\>asmtool -create d:\asm\file01.asm 1000

_asm_allow_only_raw_disk=false

3.启动实例并创建diskgroup

D:\oracle\product\10.2.0\db_1\>Set oracle_sid=+asm1

D:\oracle\product\10.2.0\db_1\>Set orcle_home=D:\oracle\product\10.2.0\db_1

D:\oracle\product\10.2.0\db_1\>oradim -new -sid asm1

SQL> Alter system set "_asm_allow_only_raw_disks"=false scope=spfile

D:\oracle\product\10.2.0\db_1\Set oracle_sid=+asm1

Sqlplusw / as sysdba

Asmcmd

Set orcle_home=D:\oracle\product\10.2.0\db_1\

Asmcmd

Sqlplusw / as sysdba

Oradim–new –sid asm1

海量存储

Cfs---emc

Raid 5 读强,写弱

Raid 0+1

数据库的备份和恢复

逻辑备份,冷备份,热备份

为什么要备份?

语句级失败(自动回退)

网络失败(回退)

实例的失败(smon自我修复)

介质失败(手工恢复)

错误语句,人为的操作

逻辑备份:

只备份数据和物理结构无关,主要是为了迁移,数据库之间的数据传输,整理碎片(性能提高),归档历史数据,物理备份的辅助,open状态才可以逻辑备份,但日志失效,数据变形。Expscott/tiger table=t1 rows=no 只把t1的表结构拿出来。

Expscott/tiger table=t1 rows=no file=1.bmp

Import

Select dbms_metadata.get_ddl( 'TABLE','T1','SCOTT') FROM DUAL;

Show long;

CONN AS SYDDBA

SELECT DBMS_METADATA.GET_DDL('TABLE','T1','SCOTT') FROM DUAL;

SHOW LONG

SET LONG 10000

SELECT DBMS_METADATA.GET_DDL('TABLE','T1','SCOTT') FROM DUAL;

SPOOL C:\1.TXT

Select dbms_metadata.get_ddl(object_type,object_name,owner)||';' from dba_objects Where owner='SCOTT' and object_type='TABLE';

SPOOL OFF

SPOOL C:\2.TXT

Select dbms_metadata.get_ddl(object_type,object_name,owner)||';' from dba_objects Where owner='SCOTT' and object_type='INDEX';

SPOOL OFF

SPOOL C:\3.TXT

Select dbms_metadata.get_ddl('TABLESPACE',NAME) ||';' from V$TABLESPACE;

SPOOL OFF

SPOOL C:\4.TXT

Select dbms_metadata.get_ddl('USERS',NAME) ||';' from DBA_USERS;

SPOOL OFF

常用命令:EXP/IMP

expdp/impdp,以api端口操作模式exp select

多线程

参数的选择更丰富

物理的:

手工

Rman

Dbname

Db_unique_name

Instance_name

Service_names

热备的前提,归档日志

触发器

快照:同步数据,sql优化。

双向

Dataguard,物理的,逻辑的

Goldengate

阵列的快照

流stream,和goldengate相似

数据库的灾难恢复

Alter database backup controlfile to trace

Select name from v$controlfile;

Select name form v$

删除控制文件,数据文件

205:控制文件找不到

Select name,fuzzy from v$datafile_header;

Alter database open resetlogs; 弄新的日志

Select name from v$datafile;

Select tablespace_name ,file_name from dba_data_files;

Recover datavase until cancel;

日志坏了怎么处理

当前日志损坏

SQL> Select 'host copy c:\1.txt'||member from v$logfile;

SQL> Recover database until cancel;

SQL>Alter system set "_allow_resetlogs_corruption"=true scope=spfile;

2011/5/29 11:17:34 --张烈 --

_corrupted_rollback_segments=(_SYSSMU1&,_SYSSMU2&,_SYSSMU3&,_SYSSMU4&,_SYSSMU5&,_SYSSMU 6&,_SYSSMU7&,_SYSSMU8&,_SYSSMU9&,_SYSSMU10&,_SYSSMU11&)

2011/5/29 11:19:23 --张烈 --

OPEN下

alter session set events 'IMMEDIATE trace name ADJUST_SCN level 1';

mount下

alter session set events '10015 trace name adjust_scn level 1';

如果SCN相差比较多,可以设置level 2,。。。level 10等

(level 1是每次打开时将将scn推进1百万)

对于10g,缺省情况_ALLOW_ERROR_SIMULATION是FALSE,这会阻止ADJUST_SCN,所以要做ADJUST_SCN 必须设置这个隐含参数为TRUE

selecttable_name from dict where table_name like '%GLOBAL%';

2011/5/29 11:39:58 --张烈 --

update scott.t1 set sal=sal+1;

commit;

alter system switch logfile;

日志的挖掘

1.挖什么(当前,归档,多个)

2.开始挖

3.查找

4.不挖了

scn的后退 scn---->

2011/5/29 13:12:25 --张烈 --

select scn,sql_redo from V$logmnr_contents

wheresql_redo like 'drop%';

2011/5/29 13:12:40 --张烈 --

exec dbms_logmnr.end_logmnr

逻备份分:辑备份,冷备份,热备份

增量

去磁带

基于块

压缩备份

第三方接口

Rman引入,物理备份

Copy

Backup

Rman target sys/a@189

2011/5/29 13:28:47 --张烈 --

rman target /

report schema;

list backup of datafile 4;

list backup;

增量:0 1 2 3 4

1c 2c 3c 4c

SQL优化

执行计划

2011/5/29 14:04:31 --张烈 --

conn / as sysdba@%ORACLE_HOME%\sqlplus\admin\plustrce

grantplustrace to scott;

connscott/tiger

@%ORACLE_HOME%\rdbms\admin\utlxplan

2011/5/29 14:08:43 --张烈 --

setautot on

select count(*) from emp;

2011/5/29 14:09:42 --张烈 --

alter tablespace temp2 add tempfile 'g:\yd\temp.dbf' size 10m autoextend on;

rbo=rule base opt基于规则的优化

cbo=cost base opt

cup

io

memory

network

索引

Create bitmap index i3 on t1(dept);

Event

Sql

Plan

查官方文档Select hints

什么叫唯一索引,不能重复

收集统计信息

2011/5/29 15:37:07 --张烈 --

EXEC DBMS_STATS.GATHER_TABLE_STATS('SCOTT','T1');

2011/5/29 15:37:12 --张烈 --

EXEC DBMS_STATS.GATHER_TABLE_STATS('SCOTT','T2');

Set autot trace expl 只看统计计划。

索引有个很重要的参数,最好设置为50 ,偏向索引。

Alter session set optimizer_index_cost_

Select index_name,clustering_factor,leaf_balocks from

优化sql

1.定位问题sql—awr,v$sqlarea,开发人员告诉

2.查看执行计划(cost ,join,index,full,order,by谓词)

3.改变执行计划

数据库版本高的好

初始化参数

统计信息

增加减少缩影

强制hints,多cpu,并行加载

改写sql,比如物化视图,稳定计划

2011/5/29 16:18:34 --张烈 -- 物化视图

create MATERIALIZED VIEW SCOTT.mv1

tablespace users

BUILD IMMEDIATE

REFRESH on commit

ENABLE QUERY REWRITE

AS select deptno,sum(sal) salary from t1 group by deptno;

2011/5/29 16:24:18 --张烈 --

selectsql_text from v$sqlarea where sql_text like '%/*+%'; 2011/5/29 16:27:54 --张烈 --

select * from V$sysstat where name like 'sort%';

2011/5/29 16:29:04 --张烈 --

@%oracle_home%\rdbms\admin\awrrpt

分区表的三大类

范围(时间)

List列表

Hash分区表,随机

特点是高可用,高性能,易于维护,全局索引,分区索引

2011/5/29 16:53:00 --张烈 --

select CLUSTER_NAME,table_name from dba_tables

where CLUSTER_NAME is not null order by 1,2;

作业执行时间脚本

2011/5/29 17:05:25 --张烈 --

variablejobno number;

variableinstno number;

begin

selectinstance_number into :instno from v$instance;

dbms_job.submit(:jobno, 'statspack.snap;', trunc(sysdate+1/24,'HH'), 'trunc(SYSDATE+1/24,''HH'')', TRUE, :instno);

commit;

end;

/

调度作业

Nolog

建立索引nologging

并行加载的时候

(Oracle数据库管理)玩转实战教程学习笔记最全版

(O管理)玩转实战教程(韩顺平)学习笔记

韩顺平—玩转oracle视频教程笔记 一:Oracle认证,与其它数据库比较,安装 oracle的卸载 1.停止所有与ORACLE相关的服务。 2. 使用OUI(Oracle Universal Installer)卸载Oracle软件。 “开始”->“程序”->“Oracle-OraDb110g_home1|Oracle installation product|Universal installer. 3.删除注册表内容。运行regedit命令,删除下面内容:HKEY_LOCAL_MACHINE|SOFTWARE|ORACLE注册表键,删除此键。 HKEY_LOCAL_MACHINE|SYSTEM|CurrentControlSet|Services,删除Services键下所有以oracle为首的键。 HKEY_LOCAL_MACHINE|SYSTEM|CurrentControlSet|Services|Eventlog|Application,删除此键下所有以oracle为首的键。 HKEY_CLASSES_ROOT,删除此键下所有以Ora,Oracle,Orcl,EnumOra 为前缀的键。 HKEY_CURRENT_USER|Software| Microsoft|Windows|CurrentVersion|Explorer|MenuOrder|Start Menu|Programs,删除此键下所有以oracle为首的键。 HKEY_LOCAL_MACHINE|SOFTWARE|ODBC|ODBCINST.INI注册表键,删除了

oracle笔记(3)

1.用insert语句进行行数据的迁移 Insert into 表名(列,列) select 列,列from emp where 条件 2.用update更新数据(使用子查询):希望员工scott的岗位,工资,补助与smith员工一样? update emp set (job,sal,comm)=(select job,sal,comm. From emp where ename=?SMITH?) where ename=?SCOTT?; 3.事务 (1)锁 (2)提交事务 (3)回退事务(一开始就做保存点(savepoint)) (4)事务的几个重要操作 1)设置保存点:savepoint a 2)取消部分事务:rollback to a 3)取消全部事务:rollback (5)只读事务:set transaction read only(当前用户能看到之前的操作,若其他用户进行更 新,该用户之后的操作都不能看到更新) (6)字符函数 (1)lower(char):将字符串转化为小写的格式 (2)upper(char): 将字符串转化为大写的格式 (3)length(char):返回字符串的长度 (4)substr(char,m,n):取字符串的子串,从m开始取,取n个 (5)例:以首字符大写的方式显示所有的员工的姓名: (1)完成首字母大写:select upper(substr(ename,1,1)) from emp; (2)完成后面字母小写:select lower(substr(ename,2,length(ename)-1)) from emp; (3)合并:select upper(substr(ename,1,1)) || lower(substr(ename,2,length(ename)-1)) from emp; (6)replace(char1,search_string,replace_string) (7)instr(char1,char2,[,n[,m]])—取子串在字符串的位置 (8)例:显示所有员工的姓名,用”我是A”替换所有”A”:select replace(ename,?A?,? 我是A?) from emp; (7)数学函数 (1)round(n,[m]):用于四舍五入 (2)trunc(n,[m]):用于截取数字 (3)mod(m,n):取模 (4)floor(n):返回<=n的最大整数 (5)ceil(n):返回>=n的最小整数 (6)例:显示在一个月为30天的情况所有员工的日薪金,忽略余数:select floor(sal/30),ename from emp; (8)日期函数 (1)sysdate (2)add_months(d,n) (3)last_day(d):返回指定日期所在月份的最后一天 例:返回在八个月前雇佣的员工(已经入职8个月多的员工):select * from emp where sysdate>add_months(hiredate,300); 例:对于每个员工,显示其加入公司的天数:select trunk(sysdate-hiredate) “入职天

ORACLE笔记

1.Oracle 工具:sqlplus Sqlplus / as sysdba Shutdown immediate(关闭数据库) Startup(启动数据库) 注意:数据库开启才可以进行操作 Select username,account_status from dba_users;(查询数据库中所有的用户名称与用户状态) Alter user scott identified by tiger account unlock;(scott用户解锁) Sqlplus scott/tiger(使用SCOTT 密码为tiger登陆ORACLE数据库) Connect scott/tiger (在SQL>中直接使用SCOTT用户连接数据库) Show all;(看所有变量) Set sqlprompt “_user>”(设置sqlplus环境下面的提示符用自身用户显示) 注意:如要变量下次重启生效必须把变量写入 /u01/app/oracle/product/10.2.0/db_1/sqlplus/admin/glogin.sql中 Host(回到系统) Help index(查看所有命令) Help+命令(类似于LINUX中的MAN,查看命令的格式与用法) Disconnect(关闭SQLPLUS工具但是不离开数据库) Describe emp(查看EMP表) Define(定义变量,常用与写脚本用) 如:DEFINE _EDITOR =”vi” (CHAR) (定义VI编辑器用于保存最后一条执行的SQL语句) Save /u01/app/oracle/aa.sql (保存SQL语句) Get /u01/app/oracle/aa.sql (调用保存的SQL语句) 2.select(select 查询语句是ORACLE中最常用的语句) DML语句包括(insert 写入,update改变,delect删除,merge两张表同步) 注意:merge常用在ETL(数据仓库)底下 DDL数据定义语句包括(create创建对象,alter修改,drop删除对象,rename改名,truncate 删除整个表) TCL事务处理语句(commit提交立刻生效,rollback回滚,savepoint保存点,savepoint(保存点) DCL权限语句(grant赋予权限,revoke(收回权限) ORACLE的表称之为堆表(keep table) SELECT (1) writing basic SQL select statemanes 1. selecting all columns SCOTT>select * from dept; SCOTT>select dname,deptno,loc from dept; Basic SELECT Statement SELECT *|{[DISTINCT] column|expression [alias],...} FROM table;

学习oracle数据库的总结(图文整理)

1、在开发环境中连接到数据库,进行基本的select查询操作; 2、熟悉plsql的使用; 3、熟悉sqlplus相关命令(登录、查询、导入导出等) 登录sqlplus: 第一:使用dos窗口登录sqlplus Sqlplus 用户名/密码@数据库实例名 Sqlplus system/密码@数据库实例名as sysdba 第二:使用oracle自带的一个sqlplus登录,提供界面,显得更简单一些。 显示当前用户名:show user; 创建一个用户:create user 用户名identified by 密码; 给用户赋予登录的权限:grant connect to 用户名;(此时才可以使用这个用户来登录这个数据库。)给其赋予dba的权限。 修改用户的密码:alter user 用户名identified by 新密码; 查询: Select * from t_user; Select id from t_user; Select name from t_user; Select birthday from t_user; Select id,name from t_user; 导入导出: 导出表: (注意,导出表的exp命令不是在sqlplus下使用的,是在dos窗口下使用的命令。) exp userid=test/sa@test tables=(qx) file=d:\e1223.dmp exp userid=test/sa@test tables=(t_user,qx) file=f:\test.dmp 导出方案: Exp userid=test/sa@test owner=test file=f:\test2.dmp 导出数据库: Exp userid=test/sa@test full=y inctype=complete file=f:\all.dmp 导入表: 下面以一个例子来说明: 看下面的图,我的用户名test,密码sa,数据库实例名test,所有的表都在这里 现在我执行导出表JD的操作:exp userid=test/sa@test tables=(jd) file=f:\jd.dmp 在我的f盘下就出现了这么一个.dmp文件

oracle学习笔记

●PLSQL控制台输出语句 SET serveroutput ON; --打开控制台输出服务 dbms_output.put_line('values2='||var_val); --输出语句 ●PLSQL动态变量 var_str := '&input'; ●创建表空间和用户 --创建表空间 CREATE TABLESPACE "BCPBS" LOGGING DATAFILE 'D:\app\E430\oradata\orcl\BCPBS_01.ora' SIZE 2048M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED, 'D:\app\E430\oradata\orcl\BCPBS_02.ora' SIZE 2048M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO ; --建立用户 CREATE USER "BCPBS" PROFILE "DEFAULT" IDENTIFIED BY "bcpbs123" DEFAULT TABLESPACE "BCPBS" TEMPORARY TABLESPACE "TEMP" ACCOUNT UNLOCK; GRANT "CONNECT" TO "BCPBS"; GRANT "DBA" TO "BCPBS"; GRANT "RESOURCE" TO "BCPBS"; ●删除表空间和用户 drop user bcpbs cascade ; drop tablespace BCPBS including contents and datafiles cascade constraints ; ●自定义函数 CREATE OR REPLACE FUNCTION fun_level_value(level_value number) RETURN number IS return_value number:=null; BEGIN CASE level_value WHEN 0 THEN return_value:='0'; WHEN 1 THEN return_value:='1'; WHEN 2 THEN return_value:='2'; WHEN 3 THEN return_value:='3'; WHEN 6 THEN return_value:='8'; ELSE

oracle学习心得体会

oracle学习心得 一、sqlserver的理解 sqlserver服务器就像一栋大楼,大楼里的机房就像服务器的数据库,机房里的电脑如同数据库里的表 1、登录用户可以登录服务器——可以进大楼 2、登录用户成为数据库用户才能进指定的数据库——进入大楼的人给了某个机房的钥匙 才能进入机房 3、登录用户有权限使用表——进入机房的人有电脑的密码才能使用电脑 二、oracle的理解 oracle服务器(全局数据库)就像一个商场,商场的每一家公司是表空间,公司的业务是表 1、数据库由多个表空间组成——商场里有多家公司组成 2、表空间由段组成——公司要有自己的经营业务,可以只有一个业务,就是一个表空 间中只有一个段,可以有多个业务,就是一个表空间有多个段 3、段由区组成——单个业务的细分类别。例如有家公司经营三个业务,卖书,卖家电,

卖衣服,则每个业务就是一个段。而每个业务又有细分,比如卖书的话要进行分类了。计算机区,人文区,小说区等,每一区都要放上书架存放书籍,则书架就是oracle块,存放数据的 三、数据库,表空间,用户(指定默认表空间),表统统由管理员管理 四、在oem中管理数据库的步骤 1、创建 1)存储——表空间——创建表空间(tomspace)(类似于在sql中创建数据库, 通常可以省略,使用默认表空间为users,,临时表空间为temp) 2)首先展开安全性——创建新用户(tom,指定表空间)(类似于在sql中指定 数据库用户) 3)创建表——指定方案(用户)和表空间(列名不要带<>) 4)设置约束 5)输入信息:方案——用户名——表——右击——查看/编辑目录… 2、修改 1)方案——用户名——表 2)修改表结构,添加约束

Oracle学习笔记

Oracle的四个主要用户 1.超级管理员sys/change_on_install 2.普通管理员system/manager 3.普通用户scott/tiger 4.大数据用户sh/sh 简单查询 1.查询表结构 DESC 表名 2.简单查询SELECT [DISTINCT] *|[字段 [别名]] [,字段 [别名]] … FROM 表名 [别名] (1)查询时也可以使用四则运算,如:SELECT (字段*x)+y FROM 表名 (2)可以使用“||”连接字段与字符串,如: select '工作与工资:' || job || sal 工作工资 from emp 执行结果: 3.限定查询SELECT [DISTINCT] *|[字段 [别名]] [,字段 [别名]] … FROM 表名 [别名] [WHERE 条件(s)] (1)Where字句后可以增加多个条件,最常见的条件就是最基本关系运算:>、<、>=、<=、!=(<>)、BE TWEEN…AND、LIKE、IN(指定范围)、IS NULL(为空)、AND(且)、OR(或)、NOT(非)。 (2)多个条件可以使用AND与OR连接。 例如:select * from emp where sal>1300 and sal<4000 (3)范围判断BE TWEEN…AND:BETWEEN 最小值 AND 最大值(大于等于最小值,小于等于最大值),BE TWEEN…AND 对数字、日期都可以使用!!! 例如:select * from emp where sal between 1300 and 4000 例如:select * from emp where hiredate between '01-1月-1981' and '31-12月-1981' (4)判断为空IS (NOT) NULL 例如:select * from emp where comm is null 例如:select * from emp where comm is not null 例如:select * from emp where not comm is null (5)指定范围的判断(NOT) IN 例如:select * from emp where empno in(7369,7566,7799)

Oracle数据库期末复习知识点整理

基础知识 表3.2 Oracle数据类型

表3.3 XSB的表结构

操作表 创建表 CREATE TABLE [schema.] table_name ( column_namedatatype [DEFAULT expression] [column_constraint][,…n] [,…n] ) [PCTFREE integer] [PCTUSED integer] [INITRANS integer] [MAXTRANS integer] [TABLESPACE tablespace_name] [STORGE storage_clause] [CLUSTER cluster_name(cluster_column,…n)] [ENABLE | DISABLE ] [AS subquery] 【例】使用CRETE TABLE命令为XSCJ数据库建立表XSB,表结构参照表3.3。 打开SQL*Plus工具,以system方案连接数据库,输入以下语句: CREATE TABLE XSB ( XH char(6) NOT NULL PRIMARY KEY, XM char(8) NOT NULL, XB char(2) DEFAULT '1' NOT NULL, CSSJ date NOT NULL, ZY char(12) NULL, ZXF number(2) NULL, BZ varchar2(200) NULL ); 修改表 ALTER TABLE [schema.] table_name [ ADD(column_namedatatype [DEFAULT expression][column_constraint],…n) ] /*增加新列*/ [ MODIFY([ datatype ] [ DEFAULT expression ] [column_constraint],…n) ] /*修改已有列的属性*/ [ STORAGE storage_clause ] *修改存储特征*/ [ DROP drop_clause ] /*删除列或约束条件*/ 【例】使用ALTER TABLE语句修改XSCJ数据库中的表。

oracle数据库学习笔记心得

select* |字段表名 from 表名 where 布尔表达式【条件】 externalcandidate 职员相关信息 contractrecruiter 猎头公司 查看表里所有字段 describe[描述] contractrecruiter select cname,nperecentagecharge from contractrecruiter 不显示原来名字,显示现在名字【用AS】 select cname as "Recruiter Name",nperecentagecharge as "Hire Fees" from contractrecruiter 不显示原来名字,显示现在名字【可不用AS】 select cname "Recruiter Name",nperecentagecharge "Hire Fees" from contractrecruiter 【双引号是否写】 双引号是为了区分大小写 职位表 position select *from position 缺额运算:[想减] select VDESCRIPTION , nbudgetedstrength, NBUDGETEDSTRENGTH -NCURRENTSTRENGTH , NYEAR from position

select VDESCRIPTION "Potion", nbudgetedstrength "Budgeted Strength" , NBUDGETEDSTRENGTH -NCURRENTSTRENGTH "Vacancies", NYEAR "Year" from position 显示非重复运行 查询来源地的人数 describe externalcandidate 查看职员城市名字 select ccity from externalcandidate 查看职员城市名字【名字不重复,插入一个关键字:distinct】select distinct ccity,cstate from externalcandidate 运算符: 两列 select vfirstname,vlastname from externalcandidate 字段拼接 select vfirstname||vlastname from externalcandidate select vfirstname||' '||vlastname from externalcandidate 学校 describe college 查看所有学校 select *from college 查看只是加利福尼亚的学校 select * from college where cstate='California' 一个条件 select vfirstname,vlastname,dbirthdate,ntestscore from externalcandidate where dbirthdate>='01-1月-70'

Oracle知识点总结

Oracle知识点总结 根据阎赫老师讲义整理Zealjiang 1、Oracle数据库的安装和配置 ⑴Oracle Internet级数据库 SQLServer 中小企业级数据库 Access 桌面级数据库 ⑵Oracle的安装 注意:来源和目标的目录不允许有中文或空格 ⑶Oracle数据库启动时必需开启的后台服务 ①OracleOrahome90TNSListener 使第三方的软件或语言访问 ②OracleServiceETC Oracle的实例 CRUD 增删改查 注意:②中的ETC是你起的实例的名字 ⑷Oracle的开发工具 ①DOS界面的开发平台 -> 运行->sqlplus ②Oracle本身基于DOS的平台 ->运行-> sqlplusw ③Oracle Enterprise Manager Console ④PL/SQL Developer7.1.5 ⑸创建一个表的完整流程 ①创建一个数数库 例子:创建一个数据库 ETC , 物理文件放在F:\ ,初始化1m ,自增长开启 create tablespace etc

datafile 'f:\etc.dbf' size 1m autoextend on; 删除表空间 drop tablespace 数据库名称; ②为该数据库创建一个帐号和密码 语法: create user 用户名称 identified by 密码 default tablespace 数据库名称 注意:1、在Oracle中账号和数据库one2one绑定 2、Oracle的密码不允许为纯数字或空 3、需要在system账号完成动作 修改Oracle的账号密码 语法:alter user 用户 identified by 新密码 ③用grant 权限 to 用户为该帐户授权 语法: grant 权限名称 to 用户; 撤销权限 语法:revoke 权限名称 from 用户名; ④在该帐号下创建表

Oracle笔记

数据库基本概念: 数据库:Database ,DB (数据) 数据库管理系统:(Database Management System,DBMS)oracle ,DB2,Sql_server 等 数据库系统:(Database System ,DBS) 关系型数据库:(Relationship Database ,RDB) SQL语言:(Structured Query Language,结构化查询语言) 数据建模: 要将现实世界中客观存在的事物以数据的形式存储到计算机中并进行处理,就需要对其进行分析,抽象,进而确定数据的结构以及数据间的内在联系,这一过程称为数据建模。 数据模型应满足三个方面的要求: 1,能够比较真实地模拟现实世界 2,容易为人所理解; 3,便于计算机实现。 数据模型三要素: 数据结构---描述事物的静态特性; 数据操作---描述事物的动态特性; 完整性约束----描述事物内部和事物间的约束性关系。 现实世界-------认识抽象-------->概念世界-------转换--------->机器世界 概念数据模型(Conceptual Database Model,CDM) CDM从用户的观点出发对信息进行建模,并不依赖于具体的计算机系统或某个DBMS系统,主要用于数据库的概念设计。 CDM以实体--关系(E-R)模型为基础,将现实世界中的客观对象抽象为实体和关系。 到机器世界中,CDM将被转化为特定DBMS所支持的物理数据模型(Physical Database Model ,PDM)。 CDM相关术语: 实体(Entity):客观存在并且可以相互区分开来的事物。 实体集(Entity Set):同一类实体的集合。 属性(Attribute):描述实体的特性。 关系(Relationship):实体集之间的对应关系(现实世界事物之间的相互关联)。 E-R图三要素: 实体:用矩形框表示

Oracle数据库知识总结

AD1. 执行一个SQL脚本文件 SQL>start file_name SQL>@ file_name 我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的任一命令即可,这类似于dos中的批处理。 4. 将显示的内容输出到指定文件 SQL> SPOOL file_name 在屏幕上的所有内容都包含在该文件中,包括你输入的sql语句。 5. 关闭spool输出 SQL> SPOOL OFF 只有关闭spool输出,才会在输出文件中看到输出的内容。 7. COL命令: 主要格式化列的显示形式。 1). 改变缺省的列标题 COLUMN column_name HEADING column_heading For example: Sql>select * from dept; DEPTNO DNAME LOC ---------- ---------------------------- --------- 10 ACCOUNTING NEW YORK sql>col LOC heading location sql>select * from dept; DEPTNO DNAME location --------- ---------------------------- ----------- 10 ACCOUNTING NEW YORK 2). 将列名ENAME改为新列名EMPLOYEE NAME并将新列名放在两行上: Sql>select * from emp Department name Salary ---------- ---------- ---------- 10 aaa 11 SQL> COLUMN ENAME HEADING ’Employee|Name’ Sql>select * from emp Employee Department name Salary ---------- ---------- ---------- 10 aaa 11 note: the col heading turn into two lines from one line. 3). 改变列的显示长度: FOR[MAT] format Sql>select empno,ename,job from emp; EMPNO ENAME JOB ---------- ---------- --------- 7369 SMITH CLERK

oracle常用笔记总结

1、用dba权限的用户查看数据库都有哪些锁 select https://www.doczj.com/doc/931662735.html,ername,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1,v$session t2 where t1.session_id=t2.sid order by t2.logon_time; 2、查看有哪些对象被锁了 select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id 3、根据sid查找进程id select pro.spid from v$session ses, v$process pro where ses.sid=129 and ses.paddr=pro.addr; select ses.sid from v$session ses, v$process pro where pro.spid=129 and ses.paddr=pro.addr; 4:根据这个spid对应linux下的进程pid linux命令: ps -ef | gre | 'ora' (找到所有ora开头的进程) kill -9 (pid) 5、解决delete后表的高水位的问题 初步判断应该是之前有大量数据,后来delete了,选成高水位,用shrink 清除高水位: alter table t_mobile_client_tp_prov enable row movement; alter table t_mobile_client_tp_prov shrink space; 重新收集统计信息: begin dbms_stats.gather_table_stats(ownname=>'traffic',tabname=>'T_MOBILE_CLIENT_TP_PR end; 6、ORA-02064 distributed operation not supported

oracle GoldenGate学习笔记

Oracle GoldenGate测试文档1.Oracle GoldenGate介绍 GoldenGate TDM(交易数据管理)软件是一种基于日志的结构化数据复制软件,它通过解析源数据库在线日志或归档日志获得数据的增删改变化,再将这些变化应用到目标数据库,实现源数据库与目标数据库同步、双活。GoldenGate TDM 软件可以在异构的IT基础结构(包括几乎所有常用操作系统平台和数据库平台)之间实现大量数据亚秒一级的实时复制,其复制过程简图如下: 如上图所示,GoldenGate TDM的数据复制过程如下: 利用捕捉进程(Capture Process)在源系统端读取Online Redo Log或Archive Log,然后进行解析,只提取其中数据的变化如增、删、改操作,并将相关信息转换为GoldenGate TDM自定义的中间格式存放在队列文件中。再利用传送进程将队列文件通过TCP/IP传送到目标系统。捕捉进程在每次读完log中的数据变化并在数据传送到目标系统后,会写检查点,记录当前完成捕捉的log位置,检查点的存在可以使捕捉进程在中止并恢复后可从检查点位置继续复制; 目标系统接受数据变化并缓存到GoldenGate TDM队列当中,队列为一系列临时存储数据变化的文件,等待投递进程读取数据; GoldenGate TDM投递进程从队列中读取数据变化并创建对应的SQL语句,通过数据库的本地接口执行,提交到数据库成功后更新自己的检查点,记录已经完成复制的位置,数据的复制过程最终完成。 由此可见,GoldenGate TDM是一种基于软件的数据复制方式,它从数据库的日志解析数据的变化(数据量只有日志的四分之一左右)。GoldenGate TDM将数据变化转化为自己的格式,直接通过TCP/IP网络传输,无需依赖于数据库自身的传递方式,而且可以通过高达9:1的压缩率对数据进行压缩,可以大大降低带宽需求。在目标端,GoldenGate TDM可以通

oracle学习总结

--在pl/sql中 --将正式库的零售单A部分数据导到测试库的零售单B中,首先要链接两个数据库 -----创建一个DATABASE LINK /*-- Drop existing database link dropdatabaselink TEST; -- Create database link createdatabaselink TEST connectto NEANDS3 using'(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.4)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl)))'; */ --然后将A表中的字段插入到B表中: insertinto m_retail(ID,C_STORE_ID,RETAILBILLTYPE,ISACTIVE,DOCNO,STATUS,BILLDATE,TOT_AMT_ACTUAL,CREATION DATE,REFNO,AD_CLIENT_ID ) selectID,C_STORE_ID,RETAILBILLTYPE,ISACTIVE,DOCNO,STATUS,BILLDATE,TOT_AMT_ACTUAL,CREATIONDAT E,REFNO,AD_CLIENT_ID from neands3.m_retail@test where status='2'and billdate='20140823' neands3:用户名 m_retail:表名 @test:链接的名称(已经创建好的) ---定时任务将M_RETAIL里的内容插入到新建的表M_RETAIL_MEN的存储过程: create or replace procedure P_M_RETAIL_MENDIAN(p_pi_id IN NUMBER) AS begin DELETE FROM M_RETAIL_MEN WHERE BILLDATE =TO_CHAR(BILLDATE ,'YYYYMMDD'); commit; insert into M_RETAIL_MEN(id,C_STORE_ID,BILLDATE,AMT_ACTUAL25) select get_sequences('M_RETAIL_MEN'),c_store_id,to_char(sysdate,'yyyymmdd'),sum(TOT_AMT_ACTUAL) from M_RETAIL t where t.billdate=to_char(sysdate,'yyyymmdd') and t.status='2' group by t.C_STORE_ID,t.BILLDATE; UPDATE AD_PInstance SET STATE = 'M', RESULT = 0, ModifiedDate = SYSDATE, ERRORMSG = NULL WHERE id = p_pi_id;---pl/sql存储过程自带的 end P_M_RETAIL_MENDIAN; get_sequences(部门):id自增 正则表达式: 在oracle里正则表达式有四个函数可用,分别是regexp_like、regexp_substr、regexp_instr

oracle笔记

Oracle笔记 一、了解oracle 二、Oracle的安装 三、启动oracle: (1)、使用oracle中自带的sql*plus工具进入oracle。 (2)、利用sqlplus和sqlplusw打开oracle。 (3)、使用sql/pl developer进入oracle. (4)、使用oracle企业管理器 四、常用sql*plus命令: (1)、连接数据库: conn (ect) 用户名/密码@网络服务名(数据库名) (as sysdba/sysoper); 例如:conn scott/tiger; (2)、退出:exit; (3)、运行sql脚本: start 脚本地址。 例如:start d:\test.sql; (4)、修改sql脚本: edit 脚本地址。 (5)、截取屏幕代码spool,例如:spool d:\demo.txt…………….spool off; (6)、创建用户(以sysoper以上权限创建):create user 用户名identified by 密码; (7)、删除用户(以sysoper以上权限删除):drop user 用户名; (8)、修改用户密码:passw(ord)或alter user 用户名identified by 密码。 (9)、显示当前用户名:show user; (11)、断开数据库连接:disc(onnect); (12)、行距与每页显示次数:set linesize(pagesize) 数目。 (13)、给予权限: grant connect(连接权限)/resource(在system中创建表权限)/dba(最高权限) to 用户名with admin(系统权限下传)/grant(对象权限下传) option ; (14)、收回权限: revoke conn(连接权限)/resource(在system中创建表权限)/dba(最高权限) from 用户名(15)、使用profile文件管理用户: 限定用户登录次数: Create profile 文件名limit failed_login_attempts 3 password_lock_time 2; Alter user 用户名profile 文件名 用户解锁: Alter user 用户名account unlock;

韩顺平.2011最新版.玩转oracle视频教程(笔记)

韩顺平—玩转ora cle视频教程笔记一:Oracle认证,与其它数据库比较,安装

Oracle安装会自动的生成sys用户和system用户: (1)sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户默认的密码是change_on_install (2)system用户是管理操作员,权限也很大。具有sysoper角色,没有create database的权限,默认的密码是manager (3)一般讲,对数据库维护,使用system用户登录就可以拉 也就是说sys和system这两个用户最大的区别是在于有没有create database的权限。 二: Oracle的基本使用--基本命令 sql*plus的常用命令 连接命令 1.conn[ect] 用法:conn 用户名/密码@网络服务名[as sysdba/sysoper]当用特权用户身份连接时,必须带上as sysdba或是as sysoper 2.disc[onnect] 说明: 该命令用来断开与当前数据库的连接 3.psssw[ord] 说明: 该命令用于修改用户的密码,如果要想修改其它用户的密码,需要用 sys/system登录。 4.show user 说明: 显示当前用户名 5.exit 说明: 该命令会断开与数据库的连接,同时会退出sql*plus 文件操作命令 1.start和@ 说明: 运行sql脚本 案例: sql>@ d:\a.sql或是sql>start d:\a.sql 2.edit 说明: 该命令可以编辑指定的sql脚本 案例: sql>edit d:\a.sql,这样会把d:\a.sql这个文件打开 3.spool 说明: 该命令可以将sql*plus屏幕上的内容输出到指定文件中去。 案例: sql>spool d:\b.sql 并输入 sql>spool off 交互式命令 1.& 说明:可以替代变量,而该变量在执行时,需要用户输入。 select * from emp where job='&job'; 2.edit 说明:该命令可以编辑指定的sql脚本 案例:SQL>edit d:\a.sql

Oracle复习题总结

绪论: 1、Oracle,甲骨文,1977年开始研发,总部位于美国加州红木滩市,创始人为Larry Ellison(埃里森) 、 Bob Miner、Ed Oates 2、Oracle服务器=实例+数据库;Oracle实例=内存+后台进程; 第四章:表空间的创建与删除 例4.1 建立名称为data_ts1的数据表空间,大小为50M,区间统一为128KB大小。 SQL> conn system/systempwd@orcl SQL> drop tablespace data _ts1 including conntents; SQL> create tablespace data _ts1 2 tempfile ‘ %oracle_home%\database\data_ts1.dbf ’ SIZE 50M REUSE 3 uniform size 128K; 例4.2 建立名称为temp_ts1的临时表空间,使用temp_ts1.dbf文件存放临时数据。 SQL> conn system/systempwd@orcl SQL> drop tablespace temp_ts1 including conntents; SQL> create temporary tablespace temp_ts1 2 tempfile ‘ %oracle_home%\database\temp_ts1.dbf ’ size 20M reuse 3 uniform size 128k; 例4.3创建10号部门经理用户EMP_MGR10,指定该用户的数据表空间为data_ts1,临时表空间为temp_ts1。授权该用户可以查看SCOTT用户下雇员表中的记录。 SQL> conn system/systempwd@orcl SQL> drop user emp_mgr10 cascade; SQL> create user emp_mgr10 identified by emp_mgr10pwd 2 default tablespace data_ts1 temporary tablespace temp_ts1; SQL> grant connect to emp_mgr10; SQL> conn scott/tiger@orcl 4 tempfile ‘ %oracle_home%\database\temp_ts1.dbf ’ size 20M reuse 5 uniform size 128k; 例4.4 创建和应用撤销表空间。 SQL> conn system/systempwd@orcl SQL> drop tablespace undo_ts1 including conntents; SQL> create undo tablespace undo_ts1 2 datafile ‘ %oracle_home%\database\undo_ts1.dbf ’ size 50M reuse; 例4.5 创建大文件表空间,并指定为SCOTT用户的默认数据表空间。 SQL> conn system/systempwd@orcl SQL> drop tablespace bigfile_ts1 including conntents; SQL> create bigfile tablespace bigfile_ts1 2 datafile ‘ %oracle_home%\database\bigfile_ts1.dbf ’ size 50M reuse; SQL> alter user scott default tablespace bigfile_ts1; 需要注意的是,大文件表空间的段空间管理不能为手工(MANUAL),只能为自动(AUTO)。 例4.6调整数据表空间data_ts1的大小。 SQL> conn system/systempwd@orcl --为表空间data_ts1增加一数据文件,大小为1M。 SQL> alter tablespace data_ts1 2 add datafile ‘ %oracle_home%\database\ data _ts2.dbf ’ size 1M; --重置该数据文件大小为2M。 SQL> alter tablespace 2 datafile ‘ %oracle_home%\database\ data _ts2.dbf ’ siz e 2M;

相关主题
文本预览
相关文档 最新文档