数据库启动和关闭
启动的三个阶段:
(1)启动到NOMOUNT状态:数据库服务器在内存中创建实例,实例读取参数文件
(2)启动到MOUNT状态:数据库服务器打开控制文件,获得数据库的结构信息。控制文件的路径和名称通过初始化参数CONTROL_FILE指定。
(3)启动到OPEN状态:数据库服务器打开数据文件和重做日志文件,这两种文件的信息都记录在控制文件中。
可以通过STARTUP启动数据库,STARTUP可以有下面的选项:
nomount、mount、open、force(重启)、pfile=文件名(指定文本参数的路径和名称)
STARTUP;
#启动数据库
STARTUP NOMOUNT;
#启动到nomount状态
STARTUP NOMOUNT PFILE='XXX/init.ora';
#使用init.ora作为参数文件启动到nomount状态
STARTUP PFILE='XXXX/init.ora';
#使用init.ora作为参数文件启动数据库,如果是远程启动,参数文件须在客户端所在处。
ALTER DATABASE OPEN;
#打开数据库,将mount切换到open状态
ALTER DATABASE OPEN READ ONLY;
#将数据库设为只读
AlTER DATABASE READ WRITE;
#将数据库设为读写状态
数据库关闭
关闭的四种方式
(1)NORMAL:默认方式,正常关闭
(2)TRANSACTIONAL:正常关闭数据库,如果有未提交的事务,则等待,会话将强制终止,如果有未提交的事务,那么数据库会等待事务的结束,顺利关闭时,会在关闭之前发出检查点。
(3)IMMEDIAE:关闭数据库,如果有未提交的事务,则回滚,会话将强制终止,未提交的事务将被回滚,关闭之前会发出检查点。
(4)ABORT:关闭数据库,如果有未提交的事务,则回滚,会话会被强制断开,未提交的事务将强制回滚,检查点进程不发书检查点,数据文件、控制文件及重组日志文件没有机会得到同步,这种方式相当于断电。
ALTER DATABASE CLOSE;
将数据库从open状态切到mount状态
口令文件
口令文件就是密码文件,用于存储特权用户的口令,特权用户就是在数据库中具有SYSDBA、SYSASM或SYSOPER权限之一的用户,SYS用户是典型的特权用户。 sysdba角色拥有数据库的所有权限,sysoper就是为了防止止sysdba的权限过大设置的一个角色,主要是启停数据库、备份还原数据库。
sqlplus xxx/pwd as sysdba;
sqlplus / as sysdba;
sqlplus / as sysoper;
如果口令文件丢失,或者口令输入错误,验证就会失败,可能就需要重建口令文件:
orapwd file=$ORACLE_HOME/dbs/orapworcl password="xxxx" force=y;
#file:用来指定口令文件的路径和名称,如果不指定,将在当前目录下产生口令文件
#force:如果口令文件已经存在,那么新文件的口令文件将覆盖以前的文件。
特权用户的信息可以从动态性能视图V$PWFILE_USERS中获得。初始参数REMOTE_LOGIN_PASSWORDFILE,用于控制数据库服务器如何使用口令文件,这个参数的可选值如下:
NONE:不使用口令文件,特权用户(包括SYS)只能在本地登录,或在存在安全连接的情况下,进行远程登录。
EXCLUSIVE:这是默认值,如果是该值,重建口令文件时,要确保SYS用户在口令文件中的口令与数据库中的口令是一致的。如果不一致,需要SYS用户在本地服务器登录,然后通过ALTER USER XX IDENTIFIED BY "PWD"修改。
SHARE:该参数说明多个数据库可以使用相同的口令文件。这种模式只能保存SYS用户帐户的口令。
如果使用的SPFILE参数文件启动数据库,而不是PFILE文件启动数据库,使用alter system命令可以更改这个参数的设置:
ALTER SYSTEM SET REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE SCOPE=SPFILE
如果将none的口令文件转换为exclusive或shared,要保证口令文件中的sys密码设置和数据库中数据字典中记载的一致。
参数文件
参数文件里的参数名称都是小写,参数分三种:
(1)不能修改的,只能查看
(2)静态参数,改为需要重启数据库
(3)动态参数,改完立即生效
可以用下面sql查看:
SELECT value,isdefault,isses_modifiable,issys_modifiable,ismodified FROM v$parameter;
#ISDEFAULT该参数是否使用了默认值
#ISSES_MODIFIABLE该参数是否可以在会话中进行动态参数修改
#ISSYS_MODIFIABLE该参数是否可以在实例范围内动态修改
#IS_MODIFIED 实例最近一次启动以来,该参数是否被修改过
ALTER SYSTEM SET xxx='XXXXX' SCOPE=SPFILE
#修改参数 ,scope可以有三个值:
#memory立即生效,重启数据库后失效
#spfile记录在参数文件中,重启生效
#both立即生效并记录在参数文件
警告文件和跟踪文件
警告文件命名规则:alert_
(1)数据库内部错误,如ORA-xxx
(2)管理员执行过的命令,如startup、archivelog
(3)启动时读的非默认初始化参数,如
(4)文件的故障信息,如数据文件、控制文件的故障
(5)快速恢复区被写满信息
跟踪文件用于记录进程的运行情况,有两种类型的跟踪文件,前台进程跟踪文件(
ALTER SYSTEM SET sql_trace=TRUE;
#设置系统级跟踪
ALTER SESSION SET sql_trace=TRUE;
#设置会话级跟踪
初始化参数USER_DUMP_DEST用于前台进程跟踪文件的存储路径,BACKGROUND_DUMP_DEST用于指定后台进程跟踪文件和警告文件的存储路径。
浙公网安备 33010602011771号