初始化参数
初始化参数文件
启动实例时会读取初始化参数文件
参数文件有两种类型:
SPFILE
PFILE
文本初始化参数文件PFILE:
这类初始化参数文件可由数据库服务器读取,但不能由其写入。必须使用文本编辑器手动设置和更改初始化参数设置,这些设置是永久的,不受数据库关闭或启动的影响。文件默认名为init<SID>.ora,如果启动时未找到SPFILE,则自动搜索此文件。
建议创建SPFILE,以动态方式维护初始化参数。通过使用SPFILE,可以在服务器端的磁盘文件中永久存储和管理初始化参数。
- 文本文件
- init<SID>.ora
- 使用文本编辑器手动设置和更改
- 在下次启动的时候生效
- 默认的位置$ORACLE_HOME/dbs
服务器参数文件SPFILE
这是首选类型的初始化参数文件。这是一个由数据库服务器写入或读取的二进制文件,不得手动进行编辑。此文件驻留在执行Oracle 数据库的服务器中,而且永远存在,不受数据库关闭或启动的影响。这个文件通常称为服务器参数文件(SPFILE)。文件默认名为spfile<SID>.ora,启动时会自动搜索此文件。
- 二进制文件
- spfile<SID>.ora
- 由Oracle服务器维护
- 启动时会自动搜索此文件
- 能用RMAN备份
从SPFILE文件创建PFILE
CREATE PFILE = ‘$ORACLE_HOME/dbs/initDBA01.ora’
FROM SPFILE = ‘$ORACLE_HOME/dbs/spfileDBA01.ora’;
查看和修改初始化参数
#查看参数
show parameter spfile;
create pfile from spfile;(实例未启动也可以创建)create spfile from pfile;
#指定临时还是永久的改变
alter system set db_cache_size=200m scope=memory;
alter system set processes=300 scope=spfile;(重启生效)
实例启动和关闭
启动Oracle数据库实例
NOMOUNT状态——启动ORACLE例程
1.按以下顺序搜索$ORACLE_HOME/dbs中具有特定名称的文件(参数文件)
- spfile<SID>.ora
- 如果未找到,则搜索spfile.ora
- 如果未找到,则搜索init<SID>.ora
- 这是包含实例初始化参数的文件。 使用STARTUP 指定PFILE 参数可覆盖默认行为
2.分配SGA
3.启动后台进程
4.打开alert<SID>.log 文件和跟踪文件
MOUNT状态——装载数据库
数据库装载过程包括执行以下任务:
- 将数据库与以前启动的实例关联
- 定位并打开参数文件中指定的控制文件
- 通过读取控制文件来获取数据文件和联机重做日志文件的名称和状态。但是,此时不执行检查就可验证是否存在数据文件和联机重做日志文件
要执行特定的维护操作,请启动实例,然后装载数据库,但不打开该数据库。
例如,必须在执行以下任务期间装载数据库,但不打开数据库:
• 重命名数据文件(打开数据库时可重命名脱机表空间的数据文件)
• 启用和禁用联机重做日志文件归档选项
• 执行完整的数据库恢复
注:即使发出了OPEN 请求,数据库仍可能处于MOUNT 模式下。这是因为可能需要以某种方式恢复数据库。
OPEN状态——打开数据库
打开数据库过程包括执行以下任务:
- 打开联机数据文件
- 打开联机重做日志文件
如果尝试打开数据库时任一数据文件或联机重做日志文件不存在,则Oracle 服务器返回错误。
数据库操作正常意味着实例已启动、数据库已装载且已打开。通过执行正常数据库操作,任何有效用户都可连接到数据库,而且可执行典型数据访问操作。 在最后这个阶段,Oracle 服务器会验证是否可以打开所有的数据文件和联机重做日志文件,还会检查数据库的一致性。如有必要,系统监视器(SMON) 后台进程将启动实例恢复。
使用SQL*Plus 启动
以SYSDBA 或SYSOPER 的身份登录
STARTUP命令
启动实例和打开数据库
STARTUP
STARTUP PFILE=$ORACLE_HOME/dbs/initDBA01.ora
ALTER DATABASE命令
改变数据库状态NOMOUNT到MOUNT:
SQL> ALTER DATABASE MOUNT;
改变数据库状态MOUNT到OPEN,打开数据库:
SQL> ALTER DATABASE OPEN;
关闭Oracle数据库实例
关闭模式:
A = ABORT
I = IMMEDIATE
T = TRANSACTIONAL
N = NORMAL
--ABORT:在关闭之前执行最少量的任务。由于这种模式需要在启动之前进行恢复,所以只在需要时才使用此模式。当启动实例时出现了问题,或者因紧急情况(如,通知在数秒内断电)而需要立即关闭时,如果其它关闭方式都不起作用,通常选择使用此模式。
--IMMEDIATE:这是最常用选项。选择此模式会回退未提交的事务处理。
--TRANSACTIONAL:允许事务处理完成
--NORMAL:等待会话断开
关闭的过程:
数据缓冲区写数据到数据文件
未提交的改变被回滚
释放资源
查看预警日志
每个数据库都有一个alert_<sid>.log文件
dp_dest初始化参数指定的目录中
按时间顺序列出的消息日志和错误日志,其中包括:
1.启动时使用的所有非默认初始化参数
2.发生的所有内部错误(ORA-600)、块损坏错误(ORA-1578) 和死锁错误(ORA-60)
3.管理操作(如SQL 语句CREATE、ALTER、DROP DATABASE 和TABLESPACE),以及Enterprise Manager 或SQL*Plus 语句STARTUP、SHUTDOWN、ARCHIVE LOG和RECOVER
4.与共享服务器和分派程序进程的功能相关的若干消息和错误
5.自动刷新实体化视图过程中发生的错误
数据字典和动态性能视图
数据字典
- 描述数据库和它的对象
- 包含只读的表和视图
- 存储在SYSTEM表空间中
- 拥有者是SYS用户
- 由Oracle服务器自己维护
- 用SELECT访问
提供下列信息:
- 逻辑和物理的数据库结构
- 对象的定义和空间分配
- 一致性限制
- 用户、角色、权限、审计
动态性能视图
- 虚表
- 记录了当前数据库的行为
- 当数据库在操作时,动态性能视图被不断的更新
- 包含了来自内存和控制文件的信息
- DBA 使用动态性能视图监视和调优数据库
- 动态性能视图被SYS用户拥有
- 使用 V$开头的同义词
- 在 V$FIXED_TABLE中可以查到
包括关于以下内容的信息:
会话、文件状态、作业和任务的进度、锁、备份状态
内存使用和分配、系统和会话参数、SQL 执行、统计信息和度量
常用动态性能视图:
- V$INSTANCE
- V$PARAMETER
- V$SESSION
- V$SGA
- V$VERSION
- V$CONTROLFILE
- V$DATABASE
- V$DATAFILE
- V$TABLESPACE V$THREAD
SQL*Plus
使用SQL*Plus访问数据库
是一个命令行工具
执行数据库管理操作
通过执行SQL命令在数据库中查询、插入、更新或删除数据
可以通过交互方式或者在批处理模式下使用
从Shell 脚本调用SQL*Plus
通过调用sqlplus 和使用传递参数的操作系统脚本语法,可从shell脚本或BAT文件中调用SQL*Plus
从SQL*Plus 调用SQL 脚本
使用“@”运算符可以从SQL*Plus 会话中完成此操作
示例
0 22 * * 5 sh /home/db/oracle/script/recyclebin_clean.sh
. /home/db/oracle/.profile
/home/db/oracle/product/11.2.0/bin/sqlplus / as sysdba << eof
Purge dba_recyclebin;
exit;
eof
通过sqlplus调用sql脚本:
vi test.sql--写入
select username from dba_users;
--保存退出
sqlplus / as sysdba
SQL> @/home/db/oracle/script/test.sql
通过shell脚本访问sqlplus:
vi test.sh--写入
sqlplus / as sysdba <<eof
select username from dba_users;
exit;
eof
--保存退出
sh test.sh
查看初始化参数文件:
SQL> show parameter spfile;
--创建pfile
SQL> create pfile='/tmp/pfile20190828.ora' from spfile='/home/db/oracle/product/11.2.0/dbs/spfiletestdb.ora';
cat /tmp/pfile20190828.ora
查看修改参数:
SQL> show parameter processes
SQL> Alter system set processes=200 scope=spfile;
--重启后生效
查看alert日志:
位置:
SQL> show parameter background_dump_dest
cd /home/db/oracle/diag/rdbms/testdb/testdb/trace
tail -f alert*.log
查询数据字典:
sqlplus / as sysdba
SQL> desc dba_users
SQL> select username from dba_users;
应用用户连接数据库:
SQL> alter user abc identified by abc;
SQL> show user
SQL> conn abc/abc
SQL> show user
查询动态性能视图:
SQL> desc v$database
SQL> select dbid,name,created from v$database;
DBID NAME CREATED
---------- ------------------ ------------
2589235613 TESTDB 28-JAN-13
管理Listener监听
Oracle Net Listener 一个服务器端进程,用于处理客户端连接请求,默认名字LISTENER
Oracle Net Services 支持从应用程序到数据库实例以及数据库实例到另一个数据库实例的网络会话。
Oracle Net Listener(也称为侦听器)是一个服务器端进程,用于侦听传入的客户端连接请求并管理发往数据库的流量。
客户端通过侦听器建立连接的基本步骤包括:
客户端进程或其他数据库请求连接。
侦听器选择适当的服务处理程序来为客户端请求提供服务,并将该请求转发到该处理程序。
客户端进程直接连接到服务处理程序。侦听器不再参与通信。
静态注册: listener.ora文件
位置:/home/db/oracle/product/10.2.0/network/admin/listener.ora
监听方式两种:
动态ready:等待一分钟才能连接、PMON进程
静态unknown:立即连接、性能更好
侦听器.ora 文件用于配置侦听器以进行静态服务注册。侦听器.ora 文件必须驻留在侦听器所在的计算机或节点上。
侦听器.ora 文件包含以下各项的配置信息:
侦听器名称
侦听器地址
使用侦听器的数据库
侦听器参数
客户端配置: tnsnames.ora文件
位置:/home/db/oracle/product/10.2.0/network/admin/tnsnames.ora
连接测试:
tnsping tnsname;
连接数据库:sqlplus xxx/xxx@tnsname
监听管理工具LSNRCTL
监听器控制工具的命令可以在命令行方式执行或者LSNRCTL的提示符下执行
UNIX 命令行语法:
提示符语法: 使用下列命令控制监听器:
START [listener_name]
STOP [listener_name]
STATUS [listener_name]
相关命令
查看监听进程、状态:
ps -ef |grep tns
lsnrctl status
尝试启动监听:如果配置错误会失败
lsnrctl start
配置监听:
在服务器端:
cd /home/db/oracle/product/11.2.0/network/admin
vi listener.ora
修改host的IP地址,保存退出
启动监听:lsnrctl start
在客户端:
cd /home/db/oracle/product/11.2.0/network/admin
vi tnsnames.ora
修改host的IP地址,保存退出
在客户端做连接测试:
tnsping testdb
sqlplus abc/abc@testdb
连接方式:
在服务器端:直连
sqlplus abc/abc
在客户端:通过监听连接
sqlplus abc/abc@testdb