首页数据库oracle数据库操作 怎样启动和关闭oracle数据库

oracle数据库操作 怎样启动和关闭oracle数据库

编程之家2023-10-22118次浏览

大家好,今天来为大家解答oracle数据库操作这个问题的一些问题点,包括怎样启动和关闭oracle数据库也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

oracle数据库操作 怎样启动和关闭oracle数据库

oracle数据库的常见命令

1、su– oracle不是必需,适合于没有DBA密码时使用,可以不用密码来进入sqlplus界面

2、sqlplus/nolog或sqlplus system/manager或./sqlplus system/manager@ora9i

3、SQL>connect/ as sysdba;(as sysoper)或connect internal/oracle AS SYSDBA(scott/tiger)conn sys/change_on_install as sysdba

4、SQL>startup;启动数据库实例

5、查看当前的所有数据库: select* from v$database

扩展资料:

oracle数据库操作 怎样启动和关闭oracle数据库

ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。

oracle数据库逻辑结构

它由至少一个表空间和数据库模式对象组成。这里,模式是对象的集合,而模式对象是直接引用数据库数据的逻辑结构。

模式对象包括这样一些结构:表、视图、序列、存储过程、同义词、索引、簇和数据库链等。逻辑存储结构包括表空间、段和范围,用于描述怎样使用数据库的物理空间。

文件结构

数据库的物理存储结构是由一些多种物理文件组成,主要有数据文件、控制文件、重做日志文件、归档日志文件、参数文件、口令文件、警告文件等。

oracle数据库操作 怎样启动和关闭oracle数据库

参考资料来源:百度百科-Oracle数据库

oracle对表的基本操作

子查询目标

子查询是一种把查询的结果作为参数返回给另一个查询的一种查询

子查询可以让你将多个查询绑定在一起

嵌套子查询

多层子查询

相关子查询

可接受外部的引用

exists/any/all

any:与子查询中的每一行与主查询进行比较并对子查询中的每一行返回一个true值

some结果与any一样

all子查询结果都满足条件才会返回true

DML

数据库插入

insert value

insert select

update update table set col=value

delete

DDL

创建和操作表

create

存储参数 storage(initial size next size minextents value pctincrease value)初始分配空间追加的长度最小追加长度每次追加的百分比或进行下一次追加

用已存在的表创建新表

create table new_t(num name amount) as(select* from old_t where amount<)

alter

加入一列到已经存在的表中

修改已经存在的表中的某一列

ALTER TABLE BILLS MODIFY NAME CHAR();将表中某字段改为长度个字符

ALTER TABLE NEW_BILLS ADD MENTS CHAR();向表中加一列

alter不能用于对一个数据库增加或删除字段但可以将某列由not null改为null

drop

drop table table_name;

创建视图和索引

视图常被称为虚表 create view视图是一个数据库对象他允许用户从一个表或一组表中建立一个虚表它本身没有数据仅仅是一条查询语句它可以方便的在各个表中进行联合查询这对用户来说是很方便的其次可以增加安全性屏蔽一些不想让无权限的用户看一些表中的数据即隐藏了基本表这同时也可以隐藏着其中的复杂性有时更改起来也很方便而不必涉及到应用程序如一个表中有列数据我只想让其他用户看到列这时候视图就会显得十分方便如表school有ID name lesson三项我只需要显示其中项实例如下

子查询目标子查询是一种把查询的结果作为参数返回给另一个查询的一种查询子查询可以让你将多个查询绑定在一起嵌套子查询多层子查询相关子查询可接受外部的引用exists/any/allany:与子查询中的每一行与主查询进行比较并对子查询中的每一行返回一个true值some结果与any一样all子查询结果都满足条件才会返回true

DML数据库插入 insert valueinsert selectupdate update table set col=valuedelete

DDL创建和操作表create存储参数 storage(initial size next size minextents value pctincrease value)初始分配空间追加的长度最小追加长度每次追加的百分比或进行下一次追加用已存在的表创建新表 create table new_t(num name amount) as(select* from old_t where amount<)alter加入一列到已经存在的表中修改已经存在的表中的某一列ALTER TABLE BILLS MODIFY NAME CHAR();将表中某字段改为长度个字符ALTER TABLE NEW_BILLS ADD MENTS CHAR();向表中加一列alter不能用于对一个数据库增加或删除字段但可以将某列由not null改为nulldropdrop table table_name;

创建视图和索引视图常被称为虚表 create view视图是一个数据库对象他允许用户从一个表或一组表中建立一个虚表它本身没有数据仅仅是一条查询语句它可以方便的在各个表中进行联合查询这对用户来说是很方便的其次可以增加安全性屏蔽一些不想让无权限的用户看一些表中的数据即隐藏了基本表这同时也可以隐藏着其中的复杂性有时更改起来也很方便而不必涉及到应用程序如一个表中有列数据我只想让其他用户看到列这时候视图就会显得十分方便如表school有ID name lesson三项我只需要显示其中项实例如下

所以在适当的时候十分有必要在众多表中建立视图

索引索引是与磁盘上数据的存储方式不同的另外一组数据的方法索引的特例是表中记录一句其在磁盘上的存储位置显示索引可以在表内创建一个列或列的组合通过对正确的特定的两个表的归并字段进行索引可以获得明显的好处 create index

ps视图和索引是两个完全不同的对象但有一点是相同的它们都与一个表或数据库相关联尽管每一个对象只能与一个特定的表相关联但它们还是通过对数据的预排序和预定义显著地提高了表的工作性能

使用视图 create view view_name(col col……) as select table_name(col col……) from table_name;

select规则不能使用union不能使用order by但使用group by有其相同功能

DML的规则对于多表视图不能使用delete

除非非空列都出现在视图中否则不能使用insert

对于一个归并(merger)的表插入或更新所有被更新的记录必须属于同一个物理表

如果创建视图时使用dintinct子句就不能插入或更新这个视图

不能更新视图中的虚拟列(它是用计算字段得到的)

删除视图:drop view view_name;

使用索引

索引可以让存储于磁盘上的数据进行重新排序

使用索引的原因在使用unique关键字时前执行的保证数据的完整性

可以容易的用索引字段或其他字段进行排序

提高查询执行速度

索引的概念

两种方法从数据库中获得数据顺序访问方式需要sql检查每一个记录以找到与之匹配的此法效率很低但它是使记录准确定位的唯一方法使用索引的的直接访问方式 sql采用树形结构来存储和返回所以数据用以指示的数据存储在树的最末端(也就是叶子)它们被称为结点(也可以叫叶子)每个结点中有一个指向其他结点的指针结点左边的值只是它的双亲结点结点右边的值则是孩子结点或叶子 sql将从根结点开始找到所需的数据

ps当查询没有使用索引的表时查询通常是全表搜索后才会得到结果全表搜索会让数据库服务程序遍历过表中的所有记录然后返回给定条件的记录索引可以让数据库服务程序快速的定位到表中的确定行

create index index_name on table_name(column_name [column_name ]);

SQL Server和ORACLE允许你创建成簇的索引 Informix和ORACLE允许你指明列名是按升序排列还是按降序排列

使用索引不会对表中的物理存储造成影响

order by和索引的区别

使用order by子句时每次运行它都需要重新进行排序而使用索引时数据库会建立一个物理索引对象(树结构)每次运行查询时都访问同一个索引

当表被删除时所有与之相关的索引也将被删除

使用索引的技巧

对于小表来说使用索引对于性能不会有任何提高

当你的索引列中有极多的不同数据和空值时索引会使性能有极大的提高

当查询要返回的数据很少时(少于全部数据的%)索引可以优化你的查询如果要返回的数据很多时索引会加大系统开销

索引可以提高数据的返回速度但它使得数据的更新操作变慢(对记录和索引进行更新时请不要忘记先删除索引当执行完更新操作后恢复索引即可对于一次特定的操作系统可以保存删除的索引个小时在这个时间内数据更新完成后你可以恢复它)

索引会占用数据库空间

可以提高归并速度

大多数数据库系统不允许对视图使用索引

不要对经常需要更新或修改的字段创建索引否则会降低性能

不要将索引与表存储在同一个驱动器上分开存储会去掉访问冲突从而使结果返回的更快

复合索引

对多个字段进行索引(一个索引包含多个列)

CREATE INDEX ID_CMPD_INDEX ON BILLS( ACCOUNT_ID AMOUNT);尽量将经常在查询中使用的字段放在最前边

复合索引的性能与单个字段的索引相比是无法判定的

创建索引时使用unique关键字

复合索引通常使用unique关键字来防止有相同数据的多个记录多次出现(oracle不支持从 i开始支持)

索引与归并

当查询中使用了复杂的归并时你的select语句会好用很长时间

在归并时对字段创建索引可以显著得提高查询反应速度但创建太多的索引会使性能下降而不是提高

作为一个规则你应该对表中的唯一属性的字段或你用以归并操作的字段来创建索引

群集(簇)的使用

当使用群集索引时数据在表中的物理排序方式会被修改使用群集索引通常比传统的不使用群集索引速度要快 ORACLE中群集的概念与此不同当使用ORACLE关系数据库系统时群集就是一个像数据或表一样的对象群集一般是存储了表的共有字段以提高对表的访问速度

oracle的例子

CREATE CLUSTER [schema ]cluster(column datatype [ column datatype])

[PCTUSED integer] [PCTFREE integer] [SIZE integer [K|M] ]

[INITRANS integer] [MAXTRANS integer] [TABLESPACE tablespace]

[STORAGE storage_clause] [!!under!!INDEX| [HASH IS column] HASHKEYS integer]

你随后创建的其于该表的群集的索引会被加入到群集中然后把表也加入群集中你应该只将经常需要归并的表加入到群集不要向群集中加入只需要用简单的SELECT语句进行个别访问的表

事务处理控制

事务控制

事务控制(事务处理)指关系数据库系统执行数据库事务的能力(逻辑分组它有自己的开始和结束)

事务逻辑上必须完成的一命令序列的单位

单元工作期事务的开始和结束时期

开始事务处理

SET TRANSACTION{READ ONLY| USE ROLLBACK SEGMENT segment}

可以在下列语句中使用READ ONLY选项 SELECT LOCK TABLE SET ROLE ALTER SESSION ALTER SYSTEM

有些数据库支持SET AUTOMIT [ON| OFF]

结束事务处理

MIT [WORK][ MENT text| FORCE text [ integer] ];

MIT(TRANSACTION| TRAN| WORK)(TRANSACTION_NAME)

取消事务处理

这必须是在MIT之前 ROLLBACK语句必须在一个事务之中运行它可以一直撤消到事务的开始

在事务中使用保存点

SAVEPOINT savepoint_name;

ROLLBACK TO SAVEPOINT savepoint_name;

数据库安全

技巧要带着下边的问题去规划你数据库系统的安全性

谁应该得到数据库管理员权限?

有多少个用户需要访问数据库系统?

每个用户应该得到什么样的权限与角色?

当一个用户不再访问数据库时应该如何去删除它?

oracle使用三个结构来实现安全性用户角色权限

用户

CREATE USER user

IDENTIFIED{BY password| EXTERNALLY}

[DEFAULT TABLESPACE tablespace]

[TEMPORARY TABLESPACE tablespace]

[QUOTA{integer [K|M]| UNLIMITED} ON tablespace]

[PROFILE profile]

如果选择了EXTERNALLY选项 ORACLE将会依赖于你登录进入计算机系统的用户名和密码也就是说当你登录进行计算机时你就已经登录进行了ORACLE我们推荐你使用IDENTIFIED BY子句强制用户在登录进行系统时输入密码IDENTIFIED BY PASSWORD

角色

GRANT role TO user [WITH ADMIN OPTION];

REVOKE role from user;

lishixinzhi/Article/program/Oracle/201311/16734

怎样启动和关闭oracle数据库

1数据库的启动(STARTUP)

在Startup命令中,可以通过不同的选项来控制数据库的不同启动步骤。

1、STARTUP NOMOUNT

NONOUNT选项仅仅创建一个Oracle实例。读取init.ora初始化参数文件、启动后台进程、初始化系统全局区(SGA)。Init.ora文件定义了实例的配置,包括内存结构的大小和启动后台进程的数量和类型等。实例名根据Oracle_SID设置,不一定要与打开的数据库名称相同。当实例打开后,系统将显示一个SGA内存结构和大小的列表,如下所示:

SQL> startup nomount

ORACLE instance started.

Total System Global Area 35431692 bytes

Fixed Size 70924 bytes

Variable Size 18505728 bytes

Database Buffers 16777216 bytes

Redo Buffers 77824 bytes

2、STARTUP MOUNT

该命令创建实例并且安装数据库,但没有打开数据库。Oracle系统读取控制文件中关于数据文件和redo log文件的内容,但并不打开这些文件。这种打开方式常在数据库维护操作时使用,如对数据文件的更名、改变redo log以及打开归档方式、执行数据库的full database recovery。在这种打开方式下,除了可以看到SGA系统列表以外,系统还会给出" Database mounted."的提示。

3、STARTUP

该命令完成创建实例、安装实例和打开数据库的所有三个步骤。此时数据库使数据文件和redo log文件在线,通常还会请求一个或者是多个回滚段。这时系统除了可以看到前面Startup Mount方式下的所有提示外,还会给出一个" Database opened."的提示。此时,数据库系统处于正常工作状态,可以接受用户请求。

如果采用STARTUP NOMOUNT或者是STARTUP MOUNT的数据库打开命令方式,必须采用ALTER DATABASE命令来执行打开数据库的操作。例如,如果你以STARTUP NOMOUNT方式打开数据库,也就是说实例已经创建,但是数据库没有安装和打开。这时必须运行下面的两条命令,数据库才能正确启动。

ALTER DATABASE MOUNT;

ALTER DATABASE OPEN;

而如果以STARTUP MOUNT方式启动数据库,则只需要运行下面一条命令即可以打开数据库:

ALTER DATABASE OPEN;

4、其他打开方式

除了前面介绍的三种数据库打开方式选项外,还有另外其他的一些选项。

(1) STARTUP RESTRICT

这种方式下,数据库将被成功打开,但仅仅允许一些特权用户(具有DBA角色的用户)才可以使用数据库。这种方式常用来对数据库进行维护,如数据的导入/导出操作时不希望有其他用户连接到数据库操作数据、数据装载、特定的迁移或者升级操作等。

(2) STARTUP FORCE

该命令其实是强行关闭数据库(shutdown abort)和启动数据库(startup)两条命令的一个综合。该命令仅在关闭数据库遇到问题不能关闭数据库时采用。

(3) ALTER DATABASE OPEN READ ONLY;

该命令在创建实例以及安装数据库后,以只读方式打开数据库。对于那些仅仅提供查询功能的产品数据库可以采用这种方式打开。

2数据库的关闭(SHUTDOWN)

对于数据库的关闭,有四种不同的关闭选项。

1、SHUTDOWN NORMAL

这是数据库关闭SHUTDOWN命令的确省选项。也就是说如果输入SHUTDOWN这样的命令,也就是执行SHUTDOWN NORNAL命令。

发出该命令后,任何新的连接都将再不允许连接到数据库。在数据库关闭之前,Oracle将等待目前连接的所有用户都从数据库中退出后才开始关闭数据库。采用这种方式关闭数据库,在下一次启动时不需要进行任何的实例恢复。但需要注意的是,采用这种方式,也许关闭一个数据库需要几天时间,或者更长。

2、SHUTDOWN IMMEDIATE

这是常用的一种关闭数据库的方式,想很快地关闭数据库,但又想让数据库干净的关闭,常采用这种方式。

当前正在被Oracle处理的SQL语句立即中断,系统中任何没有提交的事务全部回滚。如果系统中存在一个很长的未提交的事务,采用这种方式关闭数据库也需要一段时间(该事务回滚时间)。系统不等待连接到数据库的所有用户退出系统,强行回滚当前所有的活动事务,然后断开所有的连接用户。

3、SHUTDOWN TRANSACTIONAL

该选项仅在Oracle 8i后才可以使用。该命令常用来计划关闭数据库,它使当前连接到系统且正在活动的事务执行完毕,运行该命令后,任何新的连接和事务都是不允许的。在所有活动的事务完成后,数据库将和SHUTDOWN IMMEDIATE同样的方式关闭数据库。

4、SHUTDOWN ABORT

这是关闭数据库的最后一招,也是在没有任何办法关闭数据库的情况下才不得不采用的方式,一般不要采用。如果下列情况出现时可以考虑采用这种方式关闭数据库。

1、数据库处于一种非正常工作状态,不能用shutdown normal或者shutdown immediate这样的命令关闭数据库;

2、需要立即关闭数据库;

3、在启动数据库实例时遇到问题;

所有正在运行的SQL语句都将立即中止。所有未提交的事务将不回滚。Oracle也不等待目前连接到数据库的用户退出系统。下一次启动数据库时需要进行实例恢复,因此,下一次启动可能比平时需要更多的时间。

下表为上述四种不同关闭数据库的区别和联系。

关闭方式 Abort Immediate Transaction Nornal

允许新的连接××××

等待直到当前会话中止×××√

等待直到当前事务中止××√√

强制CheckPoint,关闭所有文件×√√√

OK,关于oracle数据库操作和怎样启动和关闭oracle数据库的内容到此结束了,希望对大家有所帮助。

淘宝服务器?淘宝店为什么要挂云服务器asp服务器(asp服务器如何搭建)