Oracle数据库的启动与关闭
- 格式:docx
- 大小:73.42 KB
- 文档页数:3
深刻理解Oralce数据库的启动与关闭。
深刻理解Oracle数据的启动与关闭。
Oracle数据库提供了几种不同的数据库启动和关闭方式,本文档将详细介绍这些启动和关闭方式的区别以及他们各自不同的功能。
一:启动和关闭数据库要启动和关闭数据库,必须要以具备Oracle管理员权限的用户登陆,通常也就是以具有SYSDBA权限的用户登陆。
一般我们常用INTERNAL用户启动和关闭数据库(INTERNAL用户实际上是SYS用户以SYSDBA连接的同义词)。
Oracle数据库的新版本将逐步被淘汰INTERNAL这个内部用户,所以我们最好直接设置DBA用户具有SYSDBA权限。
二:数据库的启动(STARTUP)启动数据库需要三个步骤:1.创建一个Oracle实例(非安装阶段)。
2.由实例安装数据库(安装阶段)。
3.打开数据库(打开阶段)在Startup命令中,可以通过不同的选项来控制数据库不同的启动步骤。
1.STARTUP NOMOUNTNOMOUNT选项仅仅创建一个Oracle实例。
读取init.ora初始化参数文件,启动后台进程初始化系统全局(SGA)。
Init.ora文件定义了实例的配置,包括内存结构的大小和启动后台进程的数量和类型。
实例名根据Oracle_SID设置,包括内存结构的大小和启动后台的进程和数量类型等。
实例名根据Oracle_SID设置,不一定要与打开的数据库名称相同。
当实例打开后,系统将显示一个SGA内存结构和大小的列表,如下所示:SQL>startup nomountORACLE 例程已经启动Total System Global Area 35431692 bytesFixed Size 70924 bytesV ariable Size 18505728 bytesDatabase Buffers 16777216 bytesRedo Buffers 77824 bytes2 STARTUP MOUNT该命令创建实例并且安装数据库,但并没有打开数据库。
让知识带有温度。
如何启动和关闭Oracle数据库整理如何启动和关闭Oracle数据库对于一个oracle数据库新手来说,怎么样进行管理oracle数据库呢?首先从最简洁的启动和关闭数据库来说,下面简洁的介绍一下Oracle数据库的.启动和关闭挨次实例讲解。
一、oralce的启动挨次:1、先启动监听程序(对应端口1521) :[]#lsnrctl start2、启动oracle实例:[]#sqlplus / as sysdba(回车)SQLstartup--启动的是环境变量中的默认数据库实例$ORACLE_SID--假如启动多个实例:export ORACLE_SID=ctaudit[]#sqlplus / as sysdba(回车)SQLstartup3、启动em(对应端口1158),isqlplus(对应端口5560):[]#emctl start dbconsole第1页/共2页千里之行,始于足下。
[]#isqlplusctl start二、oracle的关闭挨次1、先关闭em,isqlplus:[]#emctl stop dbconsole[]#isqlplusctl stop2、关闭监听:[]#lsnrctl stop3、关闭oracle实例:[]#sqlplus / as sysdba(回车)SQLshutdown immediate以上所述是我给大家介绍的Oracle数据库的启动和关闭挨次实例讲解,假如大家有任何疑问请给我们留言,我会准时回复大家的。
在此也特别感谢大家对的支持!文档内容到此结束,欢迎大家下载、修改、丰富并分享给更多有需要的人。
第2页/共2页。
一、摘要Oracle数据库的完整启动过程是分步骤完成的,包含以下3个步骤:启动实例-->加载数据库-->打开数据库因为Oracle数据库启动过程中不同的阶段可以对数据库进行不同的维护操作,对应我们不同的需求,所以就需不同的模式启动数据库。
1. Oracle启动需要经历四个状态:SHUTDOWN 、NOMOUNT 、MOUNT 、OPEN2. Oracle关闭的四种方式:Normal, Immediate, Transactional, Abort3. 启动和关闭过程详解二、数据库启动过程1.NoMount 模式(启动实例不加载数据库)(1). 命令:startup nomount(2). 讲解:这种启动模式只会创建实例,并不加载数据库,Oracle仅为实例创建各种内存结构和服务进程,不会打开任何数据文件。
在NoMount模式下,只能访问那些与SGA区相关的数据字典视图,包括VPARAMETER、VSGA、VPROCESS和VSESSION等,这些视图中的信息都是从SGA 区中获取的,与数据库无关。
(3). 模式用途:创建新数据库;重建控制文件;2.Mount模式(加载数据库但不打开数据库)(1). 命令:startup mount(2). 讲解:这种启动模式将为实例加载数据库,但保持数据库为关闭状态。
因为加载数据库时需要打开数据库控制文件,但数据文件和重做日志文件都都无法进行读写,所以用户还无法对数据库进行操作。
在Mount模式下,只能访问那些与控制文件相关的数据字典视图,包括VTHREAD、VCONTROLFILE、VDATABASE、VDATAFILE 和V$LOGFILE等,这些视图都是从控制文件中获取的。
(3). 模式用途:重命名数据文件;添加、删除或重命名重做日志文件;执行数据库完全恢复操作;改变数据库的归档模式;3.Open模式(正常打开数据库)(1). 命令:startup [open](2). 讲解:正常按3个步骤启动数据库。
启动和关闭数据库1.1启动和关闭监听程序在启动数据库之前应该启动监听程序,否则就不能利用命令行方式来管理数据库,包括启动和关闭数据库。
如果没有启动监听程序,客户端就不能连接到数据库,在服务器段就不能使用OEM和Isql*Plus工具1.1.1命令行启动监听程序Lsnrctl start -启动监听Lsnrctl stop -在命令行停止监听服务Lsnrctl status -查看监听的状态1.2在SQL*PLUS中启动数据库启动一个oracle数据库,都是按步骤进行的,每完成一个步骤,就进入一个模式,以便保证数据库处于某种一致性的操作状态。
一个例程只能访问一个数据库,而一个数据库可以由多个流程同时访问。
1.2.1启动数据库的步骤1.2.1.1创建并启动例程流程是由一组逻辑内存结构和一系列后台服务进程组成。
当启动例程时,这些内存结构和服务进程得到分配、初始化和启动,以便用户能够与数据库进行通讯。
但是,此时的例程还没有与一个确定的数据库相联系,或者说数据库是否存在对例程的启动并没有影响。
在启动例程的过程中只会使用startup语句中指定的初始化参数文件。
1.2.1.2装载数据库装载数据库时,例程将打开数据库的控制文件,根据初始化参数control_files的设置找到控制文件,并从中获取数据库名称、数据文件的位置和名称等数据库物理结构的信息,为下一步打开数据库准备。
这时数控还处于关闭状态。
因此,如果控制文件损坏,那么将例程将无法装载数据库1.2.1.3打开数据库只有将数据库设置为打开状态后,数据库才能运行使用。
流程将所有处于联机状态的数据文件和重做日志文件打开综述,启动数据库的过程中,文件使用的顺序是:初始化参数文件->控制文件->数据文件、重做日志文件1.2.2启动模式与启动选项数据库有3种启动模式:Nomount模式、mount模式、open模式启动语法Starup [nomount | mount | open | force] [restrict][pfile=filename];1.Nomount:启动创建例程,但不装载数据库。
oracle19c常用命令数据库启动、关闭和状态检查•启动数据库:SqlSQL> STARTUP; # 启动数据库,默认为读写模式SQL> STARTUP MOUNT; # 只装载数据库但不打开SQL> STARTUP OPEN READ ONLY; # 以只读模式打开数据库•关闭数据库:SqlSQL> SHUTDOWN; # 正常关闭数据库,等待所有会话结束SQL> SHUTDOWN IMMEDIATE; # 立即关闭数据库,断开所有会话SQL> SHUTDOWN TRANSACTIONAL; # 在事务结束后关闭数据库SQL> SHUTDOWN ABORT; # 强制立即关闭数据库,可能导致数据丢失•查看数据库状态:SqlSQL> SELECT DATABASE_STATUS FROM V$INSTANCE;SQL> SELECT INSTANCE_NAME, STATUS FROM V$INSTANCE;用户管理•创建用户并分配表空间:SqlCREATE USER username IDENTIFIED BY password DEFAULTTABLESPACE users QUOTA UNLIMITED ON users;•给用户授权:SqlGRANT connect, resource TO username;GRANTdba TO username; # 授予数据库管理员权限表空间操作•创建表空间:SqlCREATE TABLE SPACE new_tbs DATAFILE'/path/to/datafile.dbf' SIZE 100M AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED;•删除表空间(需先离线):SqlALTER TABLE SPACE tbs_name OFFLINE;DROP TABLESPACE tbs_name INCLUDING CONTENTS ANDDATAFILES;PDB(可插拔数据库)管理•创建PDB:SqlCREATE PLUGGABLE DATABASE pdb_nameADMIN USER admin_user identified by passwordFILENAME '/path/to/pdb.xml';•开启/关闭PDB:SqlALTER PLUGGABLE DATABASE pdb_name OPEN;ALTER PLUGGABLE DATABASE pdb_name CLOSE;其他常用操作•查询当前登录用户:SqlSELECT USER FROM DUAL;•备份数据库:Bashrman target / # 进入RMAN恢复管理器BACKUP DATABASE; # 执行全库备份•查询数据库版本信息:SqlSELECT * FROM v$version;数据查询与操作•查询表数据:SqlSELECT * FROM your_table;-- 或者特定列SELECT column1, column2 FROM your_table;•插入数据:SqlINSERT INTO your_table (column1, column2) VALUES('value1', 'value2');•更新数据:SqlUPDATE your_table SET column1 = 'new_value'WHEREcondition;•删除数据:SqlDELETE FROM your_table WHERE condition;索引管理•创建索引:SqlCREATE INDEX idx_your_table_column1 ONyour_table(column1);•删除索引:SqlDROP INDEX idx_your_table_column1;触发器和序列•创建序列:SqlCREATE SEQUENCE seq_your_sequenceSTART WITH1INCREMENT BY1NOMAXVALUE;•使用序列:SqlINSERT INTO your_table (id, column1) VALUES(seq_your_sequence.NEXTVAL, 'value1');•创建触发器:SqlCREATE OR REPLACE TRIGGER trg_your_triggerBEFORE INSERT ON your_tableFOR EACH ROWBEGIN:NEW.column1 := seq_your_sequence.NEXTVAL;END;事务控制•开始事务:SqlSET TRANSACTION;•提交事务:SqlCOMMIT;•回滚事务:SqlROLLBACK;•保存点设置与恢复:SqlSAVEPOINT your_savepoint;ROLLBACK TO your_savepoint;SQL性能分析•查看执行计划:SqlEXPLAIN PLAN FOR SELECT * FROM your_table;SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY); 数据库审计•开启审计:SqlAUDIT ALL BY user_name BY ACCESS;•查看审计记录:SqlSELECT * FROM SYS.AUD$;。
数据库的启动与关闭1 .数据库启动与关闭概述数据库启动步骤创建并启动实例 (初始化参数文件) 装载数据库 (操纵文件)打开数据库 (数据文件与重做日记文件)创建并启动实例装载数据库打开数据库NOMOUNTMOUNT OPEN数据库启动过程创建并启动实例依照数据库初始化参数文件,为数据库创建实例,启动一系列后台进程和效劳进程,并创建SGA 区等内存结构。
装载数据库实例打开数据库的操纵文件,从中获取数据库名称、数据文件和重做日记文件的位置、名称等数据库物理结构信息,为打开数据库做好预备。
若是操纵文件损坏,实例将无法装载数据库。
打开数据库在现在期,实例将打开所有处于联机状态的数据文件和重做日记文件。
若是任何一个数据文件或重做日记文件无法正常打开,数据库将返回错误信息,这时数据库需要恢复。
数据库关闭步骤关闭数据库 (关闭数据文件与重做日记文件) 卸载数据库 (关闭操纵文件)关闭实例 (释放内存、停止后台进程和效劳器进程)数据库关闭过程关闭实例卸载数据库关闭数据库2 .启动与关闭数据库经常使用工具SQL*Plus在SQL*Plus 环境中,用户以SYSDBA 身份连接到Oracle 后,能够通过命令行方式启动或关闭数据库。
OEM (企业治理器)利用OEM 数据库操纵台,能够完成数据库的启动与关闭操作。
RMAN在Recovery Manager(RMAN)环境中能够通过命令行方式启动或关闭数据库。
3 .数据库启动的预备命令行方式:启动监听效劳C:\>LSNRCTL START启动数据库效劳C:\> oradim -startup -sid orcl -starttype srvcC:\> NET START OracleServiceORCL (ORCL为数据库名称)注意:利用net命令可否启动数据库,还受到一个注册表参数的阻碍,那个参数是ORA__AUTOSTART(位于HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1)。
Oracle开启和关闭的四种模式>1 启动数据库 在cmd命令窗⼝,直接输⼊"sqlplus",直接进⼊oracle管理界⾯,输⼊⽤户名和密码后,开始启动数据库,启动数据库三个步骤:启动实例、加载数据库、打开数据库 命令格式: startup [nomount|mount|open|force][restrict][pfile=filename] nomount:表⽰启动实例不加载数据库 mount:表⽰启动实例、加载数据库并保持数据库的关闭状态 open:表⽰启动实例、加载并打开数据库,这个是默认选项 force:表⽰终⽌实例并重新启动数据库 restrict:⽤于指定以受限制的会话⽅式启动数据库 pfile:⽤于指定启动实例时所使⽤的⽂本参数⽂件,filename就是⽂件名 1.1 nomount模式 只会创建实例(oracle实例的各种内存结构和服务进程),并不加载数据库,也不会打开任何数据⽂件; startup nomount 注意:⽤户要以sysdba的⾝份登录,才会有关闭和启动数据实例额权限 1.2 mount模式 这种模式将启动实例、加载数据库并保持数据库的关闭状态。
startup mount 1.3 open模式 这种模式将启动实例,加载并打开数据库,这就是常规的启动模式,如果⽤户想要对数据库进⾏多种操作,就必须使⽤open模式启动数据库实例。
startup startup命令后⾯不带有任何参数,就表⽰以open模式启动数据库实例 1.4 force模式 这种模式将终⽌实例并重新启动数据库,这种启动模式具有⼀定的强制性。
⽐如,在其他启动模式失效时,可以尝试使⽤这种启动模式 2 关闭数据库 与启动数据库实例相同,关闭数据库实例也有三个关闭步骤:关闭数据库、卸载数据库、关闭实例 语法格式: shutdown [normal|transactional|immediate|abort] normal:表⽰以正常⽅式关闭数据库 transactional:表⽰在当前所有的活动事务被提交完毕之后,关闭数据库 immediate:表⽰在尽可能短的时间内⽴即关闭数据库 abort:表⽰以终⽌⽅式来关闭数据库 2.1 normal⽅式 这种⽅式称为正常的关闭⽅式,如果对关闭数据库的时间没有限制,通常会使⽤这种⽅式来关闭数据库: shutdown normal 在执⾏以上代码后,oracle将会执⾏以下操作: 阻⽌任何⽤户建⽴新的连接 等待当前所有正在连接的⽤户主动断开连接 当所有的⽤户都断开连接后,将⽴即关闭数据库 2.2 transactional⽅式 这种⽅式称为事务关闭⽅式,它的⾸要任务是能够保证当前所有的活动事物都可以被提交,并在尽可能短的时间内关闭数据库: shutdown transactional 在执⾏以上代码后,oracle将会执⾏以下操作: 阻⽌⽤户建⽴新连接和开始新事物 等待所有活动事物提交后,再断开⽤户连接 当所有的活动事物提交完毕,所有的⽤户都断开连接后,将关闭数据库 2.3 immediate⽅式 这种事⽴即关闭⽅式,这种⽅式能够在尽可能短的时间内关闭数据库: 在这种关闭⽅式下,oracle不但会⽴即中断当前⽤户的链接,⽽且会强⾏终⽌⽤户的当前活动事物,将未完成的事物回退,以⽴即关闭的⽅式关闭数据库时,oracle将会执⾏以下操作: 阻⽌⽤户建⽴新连接和开始新事务 将未提交的活动事务回退 关闭数据库 2.4 abort⽅式 这种⽅式称为终⽌关闭⽅式,终⽌关闭⽅式具有⼀定的强制性和破坏性。
以下资料来自Oracle数据库精讲与疑难解析,仅供学习
一、Oracle数据库的启动
Oracle数据库的启动要经历3个阶段。
阶段一:启动实例 (Start An Instance)--nomount
阶段二:装载数据库 (Mount The Database)--mount
阶段三:打开数据库 (Open The Database)--open
1.启动实例
①读取参数文件(Initialization Parameter File, PFILE 或者 Server Parameter Files, SPFILE)
②Oracle根据参数文件中的参数,分配系统全局区(System Global Area, SGA)
③启动后台进程(DBWR: 数据库写入进程,LGWR:日志写入进程,CKPT:检查点进程,SMON:
系统监控进程,PMON:进程监控进程,ARCH归档进程等)。
这些内存和后台进程组合起来组成实例(Oracle Instance)。
参数文件(PFILE或者SPFILE)还指定了控制文件(Control File)的位置。
2.装载数据库
打开控制文件(Control File),从控制文件中获得数据文件(Data File)和联机日志文件(Redo Log
File)的名字和位置。
这时候,Oracle已经把实例和数据库关联起来。
对于普通用户,数据库
还是不可访问。
3.打开数据库
Oracle打开数据文件 (Data Files) 和联机日志文件 (Redo Log File) 。
这时候,数据库可以使用。
普通可以登录数据库,对数据库进行操作。
4.分步启动Oracle
STARTUP NOMOUNT;
ALTER DATABASE MOUNT;
ALTER DATABASE OPEN;
5.直接启动Oracle
STARTUP (相当于上面三个过程依次进行)
6.使用特定初始化参数文件 (Initialization Parameter File, FILE) 启动数据库
STARTUP PFILE='C: \oracle\product\10.2.0\db_1\dbs\PFILEORCL.ORA';
7.把数据库启动到限制模式(RESTRICT)
在限制模式下,只有CREATE SESSION 和RESTRICTED SESSION权限的用户可以访问数据库。
①如果数据库是关闭的
STARTUP RESTRICT;
②如果数据库是开启的
ALTER SYSTEM enable restricted session;
8.以只读模式(Read Only)打开数据库
①如果数据库是关闭的
STARTUP open read only;
②如果数据库是开启的
ALTER DATABASE OPEN read only;
在直读模式下,数据文件和日志文件都禁止写操作。
整个数据库是只读的。
但是允许数据库恢复(Database Recovery)及其他不会产生回滚的操作。
9.把数据库启动到回复模式 (RECOVER)
STARTUP OPEN RECOVER;
10.重启数据库(RESET)
STARTUP FORCE
这个命令先调用SHUTDOWN ABORT来关闭数据库,然后在用STARTUP命令,按照正常方式启动数据库。
STARTUP把数据库的关闭和启动两个过程合二为一。
11.如何知道数据库处于何种状态
①如果数据库处于NOMOUNT状态
1)SELECT open_mode FROM v$database;
2) SELECT status FROM v$instance;
②如果数据库处于MOUNT状态
1)SELECT open_mode FROM v$database;
2)SELECT status FROM v$instance;
③如果数据库处于OPEN状态
1)SELECT open_mode FROM v$database;
2)SELECT status FROM v$instance;
二、数据库的关闭
Oracle的关闭也要经历三个阶段:
阶段1:关闭数据库(Close The Database)
阶段2:卸载数据库(Unmount The Database)
阶段3:关闭实例(Shut Down The Instance)
1.关闭数据库
Oracle首先把SGA中的数据写到数据文件和联机日志文件中。
然后,Oracle关闭所有的数据文件和联机日志文件。
这时候,数据库已经不可以访问。
这个阶段完成后,控制文件仍然处在打开状态。
2.UNMOUNT数据库
数据库完成之后,Oracle将分离数据库和实例之间的联系,这个阶段叫做“卸载数据库”或
者叫“UNMOUNT数据库”。
这个阶段仅仅是卸载数据库,实例仍然存活在内存中。
这个阶段完成后,控制文件被关闭。
3.关闭实例
这是关闭数据库的最后一个阶段,这个阶段Oracle将从内存中移出SGA和终止正在进行的后台进程(Background Processes)。
至此,数据库关闭已经完成。
4. SHUTDOWN NORMAL
使用NORMAL方式关闭数据库时,
(1)允许新的用户注登录数据库。
(2)要等所有的用户自动退出Oracle以后,Oracle才关闭数据库。
所以,如果数据库存在一个用户,那么,Oracle就一直等待,直到这个用户退出,Oracle才关闭数据库。
(3)SHUTDOWN NORMAL是最慢的一种数据库关闭方式。
5.SHUTDOWN IMMEDIATE
使用IMMEDIATE方式关闭数据库时,
(1)新的用户不能登录数据库;
(2)未提交的事务将会被回滚(ROLLED BACK)
(3)Oracle不会等待所有的用户(连接)退出数据库。
特点:
(1)以IMMEDIATE方式关闭数据库不需要实例恢复(Instance Recovery);
(2) SHUTDOWN IMMEDIATE是最安全的关闭方式;
注:推荐使用这种方式关闭数据库。
6.SHUTDOWN TRANSACTIONAL
以TRANSACTIONAL方式关闭数据库时,会发生下面的事情:
(1)不允许新的用户登录数据库;
(2)不允许建立新的事务(New Transactions);
(3)所有的事务(transactions)完成以后才关闭数据库;
(4)一个用户(会话)执行完手里的事务(transactions)后将被强行断开与数据库的联机。
特点:
(1)这种关闭方式不会使客户端的数据丢失。
(2)这种关闭方式不需要实例恢复(Instance Recovery);
7.SHUTDOWN ABORT
以ABORT方式关闭数据库时,
(1)不允许启动新的连接(New Connections)和新的事务(New Transactions);
(2)客户端的SQL语句(Client SQL Statements)立刻终止;
(3)未提交的事务不被回滚(Rollback);
(4)Oracle立刻终止所有连接(会话)。
特点:
(1)只有数据库出现问题时候,才使用这种方式关闭数据库;
(2)这是一种最不安全的关闭方式,数据库重启时需要实例恢复(Oracle 后台进程);
(3)以ABORT方式关闭数据库使最快的一种方式。