《Oracle10g笔记》.docx
《《Oracle10g笔记》.docx》由会员分享,可在线阅读,更多相关《《Oracle10g笔记》.docx(82页珍藏版)》请在冰豆网上搜索。
《Oracle10g笔记》
每章大标题红色二号加粗
每章的知识点品红小三加粗
知识点下的小标题蓝色小四
注释内容绿色小四
特别注意红色小四加粗
例题深红小四加粗
练习紫罗兰小四加粗
关键词组浅蓝小四加粗
第一节概述
一、Oracle10g版本概述
1、Oracle10g标准版1仅允许在最高容量为2个处理器的服务器上使用。
2、Oracle10g标准版可以在最高容量为4个处理器的单台服务器或者多台服务器(总CPU4个)。
3、Oracle10g企业版
4、Oracle10g个人版只为单用户的开发和布署提供环境。
二、Oracle10g安装环境
1、物理内存官方最少256MB,建议521MB。
2、虚拟内存物理内存的2倍。
3、硬盘空间基本安装类型最大2.04GB,高级安装类型1.94GB,使用NTFS文件系统比使用FAT32文件系统节约很多空间。
4、显示器256色
5、处理器550MHz
三、Oracle10g安装过程讲解
*选择数据库配置
1、通用选择此类型可以创建适合于各种用途的预配置数据库。
2、事务处理适用于大量并发用户运行事务处理的环境预配置数据库,常用于银行交易或Internet电子商务.
3、数据仓库适用于特定主题运行复杂查询的环境。
比如:
客户订单、采购、检索。
4、高级
*指定数据库选项
全局数据库名域名形式:
可以在公网上注册。
SIDSystemidentifier系统标识符在这里当前数据库的SID为zky。
在安装完毕之后是需要在:
C:
\DocumentsandSettings\Administrator>setoracle_sid=test切换多个数据库
选择数据库字符集ZHS16GBK
在创建带样本方案的数据库旁边打勾
*设置密码
1、长度必须4---30个字符之间。
2、必须来自数据库字符集包括特殊字符_$#
3、不能以数字开头。
emca-r
4、不能与用户名相同。
5、不能使用oracle关键字。
6、SYS用户密码不能为change_on_install
SYSTEM密码不能为manager
安装完成:
四、完全卸载Oracle10g
1、如果配置了ASM,应该先删除CSS(集群同步服务)
C:
\>localconfigdelete
如果没装ASM,跳过此步。
2、开始---运行---services.msc---停止Oracle开头的所有服务。
3、用DBCA删除所有数据库。
在开始菜单中---DatabaseConfigurationAssistant
4、用OracleUnniversalInstaller删除数据库组件。
5、删除ASM
C:
\>oracle-delete-asmid+asm
如果没装ASM,跳过此步。
6、从注册表中删除Oracle10g的注册信息。
运行---regedit调出注册表编辑器
machine\software\oracle删除整个ORACLE目录。
machine\system\currentcontrollset\services删除所有以oracle开头的键值。
machine\system\currentcontrollset\services\Eventlog\Application删除所有以oracle开头的键值。
ROOT\删除所有以OracleOraOrclEnumOra的键。
User\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\StartMenu\Programs\所有以Oracle开头的键。
machine\Software\ODBC\ODBCINST.INT\除了MicrosoftODBCforOracle不能删之外其他所有带Oracle的全删。
7、删除环境变量
删除PATH和CLASSPATH中包含Oracle的值。
8、删除开始菜单中所有图标。
9、删除其他相关目录。
E:
\oracle安装目录。
C:
\ProgramFiles\Oracle目录
C:
\DocumentsandSettings\用户名\LocalSettings\Temp
后续工作:
1、环境变量
(1)注册表环境变量
machine\software\oracle\KEY_OraDb10g__home1有一些常用环境变量
NLS_LANG使用的语言
ORACLE_BASE安装Oracle服务的目录。
E:
\oracle\product\10.1.0ORACLE_HOME安装Oracle的主目录,也称软件目录
E:
\oracle\product\10.1.0\db_1ORACLE_SID创建的系统标识符(也称数据库实例名)
(2)系统环境变量
右击我的电脑---属性---高级---环境变量
Oracle10g的版本标识10.1.0.1.0
第一个数:
主版本号。
每发布一个新的主版本号,标识着有一个新的功能加进来。
第二个数:
维护版本号。
维护当前主版本中存在的的一些问题或包含一些新的特性。
第三个数:
是ApplicationServer10g的版本号。
第四个数:
组件相关版本号
第五个数:
平台相关版本号。
标识不同OS和平台。
在Oracle中如何查看当前版本号?
1、登录到数据库中
在“服务”中,将Oracle服务全开开---运行---输入“cmd”---C:
\DocumentsandSettings\Administrator>setoracle_sid=test--选择数据库
C:
\DocumentsandSettings\Administrator>sqlplussys/redhatassysdba
sys是超级管理员
/区分用户名和密码的标识
redhat是数据库密码
assysdba作为管理员身份登录
SQL>select*fromproduct_component_version;查看当前版本。
五、常用Oracle服务
运行--services.msc中找到oracle开头。
OracleCSService----同步集群服务,用于ASM。
建议手动,停止。
OracleDBConsoleorcl----用于OEM(OracleEnterpriseManager)。
--orcl为实例名
OracleJobSchedulerorcl----作业调度。
默认“禁用”。
OracleOraDb10g_home1iSQL*PLUS----使用iSQLPLUS时,开此服务。
OracleOraDb10g_home1TNSListener----监听服务。
(建议自动启动)
--使用Oracle必须启动的服务
OracleServiceORCL----数据库服务。
负责启动和停止数据库。
(建议自动启动)
--使用Oracle必须启动的服务,也是最先启动的服务
六、登录Oracle10g的SQL*PLUS
1、确认OracleOraDb10g_home1TNSListener和OracleServiceORCL服务是否启动。
2、登录的用户名和密码?
E:
\oracle\product\10.1.0\db_1\NETWORK\ADMIN下打开sqlnet.ora文件(选择写字板打开),如果SQLNET.AUTHENTICATION_SERVICES=(NTS)
就表示“任何密码都可以进入数据库”,前提是以windows的administrator登录。
如果将NTS改为NONE,则必须知道数据库密码才可进入oracle。
3、登录方式
第一种方式:
C:
\DocumentsandSettings\Administrator>sqlplussys/redhat@testassysdba
--@后面接的是需要使用的数据库的名称
连接成功后会出现如下提示:
SQL*Plus:
Release10.1.0.2.0-Productionon星期一1月1214:
53:
072009
Copyright(c)1982,2004,Oracle.Allrightsreserved.
连接到:
OracleDatabase10gEnterpriseEditionRelease10.1.0.2.0-Production
WiththePartitioning,OLAPandDataMiningoptions
SQL>quit退出数据库
从OracleDatabase10gEnterpriseEditionRelease10.1.0.2.0-Production
WiththePartitioning,OLAPandDataMiningoptions断开
第二种方式:
工作时推荐使用:
防止在屏幕上显示密码
C:
\DocumentsandSettings\Administrator>sqlplus
请输入用户名:
sysassysdba
请输入口令:
******
第三种方式:
学习时推荐使用:
快捷
C:
\DocumentsandSettings\Administrator>sqlplus/assysdba
SQL>showuser;查看当前用户。
USER为"SYS"
第四种方式:
用Oracle10g自带的SQL*PLUS工具
或者在快捷方式中添加登陆信息
第五种方式(可选):
WinSQL等第三方连接各种数据库的编程软件平台
4、在SQL*Plus下如何执行命令
三种方式:
SQL>select*fromscott.emp;以分号作为执行语句的标志。
SQL>select*fromscott.emp
2/独占一行的正斜杠。
SQL>selectsysdatefromdual如果后面空行,将把语句放在缓冲区中。
2
SQL>list查看缓冲区中内容。
--可简写成l
1*selectsysdatefromdual
删除密码文件pwdoratt.ora
数据库管理员修改命令
orapwd
orapwdfile=e:
\….\pwdoratt.orapassword=redhatentries=5
重新启动服务
注:
Oracle10g破解SYS管理员用户密码:
步骤如下:
1、删除E:
\oracle\product\10.1.0\db_1\database下的密码文件,如PWDoratt.ora,这里的oratt是SID。
2、命令行下
C:
\DocumentsandSettings\Administrator>orapwdfile=E:
\oracle\product\10.1.0\db_1\database\PWDoratt.orapassword=redhatentries=5
3、重起服务OracleServiceOratt服务(在services.msc)中。
Oracle10g第二节
SQL/PLUS特性
一、column功能用来改变列的标题和重新格式化查询的列的数据,可以制作漂亮的报表。
select*fromscott.emp;可以查询emp员工表的所有的信息。
解释:
select选择
*代表所有行和列
from从....地方选
scott.emp斯考特用户的员工表
教材:
select*fromemp;是这样写的,但是。
。
。
。
。
select*fromemp
*
第1行出现错误:
ORA-00942:
表或视图不存在(解锁alteruserscottaccountunlock)
SQL>connscott/tiger如果出现错误,切换用户身份。
以SYS用户身份登录:
SQL>alteruserscottidentifiedbytiger;更改scott用户密码。
SQL>select*fromempwheredeptno=10;显示部门编号=10的员工信息。
EMPNOENAMEJOBMGRHIREDATESALCOMM
-------------------------------------------------------------------------
DEPTNO
----------
7782CLARKMANAGER783909-6月-812450
10
7839KINGPRESIDENT17-11月-815000
10
7934MILLERCLERK778223-1月-821300
10
SQL>columnsalhead"薪水"format$9999.99;
EMPNOENAMEJOBMGRHIREDATE薪水COMM
------------------------------------------------------------------------
DEPTNO
----------
7782CLARKMANAGER783909-6月-81$2450.00
10
7839KINGPRESIDENT17-11月-81$5000.00
10
7934MILLERCLERK778223-1月-82$1300.00
10
SQL>hostdirc:
\*.sql显示C盘下所有以.sql作为扩展名的文件。
SQL>startc:
\haha.sql直接执行批处理SQL脚本。
分别写单独安排执行计划,使用替代变量方式只安排一个执行计划,提高sql语句执行效率,建议使用
使用list查看oracle缓冲区中写过的命令
SQL>list
1select*
2from
3*emp
命令有多行时,可以指定查询缓冲区的某一行
查看第3行
SQL>l3
3*emp
查看第1行到3行
命令:
l13
SQL>l13
1select*
2from
3*emp
使用change修改sql语句
SQL>select*frondept;故意错一下。
select*frondept
*
第1行出现错误:
ORA-00923:
未找到要求的FROM关键字
SQL>l
1*select*frondept
SQL>change/fron/from将缓冲区里fron改为from
SQL>l
1*select*fromdept
SQL>/执行缓冲区里面的命令
SQL>/
DEPTNODNAMELOC
-------------------------------------
10ACCOUNTINGNEWYORK
20RESEARCHDALLAS
30SALESCHICAGO
40OPERATIONSBOSTON
删除缓冲区的某一行
SQL>l//查看缓冲区信息
SQL>del4
删除多行
删除从第2行到第4行
DEL24
在目前缓冲区尾部追加信息(append)
举例:
SQL>select*fromemp;
SQL>l
1*select*fromemp
SQL>appendwheredeptno=10将原来缓冲区里命令尾部追加命令
1*select*fromempwheredeptno=10
EMPNOENAMEJOBMGRHIREDATE薪水COMM
------------------------------------------------------------------------
DEPTNO
----------
7782CLARKMANAGER783909-6月-81$2450.00
10
7839KINGPRESIDENT17-11月-81$5000.00
10
7934MILLERCLERK778223-1月-82$1300.00
10
利用行编辑命令进行操纵的一些常用手段
保存缓冲区信息
SQL>savec:
\teacher.txt
已创建filec:
\teacher.txt
执行保存的文件
SQL>@c:
\teacher.txt
SQL>startc:
\teacher.txt
用get命令获取脚本内容,但不执行
SQL>getc:
\teacher.txt
1*select*fromempwheredeptno=10
编辑缓冲区命令
edit
SQL>edit
已写入fileafiedt.buf
数据库的启动与关闭
C:
\DocumentsandSettings\Administrator>sqlplus"sys/redhatassysdba"
如果数据库没有启动。
SQL>shutdownimmediate;先将数据关闭。
数据库已经关闭
已经卸载数据库。
ORACLE例程已经关闭。
SQL>quit
从OracleDatabase10gEnterpriseEditionRelease10.1.0.2.0-Production
WiththePartitioning,OLAPandDataMiningoptions断开
数据库关闭的情况下如何登录sqlplus?
C:
\DocumentsandSettings\Administrator>sqlplus/nolog
SQL>connect/assysdba
已连接到空闲例程。
作用:
1、删除数据库。
2、创建数据库。
SQL>startupnomount只启动数据库实例,不安装数据库,不打开数据库。
ORACLE例程已经启动。
TotalSystemGlobalArea171966464bytes总SGA(系统全局区)大小。
Oracle数据库占用内存。
FixedSize787988bytes固定容量
VariableSize145488364bytes可变容量
DatabaseBuffers25165824bytes数据库缓存
RedoBuffers524288bytes重做日志文件缓存
SQL>startupmount启动数据库实例,安装数据库,不打开数据库。
什么时候需要以mount方式打开?
在设置重做日志归档选项和恢复数据库时。
SQL>alterdatabaseopen;可以打开数据库
SQL>startupmount
ORACLE例程已经启动。
TotalSystemGlobalArea171966464bytes
FixedSize787988bytes
VariableSize145488364bytes
DatabaseBuffers25165824bytes
RedoBuffers524288bytes
数据库装载完毕。
nomount和mount选项的区别:
nomount:
用于数据库的控制文件全部损坏,需要重新创建数据库控制文件或创建一个新的数据库时使用。
mount:
用于修改数据库的运行方式或进行数据库恢复。
举例:
在数据库安装以后,修改数据库的运行方式,将当前数据库由归档修改为非归档。
SQL>alterdatabasearchivelog;将当前数据库由非归档方式改为归档方式
SQL>alterdatabasenoarchivelog;
归档/不归档:
Oracle默认方式为非归档。
为了数据库在出现故障时能进行及时有效的恢复,必须进行归档模式的配置。
SQL>alterdatabaseopen;打开当前数据库。
alterdatabaseopenreadonly;将整个数据库设置为只读属性。
SQL>startupmount;
SQL>alterdatabaseopenreadwrite;
SQL>startuprestrict;以受限的方式打开数据库。
受限:
只允许管理员访问database。
在以下情形时:
1、导入和导出数据。
2、阻止别人访问databse。
3、迁移和升级database。
SQL>altersystemdisablerestrictedsession;结束当前的受限状态。
startup默认的方式启动数据库
关闭数据库
SQL>shutdownnormal;如果存在死进程,这种方式不能够关闭数据库的。
解释:
等待当前所有已连接用户断开与数据库连接后,再关闭。
SQL>shutdownimmediate;必须以sysdba身份才能执行。
解释:
回退所有的活动事务处理并断开所有已连接的用户,然后关闭数据库。
在以下情形时:
1、初始化自动备份
2、电源将在比较长的时间内被切断。
3、数据库出现异常。
SQL>shutdownabort;中止数据库的例程,立即关闭数据库。
速度最快。
必须以sysdba身份才能执行。
解释:
强行关闭。
SQL>shutdowntransactional;是在事务终结后关闭数据库。
处理完所有事务后关闭数据库,新事务请求不予响应,新的连接也不予响应。
改变当前数据库的状态:
SQL>startupnomount;
SQL>alterdatabasemount;
SQL>alterdatabaseopen;
手工创建数据库
创建数据库:
createdatabasedatabase-name[USINGCODESETcodesetTERRITORYterritory]
注:
代码页的问题。
删除数据库:
dropdatabasedbname
1、建立目录:
取巧办法是从$ORACLE_HOME/ADMIN/SAMPLE中把该目录下的所有文件和文件夹拷贝到$ORACLE_BASE下
这里是:
将E:
\ora