7.6.3数据库系统运维服务
针对数据系统的运维我公司提供如下解决方案:本方案适用于技术人员的日常运维工作。
ORACLE DB维护方法
数据库启动
1、以oracle用户用户登录,
sqlplus‘/as sysdba’ sqlplus> startup
2、以oracle用户或ora816用户登录
sqlplus‘/as sysdba’ sqlplus>startup nomunt sqlplus >alter database mount; sqlplus >alter database open;
3、第一种启动方式是最常用的手工启动方式,第二种启动方式是数据库有故障时常用的逐步启动方式,可以观察故障点。因为startup nomount 语句只读取spfile(server parameter file 数据库参数文件),启动instance,启动SGA和后台进程;alter database mount语句打开控制文件,确认数据文件和联机日志文件的位置,但此时不对数据文件和日志文件进行校验检查;alter database open打开包括Redo log文件在内的所有数据库文件,这种方式下可访问数据库中的数据。Startup完成功能是上述三条语句的之和。 数据库停止
1、 sqlplus ‘/as sysdba’
sqlplus>shutdown normal 正常方式关闭数据库。 2、shutdown immediate
立即方式关闭数据库,在 SQLPLUS中执行shutdown immediate,数据库并不立即关闭,而是在所有事务执行完毕并提交工作后才关闭,所以可能会等待,因此在关闭数据前要停掉连接到数据库的所有应用程序。建议日常维护工作中的关闭数据库,采用此方式。
3、shutdown abort
直接关闭数据库,正在访问数据库的会话会被突然终止。如果数据库中有大量
操作正在执行,这时执行shutdown abort后,因日志回滚、前滚(Roll Back/Roll Forward),下次重新启动数据库需要教长时间。当用shutdown immediate不能关闭数据库时,shutdown abort可以立即完成数据库的关闭操作。 监听器的启停
1、监听器的启动,以oracle用户用户登录
lsnrctl start [$ORACLE_SID]
2、监听器的停止,以oracle用户用户登录
lsnrctl stop [$ORACLE_SID]
3、监听器状态的查看,以oracle用户用户登录
lsnrctl status [$ORACLE_SID]
4、检测服务名是否有效,在操作系统下运行
tnsping SERVICE_NAME NUMBERS
SERVICE_NAME为你建立的服务名,NUMBERS为你要试PING数据库服务的次数 用户管理
1、用SQL语句查看系统中已有用户情况 select * from dba_users;
2、增加新的用户,并授予连接和资源权限,只有授予连接权限才可登录,授
予资源权限才可建表和修改
create user USERNAME profile defaultidentified by PASSWORD default tablespace DEFALUT_TABLESPACE_NAME temporary tablespace TEMP_TABLESPACE_NAME ; grant connect to USERNAME; grant resource to USERNAME;
3、修改用户口令
alter user USERNAME identified by NEWPASSWORD;
4、删除用户
drop user USERNAME;
5、限制某个已有用户会话的连接数(通过创建profile的方式)
create profile PROFILENAME limit sessions_per_user
CONNECT_NUMBERS;
alter user USERNAME profile PROFILENAME;
数据库参数文件
1、参数文件位置$ORACLE_HOME/dbs/spfileINSTANCE_NAME.ora,参数主要分为
动态参数和非动态参数,动态参数修改够直接生效,非动态参数需要重新启动数据库才能生效。 2、 修改参数的方法
altersystem set PARAMETER_NAME = VAlUE scope=both(system/spfile)
3、几个重要的参数
A、db_block_size 数据库块大小,数据库创建时决定,创建后不能修改。 B、db_block_buffers 数据高速缓冲区大小为此值与db_block_buffes的乘
积,该区越大越好。
C、share_pool_size 程序高速缓冲区和数据字典缓冲区的大小,主要用于存
储执行过的sql语句,减少重复分析,提高运行速度。该区也越大越好,但建议数据高速缓冲区加上程序高速缓冲区和数据字典缓冲区的大小(即SGA)一般不超过系统物理内存的50%。
D、sort_area_size 每个会话用于排序操作的内存大小,建议为默认值的两
倍到1M之间。
E、process 能同时访问数据库的最大进程数,根据连接数的多少,来设定,
一般为300以上。
F、db_io_slaves 后台写进程数 对I/O比较繁忙的数据库,可以将其设为多
于1个。
(以上参数以9i为参考,在10g里个别参数名有所变化) 数据库概况的查询
1、表空间的情况
select tablespace_name,stauts from dba_tablespaces;
2、数据文件的情况
SELECT FILE_NAME,FILE_ID,TABLESPACE_NAME FROM DBA_DATA_FILES;
3、段的情况
SELECT SEGMENT_NAME,,TABLESPACE_NAME,SEGMENT_ID,FILE_ID,STATUS FROM DBA_ROLLBACK_SEGS;
4、表、存储过程的拥有者名字和创建日期
select owner,object_name,object_type,created from all_objects
where object_type=’TABLE’OR OBJECT_TYPE=’PROCEDURE'
5、其他常用的视图和表
v$lock 锁的情况 v$session 会话的情况 v$process 进程的情况 v$parameter 数据库参数 v$rollname 回滚段的情况 v$sqlarea 共享池中的SQL语句 v$waitstat 等待的会话 dba_jobs 数据里定义的作业
dba_jobs_running 数据库里正在运行的作业 dba_views 数据库中所有视图的文本 dba_indexs 数据库中所有索引的描述 dba_free_space 数据库中所有表空间自由分区 dba_db_links 数据库中所有数据库链接
常用对象的创建和使用
1、表的创建(在表空间zy上创建表dhhm为例)
create table dhhm
(hm varchar2(11) ,
yhmc varchar2(60)) tablespace zy;
2、索引的创建(将DHHM表上hm字段建立索引hmsy存储在表空间zy上为例)
create index hmsy on dhhm(hm) tablespace zy;
3、已有存储过程、函数、包源代码的查找
select name,text from user_source where name=NAME;
4、数据库链接的创建和使用
create public database link DBLINKNAME.world connect to USERNAME identdied by PASWORD using SERVICENAME; select * from TABLE_NAME@DBLINKNAME;